Received: by 10.223.185.116 with SMTP id b49csp684657wrg; Wed, 21 Feb 2018 05:22:01 -0800 (PST) X-Google-Smtp-Source: AH8x224gaLoJxnRsIAZH2cOr+FQKNhLU3P2KleewaQrRsEgxv6REJKr+hhHk+6oV4jQ8j+GR0VI7 X-Received: by 10.101.97.139 with SMTP id c11mr2702294pgv.435.1519219320997; Wed, 21 Feb 2018 05:22:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519219320; cv=none; d=google.com; s=arc-20160816; b=S+kjGBL6Wh1UbZzVXDx3lcjjIfMXZSFXvJThdpp1vrEdzcjQBGJ9t+HYB6UJLCL6Vc KSTCuGiftZKHhLBlrvA8MMLtDHs+avbaiYx5o3UJT2veXH6hVMxrK3eVXbZVChrA/CzL JeTEtiAoLkKdj7W2EBK5SYnLLY71AtgBrqqCDDiWJaCMnWSwQI4fZ0djN6ZJ79LLupB2 rClhQWFHA0DMcAI0mPJJPHK0Tr58dB58qMcZfP6u4OVKN7EC/s9HSpzN1Gy/dkk7UE7n wfxbVrankQFh39RiTtSU8CCtJfauP/NrRfXnZ93q4/dddRUaEhQpDkKFdwNj0QpxgfS/ WnOA== 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=/nEdrZhxQHP/hsLVY6/w0VwV7Mc0KJvjKn1oF6Z/CTQ=; b=PhpULscSN9OHcWzzgV4Vv99chwWEglkCCFEwy0IAasImMNhvGXsi4+ovnxSJCwd7Cd eKtVDxu1OqlLe7157jvRyNOEXyZ1Vq4Verf+zSHb3BzUJIAPVK2fHWrtCWDqitTTv8vX FhXYB4JjfXAvDN1ZpbNS2PeTDuOp8ftFJb4d4Ch/0SGeai9rQvur7bdldsyit4WY8UXt ftug3/xYwQowul3CfDhHxHAndADkaofgsS2IPyy/K7vEDXZMNe4Dw22lLOgAnGAlTnff pW2OkV10kr1GQ7Qi87Ony6H3sPkJrwBhQ5dm6rRUi6DHR4H8LNVuf8qwx+Z4KlsevSSp WZrA== 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 n3si3529951pgc.12.2018.02.21.05.21.46; Wed, 21 Feb 2018 05:22:00 -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 S934004AbeBUMqt (ORCPT + 99 others); Wed, 21 Feb 2018 07:46:49 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:60166 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933990AbeBUMqr (ORCPT ); Wed, 21 Feb 2018 07:46:47 -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 D290CE46; Wed, 21 Feb 2018 12:46:46 +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.4 27/33] mvpp2: fix multicast address filter Date: Wed, 21 Feb 2018 13:45:10 +0100 Message-Id: <20180221124411.008193057@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180221124409.564661689@linuxfoundation.org> References: <20180221124409.564661689@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.4-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 @@ -5666,6 +5666,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); @@ -5673,9 +5674,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; + } + } } }