libata: make qc->nbytes include extra buffers
authorTejun Heo <htejun@gmail.com>
Wed, 5 Dec 2007 07:43:12 +0000 (16:43 +0900)
committerJeff Garzik <jeff@garzik.org>
Wed, 23 Jan 2008 10:24:15 +0000 (05:24 -0500)
commit0bcc65ad78ae517de16b2ca07a2891f49d44d156
tree87eecc4aec56500f3e29a1e82b631093f950ac85
parentff2aeb1eb64c8a4770a6304f9addbae9f9828646
libata: make qc->nbytes include extra buffers

qc->nbytes didn't use to include extra buffers setup by libata core
layer and my be odd.  This patch makes qc->nbytes include any extra
buffers setup by libata core layer and guaranteed to be aligned on 4
byte boundary.

This value is to be used to program the host controller.  As this
represents the actual length of buffer available to the controller and
the controller must be able to deal with short transfers for ATAPI
commands which can transfer variable length, this shouldn't break any
controllers while making problems like rounding-down and controllers
choking up on odd transfer bytes much less likely.

The unmodified value is stored in new field qc->raw_nbytes.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/libata-core.c
include/linux/libata.h