The mvneta driver advertises it supports IFF_UNICAST_FLT. However, it actually does not. The hardware probably does support it, but there is no code to configure the filter. As a quick and simple fix, remove the flag. This will cause the core to fall back to promiscuous mode.
Unified · Split
| @@ -4151,7 +4151,7 @@ static int mvneta_probe(struct platform_device *pdev) · 4150 unmodified lines | |||
| 4151 | dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO; | 4151 | dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO; |
| 4152 | dev->hw_features |= dev->features; | 4152 | dev->hw_features |= dev->features; |
| 4153 | dev->vlan_features |= dev->features; | 4153 | dev->vlan_features |= dev->features; |
| 4154 | dev->priv_flags |= IFF_UNICAST_FLT | IFF_LIVE_ADDR_CHANGE; | 4154 | dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; |
| 4155 | dev->gso_max_segs = MVNETA_MAX_TSO_SEGS; | 4155 | dev->gso_max_segs = MVNETA_MAX_TSO_SEGS; |
| 4156 | 4156 | ||
| 4157 | err = register_netdev(dev); | 4157 | err = register_netdev(dev); |