diff options
| -rw-r--r-- | drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index 0add4870ce2e..29c0947f6d70 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c | |||
| @@ -2850,6 +2850,11 @@ static void nfp_net_set_rx_mode(struct net_device *netdev) | |||
| 2850 | 2850 | ||
| 2851 | new_ctrl = nn->dp.ctrl; | 2851 | new_ctrl = nn->dp.ctrl; |
| 2852 | 2852 | ||
| 2853 | if (!netdev_mc_empty(netdev) || netdev->flags & IFF_ALLMULTI) | ||
| 2854 | new_ctrl |= nn->cap & NFP_NET_CFG_CTRL_L2MC; | ||
| 2855 | else | ||
| 2856 | new_ctrl &= ~NFP_NET_CFG_CTRL_L2MC; | ||
| 2857 | |||
| 2853 | if (netdev->flags & IFF_PROMISC) { | 2858 | if (netdev->flags & IFF_PROMISC) { |
| 2854 | if (nn->cap & NFP_NET_CFG_CTRL_PROMISC) | 2859 | if (nn->cap & NFP_NET_CFG_CTRL_PROMISC) |
| 2855 | new_ctrl |= NFP_NET_CFG_CTRL_PROMISC; | 2860 | new_ctrl |= NFP_NET_CFG_CTRL_PROMISC; |
| @@ -3787,8 +3792,6 @@ int nfp_net_init(struct nfp_net *nn) | |||
| 3787 | /* Allow L2 Broadcast and Multicast through by default, if supported */ | 3792 | /* Allow L2 Broadcast and Multicast through by default, if supported */ |
| 3788 | if (nn->cap & NFP_NET_CFG_CTRL_L2BC) | 3793 | if (nn->cap & NFP_NET_CFG_CTRL_L2BC) |
| 3789 | nn->dp.ctrl |= NFP_NET_CFG_CTRL_L2BC; | 3794 | nn->dp.ctrl |= NFP_NET_CFG_CTRL_L2BC; |
| 3790 | if (nn->cap & NFP_NET_CFG_CTRL_L2MC) | ||
| 3791 | nn->dp.ctrl |= NFP_NET_CFG_CTRL_L2MC; | ||
| 3792 | 3795 | ||
| 3793 | /* Allow IRQ moderation, if supported */ | 3796 | /* Allow IRQ moderation, if supported */ |
| 3794 | if (nn->cap & NFP_NET_CFG_CTRL_IRQMOD) { | 3797 | if (nn->cap & NFP_NET_CFG_CTRL_IRQMOD) { |
