OpenCloudOS-Kernel/drivers/ata
Jens Axboe e013e13bf6 libata: fix bug with non-ncq devices
The recent commit 2fca5ccf97 ("libata:
switch to using block layer tagging support") to enable support for
block layer tagging in libata was broken for non-NCQ devices

The block layer initializes the tag field to -1 to detect invalid uses
of a tag, and if the libata devices does NOT support NCQ, we just used
that field to index the internal command list.  So we need to check for
-1 first and only use the tag field if it's valid.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Reported-by: Alexander Beregalov <a.beregalov@gmail.com>
Tested-by: Paul Mundt <lethal@linux-sh.org>
Tested-by: Dave Young <hidave.darkstar@gmail.com>
Tested-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-24 08:22:38 -07:00
..
Kconfig Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
Makefile libata: Add Intel SCH PATA driver 2008-05-06 11:33:58 -04:00
ahci.c libata: Implement disk shock protection support 2008-09-29 00:27:54 -04:00
ata_generic.c pata_atiixp: Don't disable 2008-05-06 11:43:44 -04:00
ata_piix.c ata_piix: IDE Mode SATA patch for Intel Ibex Peak DeviceIDs 2008-09-29 00:29:12 -04:00
libata-acpi.c dock: introduce .uevent for devices in dock, eg libata 2008-09-23 23:23:00 -04:00
libata-core.c libata: switch to using block layer tagging support 2008-10-23 16:05:26 -07:00
libata-eh.c libata: set device class to NONE if phys_offline 2008-10-22 20:42:43 -04:00
libata-pmp.c libata: improve EH retry delay handling 2008-07-14 15:59:32 -04:00
libata-scsi.c libata: fix bug with non-ncq devices 2008-10-24 08:22:38 -07:00
libata-sff.c libata-sff: fix ata_sff_post_internal_cmd() 2008-10-22 20:40:15 -04:00
libata.h libata: switch to using block layer tagging support 2008-10-23 16:05:26 -07:00
pata_acpi.c libata: Fix a large collection of DMA mode mismatches 2008-08-22 02:27:49 -04:00
pata_ali.c pata_ali: misplaced pci_dev_put() 2008-07-31 01:38:19 -04:00
pata_amd.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_artop.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_at32.c avr32: Use <mach/foo.h> instead of <asm/arch/foo.h> 2008-08-05 14:36:57 +02:00
pata_atiixp.c libata: Fix a large collection of DMA mode mismatches 2008-08-22 02:27:49 -04:00
pata_bf54x.c [libata] pata_bf54x: Add proper PM operation 2008-09-29 00:28:29 -04:00
pata_cmd64x.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cmd640.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
pata_cs5520.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cs5530.c libata: Fix a large collection of DMA mode mismatches 2008-08-22 02:27:49 -04:00
pata_cs5535.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cs5536.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_cypress.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_efar.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt3x2n.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt3x3.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt37x.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_hpt366.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_icside.c libata-sff: Fix oops reported in kerneloops.org for pnp devices with no ctl 2008-06-04 06:40:41 -04:00
pata_isapnp.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_it821x.c [libata] pata_it821x: fix warning 2008-08-22 02:33:23 -04:00
pata_it8213.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_ixp4xx_cf.c [ARM] 5179/1: Replace obsolete IRQT_* and __IRQT_* values with IRQ_TYPE_* 2008-07-27 09:46:18 +01:00
pata_jmicron.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_legacy.c ata: endianness annotations in pata drivers 2008-07-14 15:59:33 -04:00
pata_marvell.c ahci, pata_marvell: play nicely together 2008-09-08 12:11:36 -04:00
pata_mpc52xx.c powerpc/pata_mpc52xx: use linux/of_platform.h instead of asm 2008-07-12 12:10:52 -06:00
pata_mpiix.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_netcell.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_ninja32.c libata: rename SFF port ops 2008-04-17 15:44:22 -04:00
pata_ns87410.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_ns87415.c ata: remove FIT() macro 2008-05-19 17:30:32 -04:00
pata_of_platform.c powerpc: Fix no interrupt handling in pata_of_platform 2008-10-10 15:55:17 +11:00
pata_oldpiix.c libata: Fix a large collection of DMA mode mismatches 2008-08-22 02:27:49 -04:00
pata_opti.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_optidma.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_pcmcia.c Merge branches 'pcmcia-config-loop' and 'pcmcia-printk' into pcmcia 2008-08-23 02:00:44 +02:00
pata_pdc202xx_old.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_pdc2027x.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_platform.c ATA/IDE: fix platform driver hotplug/coldplug 2008-04-25 00:45:04 -04:00
pata_qdi.c ata: endianness annotations in pata drivers 2008-07-14 15:59:33 -04:00
pata_radisys.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_rb532_cf.c libata-sff: Fix oops reported in kerneloops.org for pnp devices with no ctl 2008-06-04 06:40:41 -04:00
pata_rz1000.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_sc1200.c libata: Fix a large collection of DMA mode mismatches 2008-08-22 02:27:49 -04:00
pata_scc.c libata: consistently use msecs for time durations 2008-07-14 15:59:32 -04:00
pata_sch.c libata: Add Intel SCH PATA driver 2008-05-06 11:33:58 -04:00
pata_serverworks.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_sil680.c pata_sil680: convert CONFIG_PPC_MERGE to CONFIG_PPC 2008-09-29 00:28:02 -04:00
pata_sis.c Added Targa Visionary 1000 IDE adapter to pata_sis.c 2008-07-11 09:38:24 -04:00
pata_sl82c105.c drivers/ata: trim trailing whitespace 2008-05-19 17:56:10 -04:00
pata_triflex.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
pata_via.c pata_via: clean up recent tf_load changes 2008-08-22 02:19:54 -04:00
pata_winbond.c ata: endianness annotations in pata drivers 2008-07-14 15:59:33 -04:00
pdc_adma.c libata: rename SFF functions 2008-04-17 15:44:21 -04:00
sata_fsl.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_inic162x.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_mv.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_nv.c Merge branch 'upstream-2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2008-10-10 07:46:45 -07:00
sata_promise.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_promise.h libata annotations and fixes 2008-01-23 05:24:15 -05:00
sata_qstor.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_sil.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_sil24.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_sis.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_svw.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_sx4.c libata: add qc_fill_rtf port operation 2008-04-17 15:44:23 -04:00
sata_uli.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sata_via.c sata_via: load DEVICE register when CTL changes 2008-10-22 20:42:47 -04:00
sata_vsc.c libata: make SCR access ops per-link 2008-09-29 00:22:28 -04:00
sis.h libata: PATA-mode fixes for sis_sata 2007-07-02 10:17:42 -04:00