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 <[email protected]>
Signed-off-by: Jeff Mahoney <[email protected]>
---
 drivers/scsi/st.c |   11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

--- 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--;


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to