diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index ed0b1bb99f08..db5058ed1fac 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -3201,6 +3201,8 @@ static int sd_revalidate_disk(struct gendisk *disk) */ if (sdkp->media_present) { sd_read_capacity(sdkp, buffer); + if (!sdkp->capacity) + goto presence_check_end; /* * set the default to rotational. All non-rotational devices @@ -3226,7 +3228,7 @@ static int sd_revalidate_disk(struct gendisk *disk) sd_read_write_same(sdkp, buffer); sd_read_security(sdkp, buffer); } - +presence_check_end: /* * We now have all cache related info, determine how we deal * with flush requests.