summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJames Bottomley <jbottomley@parallels.com>2012-05-04 09:40:04 +0000
committerJames Bottomley <JBottomley@Parallels.com>2012-05-10 08:24:13 +0100
commit3c8d9a957d0ae62c2815393a781ab7ff4d5205e7 (patch)
treea20954c16b517c4561d88216830e288d7c0fefb4 /drivers
parent6abd7f132a4b74d9cdd3ef79fc71ca73909631f2 (diff)
downloadlinux-3.10-3c8d9a957d0ae62c2815393a781ab7ff4d5205e7.tar.gz
linux-3.10-3c8d9a957d0ae62c2815393a781ab7ff4d5205e7.tar.bz2
linux-3.10-3c8d9a957d0ae62c2815393a781ab7ff4d5205e7.zip
[SCSI] fix oops in all legacy host adapters caused by 6f381fa
Commit 6f381fa344911d5a234b13574433cf23036f9467 Author: Lin Ming <ming.m.lin@intel.com> [SCSI] scsi_lib: use correct DMA device in __scsi_alloc_queue Caused a regression where we oops in every legacy mode SCSI host driver because they supply a NULL pointer to scsi_add_host(). Fix this by checking for the NULL in scsi_add_host_with_dma() and changing the DMA device to being the platform_bus in that case (which replicates the original behaviour). Reported-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/hosts.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index 351dc0b86fa..a3a056a9db6 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -218,6 +218,9 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
if (!shost->shost_gendev.parent)
shost->shost_gendev.parent = dev ? dev : &platform_bus;
+ if (!dma_dev)
+ dma_dev = shost->shost_gendev.parent;
+
shost->dma_dev = dma_dev;
error = device_add(&shost->shost_gendev);