Mikael Pettersson
3100d49d3c
sata_promise: fix hardreset lockdep error
...
sata_promise's pdc_hard_reset_port() needs to serialize because it
flips a port-specific bit in controller register that's shared by
all ports. The code takes the ata host lock for this, but that's
broken because an interrupt may arrive on our irq during the hard
reset sequence, and that too will take the ata host lock. With
lockdep enabled a big nasty warning is seen.
Fixed by adding private state to the ata host structure, containing
a second lock used only for serializing the hard reset sequences.
This eliminated the lockdep warnings both on my test rig and on
the original reporter's machine.
Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Tested-by: Adko Branil <adkobranil@yahoo.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2012-11-28 12:37:56 -05:00
..
acard-ahci.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
ahci.c
ahci: Add identifiers for ASM106x devices
2012-09-13 00:24:29 -04:00
ahci.h
ata/ahci_platform: Add clock framework support
2012-09-13 01:10:18 -04:00
ahci_platform.c
[libata] PM callbacks should be conditionally compiled on CONFIG_PM_SLEEP
2012-11-16 00:45:37 -05:00
ata_generic.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
ata_piix.c
ata_piix: Add Device IDs for Intel Lynx Point-LP PCH
2012-08-17 13:27:22 -04:00
Kconfig
ata: add platform driver for Calxeda AHCI controller
2012-09-13 01:09:41 -04:00
libahci.c
ahci: implement aggressive SATA device sleep support
2012-09-13 01:08:53 -04:00
libata-acpi.c
libata-acpi: Fix NULL ptr derference in ata_acpi_dev_handle
2012-11-15 23:20:55 -05:00
libata-core.c
libata debugging: Warn when unable to find timing descriptor based on xfer_mode
2012-11-15 23:51:11 -05:00
libata-eh.c
SCSI for-linus on 20121002
2012-10-02 19:01:32 -07:00
libata-pmp.c
libata: migrate ACPI code over to new bindings
2012-06-29 11:38:11 -04:00
libata-scsi.c
[SCSI] sd: Implement support for WRITE SAME
2012-11-13 22:45:42 -08:00
libata-sff.c
ata: remove the second argument of k[un]map_atomic()
2012-03-20 21:48:16 +08:00
libata-transport.c
libata-transport.c: local functions should not be exposed globally
2012-07-25 15:14:55 -04:00
libata-transport.h
[libata] Add ATA transport class
2010-10-21 20:21:03 -04:00
libata.h
ahci: implement aggressive SATA device sleep support
2012-09-13 01:08:53 -04:00
Makefile
[libata] Makefile: Fix build error in sata_highbank
2012-10-01 22:50:37 -04:00
pata_acpi.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_ali.c
pata_ali: fix "Satelite" typo
2011-10-14 13:10:42 -04:00
pata_amd.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_arasan_cf.c
[libata] PM callbacks should be conditionally compiled on CONFIG_PM_SLEEP
2012-11-16 00:45:37 -05:00
pata_artop.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_at32.c
libata: remove ATA_FLAG_MMIO
2011-03-02 02:36:46 -05:00
pata_at91.c
pata/at91: use newly introduced SMC accessors
2012-02-13 18:31:37 +01:00
pata_atiixp.c
pata_atiixp: override cable detection on MSI E350DM-E33
2012-08-17 13:26:51 -04:00
pata_atp867x.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_bf54x.c
[libata] pata_bf54x: Support sg list in bmdma transfer.
2012-01-17 20:49:28 -05:00
pata_cmd64x.c
[libata] pata_cmd64x: whitespace cleanup
2012-07-25 16:07:40 -04:00
pata_cmd640.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_cs5520.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_cs5530.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_cs5535.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_cs5536.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_cypress.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_efar.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_ep93xx.c
ARM: ep93xx: move platform_data definitions
2012-09-14 11:16:55 +02:00
pata_hpt3x2n.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_hpt3x3.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_hpt37x.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_hpt366.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_icside.c
ata: Convert ata_<foo>_printk(KERN_<LEVEL> to ata_<foo>_<level>
2011-07-23 17:57:36 -04:00
pata_imx.c
pata_imx: Convert to clk_prepare_enable/clk_disable_unprepare
2012-07-25 15:05:43 -04:00
pata_isapnp.c
pata_it821x.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_it8213.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_ixp4xx_cf.c
SATA/PATA: convert drivers/ata/* to use module_platform_driver()
2012-01-08 19:14:58 -05:00
pata_jmicron.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_legacy.c
pata_legacy: correctly mask recovery field for HT6560B
2012-03-13 12:43:13 -04:00
pata_macio.c
ata: Convert ata_<foo>_printk(KERN_<LEVEL> to ata_<foo>_<level>
2011-07-23 17:57:36 -04:00
pata_marvell.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_mpc52xx.c
drivers/ata/pata_mpc52xx.c: clean up error handling code
2012-03-13 16:41:08 -04:00
pata_mpiix.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_netcell.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_ninja32.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_ns87410.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_ns87415.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_octeon_cf.c
ata: Add and use ata_print_version_once
2011-07-23 17:57:36 -04:00
pata_of_platform.c
pata_of_platform: remove direct dependency on OF_IRQ
2012-01-08 19:14:58 -05:00
pata_oldpiix.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_opti.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_optidma.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_palmld.c
SATA/PATA: convert drivers/ata/* to use module_platform_driver()
2012-01-08 19:14:58 -05:00
pata_pcmcia.c
drivers/ata/pata_pcmcia.c: adjust suspicious bit operation
2012-07-25 15:06:20 -04:00
pata_pdc202xx_old.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_pdc2027x.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_piccolo.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_platform.c
SATA/PATA: convert drivers/ata/* to use module_platform_driver()
2012-01-08 19:14:58 -05:00
pata_pxa.c
ARM: pxa: move platform_data definitions
2012-09-14 11:18:10 +02:00
pata_radisys.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_rb532_cf.c
SATA/PATA: convert drivers/ata/* to use module_platform_driver()
2012-01-08 19:14:58 -05:00
pata_rdc.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_rz1000.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_samsung_cf.c
ARM: samsung: move platform_data definitions
2012-09-19 17:42:18 +02:00
pata_sc1200.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_scc.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_sch.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_serverworks.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_sil680.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_sis.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_sl82c105.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_triflex.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pata_via.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
pdc_adma.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_dwc_460ex.c
sata_dwc_460ex: device tree may specify dma_channel
2012-07-25 15:54:21 -04:00
sata_fsl.c
sata_fsl: add workaround for data length mismatch on freescale V2 controller
2012-09-13 01:09:19 -04:00
sata_highbank.c
[libata] PM callbacks should be conditionally compiled on CONFIG_PM_SLEEP
2012-11-16 00:45:37 -05:00
sata_inic162x.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_mv.c
sata_mv: Fix warnings when no PCI
2012-10-01 22:53:23 -04:00
sata_nv.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_promise.c
sata_promise: fix hardreset lockdep error
2012-11-28 12:37:56 -05:00
sata_promise.h
sata_qstor.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_sil.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_sil24.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_sis.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_svw.c
sata_svw: check DMA start bit before reset
2012-11-15 23:54:41 -05:00
sata_sx4.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_uli.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_via.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sata_vsc.c
ata: use module_pci_driver
2012-07-25 15:12:11 -04:00
sis.h