remarkable-linux/block
James Bottomley fa0ccd837e block: implement drain buffers
These DMA drain buffer implementations in drivers are pretty horrible
to do in terms of manipulating the scatterlist.  Plus they're being
done at least in drivers/ide and drivers/ata, so we now have code
duplication.

The one use case for this, as I understand it is AHCI controllers doing
PIO mode to mmc devices but translating this to DMA at the controller
level.

So, what about adding a callback to the block layer that permits the
adding of the drain buffer for the problem devices.  The idea is that
you'd do this in slave_configure after you find one of these devices.

The beauty of doing it in the block layer is that it quietly adds the
drain buffer to the end of the sg list, so it automatically gets mapped
(and unmapped) without anything unusual having to be done to the
scatterlist in driver/scsi or drivers/ata and without any alteration to
the transfer length.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-01-28 10:54:11 +01:00
..
as-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
blktrace.c blktrace: Add blktrace ioctls to SCSI generic devices 2008-01-28 10:04:46 +01:00
bsg.c [SCSI] libsas, bsg: pass errors through correctly 2008-01-11 18:29:13 -06:00
cfq-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
compat_ioctl.c blktrace: Add blktrace ioctls to SCSI generic devices 2008-01-28 10:04:46 +01:00
deadline-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
elevator.c block: implement drain buffers 2008-01-28 10:54:11 +01:00
genhd.c Driver core: convert block from raw kobjects to core devices 2008-01-24 20:40:36 -08:00
ioctl.c compat_ioctl: move common block ioctls to compat_blkdev_ioctl 2007-10-10 09:26:00 +02:00
Kconfig Only enable BLOCK_COMPAT if COMPAT is needed 2007-10-12 17:58:36 -07:00
Kconfig.iosched update I/O sched Kconfig help texts - CFQ is now default, not AS. 2007-02-17 20:08:22 +01:00
ll_rw_blk.c block: implement drain buffers 2008-01-28 10:54:11 +01:00
Makefile [BLOCK] Only include the compat ioctl code if CONFIG_BLOCK is set 2007-10-12 12:50:41 +02:00
noop-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
scsi_ioctl.c block: use jiffies conversion functions in scsi_ioctl.c 2007-12-18 08:29:28 +01:00