Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c47bb7af authored by Martin Wilck's avatar Martin Wilck Committed by Greg Kroah-Hartman
Browse files

scsi: lpfc: fix block guard enablement on SLI3 adapters



commit dfb7513374c1f8e7cd595106fbdba3fd07ebaf30 upstream.

Since f44ac12f, BG enablement is tracked with the LPFC_SLI3_BG_ENABLED
bit, which is set in lpfc_get_cfgparam before lpfc_sli_config_sli_port() is
called. The bit shouldn't be cleared before checking the feature.  Based on
problem analysis by David Bond.

Fixes: f44ac12f "scsi: lpfc: Memory allocation error during driver start-up on power8"
Tested-by: default avatarDavid Bond <dbond@suse.com>
Signed-off-by: default avatarMartin Wilck <mwilck@suse.com>
Cc: stable@vger.kernel.org # 4.17.x
Cc: stable@vger.kernel.org # 4.18.x
Cc: stable@vger.kernel.org # 4.19.x
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Acked-by: default avatarJames Smart <jsmart2021@gmail.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2cb8d55b
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -167,7 +167,11 @@ lpfc_config_port_prep(struct lpfc_hba *phba)
		       sizeof(phba->wwpn));
	}

	phba->sli3_options = 0x0;
	/*
	 * Clear all option bits except LPFC_SLI3_BG_ENABLED,
	 * which was already set in lpfc_get_cfgparam()
	 */
	phba->sli3_options &= (uint32_t)LPFC_SLI3_BG_ENABLED;

	/* Setup and issue mailbox READ REV command */
	lpfc_read_rev(phba, pmb);
+0 −1
Original line number Diff line number Diff line
@@ -4969,7 +4969,6 @@ lpfc_sli_config_port(struct lpfc_hba *phba, int sli_mode)
		phba->sli3_options &= ~(LPFC_SLI3_NPIV_ENABLED |
					LPFC_SLI3_HBQ_ENABLED |
					LPFC_SLI3_CRP_ENABLED |
					LPFC_SLI3_BG_ENABLED |
					LPFC_SLI3_DSS_ENABLED);
		if (rc != MBX_SUCCESS) {
			lpfc_printf_log(phba, KERN_ERR, LOG_INIT,