diff options
author | Michal Kalderon <michals@broadcom.com> | 2014-01-05 11:33:52 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-05 20:22:24 -0500 |
commit | 5b622918cd6f4ff5b5200ea6b2e48ae2fa6ad09e (patch) | |
tree | a9146d385342f61ca383c7db75c5f58648c04850 /drivers/net | |
parent | 89e18ae6e6288deb1940cd16afe4e6983545defa (diff) |
bnx2x: Clean before update RSS arrives
When a PF receives a VF message indicating a change in RSS properties
it should clean the flags' bit-fields; Otherwise, it's possible that
some random values will be considered as flags by the lower layers configuring
the RSS in FW.
Signed-off-by: Michal Kalderon <michals@broadcom.com>
Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c index 32c92abf5094..95feada2549a 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | |||
@@ -4382,8 +4382,11 @@ int bnx2x_config_rss(struct bnx2x *bp, | |||
4382 | struct bnx2x_raw_obj *r = &o->raw; | 4382 | struct bnx2x_raw_obj *r = &o->raw; |
4383 | 4383 | ||
4384 | /* Do nothing if only driver cleanup was requested */ | 4384 | /* Do nothing if only driver cleanup was requested */ |
4385 | if (test_bit(RAMROD_DRV_CLR_ONLY, &p->ramrod_flags)) | 4385 | if (test_bit(RAMROD_DRV_CLR_ONLY, &p->ramrod_flags)) { |
4386 | DP(BNX2X_MSG_SP, "Not configuring RSS ramrod_flags=%lx\n", | ||
4387 | p->ramrod_flags); | ||
4386 | return 0; | 4388 | return 0; |
4389 | } | ||
4387 | 4390 | ||
4388 | r->set_pending(r); | 4391 | r->set_pending(r); |
4389 | 4392 | ||
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c index 3dc2537fe91b..26fcba2dd94d 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c | |||
@@ -1805,6 +1805,9 @@ static void bnx2x_vf_mbx_update_rss(struct bnx2x *bp, struct bnx2x_virtf *vf, | |||
1805 | vf_op_params->rss_result_mask = rss_tlv->rss_result_mask; | 1805 | vf_op_params->rss_result_mask = rss_tlv->rss_result_mask; |
1806 | 1806 | ||
1807 | /* flags handled individually for backward/forward compatability */ | 1807 | /* flags handled individually for backward/forward compatability */ |
1808 | vf_op_params->rss_flags = 0; | ||
1809 | vf_op_params->ramrod_flags = 0; | ||
1810 | |||
1808 | if (rss_tlv->rss_flags & VFPF_RSS_MODE_DISABLED) | 1811 | if (rss_tlv->rss_flags & VFPF_RSS_MODE_DISABLED) |
1809 | __set_bit(BNX2X_RSS_MODE_DISABLED, &vf_op_params->rss_flags); | 1812 | __set_bit(BNX2X_RSS_MODE_DISABLED, &vf_op_params->rss_flags); |
1810 | if (rss_tlv->rss_flags & VFPF_RSS_MODE_REGULAR) | 1813 | if (rss_tlv->rss_flags & VFPF_RSS_MODE_REGULAR) |