]> err.no Git - linux-2.6/commit
libata: initialize qc->dma_dir to DMA_NONE
authorTejun Heo <htejun@gmail.com>
Wed, 17 Jan 2007 02:34:02 +0000 (11:34 +0900)
committerJeff Garzik <jeff@garzik.org>
Sat, 20 Jan 2007 00:18:49 +0000 (19:18 -0500)
commit501e0c500217e38276d61445ee0839b3f2c66d05
treeb84db101bc9c68dd37aae7eba062abde5001ad80
parent96bc103f4c4e470d82ba5e372191d02ad715da45
libata: initialize qc->dma_dir to DMA_NONE

libata didn't used to init qc->dma_dir to any specific value on qc
initialization and command translation path didn't set qc->dma_dir if
the command doesn't need data transfer.  This made non-data commands
to have random qc->dma_dir.

This usually doesn't cause problem because LLDs usually check
qc->protocol first and look at qc->dma_dir iff the command needs data
transfer but this doesn't hold for all LLDs.

It might be worthwhile to rename qc->dma_dir to qc->data_dir as we use
the field to tag data direction for both PIO and DMA protocols.

This problem has been spotted by James Bottomley.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: James Bottomley <James.Bottomley@SteelEye.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
include/linux/libata.h