linux/drivers/ata
Tejun Heo da071b42f7 libata: fix shutdown warning message printing
Unlocking ap->lock and ssleeping don't work because SCSI commands can
be issued from completion path without context.  Reimplement delayed
completion by allowing translation functions to override
qc->scsidone(), storing the original completion function to
scmd->scsi_done() and overriding qc->scsidone() with a function which
schedules delayed invocation of scmd->scsi_done().

This isn't pretty at all but all the ugly parts are thankfully
contained in the stop translation path where the compat feature is
implemented.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-16 01:18:31 -04:00
..
ahci.c libata-acpi: add ATA_FLAG_ACPI_SATA port flag 2007-05-16 01:18:31 -04:00
ata_generic.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
ata_piix.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
Kconfig Use menuconfig objects: libata 2007-05-11 18:16:01 -04:00
libata-acpi.c libata-acpi: add ATA_FLAG_ACPI_SATA port flag 2007-05-16 01:18:31 -04:00
libata-core.c libata: during revalidation, check n_sectors after device is configured 2007-05-16 01:18:30 -04:00
libata-eh.c libata: give devices one last chance even if recovery failed with -EINVAL 2007-05-11 18:09:18 -04:00
libata-scsi.c libata: fix shutdown warning message printing 2007-05-16 01:18:31 -04:00
libata-sff.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
libata.h libata: separate out ata_dev_reread_id() 2007-05-16 01:18:30 -04:00
Makefile libata-acpi: s/CONFIG_SATA_ACPI/CONFIG_ATA_ACPI/ 2007-05-11 18:12:42 -04:00
pata_ali.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_amd.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_artop.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_atiixp.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_cmd64x.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_cmd640.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_cs5520.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
pata_cs5530.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_cs5535.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_cypress.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_efar.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_hpt3x2n.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_hpt3x3.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_hpt37x.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_hpt366.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_icside.c [ARM] pata_icside: fix build errors 2007-05-11 17:19:07 +01:00
pata_isapnp.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_it821x.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_it8213.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_ixp4xx_cf.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
pata_jmicron.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_legacy.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
pata_marvell.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_mpc52xx.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
pata_mpiix.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
pata_netcell.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_ns87410.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_oldpiix.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_opti.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_optidma.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_pcmcia.c pata_pcmcia: recognize 2GB CompactFlash from Transcend 2007-05-11 18:16:00 -04:00
pata_pdc202xx_old.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_pdc2027x.c libata: add deadline support to prereset and reset methods 2007-05-01 07:49:53 -04:00
pata_platform.c pata_platform: don't use generic ata_port_start 2007-05-11 18:18:39 -04:00
pata_qdi.c Fix pata_qdi.c probe code 2007-05-09 20:15:47 -04:00
pata_radisys.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_rz1000.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_sc1200.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_scc.c pata_scc had been missed by ata_std_prereset() switch 2007-05-16 01:18:30 -04:00
pata_serverworks.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_sil680.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_sis.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_sl82c105.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_triflex.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_via.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
pata_winbond.c SPIN_LOCK_UNLOCKED cleanup in drivers/ata/pata_winbond.c 2007-04-28 15:16:40 -04:00
pdc_adma.c libata: convert the remaining PATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_inic162x.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
sata_mv.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_nv.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
sata_promise.c sata_promise: SATAII-150/300 TX4 port numbering fix 2007-05-09 20:15:46 -04:00
sata_promise.h Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00
sata_qstor.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_sil24.c libata-acpi: add ATA_FLAG_ACPI_SATA port flag 2007-05-16 01:18:31 -04:00
sata_sil.c libata: reimplement suspend/resume support using sdev->manage_start_stop 2007-05-11 18:01:03 -04:00
sata_sis.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
sata_svw.c [POWERPC] Rename get_property to of_get_property: drivers 2007-05-02 20:04:32 +10:00
sata_sx4.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sata_uli.c libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00
sata_via.c git-libata-all: sata_via build fix 2007-05-11 18:16:00 -04:00
sata_vsc.c libata: convert the remaining SATA drivers to new init model 2007-04-28 14:16:06 -04:00
sis.h libata: clean up SFF init mess 2007-05-11 18:09:18 -04:00