|
@@ -3252,12 +3252,12 @@ static int be_msix_enable(struct be_adapter *adapter)
|
|
|
int i, num_vec;
|
|
|
struct device *dev = &adapter->pdev->dev;
|
|
|
|
|
|
- /* If RoCE is supported, program the max number of NIC vectors that
|
|
|
- * may be configured via set-channels, along with vectors needed for
|
|
|
- * RoCe. Else, just program the number we'll use initially.
|
|
|
+ /* If RoCE is supported, program the max number of vectors that
|
|
|
+ * could be used for NIC and RoCE, else, just program the number
|
|
|
+ * we'll use initially.
|
|
|
*/
|
|
|
if (be_roce_supported(adapter))
|
|
|
- num_vec = min_t(int, 2 * be_max_eqs(adapter),
|
|
|
+ num_vec = min_t(int, be_max_func_eqs(adapter),
|
|
|
2 * num_online_cpus());
|
|
|
else
|
|
|
num_vec = adapter->cfg_num_qs;
|
|
@@ -4219,16 +4219,13 @@ static int be_get_resources(struct be_adapter *adapter)
|
|
|
struct be_resources res = {0};
|
|
|
int status;
|
|
|
|
|
|
- if (BEx_chip(adapter)) {
|
|
|
- BEx_get_resources(adapter, &res);
|
|
|
- adapter->res = res;
|
|
|
- }
|
|
|
-
|
|
|
/* For Lancer, SH etc read per-function resource limits from FW.
|
|
|
* GET_FUNC_CONFIG returns per function guaranteed limits.
|
|
|
* GET_PROFILE_CONFIG returns PCI-E related limits PF-pool limits
|
|
|
*/
|
|
|
- if (!BEx_chip(adapter)) {
|
|
|
+ if (BEx_chip(adapter)) {
|
|
|
+ BEx_get_resources(adapter, &res);
|
|
|
+ } else {
|
|
|
status = be_cmd_get_func_config(adapter, &res);
|
|
|
if (status)
|
|
|
return status;
|
|
@@ -4237,13 +4234,13 @@ static int be_get_resources(struct be_adapter *adapter)
|
|
|
if (res.max_rss_qs && res.max_rss_qs == res.max_rx_qs &&
|
|
|
!(res.if_cap_flags & BE_IF_FLAGS_DEFQ_RSS))
|
|
|
res.max_rss_qs -= 1;
|
|
|
-
|
|
|
- /* If RoCE may be enabled stash away half the EQs for RoCE */
|
|
|
- if (be_roce_supported(adapter))
|
|
|
- res.max_evt_qs /= 2;
|
|
|
- adapter->res = res;
|
|
|
}
|
|
|
|
|
|
+ /* If RoCE is supported stash away half the EQs for RoCE */
|
|
|
+ res.max_nic_evt_qs = be_roce_supported(adapter) ?
|
|
|
+ res.max_evt_qs / 2 : res.max_evt_qs;
|
|
|
+ adapter->res = res;
|
|
|
+
|
|
|
/* If FW supports RSS default queue, then skip creating non-RSS
|
|
|
* queue for non-IP traffic.
|
|
|
*/
|
|
@@ -4252,7 +4249,7 @@ static int be_get_resources(struct be_adapter *adapter)
|
|
|
|
|
|
dev_info(dev, "Max: txqs %d, rxqs %d, rss %d, eqs %d, vfs %d\n",
|
|
|
be_max_txqs(adapter), be_max_rxqs(adapter),
|
|
|
- be_max_rss(adapter), be_max_eqs(adapter),
|
|
|
+ be_max_rss(adapter), be_max_nic_eqs(adapter),
|
|
|
be_max_vfs(adapter));
|
|
|
dev_info(dev, "Max: uc-macs %d, mc-macs %d, vlans %d\n",
|
|
|
be_max_uc(adapter), be_max_mc(adapter),
|