-
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