Message ID | 20240725222353.2993687-2-kuba@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | daefd348a5938d2256d304b57a9e787a83bb58d9 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | ethtool: more RSS fixes | expand |
On Fri, Jul 26, 2024 at 3:54 AM Jakub Kicinski <kuba@kernel.org> wrote: > > In commit under Fixes I split the bnxt_set_rxfh_context() function, > and attached the appropriate chunks to new ops. I missed that > bnxt_set_rxfh_context() gets called after some initial checks > in bnxt_set_rxfh(), namely that the hash function is Toeplitz. > > Fixes: 5c466b4d4e75 ("eth: bnxt: move from .set_rxfh to .create_rxfh_context and friends") > Signed-off-by: Jakub Kicinski <kuba@kernel.org> > --- > drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c > index d00ef0063820..0425a54eca98 100644 > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c > @@ -1863,8 +1863,14 @@ static void bnxt_modify_rss(struct bnxt *bp, struct ethtool_rxfh_context *ctx, > } > > static int bnxt_rxfh_context_check(struct bnxt *bp, > + const struct ethtool_rxfh_param *rxfh, > struct netlink_ext_ack *extack) > { > + if (rxfh->hfunc && rxfh->hfunc != ETH_RSS_HASH_TOP) { > + NL_SET_ERR_MSG_MOD(extack, "RSS hash function not supported"); > + return -EOPNOTSUPP; > + } > + > if (!BNXT_SUPPORTS_MULTI_RSS_CTX(bp)) { > NL_SET_ERR_MSG_MOD(extack, "RSS contexts not supported"); > return -EOPNOTSUPP; > @@ -1888,7 +1894,7 @@ static int bnxt_create_rxfh_context(struct net_device *dev, > struct bnxt_vnic_info *vnic; > int rc; > > - rc = bnxt_rxfh_context_check(bp, extack); > + rc = bnxt_rxfh_context_check(bp, rxfh, extack); > if (rc) > return rc; > > @@ -1953,7 +1959,7 @@ static int bnxt_modify_rxfh_context(struct net_device *dev, > struct bnxt_rss_ctx *rss_ctx; > int rc; > > - rc = bnxt_rxfh_context_check(bp, extack); > + rc = bnxt_rxfh_context_check(bp, rxfh, extack); > if (rc) > return rc; > > -- > 2.45.2 > Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com> Thank you.
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index d00ef0063820..0425a54eca98 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -1863,8 +1863,14 @@ static void bnxt_modify_rss(struct bnxt *bp, struct ethtool_rxfh_context *ctx, } static int bnxt_rxfh_context_check(struct bnxt *bp, + const struct ethtool_rxfh_param *rxfh, struct netlink_ext_ack *extack) { + if (rxfh->hfunc && rxfh->hfunc != ETH_RSS_HASH_TOP) { + NL_SET_ERR_MSG_MOD(extack, "RSS hash function not supported"); + return -EOPNOTSUPP; + } + if (!BNXT_SUPPORTS_MULTI_RSS_CTX(bp)) { NL_SET_ERR_MSG_MOD(extack, "RSS contexts not supported"); return -EOPNOTSUPP; @@ -1888,7 +1894,7 @@ static int bnxt_create_rxfh_context(struct net_device *dev, struct bnxt_vnic_info *vnic; int rc; - rc = bnxt_rxfh_context_check(bp, extack); + rc = bnxt_rxfh_context_check(bp, rxfh, extack); if (rc) return rc; @@ -1953,7 +1959,7 @@ static int bnxt_modify_rxfh_context(struct net_device *dev, struct bnxt_rss_ctx *rss_ctx; int rc; - rc = bnxt_rxfh_context_check(bp, extack); + rc = bnxt_rxfh_context_check(bp, rxfh, extack); if (rc) return rc;
In commit under Fixes I split the bnxt_set_rxfh_context() function, and attached the appropriate chunks to new ops. I missed that bnxt_set_rxfh_context() gets called after some initial checks in bnxt_set_rxfh(), namely that the hash function is Toeplitz. Fixes: 5c466b4d4e75 ("eth: bnxt: move from .set_rxfh to .create_rxfh_context and friends") Signed-off-by: Jakub Kicinski <kuba@kernel.org> --- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)