aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx/ql4_mbx.c
diff options
context:
space:
mode:
authorTej Parkash <tej.parkash@qlogic.com>2013-12-16 06:49:42 -0500
committerJames Bottomley <JBottomley@Parallels.com>2014-03-15 13:19:14 -0400
commit1b3d399cf6877c8d9abd63a2aff41b709a38fbd1 (patch)
tree4d416011a579d19e5103dbcd7d465d4ecb4ea10c /drivers/scsi/qla4xxx/ql4_mbx.c
parent831805a150e936defc9b54fa069a3cdd9529eedb (diff)
[SCSI] qla4xxx: Fix processing response queue during probe
Issue: While booting with kdump kernel, driver receive IOCB interrupts for which it is not ready which results in processing them before init_firmware during driver probe Fix: Two steps solution 1. Make driver ready to process the interrupt before interupts handlers is registered. 2. Stop driver processing iocb interrupts if not generated as per firmware protocol i.e R2H bit set Signed-off-by: Tej Parkash <tej.parkash@qlogic.com> Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_mbx.c')
-rw-r--r--drivers/scsi/qla4xxx/ql4_mbx.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index 6905bad3e15c..52c0a48ab41f 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -648,9 +648,6 @@ int qla4xxx_initialize_fw_cb(struct scsi_qla_host * ha)
648 goto exit_init_fw_cb; 648 goto exit_init_fw_cb;
649 } 649 }
650 650
651 /* Initialize request and response queues. */
652 qla4xxx_init_rings(ha);
653
654 /* Fill in the request and response queue information. */ 651 /* Fill in the request and response queue information. */
655 init_fw_cb->rqq_consumer_idx = cpu_to_le16(ha->request_out); 652 init_fw_cb->rqq_consumer_idx = cpu_to_le16(ha->request_out);
656 init_fw_cb->compq_producer_idx = cpu_to_le16(ha->response_in); 653 init_fw_cb->compq_producer_idx = cpu_to_le16(ha->response_in);