Message ID | 20211015233028.2167651-2-mcgrof@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block: reviewed add_disk() error handling set | expand |
Luis, > We never checked for errors on add_disk() as this function returned > void. Now that this is fixed, use the shiny new error handling. > > As with the error handling for device_add() we follow the same logic > and just put the device so that cleanup is done via the > scsi_disk_release(). Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
On Sat, Oct 16, 2021 at 10:51:48PM -0400, Martin K. Petersen wrote: > > Luis, > > > We never checked for errors on add_disk() as this function returned > > void. Now that this is fixed, use the shiny new error handling. > > > > As with the error handling for device_add() we follow the same logic > > and just put the device so that cleanup is done via the > > scsi_disk_release(). > > Acked-by: Martin K. Petersen <martin.petersen@oracle.com> Thanks, would you like Jens to pick this up and the other scsi/sr patch or are you taking it through your tree? Luis
Luis, > Thanks, would you like Jens to pick this up and the other scsi/sr patch > or are you taking it through your tree? Didn't think I had the relevant add_disk() patch in my baseline tree but it turns out I do. So I queued them up. Thanks!
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index a646d27df681..d69f2e626e76 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -3457,7 +3457,13 @@ static int sd_probe(struct device *dev) pm_runtime_set_autosuspend_delay(dev, sdp->host->hostt->rpm_autosuspend_delay); } - device_add_disk(dev, gd, NULL); + + error = device_add_disk(dev, gd, NULL); + if (error) { + put_device(&sdkp->dev); + goto out; + } + if (sdkp->capacity) sd_dif_config_host(sdkp);