1
linux/drivers
Mark Lord 4742d54fa4 2.6.21 fix lba48 bug in libata fill_result_tf()
Current 2.6.21 libata does the following:

void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
{
        struct ata_ioports *ioaddr = &ap->ioaddr;

        tf->command = ata_check_status(ap);
	...
        if (tf->flags & ATA_TFLAG_LBA48) {
                iowrite8(tf->ctl | ATA_HOB, ioaddr->ctl_addr);
                tf->hob_feature = ioread8(ioaddr->error_addr);
                ...
        }
}
...
static void fill_result_tf(struct ata_queued_cmd *qc)
{
        struct ata_port *ap = qc->ap;

        ap->ops->tf_read(ap, &qc->result_tf);
        qc->result_tf.flags = qc->tf.flags;
}

Based on this, those last two statements fill_result_tf()
appear to me to be in the wrong order, in that the tf->flags
are uninitialized at the point where tf_read() is invoked.
So for lba48 commands, tf_read() won't be reading back the
full lba48 register contents..

Correct?

This patch corrects fill_result_tf() so that the flags
get copied to result_tf before they are used by tf_read().

Signed-off-by:  Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-04-04 02:07:28 -04:00
..
acorn [ARM] Acorn: move the i2c bus driver into drivers/i2c 2007-03-04 20:40:50 +00:00
acpi Revert "ACPI: parse 2nd MADT by default" 2007-03-30 14:16:10 -04:00
amba
ata 2.6.21 fix lba48 bug in libata fill_result_tf() 2007-04-04 02:07:28 -04:00
atm [PATCH] zatm __init abuse 2007-03-14 15:27:49 -07:00
auxdisplay
base driver core: do not wait unnecessarily in driver_unregister() 2007-04-01 10:54:13 -07:00
block [PATCH] paride endianness annotations 2007-03-14 15:27:50 -07:00
bluetooth
cdrom [PATCH] Fix soft lockup with iSeries viocd driver 2007-03-05 07:57:51 -08:00
char [PATCH] vt: fix potential race in VT_WAITACTIVE handler 2007-04-02 10:06:09 -07:00
clocksource [PATCH] correct slow acpi_pm rating 2007-03-27 09:05:15 -07:00
connector [CONNECTOR]: Bugfix for cn_call_callback() 2007-03-07 16:08:08 -08:00
cpufreq [PATCH] Fix maxcpus=1 trigerring BUG() in cpufreq 2007-03-27 08:55:56 -07:00
crypto [PATCH] geode-aes: use unsigned long for spin_lock_irqsave 2007-03-06 09:30:25 -08:00
dio
dma [PATCH] rm pointless dmaengine exports 2007-03-16 19:25:03 -07:00
edac
eisa [PATCH] drivers/eisa/pci_eisa.c:pci_eisa_init() should be init 2007-03-27 09:05:15 -07:00
fc4
firmware
hid Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid 2007-03-15 10:50:54 -07:00
hwmon [PATCH] hwmon: Build fix for SENSORS_W83793 2007-03-16 19:25:06 -07:00
i2c i2c/ds1374: Check workqueue creation status 2007-03-22 19:49:01 +01:00
ide ide: use correct IDE error recovery 2007-03-26 23:03:20 +02:00
ieee1394 ieee1394: fix oops on "modprobe -r ohci1394" after network class_device conversion 2007-03-23 10:55:25 +01:00
infiniband Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2007-03-28 14:00:01 -07:00
input Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2007-03-08 07:28:30 -08:00
isdn [PATCH] drivers/isdn/gigaset: mark some static data as const (v2) 2007-03-29 08:22:25 -07:00
kvm KVM: always reload segment selectors 2007-03-27 17:55:48 +02:00
leds
macintosh
mca
md [PATCH] md: convert compile time warnings into runtime warnings 2007-03-27 09:05:15 -07:00
media V4L/DVB (5496): Pluto2: fix incorrect TSCR register setting 2007-04-02 11:03:05 -03:00
message Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2007-03-27 10:06:30 -07:00
mfd [PATCH] drivers/mfd/sm501.c: fix an off-by-one 2007-04-02 10:06:08 -07:00
misc asus-laptop: make code static 2007-03-09 21:06:40 -05:00
mmc [ARM] 4256/1: i.MX/MX1 SDHC fix/workaround of SD card recognition problems 2007-03-12 16:49:37 +00:00
mtd [MTD] [OneNAND] Classify the page data and oob buffer 2007-03-09 08:08:09 +00:00
net [BNX2]: Fix nvram write logic. 2007-04-02 13:30:55 -07:00
nubus
oprofile [PATCH] oprofile: fix potential deadlock on oprofilefs_lock 2007-03-28 13:58:02 -07:00
parisc
parport
pci PCI: Fix warning message in PCIE port driver 2007-03-26 14:13:08 -07:00
pcmcia [PATCH] Fix struct device member name in PCMCIA au1000_generic 2007-03-27 09:05:16 -07:00
pnp [PATCH] Correctly report PnP 64bit resources 2007-04-02 10:06:08 -07:00
ps3 [PATCH] C99 initializers, proper use of const in drivers/ps3 2007-03-14 15:27:50 -07:00
rapidio
rtc [PATCH] rtc-cmos lockdep fix, irq updates 2007-04-02 10:06:09 -07:00
s390 [S390] zcrypt: Fix ap_poll_requests counter in lost requests error path. 2007-03-26 20:43:47 +02:00
sbus
scsi [SCSI]: Fix scsi_send_eh_cmnd scatterlist handling 2007-04-02 14:26:22 -07:00
serial [PATCH] add Fujitsu Siemens Tablet PC devices to 8250_pnp.c 2007-03-23 11:01:22 -07:00
sh
sn
spi [PATCH] drivers/spi/: fix section mismatches 2007-03-27 09:05:15 -07:00
tc
telephony
usb USB: fix usb-serial/ftdi build warning 2007-03-26 14:17:48 -07:00
video [VIDEO]: Fix section mismatch in cg3.c 2007-03-28 12:50:56 -07:00
w1
zorro
Kconfig
Makefile