Commit 5311598f authored by Saravanan Vajravel's avatar Saravanan Vajravel Committed by Paolo Abeni
Browse files

bnxt_en: Reserve rings after PCIe AER recovery if NIC interface is down



After successful PCIe AER recovery, FW will reset all resource
reservations.  If it is IF_UP, the driver will call bnxt_open() and
all resources will be reserved again.  It it is IF_DOWN, we should
call bnxt_reserve_rings() so that we can reserve resources including
RoCE resources to allow RoCE to resume after AER.  Without this
patch, RoCE fails to resume in this IF_DOWN scenario.

Later, if it becomes IF_UP, bnxt_open() will see that resources have
been reserved and will not reserve again.

Fixes: fb1e6e56 ("bnxt_en: Fix AER recovery.")
Reviewed-by: default avatarSomnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: default avatarKashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: default avatarSaravanan Vajravel <saravanan.vajravel@broadcom.com>
Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 9cfb5e7f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -16478,8 +16478,12 @@ static void bnxt_io_resume(struct pci_dev *pdev)
	rtnl_lock();

	err = bnxt_hwrm_func_qcaps(bp);
	if (!err && netif_running(netdev))
	if (!err) {
		if (netif_running(netdev))
			err = bnxt_open(netdev);
		else
			err = bnxt_reserve_rings(bp, true);
	}

	if (!err)
		netif_device_attach(netdev);