mirror of https://gitee.com/openkylin/linux.git
bnxt_en: Reserve resources for RFS.
In bnxt_rfs_capable(), add call to reserve vnic resources to support NTUPLE. Return true if we can successfully reserve enough vnics. Otherwise, reserve the minimum 1 VNIC for normal operations not supporting NTUPLE and return false. Also, suppress warning message about not enough resources for NTUPLE when only 1 RX ring is in use. NTUPLE filters by definition require multiple RX rings. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
674f50a5b0
commit
6a1eef5b90
|
@ -7064,13 +7064,26 @@ static bool bnxt_rfs_capable(struct bnxt *bp)
|
|||
if (bp->flags & BNXT_FLAG_NEW_RSS_CAP)
|
||||
max_rss_ctxs = max_vnics;
|
||||
if (vnics > max_vnics || vnics > max_rss_ctxs) {
|
||||
netdev_warn(bp->dev,
|
||||
"Not enough resources to support NTUPLE filters, enough resources for up to %d rx rings\n",
|
||||
min(max_rss_ctxs - 1, max_vnics - 1));
|
||||
if (bp->rx_nr_rings > 1)
|
||||
netdev_warn(bp->dev,
|
||||
"Not enough resources to support NTUPLE filters, enough resources for up to %d rx rings\n",
|
||||
min(max_rss_ctxs - 1, max_vnics - 1));
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
if (!(bp->flags & BNXT_FLAG_NEW_RM))
|
||||
return true;
|
||||
|
||||
if (vnics == bp->hw_resc.resv_vnics)
|
||||
return true;
|
||||
|
||||
bnxt_hwrm_reserve_rings(bp, 0, 0, 0, 0, vnics);
|
||||
if (vnics <= bp->hw_resc.resv_vnics)
|
||||
return true;
|
||||
|
||||
netdev_warn(bp->dev, "Unable to reserve resources to support NTUPLE filters.\n");
|
||||
bnxt_hwrm_reserve_rings(bp, 0, 0, 0, 0, 1);
|
||||
return false;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue