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
History
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
File Mode Size
.gitignore -rw-r--r-- 94 bytes
Kconfig -rw-r--r-- 1.6 KB
Makefile -rw-r--r-- 1.8 KB
gen_init_cpio.c -rw-r--r-- 11.3 KB
initramfs_data.S -rw-r--r-- 1.0 KB

back to top