ixgbe: Do not clear RAR entry when clearing VMDq for SAN MAC
authorAlexander Duyck <alexander.h.duyck@intel.com>
Sat, 20 Aug 2016 03:58:26 +0000 (20:58 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 20 Aug 2016 05:25:24 +0000 (22:25 -0700)
The RAR entry for the SAN MAC address was being cleared when we were
clearing the VMDq pool bits.  In order to prevent this we need to add
an extra check to protect the SAN MAC from being cleared.

Fixes: 6e982aeae ("ixgbe: Clear stale pool mappings")
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c

index b4217f30e89c7bbbc0e3c3a2e6c2252cafa59706..c47b605e86519d1e444212b08dcb96453260524e 100644 (file)
@@ -2958,8 +2958,10 @@ s32 ixgbe_clear_vmdq_generic(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
        }
 
        /* was that the last pool using this rar? */
-       if (mpsar_lo == 0 && mpsar_hi == 0 && rar != 0)
+       if (mpsar_lo == 0 && mpsar_hi == 0 &&
+           rar != 0 && rar != hw->mac.san_mac_rar_index)
                hw->mac.ops.clear_rar(hw, rar);
+
        return 0;
 }