st: clean up dev cleanup in st_probe
Subsystems (2)
PATCH v3 2/5 st: clean up dev cleanup in st_probe
From: Jeff Mahoney <[email protected]>
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.
Signed-off-by Jeff Mahoney <[email protected]>
Signed-off-by Lee Duncan <[email protected]>
--- drivers/scsi/st.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-)
drivers/scsi/st.c +4 -7
@@ -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--;
Signature · 1 line
1.7.9.2