mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-18 02:24:21 +08:00
bnxt_en: Refactor logic to re-enable SRIOV after firmware reset detected.
Put the current logic in bnxt_open() to re-enable SRIOV after detecting firmware reset into a new function bnxt_reenable_sriov(). This call needs to be invoked in the firmware reset path also in the next patch. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
14b41a2959
commit
c16d4ee0e3
@ -9241,6 +9241,17 @@ void bnxt_half_close_nic(struct bnxt *bp)
|
||||
bnxt_free_mem(bp, false);
|
||||
}
|
||||
|
||||
static void bnxt_reenable_sriov(struct bnxt *bp)
|
||||
{
|
||||
if (BNXT_PF(bp)) {
|
||||
struct bnxt_pf_info *pf = &bp->pf;
|
||||
int n = pf->active_vfs;
|
||||
|
||||
if (n)
|
||||
bnxt_cfg_hw_sriov(bp, &n, true);
|
||||
}
|
||||
}
|
||||
|
||||
static int bnxt_open(struct net_device *dev)
|
||||
{
|
||||
struct bnxt *bp = netdev_priv(dev);
|
||||
@ -9259,13 +9270,7 @@ static int bnxt_open(struct net_device *dev)
|
||||
bnxt_hwrm_if_change(bp, false);
|
||||
} else {
|
||||
if (test_and_clear_bit(BNXT_STATE_FW_RESET_DET, &bp->state)) {
|
||||
if (BNXT_PF(bp)) {
|
||||
struct bnxt_pf_info *pf = &bp->pf;
|
||||
int n = pf->active_vfs;
|
||||
|
||||
if (n)
|
||||
bnxt_cfg_hw_sriov(bp, &n, true);
|
||||
}
|
||||
bnxt_reenable_sriov(bp);
|
||||
if (!test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
|
||||
bnxt_ulp_start(bp, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user