linux/drivers/ata
Tejun Heo 228f47b959 sata_sil24: fix IRQ clearing race when PCIX_IRQ_WOC is used
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: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-09-25 21:30:56 -04:00
..
ahci.c [libata] ahci: add ATI SB800 PCI IDs 2007-09-20 16:07:33 -04:00
ata_generic.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
ata_piix.c [libata] ata_piix: properly terminate DMI system list 2007-09-01 06:48:52 -04:00
Kconfig pata_hpt3x3: major reworking and testing 2007-07-10 21:30:33 -04:00
libata-acpi.c
libata-core.c libata: Update the blacklist with a few more devices 2007-09-20 15:58:26 -04:00
libata-eh.c libata: implement EH fast drain 2007-07-20 08:26:26 -04:00
libata-scsi.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
libata-sff.c libata-sff: Fix documentation 2007-09-20 15:58:26 -04:00
libata.h libata: implement EH fast drain 2007-07-20 08:26:26 -04:00
Makefile
pata_ali.c pata_ali/alim15x3: override 80-wire cable detection for Toshiba S1800-814 2007-09-11 22:28:36 +02:00
pata_amd.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_artop.c pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R] 2007-08-15 04:17:14 -04:00
pata_atiixp.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_cmd64x.c pata_cmd64x: Correct the speed ranges 2007-08-01 10:00:56 -04:00
pata_cmd640.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_cs5520.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_cs5530.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_cs5535.c [libata] Use ATA_UDMAx standard masks when filling driver's udma_mask info 2007-07-09 12:17:35 -04:00
pata_cypress.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_efar.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_hpt3x2n.c pata_hpt{37x|3x2n}: fix clock reporting (take 2) 2007-08-15 04:19:07 -04:00
pata_hpt3x3.c pata_hpt3x3: fix DMA Kconfig option to actually have a hope of working 2007-07-10 21:36:13 -04:00
pata_hpt37x.c pata_hpt{37x|3x2n}: fix clock reporting (take 2) 2007-08-15 04:19:07 -04:00
pata_hpt366.c [libata] Use ATA_UDMAx standard masks when filling driver's udma_mask info 2007-07-09 12:17:35 -04:00
pata_icside.c [ARM] pata_icside: fix the FIXMEs 2007-08-06 16:10:54 +01:00
pata_isapnp.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_it821x.c pata_it821x: fix lost interrupt with atapi devices 2007-09-10 21:53:00 -04:00
pata_it8213.c [libata] Use ATA_UDMAx standard masks when filling driver's udma_mask info 2007-07-09 12:17:35 -04:00
pata_ixp4xx_cf.c [libata] pata_ixp4xx: kill unused var 2007-07-09 12:17:34 -04:00
pata_jmicron.c [libata] Use ATA_UDMAx standard masks when filling driver's udma_mask info 2007-07-09 12:17:35 -04:00
pata_legacy.c
pata_marvell.c pata_marvell: Add more identifiers 2007-08-31 04:00:19 -04:00
pata_mpc52xx.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_mpiix.c
pata_netcell.c [libata] Use ATA_UDMAx standard masks when filling driver's udma_mask info 2007-07-09 12:17:35 -04:00
pata_ns87410.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_oldpiix.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_opti.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_optidma.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_pcmcia.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_pdc202xx_old.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_pdc2027x.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_platform.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_qdi.c
pata_radisys.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_rz1000.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_sc1200.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_scc.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_serverworks.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_sil680.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_sis.c pata_sis: Add the FSC Amilo and friends 2007-08-23 05:32:07 -04:00
pata_sl82c105.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
pata_triflex.c [libata] PATA drivers: remove ATA_FLAG_SRST 2007-07-09 12:17:32 -04:00
pata_via.c [libata, IDE] add new VIA bridge to VIA PATA drivers 2007-09-10 22:06:01 -04:00
pata_winbond.c
pdc_adma.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_inic162x.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_mv.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_nv.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_promise.c sata_promise: FastTrack TX4200 is a second-generation chip 2007-08-31 04:14:44 -04:00
sata_promise.h
sata_qstor.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_sil24.c sata_sil24: fix IRQ clearing race when PCIX_IRQ_WOC is used 2007-09-25 21:30:56 -04:00
sata_sil.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_sis.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_svw.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_sx4.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_uli.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sata_via.c Fix sata_via write errors on PATA drive connected to VT6421 2007-09-01 06:52:18 -04:00
sata_vsc.c [libata] Bump driver versions 2007-08-31 04:54:06 -04:00
sis.h