summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.de>2012-08-18 19:20:38 (GMT)
committerJames Bottomley <JBottomley@Parallels.com>2012-09-14 16:59:28 (GMT)
commite3f2a9cc84d35fac73c906de57ad3b3f5ff82008 (patch)
tree1815e0bc169e06a3f057aec22683940537811058 /drivers
parentaf23782beff27e720318fc44495287b9961a88e1 (diff)
downloadlinux-fsl-qoriq-e3f2a9cc84d35fac73c906de57ad3b3f5ff82008.tar.xz
[SCSI] st: clean up dev cleanup in st_probe
st_probe leaves a cdev pointer hanging around that is compared during the error path and freed later. There's no need for the pointer to hang around at all. So we free it immediately and simplify the error handling. Reviewed-by: Lee Duncan <lduncan@suse.com> Signed-off-by: Jeff Mahoney <jeffm@suse.com> Acked-by: Kai Mäkisara <kai.makisara@kolumbus.fi> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/st.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index 03303ae..492b53b 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -4156,6 +4156,7 @@ static int st_probe(struct device *dev)
printk(KERN_ERR
"st%d: out of memory. Device not attached.\n",
dev_num);
+ cdev_del(cdev);
goto out_free_tape;
}
cdev->owner = THIS_MODULE;
@@ -4194,17 +4195,13 @@ out_free_tape:
"tape");
for (j=0; j < 2; j++) {
if (STm->cdevs[j]) {
- if (cdev == STm->cdevs[j])
- cdev = NULL;
- device_destroy(&st_sysfs_class,
- MKDEV(SCSI_TAPE_MAJOR,
- TAPE_MINOR(i, mode, j)));
+ device_destroy(&st_sysfs_class,
+ MKDEV(SCSI_TAPE_MAJOR,
+ TAPE_MINOR(i, mode, j)));
cdev_del(STm->cdevs[j]);
}
}
}
- if (cdev)
- cdev_del(cdev);
write_lock(&st_dev_arr_lock);
scsi_tapes[dev_num] = NULL;
st_nr_dev--;