aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYong Wang <wang.yong19@zte.com.cn>2017-02-21 09:33:23 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2021-09-17 21:24:44 +0000
commitecf2a89a997ad4a14339b6a2f544e44b422620a0 (patch)
treebfaaa901ad0952b85eee6179010323d9743ce84a
parentf6517a7e69c10c6057d6c990a9f3ea22a2b62398 (diff)
downloadsrc-ecf2a89a997ad4a14339b6a2f544e44b422620a0.tar.gz
src-ecf2a89a997ad4a14339b6a2f544e44b422620a0.zip
e1000: fix multicast setting in VF
In function e1000_update_mc_addr_list_vf(), "msgbuf[0]" is used prior to initialization at "msgbuf[0] |= E1000_VF_SET_MULTICAST_OVERFLOW". And "msgbuf[0]" is overwritten at "msgbuf[0] = E1000_VF_SET_MULTICAST". Fix it by moving the second line prior to the first one that mentioned above. Fixes: dffbaf7880a8 ("e1000: revert fix for multicast in VF") Cc: stable@dpdk.org Signed-off-by: Yong Wang <wang.yong19@zte.com.cn> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com> Approved by: imp Obtained from: DPDK (f58ca2f9ef6) MFC after: 1 week
-rw-r--r--sys/dev/e1000/e1000_vf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/e1000/e1000_vf.c b/sys/dev/e1000/e1000_vf.c
index 653ba322a185..4b73bb9709c1 100644
--- a/sys/dev/e1000/e1000_vf.c
+++ b/sys/dev/e1000/e1000_vf.c
@@ -419,12 +419,13 @@ void e1000_update_mc_addr_list_vf(struct e1000_hw *hw,
DEBUGOUT1("MC Addr Count = %d\n", mc_addr_count);
+ msgbuf[0] = E1000_VF_SET_MULTICAST;
+
if (mc_addr_count > 30) {
msgbuf[0] |= E1000_VF_SET_MULTICAST_OVERFLOW;
mc_addr_count = 30;
}
- msgbuf[0] = E1000_VF_SET_MULTICAST;
msgbuf[0] |= mc_addr_count << E1000_VT_MSGINFO_SHIFT;
for (i = 0; i < mc_addr_count; i++) {