linux/include
Tejun Heo 6fc49adb94 [PATCH] libata: use FLUSH_EXT only when driver is larger than LBA28 limit
Many drives support LBA48 even when its capacity is smaller than
1<<28, as LBA48 is required for many functionalities.  FLUSH_EXT is
mandatory for drives w/ LBA48 support.

Interestingly, at least one of such drives (ST960812A) has problems
dealing with FLUSH_EXT.  It eventually completes the command but takes
around 7 seconds to finish in many cases thus drastically slowing down
IO transactions.  This seems to be a firmware bug which sneaked into
production probably because no other ATA driver including linux IDE
issues FLUSH_EXT to drives which report support for LBA48 & FLUSH_EXT
but is smaller than 1<<28 blocks.

This patch adds ATA_DFLAG_FLUSH_EXT which is set iff the drive
supports LBA48 & FLUSH_EXT and is larger than LBA28 limit.  Both cache
flush paths are updated to issue FLUSH_EXT only when the flag is set.
Note that the changed behavior is more inline with the rest of libata.
libata prefers shorter commands whenever possible.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Danny Kukawka <dkukawka@novell.com>
Cc: Stefan Seyfried <seife@novell.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-12-01 22:45:54 -05:00
..
acpi ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
asm-alpha Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-arm [libata] ARM: add ixp4xx PATA driver 2006-12-01 22:42:51 -05:00
asm-arm26 Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-avr32 Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-cris Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-frv Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-generic Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-h8300 Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-i386 ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
asm-ia64 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2006-12-01 16:41:27 -08:00
asm-m32r Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-m68k Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-m68knommu Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2006-12-01 16:41:07 -08:00
asm-mips Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2006-12-01 16:44:02 -08:00
asm-parisc Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2006-12-01 16:41:07 -08:00
asm-powerpc Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2006-12-01 16:41:27 -08:00
asm-ppc Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-s390 Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-sh Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-sh64 Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-sparc Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-sparc64 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2006-12-01 16:41:27 -08:00
asm-um Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-v850 Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
asm-x86_64 ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
asm-xtensa Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
crypto
keys
linux [PATCH] libata: use FLUSH_EXT only when driver is larger than LBA28 limit 2006-12-01 22:45:54 -05:00
math-emu
media V4L/DVB (4666): Ensure the WM8775 driver is loaded generically for any board. 2006-10-03 15:13:48 -03:00
mtd
net [NET]: Re-fix of doc-comment in sock.h 2006-11-25 15:16:51 -08:00
pcmcia
rdma IB/cm: Fix automatic path migration support 2006-11-29 15:33:10 -08:00
rxrpc
scsi [PATCH] add missing libsas include to fix s390 compilation. 2006-11-28 17:26:50 -08:00
sound Driver core: convert sound core to use struct device 2006-12-01 14:52:01 -08:00
video fix file specification in comments 2006-10-03 23:01:26 +02:00
Kbuild