linux/include
Tejun Heo a2a7a662f8 [PATCH] libata: implement ata_exec_internal()
This patch implements ata_exec_internal() function which performs
libata internal command execution.  Previously, this was done by each
user by manually initializing a qc, issueing it, waiting for its
completion and handling errors.  In addition to obvious code
factoring, using ata_exec_internal() fixes the following bugs.

* qc not freed on issue failure
* ap->qactive clearing could race with the next internal command
* race between timeout handling and irq
* ignoring error condition not represented in tf->status

Also, qc & hardware are not accessed anymore once it's completed,
making internal commands more conformant with general semantics.
ata_exec_internal() also makes it easy to issue internal commands from
multiple threads if that becomes necessary.

This patch only implements ata_exec_internal().  A following patch
will convert all users.

Signed-off-by: Tejun Heo <htejun@gmail.com>

--

Jeff, all patches have been regenerated against upstream branch as of
today.  (575ab52a21)

Also, I took out a debug printk from ata_exec_internal (don't know how
that one got left there).  Other than that, all patches are identical
to the previous posting.

Thanks. :-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-12-13 01:34:45 -05:00
..
acpi
asm-alpha [PATCH] mm: fill arch atomic64 gaps 2005-11-23 16:08:39 -08:00
asm-arm [ARM] 3199/1: Remove bogus function prototype from arch-pxa/irq.h 2005-12-08 23:34:44 +00:00
asm-arm26
asm-cris
asm-frv [PATCH] FRV: Make the FRV arch work again 2005-11-28 14:42:23 -08:00
asm-generic Merge x86-64 update from Andi 2005-11-14 19:56:02 -08:00
asm-h8300
asm-i386 x86: Fix silly typo in recent <asm/signal.h> fixes 2005-11-17 10:04:31 -08:00
asm-ia64 [IA64] Define an ia64 version of __raw_read_trylock 2005-12-12 08:54:18 -08:00
asm-m32r [PATCH] m32r: M3A-2170(Mappi-III) IDE support 2005-11-28 14:42:24 -08:00
asm-m68k
asm-m68knommu
asm-mips [MIPS] Qemu: Qemu is emulating a 1193.182kHz i8254 PIC. 2005-12-01 11:05:15 +00:00
asm-parisc [PARISC] Always spinlock tlb flush operations to ensure preempt safety 2005-11-17 16:44:14 -05:00
asm-powerpc [PATCH] powerpc: Add missing icache flushes for hugepages 2005-12-09 16:30:48 +11:00
asm-ppc Merge branch 'mymerge' of ssh://ozlabs.org/home/sfr/kernel-sfr 2005-11-19 14:25:23 +11:00
asm-s390
asm-sh
asm-sh64
asm-sparc
asm-sparc64 [PATCH] sparc: convert IO remapping to VM_PFNMAP 2005-11-28 14:35:36 -08:00
asm-um [PATCH] uml: eliminate anonymous union and clean up symlink lossage 2005-11-22 09:13:41 -08:00
asm-v850 [PATCH] v850: use generic hardirq code 2005-11-15 08:59:20 -08:00
asm-x86_64 [PATCH] mm: fill arch atomic64 gaps 2005-11-23 16:08:39 -08:00
asm-xtensa
keys
linux [PATCH] libata: implement ata_exec_internal() 2005-12-13 01:34:45 -05:00
math-emu
media [PATCH] V4L/DVB: (3086c) Whitespaces cleanups part 4 2005-12-12 08:57:44 -08:00
mtd
net [DECNET]: add memory buffer settings 2005-12-05 13:42:06 -08:00
pcmcia
rdma
rxrpc
scsi
sound
video