|
@@ -3823,14 +3823,6 @@ void ixgbe_set_rx_mode(struct net_device *netdev)
|
|
|
if (netdev->flags & IFF_ALLMULTI) {
|
|
|
fctrl |= IXGBE_FCTRL_MPE;
|
|
|
vmolr |= IXGBE_VMOLR_MPE;
|
|
|
- } else {
|
|
|
- /*
|
|
|
- * Write addresses to the MTA, if the attempt fails
|
|
|
- * then we should just turn on promiscuous mode so
|
|
|
- * that we can at least receive multicast traffic
|
|
|
- */
|
|
|
- hw->mac.ops.update_mc_addr_list(hw, netdev);
|
|
|
- vmolr |= IXGBE_VMOLR_ROMPE;
|
|
|
}
|
|
|
ixgbe_vlan_filter_enable(adapter);
|
|
|
hw->addr_ctrl.user_set_promisc = false;
|
|
@@ -3847,6 +3839,13 @@ void ixgbe_set_rx_mode(struct net_device *netdev)
|
|
|
vmolr |= IXGBE_VMOLR_ROPE;
|
|
|
}
|
|
|
|
|
|
+ /* Write addresses to the MTA, if the attempt fails
|
|
|
+ * then we should just turn on promiscuous mode so
|
|
|
+ * that we can at least receive multicast traffic
|
|
|
+ */
|
|
|
+ hw->mac.ops.update_mc_addr_list(hw, netdev);
|
|
|
+ vmolr |= IXGBE_VMOLR_ROMPE;
|
|
|
+
|
|
|
if (adapter->num_vfs)
|
|
|
ixgbe_restore_vf_multicasts(adapter);
|
|
|
|