From: Himanshu Madhani <himanshu.madh...@cavium.com> commit a9e170e28636 ("scsi: qla2xxx: Fix uninitialized work element") moved initialziation of work element earlier in the probe to fix call stack. However, it still leaves a window where interrupt can be generated before work element is initialized. Fix that window by Initializing work element before we are requesting IRQs.
Fixes: a9e170e28636 ("scsi: qla2xxx: Fix uninitialized work element") Cc: <sta...@vger.kernel.org> # 4.13 Signed-off-by: Himanshu Madhani <himanshu.madh...@cavium.com> Signed-off-by: Quinn Tran <quinn.t...@cavium.com> --- Hi Martin, Please apply this patch to 4.14.0-rc6. This patch fixes a small window where user will see call stack with qla2xxx driver. Thanks, Himanshu drivers/scsi/qla2xxx/qla_os.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 937209805baf..3bd956d3bc5d 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -3061,6 +3061,8 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) host->max_cmd_len, host->max_channel, host->max_lun, host->transportt, sht->vendor_id); + INIT_WORK(&base_vha->iocb_work, qla2x00_iocb_work_fn); + /* Set up the irqs */ ret = qla2x00_request_irqs(ha, rsp); if (ret) @@ -3175,8 +3177,6 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) host->can_queue, base_vha->req, base_vha->mgmt_svr_loop_id, host->sg_tablesize); - INIT_WORK(&base_vha->iocb_work, qla2x00_iocb_work_fn); - if (ha->mqenable) { bool mq = false; bool startit = false; -- 2.12.0