https://github.com/torvalds/linux
Revision b9a4197e266a40d5d1d16c9fb2a852cf10743afe authored by Tejun Heo on 26 June 2007, 17:48:43 UTC, committed by Jeff Garzik on 27 June 2007, 06:50:08 UTC
The IDE driver used DMA for ATAPI commands if READ/WRITE command is
multiple of sector size or sg command is multiple of 16 bytes.  For
libata, READ/WRITE sector alignment is guaranteed by the high level
driver (sr), so we only have to worry about the 16 byte alignment.

This patch makes ata_check_atapi_dma() always request PIO for all data
transfer commands which are not multiple of 16 bytes.

The following reports are related to this problem.

http://bugzilla.kernel.org/show_bug.cgi?id=8605		(confirmed)
http://thread.gmane.org/gmane.linux.kernel/476620	(confirmed)
https://bugzilla.novell.com/show_bug.cgi?id=229260	(probably)

Albert first pointed out the difference between IDE and libata.  Kudos
to him.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Albert Lee <albertcc@tw.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
1 parent e00f1ff
Raw File
Tip revision: b9a4197e266a40d5d1d16c9fb2a852cf10743afe authored by Tejun Heo on 26 June 2007, 17:48:43 UTC
libata: use PIO for non-16 byte aligned ATAPI commands
Tip revision: b9a4197
.gitignore
#
# Generated files
#
gen_init_cpio
initramfs_data.cpio
initramfs_data.cpio.gz
initramfs_list
back to top