[SCSI] scsi_lib: use correct DMA device in __scsi_alloc_queue
authorLin Ming <ming.m.lin@intel.com>
Thu, 12 Apr 2012 05:50:38 +0000 (13:50 +0800)
committerVarun Wadekar <vwadekar@nvidia.com>
Mon, 14 May 2012 12:36:00 +0000 (17:36 +0530)
commit0f967821bbf95db53da1a68de3a1a9a55f12a21a
tree20cb6ab73af0f035ac0bdc5e5631df6c05a362c1
parentbd4ed9bbad88bdd1b8c5a19edfcc0d2d23069c96
[SCSI] scsi_lib: use correct DMA device in __scsi_alloc_queue

Currently, __scsi_alloc_queue uses SCSI host's parent device
as DMA device to set segment boundary. But the parent device may not
refer to the DMA device. For example, for ATA disk, SCSI host's parent
device now refers to ATA port.

Since commit d139b9b([SCSI] scsi_lib_dma: fix bug with dma maps on
nested scsi objects), a new field Scsi_Host->dma_dev was introduced
to refer to the real DMA device.

Use ->dma_dev in __scsi_alloc_queue to correctly set segment
boundary.

Bug report: http://marc.info/?l=linux-ide&m=133177818318187&w=2

Reported-and-tested-by: Jörg Sommer <joerg@alea.gnuu.de>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/scsi_lib.c