Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753690AbdHORi0 (ORCPT ); Tue, 15 Aug 2017 13:38:26 -0400 Received: from mail-pg0-f66.google.com ([74.125.83.66]:33835 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752849AbdHORiY (ORCPT ); Tue, 15 Aug 2017 13:38:24 -0400 Subject: Re: [PATCH net-next 08/11] net: dsa: restore mdb dump To: Vivien Didelot , netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel@savoirfairelinux.com, "David S. Miller" , Andrew Lunn , Egil Hjelmeland , John Crispin , Woojung Huh , Sean Wang , Volodymyr Bendiuga , Nikita Yushchenko , Maxime Hadjinlian , Chris Healy , Maxim Uvarov , Stefan Eichenberger , Jason Cobham , Juergen Borleis , Tobias Waldekranz References: <20170814222242.10643-1-vivien.didelot@savoirfairelinux.com> <20170814222242.10643-9-vivien.didelot@savoirfairelinux.com> From: Florian Fainelli Message-ID: Date: Tue, 15 Aug 2017 10:38:22 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170814222242.10643-9-vivien.didelot@savoirfairelinux.com> Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1648 Lines: 48 On 08/14/2017 03:22 PM, Vivien Didelot wrote: > The same dsa_fdb_dump_cb_t callback is used since there is no > distinction to do between FDB and MDB entries at this layer. > > Implement mv88e6xxx_port_mdb_dump so that multicast addresses associated > to a switch port can be dumped. > > Signed-off-by: Vivien Didelot > --- > drivers/net/dsa/mv88e6xxx/chip.c | 33 +++++++++++++++++++++++++-------- > include/net/dsa.h | 3 +++ > 2 files changed, 28 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c > index 918d8f0fe091..2ad32734b6f6 100644 > --- a/drivers/net/dsa/mv88e6xxx/chip.c > +++ b/drivers/net/dsa/mv88e6xxx/chip.c > @@ -1380,7 +1380,7 @@ static int mv88e6xxx_port_fdb_del(struct dsa_switch *ds, int port, > } > > static int mv88e6xxx_port_db_dump_fid(struct mv88e6xxx_chip *chip, > - u16 fid, u16 vid, int port, > + u16 fid, u16 vid, int port, bool mc, > dsa_fdb_dump_cb_t *cb, void *data) > { > struct mv88e6xxx_atu_entry addr; > @@ -1401,11 +1401,14 @@ static int mv88e6xxx_port_db_dump_fid(struct mv88e6xxx_chip *chip, > if (addr.trunk || (addr.portvec & BIT(port)) == 0) > continue; > > - if (!is_unicast_ether_addr(addr.mac)) > + if ((is_unicast_ether_addr(addr.mac) && mc) || Should not this remain: if (!is_unicast_ether_addr(addr.mac) && mc) || (is_multicast_ether_addr(addr.mac) && !mc) here, being: - if this is an *not* an unicast address and MC dump is requested or - if this is a multicast address and MC dump is not requested -- Florian