• Tejun Heo's avatar
    libata: initialize qc->dma_dir to DMA_NONE · 501e0c50
    Tejun Heo authored
    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: default avatarTejun Heo <htejun@gmail.com>
    Cc: James Bottomley <James.Bottomley@SteelEye.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    501e0c50
libata.h 37.8 KB