diff options
Diffstat (limited to 'include/scsi/scsi_cmnd.h')
| -rw-r--r-- | include/scsi/scsi_cmnd.h | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 1e1198546c7..ac06cc59589 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h @@ -134,10 +134,16 @@ struct scsi_cmnd {  static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd)  { +	struct scsi_driver **sdp; +  	if (!cmd->request->rq_disk)  		return NULL; -	return *(struct scsi_driver **)cmd->request->rq_disk->private_data; +	sdp = (struct scsi_driver **)cmd->request->rq_disk->private_data; +	if (!sdp) +		return NULL; + +	return *sdp;  }  extern struct scsi_cmnd *scsi_get_command(struct scsi_device *, gfp_t);  |