alistair23-linux/drivers/ata
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 [libata] Improve timeout handling 2009-03-24 22:52:39 -04:00
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