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.zh...@intel.com>
---
 drivers/net/fm10k/base/fm10k_pf.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/fm10k/base/fm10k_pf.c 
b/drivers/net/fm10k/base/fm10k_pf.c
index 105babf..9730119 100644
--- a/drivers/net/fm10k/base/fm10k_pf.c
+++ b/drivers/net/fm10k/base/fm10k_pf.c
@@ -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;
 
-- 
2.9.3

Reply via email to