• Maciej W. Rozycki's avatar
    [PATCH] 2.4.18, 2.5.5: I/O APIC through-8259A mode IRQ 0 routing · 04a868aa
    Maciej W. Rozycki authored
     There is a problem with the through-8259A mode for IRQ 0 on I/O APIC
    systems.  Depending on correctness of an MP table, IRQ 0 routing is either
    not registered at all or registered at a wrong pin.  As a result the 8254
    timer IRQ only works by an accident (it's edge-triggered and never
    disabled/enabled so it happens to survive this incorrect configuration).
    A visible effect is you can't change the affinity for IRQ 0.
    
     Following is a patch that fixes both cases referred to above.  The code
    looks obvious but it was additionally run-time tested just in case.  The
    issue is serious -- please apply the patch ASAP.  As no changes were done
    to io_apic.c since the development fork, the patch applies cleanly both to
    2.4 and to 2.5.
    
     Credit goes to Joe for discovering the affinity problem and providing a
    fix proposal (incorporated in the final one).
    
      Maciej
    04a868aa
io_apic.c 41 KB