summaryrefslogtreecommitdiff
path: root/drivers/scsi/sd.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-06-29 17:28:16 +0100
committerMark Brown <broonie@kernel.org>2016-06-29 17:28:16 +0100
commit10d832d607c621c101922442f4771737296e1241 (patch)
tree421229d6bb43c301bbf5eb97b11c5901aae66e08 /drivers/scsi/sd.c
parent1a695a905c18548062509178b98bc91e67510864 (diff)
parenta370f60a58ec7bad7045803041524ccdc4d79c75 (diff)
Merge tag 'ib-mfd-regulator-arm-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into regulator-rn5t618
Immutable branch between MFD, Regulator and ARM, due for v4.8
Diffstat (limited to 'drivers/scsi/sd.c')
-rw-r--r--drivers/scsi/sd.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 428c03ef02b2..f459dff30512 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1398,11 +1398,15 @@ static int media_not_present(struct scsi_disk *sdkp,
**/
static unsigned int sd_check_events(struct gendisk *disk, unsigned int clearing)
{
- struct scsi_disk *sdkp = scsi_disk(disk);
- struct scsi_device *sdp = sdkp->device;
+ struct scsi_disk *sdkp = scsi_disk_get(disk);
+ struct scsi_device *sdp;
struct scsi_sense_hdr *sshdr = NULL;
int retval;
+ if (!sdkp)
+ return 0;
+
+ sdp = sdkp->device;
SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_check_events\n"));
/*
@@ -1459,6 +1463,7 @@ out:
kfree(sshdr);
retval = sdp->changed ? DISK_EVENT_MEDIA_CHANGE : 0;
sdp->changed = 0;
+ scsi_disk_put(sdkp);
return retval;
}