• Tejun Heo's avatar
    sata_sil24: fix IRQ clearing race when PCIX_IRQ_WOC is used · 228f47b9
    Tejun Heo authored
    When PCIX_IRQ_WOC is used, sil24 has an inherent race condition
    between clearing IRQ pending and reading IRQ status.  If IRQ pending
    is cleared after reading IRQ status, there's possibility of lost IRQ.
    If IRQ pending is cleared before reading IRQ status, spurious IRQs
    will occur.
    
    sata_sil24 till now cleared IRQ pending after reading IRQ status thus
    losing IRQs on machines where PCIX_IRQ_WOC was used.  Reverse the
    order and ignore spurious IRQs if PCIX_IRQ_WOC.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    228f47b9
sata_sil24.c 32.6 KB