diff options
Diffstat (limited to 'drivers/message/i2o/i2o_scsi.c')
-rw-r--r-- | drivers/message/i2o/i2o_scsi.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/message/i2o/i2o_scsi.c b/drivers/message/i2o/i2o_scsi.c index 6ebf38213f9f..d5f93b12b6f1 100644 --- a/drivers/message/i2o/i2o_scsi.c +++ b/drivers/message/i2o/i2o_scsi.c | |||
@@ -220,7 +220,7 @@ static int i2o_scsi_probe(struct device *dev) | |||
220 | u32 id = -1; | 220 | u32 id = -1; |
221 | u64 lun = -1; | 221 | u64 lun = -1; |
222 | int channel = -1; | 222 | int channel = -1; |
223 | int i; | 223 | int i, rc; |
224 | 224 | ||
225 | i2o_shost = i2o_scsi_get_host(c); | 225 | i2o_shost = i2o_scsi_get_host(c); |
226 | if (!i2o_shost) | 226 | if (!i2o_shost) |
@@ -304,14 +304,20 @@ static int i2o_scsi_probe(struct device *dev) | |||
304 | return PTR_ERR(scsi_dev); | 304 | return PTR_ERR(scsi_dev); |
305 | } | 305 | } |
306 | 306 | ||
307 | sysfs_create_link(&i2o_dev->device.kobj, &scsi_dev->sdev_gendev.kobj, | 307 | rc = sysfs_create_link(&i2o_dev->device.kobj, |
308 | "scsi"); | 308 | &scsi_dev->sdev_gendev.kobj, "scsi"); |
309 | if (rc) | ||
310 | goto err; | ||
309 | 311 | ||
310 | osm_info("device added (TID: %03x) channel: %d, id: %d, lun: %ld\n", | 312 | osm_info("device added (TID: %03x) channel: %d, id: %d, lun: %ld\n", |
311 | i2o_dev->lct_data.tid, channel, le32_to_cpu(id), | 313 | i2o_dev->lct_data.tid, channel, le32_to_cpu(id), |
312 | (long unsigned int)le64_to_cpu(lun)); | 314 | (long unsigned int)le64_to_cpu(lun)); |
313 | 315 | ||
314 | return 0; | 316 | return 0; |
317 | |||
318 | err: | ||
319 | scsi_remove_device(scsi_dev); | ||
320 | return rc; | ||
315 | }; | 321 | }; |
316 | 322 | ||
317 | static const char *i2o_scsi_info(struct Scsi_Host *SChost) | 323 | static const char *i2o_scsi_info(struct Scsi_Host *SChost) |