Commit daefd348 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller

eth: bnxt: reject unsupported hash functions

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: 5c466b4d ("eth: bnxt: move from .set_rxfh to .create_rxfh_context and friends")
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9da49aa8
...@@ -1863,8 +1863,14 @@ static void bnxt_modify_rss(struct bnxt *bp, struct ethtool_rxfh_context *ctx, ...@@ -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, static int bnxt_rxfh_context_check(struct bnxt *bp,
const struct ethtool_rxfh_param *rxfh,
struct netlink_ext_ack *extack) 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)) { if (!BNXT_SUPPORTS_MULTI_RSS_CTX(bp)) {
NL_SET_ERR_MSG_MOD(extack, "RSS contexts not supported"); NL_SET_ERR_MSG_MOD(extack, "RSS contexts not supported");
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -1888,7 +1894,7 @@ static int bnxt_create_rxfh_context(struct net_device *dev, ...@@ -1888,7 +1894,7 @@ static int bnxt_create_rxfh_context(struct net_device *dev,
struct bnxt_vnic_info *vnic; struct bnxt_vnic_info *vnic;
int rc; int rc;
rc = bnxt_rxfh_context_check(bp, extack); rc = bnxt_rxfh_context_check(bp, rxfh, extack);
if (rc) if (rc)
return rc; return rc;
...@@ -1953,7 +1959,7 @@ static int bnxt_modify_rxfh_context(struct net_device *dev, ...@@ -1953,7 +1959,7 @@ static int bnxt_modify_rxfh_context(struct net_device *dev,
struct bnxt_rss_ctx *rss_ctx; struct bnxt_rss_ctx *rss_ctx;
int rc; int rc;
rc = bnxt_rxfh_context_check(bp, extack); rc = bnxt_rxfh_context_check(bp, rxfh, extack);
if (rc) if (rc)
return rc; return rc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment