23 lines
		
	
	
		
			641 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			641 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/drivers/scsi/sd.c	
 | |
| +++ a/drivers/scsi/sd.c	
 | |
| @@ -2362,13 +2362,18 @@ static int sd_try_extended_inquiry(struct scsi_device *sdp)
 | |
|  static int sd_revalidate_disk(struct gendisk *disk)
 | |
|  {
 | |
|  	struct scsi_disk *sdkp = scsi_disk(disk);
 | |
| -	struct scsi_device *sdp = sdkp->device;
 | |
| +	struct scsi_device *sdp;
 | |
|  	unsigned char *buffer;
 | |
|  	unsigned flush = 0;
 | |
|  
 | |
|  	SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp,
 | |
|  				      "sd_revalidate_disk\n"));
 | |
|  
 | |
| +	if (WARN_ONCE((!sdkp), "Invalid scsi_disk from %p\n", disk))
 | |
| +		goto out;
 | |
| +
 | |
| +	sdp = sdkp->device;
 | |
| +
 | |
|  	/*
 | |
|  	 * If the device is offline, don't try and read capacity or any
 | |
|  	 * of the other niceties.
 |