kernel_optimize_test/include
James Bottomley dde2020754 libata: eliminate the home grown dma padding in favour of
that provided by the block layer

ATA requires that all DMA transfers begin and end on word boundaries.
Because of this, a large amount of machinery grew up in ide to adjust
scatterlists on this basis.  However, as of 2.5, the block layer has a
dma_alignment variable which ensures both the beginning and length of a
DMA transfer are aligned on the dma_alignment boundary.  Although the
block layer does adjust the beginning of the transfer to ensure this
happens, it doesn't actually adjust the length, it merely makes sure
that space is allocated for transfers beyond the declared length.  The
upshot of this is that scatterlists may be padded to any size between
the actual length and the length adjusted to the dma_alignment safely
knowing that memory is allocated in this region.

Right at the moment, SCSI takes the default dma_aligment which is on a
512 byte boundary.  Note that this aligment only applies to transfers
coming in from user space.  However, since all kernel allocations are
automatically aligned on a minimum of 32 byte boundaries, it is safe to
adjust them in this manner as well.

tj: * Adjusting sg after padding is done in block layer.  Make libata
      set queue alignment correctly for ATAPI devices and drop broken
      sg mangling from ata_sg_setup().
    * Use request->raw_data_len for ATAPI transfer chunk size.
    * Killed qc->raw_nbytes.
    * Separated out killing qc->n_iter.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-02-19 11:36:56 +01:00
..
acpi ACPI, cpuidle: Clarify C-state description in sysfs 2008-02-14 00:09:55 -05:00
asm-alpha
asm-arm
asm-avr32
asm-blackfin
asm-cris
asm-frv
asm-generic Make topology fallback macros reference their arguments. 2008-02-11 20:37:29 -08:00
asm-h8300
asm-ia64 [IA64] Fix build for sim_defconfig 2008-02-11 13:23:46 -08:00
asm-m32r
asm-m68k
asm-m68knommu m68knommu: use tabs not spaces in cacheflush.h 2008-02-14 20:58:05 -08:00
asm-mips
asm-mn10300 Final removal of FASTCALL()/fastcall 2008-02-13 16:21:18 -08:00
asm-parisc
asm-powerpc [POWERPC] Wire up new timerfd syscalls 2008-02-14 22:11:01 +11:00
asm-ppc [POWERPC] Fix arch/ppc compilation - add typedef for pgtable_t 2008-02-14 22:11:02 +11:00
asm-s390
asm-sh sh: fix ioreadN_rep and iowriteN_rep 2008-02-14 14:25:37 +09:00
asm-sparc
asm-sparc64
asm-um
asm-v850
asm-x86 x86: zap invalid and unused pmds in early boot 2008-02-18 20:54:14 +01:00
asm-xtensa
crypto
keys
linux libata: eliminate the home grown dma padding in favour of 2008-02-19 11:36:56 +01:00
math-emu
media V4L/DVB (7192): Adds support for Genius TVGo A11MCE 2008-02-18 11:15:19 -03:00
mtd
net [IPSEC]: Fix bogus usage of u64 on input sequence number 2008-02-12 22:50:35 -08:00
pcmcia
rdma
rxrpc
scsi [SCSI] update SG_ALL to avoid causing chaining 2008-02-11 13:40:13 -06:00
sound
video
xen
Kbuild