net/fm10k/base: reset multicast mode when deleting lport

Deleting lport when multicast mod is configured to
FM10K_XCAST_MODE_ALLMULTI or FM10K_XCAST_MODE_PROMISC will
result in generating orphaned multicast-group entries in the
switch manager.
Before deleting the lport, reset multicast mode to
FM10K_XCAST_MODE_NONE to flush out these multicast-group
entries.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
Qi Zhang 2017-03-08 01:18:50 -05:00 committed by Ferruh Yigit
parent 43f8858078
commit 22025588e4

View File

@ -536,6 +536,10 @@ STATIC s32 fm10k_update_lport_state_pf(struct fm10k_hw *hw, u16 glort,
if (!fm10k_glort_valid_pf(hw, glort))
return FM10K_ERR_PARAM;
/* reset multicast mode if deleting lport */
if (!enable)
fm10k_update_xcast_mode_pf(hw, glort, FM10K_XCAST_MODE_NONE);
/* construct the lport message from the 2 pieces of data we have */
lport_msg = ((u32)count << 16) | glort;