diff options
Diffstat (limited to 'drivers/scsi/scsi_ioctl.c')
-rw-r--r-- | drivers/scsi/scsi_ioctl.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_ioctl.c b/drivers/scsi/scsi_ioctl.c index 2ae4f8fc5831..b98f763931c5 100644 --- a/drivers/scsi/scsi_ioctl.c +++ b/drivers/scsi/scsi_ioctl.c | |||
@@ -167,10 +167,17 @@ EXPORT_SYMBOL(scsi_set_medium_removal); | |||
167 | static int scsi_ioctl_get_pci(struct scsi_device *sdev, void __user *arg) | 167 | static int scsi_ioctl_get_pci(struct scsi_device *sdev, void __user *arg) |
168 | { | 168 | { |
169 | struct device *dev = scsi_get_device(sdev->host); | 169 | struct device *dev = scsi_get_device(sdev->host); |
170 | const char *name; | ||
170 | 171 | ||
171 | if (!dev) | 172 | if (!dev) |
172 | return -ENXIO; | 173 | return -ENXIO; |
173 | return copy_to_user(arg, dev->bus_id, sizeof(dev->bus_id))? -EFAULT: 0; | 174 | |
175 | name = dev_name(dev); | ||
176 | |||
177 | /* compatibility with old ioctl which only returned | ||
178 | * 20 characters */ | ||
179 | return copy_to_user(arg, name, min(strlen(name), (size_t)20)) | ||
180 | ? -EFAULT: 0; | ||
174 | } | 181 | } |
175 | 182 | ||
176 | 183 | ||