From 71e299f6cebecf40b327db681e35e63f89e12264 Mon Sep 17 00:00:00 2001 From: "Martin K. Petersen" Date: Sat, 14 Apr 2012 23:01:28 -0400 Subject: [PATCH] --- yaml --- r: 299239 b: refs/heads/master c: 919f797a4c9c22ff5ec059744dba364dc600ece2 h: refs/heads/master i: 299237: bf4d2e46b3c3100441e71470d1a38ca994805957 299235: 33a1e784af76a61ca1e44accd8c86e8d6d5a7f23 299231: e2a6d69978eb07e440b4da4a2694cfa321c46de3 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi_error.c | 2 +- trunk/include/scsi/scsi_cmnd.h | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 74863833b6d5..04dd241293a3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bfecc60d8f6715ec6b38aa29c4f5a3570415dae0 +refs/heads/master: 919f797a4c9c22ff5ec059744dba364dc600ece2 diff --git a/trunk/drivers/scsi/scsi_error.c b/trunk/drivers/scsi/scsi_error.c index 2cfcbffa41fd..386f0c53bea7 100644 --- a/trunk/drivers/scsi/scsi_error.c +++ b/trunk/drivers/scsi/scsi_error.c @@ -835,7 +835,7 @@ static int scsi_send_eh_cmnd(struct scsi_cmnd *scmd, unsigned char *cmnd, scsi_eh_restore_cmnd(scmd, &ses); - if (sdrv->eh_action) + if (sdrv && sdrv->eh_action) rtn = sdrv->eh_action(scmd, cmnd, cmnd_size, rtn); return rtn; diff --git a/trunk/include/scsi/scsi_cmnd.h b/trunk/include/scsi/scsi_cmnd.h index 377df4a28512..1e1198546c72 100644 --- a/trunk/include/scsi/scsi_cmnd.h +++ b/trunk/include/scsi/scsi_cmnd.h @@ -134,6 +134,9 @@ struct scsi_cmnd { static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd) { + if (!cmd->request->rq_disk) + return NULL; + return *(struct scsi_driver **)cmd->request->rq_disk->private_data; }