mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
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: fb1e6e562b ("bnxt_en: Fix AER recovery.")
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
9cfb5e7f0d
commit
5311598f7f
|
|
@ -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))
|
||||
err = bnxt_open(netdev);
|
||||
if (!err) {
|
||||
if (netif_running(netdev))
|
||||
err = bnxt_open(netdev);
|
||||
else
|
||||
err = bnxt_reserve_rings(bp, true);
|
||||
}
|
||||
|
||||
if (!err)
|
||||
netif_device_attach(netdev);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user