From patchwork Thu Aug 20 09:21:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg Kroah-Hartman X-Patchwork-Id: 265785 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA630C433E1 for ; Thu, 20 Aug 2020 09:52:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A03252078D for ; Thu, 20 Aug 2020 09:52:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597917165; bh=1Z+yY8883xRpttdCFfESM34OdyzWiQYyO4wws3jJvZY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Gueh9uC+CKQJC+LwdUUASE+XYb6OsewXIoM4SiuEdMv4zh3ZZVIaqL+KGwWX2gToU Tcvv2tge30ZXjVhEqzB/sOyoAswK8Rpe4BriKAYnXv6J3A6bxs/DjpTpLLIuoZ3Ior 8gCPavY5NpFWlZbx+Y3GSfrXqp+yVpHR9R66ZSS0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729997AbgHTJwm (ORCPT ); Thu, 20 Aug 2020 05:52:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:34094 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729993AbgHTJwj (ORCPT ); Thu, 20 Aug 2020 05:52:39 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id ECCC02075E; Thu, 20 Aug 2020 09:52:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597917159; bh=1Z+yY8883xRpttdCFfESM34OdyzWiQYyO4wws3jJvZY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PwlHziDZtN0r1KXil1ZpPOOTUeSik+xn/RI8Mdje5GckWXzyG1hTtfg6YfriJjngZ zQCr4pJLtASzVOTMMj7RXRGbH+h7ZtF/IH47koaXa1zM3HpQU7efQLRKxARPMz9eC0 S6Srxu8YFyUCtniIvvXbbu+DmMepYFOnTT13HH0Y= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jonathan McDowell , "David S. Miller" Subject: [PATCH 4.19 25/92] net: ethernet: stmmac: Disable hardware multicast filter Date: Thu, 20 Aug 2020 11:21:10 +0200 Message-Id: <20200820091538.866981520@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200820091537.490965042@linuxfoundation.org> References: <20200820091537.490965042@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Jonathan McDowell 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 Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 1 + 1 file changed, 1 insertion(+) --- 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 pla 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)