From 6ae9cc7375f15c0c6b6b24b1f39824c5631ca056 Mon Sep 17 00:00:00 2001 From: Himanshu Madhani Date: Fri, 8 Nov 2019 20:28:02 -0500 Subject: [PATCH 125/155] [scsi] scsi: qla2xxx: Initialized mailbox to prevent driver load failure Message-id: <20191108202802.16449-1-hmadhani@redhat.com> Patchwork-id: 284635 O-Subject: [RHEL 7.8 e-store PATCH] scsi: qla2xxx: Initialized mailbox to prevent driver load failure Bugzilla: 1770307 RH-Acked-by: Ewan Milne RH-Acked-by: Tomas Henzl RH-Acked-by: Jarod Wilson From: Himanshu Madhani Bugzilla: 1770307 Brewbuild: ========== https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=24573208 Testing: ======== Verified by Marvell test team This patch fixes issue with Gen7 adapter in a blade environment where one of the ports will not be detected by driver. Firmware expects mailbox 11 to be set or cleared by driver for newer ISP. Following message is seen in the log file: [ 18.810892] qla2xxx [0000:d8:00.0]-1820:1: **** Failed=102 mb[0]=4005 mb[1]=37 mb[2]=20 mb[3]=8 [ 18.819596] cmd=2 **** [mkp: typos] Link: https://lore.kernel.org/r/20191022193643.7076-2-hmadhani@marvell.com Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen (cherry picked from commit c2ff2a36eff60efb5e123c940115216d6bf65684) Signed-off-by: Himanshu Madhani Signed-off-by: Jan Stancek --- drivers/scsi/qla2xxx/qla_mbx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 11a4c4bd62fc..e082535ed733 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -698,6 +698,7 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) mcp->mb[2] = LSW(risc_addr); mcp->mb[3] = 0; mcp->mb[4] = 0; + mcp->mb[11] = 0; ha->flags.using_lr_setting = 0; if (IS_QLA25XX(ha) || IS_QLA81XX(ha) || IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) { @@ -742,7 +743,7 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) if (ha->flags.exchoffld_enabled) mcp->mb[4] |= ENABLE_EXCHANGE_OFFLD; - mcp->out_mb |= MBX_4|MBX_3|MBX_2|MBX_1; + mcp->out_mb |= MBX_4 | MBX_3 | MBX_2 | MBX_1 | MBX_11; mcp->in_mb |= MBX_3 | MBX_2 | MBX_1; } else { mcp->mb[1] = LSW(risc_addr); -- 2.13.6