Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[platform/kernel/linux-rpi.git] / drivers / scsi / sr.c
index 4dcd735..0c4aa46 100644 (file)
@@ -792,7 +792,7 @@ static int sr_probe(struct device *dev)
        disk->queue = sdev->request_queue;
 
        if (register_cdrom(disk, &cd->cdi))
-               goto fail_put;
+               goto fail_minor;
 
        /*
         * Initialize block layer runtime PM stuffs before the
@@ -810,8 +810,13 @@ static int sr_probe(struct device *dev)
 
        return 0;
 
+fail_minor:
+       spin_lock(&sr_index_lock);
+       clear_bit(minor, sr_index_bits);
+       spin_unlock(&sr_index_lock);
 fail_put:
        put_disk(disk);
+       mutex_destroy(&cd->lock);
 fail_free:
        kfree(cd);
 fail: