A previous commit made updating of the RSS table when a receive
queue is stopped/started conditional on vnic->rx_queue_cnt being
nonzero. This count is only nonzero for dynamically created VNICs,
so the RSS table was not being updated in the normal path.
Fix by restoring the original logic.
Also ensure that vnic->rx_queue_cnt is initialized to zero when
reinitializing the VNIC array.
Fixes:
36024b2e7fe5 ("net/bnxt: allow dynamic creation of VNIC")
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
}
PMD_DRV_LOG(DEBUG, "Rx Queue Count %d\n", vnic->rx_queue_cnt);
- if (vnic->rx_queue_cnt > 1)
- rc = bnxt_vnic_rss_configure(bp, vnic);
+ rc = bnxt_vnic_rss_configure(bp, vnic);
}
if (rc == 0)
vnic->fw_grp_ids[rx_queue_id] = INVALID_HW_RING_ID;
PMD_DRV_LOG(DEBUG, "Rx Queue Count %d\n", vnic->rx_queue_cnt);
- if (vnic->rx_queue_cnt > 1)
- rc = bnxt_vnic_rss_configure(bp, vnic);
+ rc = bnxt_vnic_rss_configure(bp, vnic);
}
if (rc == 0)
vnic->lb_rule = (uint16_t)HWRM_NA_SIGNATURE;
vnic->hash_mode =
HWRM_VNIC_RSS_CFG_INPUT_HASH_MODE_FLAGS_DEFAULT;
+ vnic->rx_queue_cnt = 0;
STAILQ_INIT(&vnic->filter);
STAILQ_INIT(&vnic->flow_list);