| From 9d4d3dae549a8a529640e695afe2037ab67517b1 Mon Sep 17 00:00:00 2001 |
| From: Jonathan McDowell <noodles@earth.li> |
| Date: Wed, 12 Aug 2020 20:37:23 +0100 |
| Subject: [PATCH] net: ethernet: stmmac: Disable hardware multicast filter |
| |
| commit df43dd526e6609769ae513a81443c7aa727c8ca3 upstream. |
| |
| The IPQ806x does not appear to have a functional multicast ethernet |
| address filter. This was observed as a failure to correctly receive IPv6 |
| packets on a LAN to the all stations address. Checking the vendor driver |
| shows that it does not attempt to enable the multicast filter and |
| instead falls back to receiving all multicast packets, internally |
| setting ALLMULTI. |
| |
| Use the new fallback support in the dwmac1000 driver to correctly |
| achieve the same with the mainline IPQ806x driver. Confirmed to fix IPv6 |
| functionality on an RB3011 router. |
| |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Jonathan McDowell <noodles@earth.li> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c |
| index bc0e2fe71682..db3264d374f9 100644 |
| --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c |
| +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c |
| @@ -350,6 +350,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev) |
| plat_dat->has_gmac = true; |
| plat_dat->bsp_priv = gmac; |
| plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed; |
| + plat_dat->multicast_filter_bins = 0; |
| |
| err = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); |
| if (err) |
| -- |
| 2.27.0 |
| |