diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index a390679cf458..6fac62f00b37 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -3433,6 +3433,7 @@ static int sd_probe(struct device *dev) error = device_add(&sdkp->disk_dev); if (error) { + ida_free(&sd_index_ida, index); put_device(&sdkp->disk_dev); goto out; } @@ -3474,6 +3475,7 @@ static int sd_probe(struct device *dev) error = device_add_disk(dev, gd, NULL); if (error) { + ida_free(&sd_index_ida, index); put_device(&sdkp->disk_dev); goto out; }