From: Pavan Chebbi Currently the ntuple filters installed for an RSS context use the ntuple filter's base member 'fw_vnic_id' to save the RSS context id. This is making the fw_vnic_id overloaded when it is being used with RSS context. This is very confusing. Make explicit provision to save rss_ctx_id in the ntuple filter so that we can avoid overloading fw_vnic_id. Also remove unnecessary initialization of the id to 0. This cleanup is necessary for the next patch that will remove the fw_vnic_id field. Reviewed-by: Andy Gospodarek Signed-off-by: Pavan Chebbi Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 ++-- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 5 ++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 64832289e18d..6fae0490bc1c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -6259,7 +6259,7 @@ bnxt_cfg_rfs_ring_tbl_idx(struct bnxt *bp, struct bnxt_vnic_info *vnic; ctx = xa_load(&bp->dev->ethtool->rss_ctx, - fltr->base.fw_vnic_id); + fltr->base.rss_ctx_id); if (ctx) { rss_ctx = ethtool_rxfh_context_priv(ctx); vnic = &rss_ctx->vnic; @@ -10837,7 +10837,7 @@ void bnxt_del_one_rss_ctx(struct bnxt *bp, struct bnxt_rss_ctx *rss_ctx, list_for_each_entry_safe(usr_fltr, tmp, &bp->usr_fltr_list, list) { if ((usr_fltr->flags & BNXT_ACT_RSS_CTX) && - usr_fltr->fw_vnic_id == rss_ctx->index) { + usr_fltr->rss_ctx_id == rss_ctx->index) { ntp_fltr = container_of(usr_fltr, struct bnxt_ntuple_filter, base); diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index f88e7769a838..e2d52841fa86 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1425,6 +1425,7 @@ struct bnxt_filter_base { u16 sw_id; u16 rxq; u16 fw_vnic_id; + u16 rss_ctx_id; u16 vf_idx; unsigned long state; #define BNXT_FLTR_VALID 0 diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index 068e191ede19..8fd0e06ef2a7 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -1219,7 +1219,7 @@ static int bnxt_grxclsrule(struct bnxt *bp, struct ethtool_rxnfc *cmd) fs->ring_cookie = RX_CLS_FLOW_DISC; } else if (fltr->base.flags & BNXT_ACT_RSS_CTX) { fs->flow_type |= FLOW_RSS; - cmd->rss_context = fltr->base.fw_vnic_id; + cmd->rss_context = fltr->base.rss_ctx_id; } else { fs->ring_cookie = fltr->base.rxq; } @@ -1468,11 +1468,10 @@ static int bnxt_add_ntuple_cls_rule(struct bnxt *bp, if (fs->flow_type & FLOW_RSS) { struct bnxt_rss_ctx *rss_ctx; - new_fltr->base.fw_vnic_id = 0; new_fltr->base.flags |= BNXT_ACT_RSS_CTX; rss_ctx = bnxt_get_rss_ctx_from_index(bp, cmd->rss_context); if (rss_ctx) { - new_fltr->base.fw_vnic_id = rss_ctx->index; + new_fltr->base.rss_ctx_id = rss_ctx->index; } else { rc = -EINVAL; goto ntuple_err; -- 2.51.0