diff options
author | Arun Easi <arun.easi@qlogic.com> | 2014-09-25 14:14:52 +0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-09-25 16:25:07 +0400 |
commit | b6a029e1b0aba337ee54de66b1e428dd3bb624ca (patch) | |
tree | edaa9031fe199f7af294f7d9bcf52628bc43b8c3 /drivers/scsi/qla2xxx/qla_iocb.c | |
parent | c0cb44967b4a934252091557c8e46345f7ef7259 (diff) | |
download | linux-b6a029e1b0aba337ee54de66b1e428dd3bb624ca.tar.xz |
qla2xxx: Handle chip reset in target mode.
A chip reset can occur after driver submits command to the stack. Abort
command processing if a chip reset has occurred or in progress when you
get a follow up for a command.
Signed-off-by: Arun Easi <arun.easi@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_iocb.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_iocb.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_iocb.c b/drivers/scsi/qla2xxx/qla_iocb.c index c787847b3a46..f0edb07f3198 100644 --- a/drivers/scsi/qla2xxx/qla_iocb.c +++ b/drivers/scsi/qla2xxx/qla_iocb.c @@ -1858,6 +1858,17 @@ static void qla25xx_set_que(srb_t *sp, struct rsp_que **rsp) } /* Generic Control-SRB manipulation functions. */ + +/* hardware_lock assumed to be held. */ +void * +qla2x00_alloc_iocbs_ready(scsi_qla_host_t *vha, srb_t *sp) +{ + if (qla2x00_reset_active(vha)) + return NULL; + + return qla2x00_alloc_iocbs(vha, sp); +} + void * qla2x00_alloc_iocbs(scsi_qla_host_t *vha, srb_t *sp) { |