From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161276AbcHaReC (ORCPT ); Wed, 31 Aug 2016 13:34:02 -0400 Received: from mail-lf0-f46.google.com ([209.85.215.46]:36706 "EHLO mail-lf0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161234AbcHaReA (ORCPT ); Wed, 31 Aug 2016 13:34:00 -0400 Subject: Re: [PATCH net-next 3/3] net: dsa: mv88e6xxx: add MDB support To: Vivien Didelot , Andrew Lunn References: <20160829203246.18811-1-vivien.didelot@savoirfairelinux.com> <20160829203246.18811-4-vivien.didelot@savoirfairelinux.com> <20160831135719.GC15078@lunn.ch> <874m618095.fsf@ketchup.mtl.sfl> Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@savoirfairelinux.com, "David S. Miller" , Florian Fainelli From: Sergei Shtylyov Organization: Cogent Embedded Message-ID: <74ccc395-74ca-26a9-fa3b-02880c4fdc27@cogentembedded.com> Date: Wed, 31 Aug 2016 20:33:54 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <874m618095.fsf@ketchup.mtl.sfl> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello. On 08/31/2016 05:46 PM, Vivien Didelot wrote: >>> diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c >>> index 93abfff..812cb47 100644 >>> --- a/drivers/net/dsa/mv88e6xxx/chip.c >>> +++ b/drivers/net/dsa/mv88e6xxx/chip.c >>> @@ -2240,6 +2240,15 @@ static int mv88e6xxx_port_db_dump_one(struct mv88e6xxx_chip *chip, >>> fdb->ndm_state = NUD_NOARP; >>> else >>> fdb->ndm_state = NUD_REACHABLE; >>> + } else { >> >> Rather than else, i think it would be safer to do >> >> if (obj->id == SWITCHDEV_OBJ_ID_PORT_MDB) { >>> + struct switchdev_obj_port_mdb *mdb; >>> + >>> + if (!is_multicast_ether_addr(addr.mac)) >>> + continue; >>> + >>> + mdb = SWITCHDEV_OBJ_PORT_MDB(obj); >>> + mdb->vid = vid; >>> + ether_addr_copy(mdb->addr, addr.mac); >>> } >> >> It should not happen, but the day it does, we get very confused... > > Do you mean the something like this? > > if (obj->id == SWITCHDEV_OBJ_ID_PORT_FDB) { > ... > } else if (obj->id == SWITCHDEV_OBJ_ID_PORT_MDB) { > ... > } else { > return -EOPNOTSUPP; > } > > I'm OK with that if you think it is better. Just code it as a *switch*, please. :-) [...] MBR, Sergei