Received: by 10.223.185.116 with SMTP id b49csp695245wrg; Wed, 21 Feb 2018 05:32:41 -0800 (PST) X-Google-Smtp-Source: AH8x225VrE67QXIHh7Sa+smcxtUfjOcy/oLS9KyFGquZa/BjuNuI1DT1ejT+gV2c+75QaNx4xk0a X-Received: by 10.99.164.25 with SMTP id c25mr2756521pgf.235.1519219961461; Wed, 21 Feb 2018 05:32:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519219961; cv=none; d=google.com; s=arc-20160816; b=rHpavjFZfV5rxjZJ+arVtDQWxDjKfZXpYdSt9H4AIEU+1Fg0KcJwNP35i4ER+HHU50 jA+8KY2ZR4WvzMmWPR0EgbnYqne+GwcXGjnrmxJ4JlOjJDwFj6vm/I45ZD68Kz04Hobz Vu1X7ZugYUUxgYDhdscakeS9JlIWsxyznn0KsanS9MfYhRUwUC3Ic00RNoKZ8ylh8I6G uz7leBAeVnEcJyADsxENHrJyS/OSOwRM5htxkLVt0IBjWZVpTsA3enknaz0vNGWCSLHi qEggidEmpUUYnMdKYkH8/tjjz260mUhnb8AER7wyBB7//qS0d5hNuagknZHCjJpiDE4W OvcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=cCb592ArN7coyaVbkTPlqm0Hv1+dES2XfFRfyWAOqto=; b=H7u1c1Z6MBaqkcif36anHj5ekksiYBuIKT2eQzahfab+uZ4H74y0XjHjgE+Hx1ej3f aeN3caQg71/jlvr88+bmZ2eE1h9KXVhHJCbjGhH0qRFM9jwLB9cOfhT04Ul1pStK8kJN +4rPX7Kjc60grkKIzowar+cxTSb20YWmM/9edg0LvAuwZ+V6/mc6VriwwOwuSPVApA8m soOSTzYpvJtsBookbnuSI8fY9twduGUiIHLpAGmI7Y/wnos06A7ejE1hQax8KH2mLPIg wt+GT8VHRjDFCbM/neu7auOKrFdUVDV35gwuZbeQfyXEKKQBjRO+E0E8xltLIJSiiSDB yJaA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x1si12608244pfk.3.2018.02.21.05.32.27; Wed, 21 Feb 2018 05:32:41 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936027AbeBUNFn (ORCPT + 99 others); Wed, 21 Feb 2018 08:05:43 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:40376 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933217AbeBUNFk (ORCPT ); Wed, 21 Feb 2018 08:05:40 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 4361711C6; Wed, 21 Feb 2018 13:05:39 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Mikulas Patocka , "David S. Miller" Subject: [PATCH 4.14 150/167] mvpp2: fix multicast address filter Date: Wed, 21 Feb 2018 13:49:21 +0100 Message-Id: <20180221124533.009238638@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180221124524.639039577@linuxfoundation.org> References: <20180221124524.639039577@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Mikulas Patocka commit 7ac8ff95f48cbfa609a060fd6a1e361dd62feeb3 upstream. IPv6 doesn't work on the MacchiatoBIN board. It is caused by broken multicast address filter in the mvpp2 driver. The driver loads doesn't load any multicast entries if "allmulti" is not set. This condition should be reversed. The condition !netdev_mc_empty(dev) is useless (because netdev_for_each_mc_addr is nop if the list is empty). This patch also fixes a possible overflow of the multicast list - if mvpp2_prs_mac_da_accept fails, we set the allmulti flag and retry. Signed-off-by: Mikulas Patocka Cc: stable@vger.kernel.org Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/marvell/mvpp2.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/marvell/mvpp2.c +++ b/drivers/net/ethernet/marvell/mvpp2.c @@ -6888,6 +6888,7 @@ static void mvpp2_set_rx_mode(struct net int id = port->id; bool allmulti = dev->flags & IFF_ALLMULTI; +retry: mvpp2_prs_mac_promisc_set(priv, id, dev->flags & IFF_PROMISC); mvpp2_prs_mac_multi_set(priv, id, MVPP2_PE_MAC_MC_ALL, allmulti); mvpp2_prs_mac_multi_set(priv, id, MVPP2_PE_MAC_MC_IP6, allmulti); @@ -6895,9 +6896,13 @@ static void mvpp2_set_rx_mode(struct net /* Remove all port->id's mcast enries */ mvpp2_prs_mcast_del_all(priv, id); - if (allmulti && !netdev_mc_empty(dev)) { - netdev_for_each_mc_addr(ha, dev) - mvpp2_prs_mac_da_accept(priv, id, ha->addr, true); + if (!allmulti) { + netdev_for_each_mc_addr(ha, dev) { + if (mvpp2_prs_mac_da_accept(priv, id, ha->addr, true)) { + allmulti = true; + goto retry; + } + } } }