From mboxrd@z Thu Jan 1 00:00:00 1970 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=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 D031CC432C3 for ; Sat, 30 Nov 2019 11:28:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9AEA92084E for ; Sat, 30 Nov 2019 11:28:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="zKRu7Rrh" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726924AbfK3L2R (ORCPT ); Sat, 30 Nov 2019 06:28:17 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:40528 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725955AbfK3L2R (ORCPT ); Sat, 30 Nov 2019 06:28:17 -0500 Received: by mail-pg1-f195.google.com with SMTP id e17so15749556pgd.7 for ; Sat, 30 Nov 2019 03:28:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=iai8gOE3z1MAnydfDZ/hmRICotLqvoUpCxmpbWuvdhk=; b=zKRu7RrhrkiEUyF3rwVCcli7TCk2GVVka+2HLae++qjdDgoW5ghKokWGbfEKpWKDeE IRO//NDvRDaIw17ehPbk139sjc5jOYG02HIePBbsIbdhv3CqZVl/bca9PDgqAxX4TNtm 3hw8q2Un1Bdv7oyXcuaphFIuqi4oTwHQRKMUN/Bxxi0MGj2v87zPVJdHeWQyz9RFhILw Pv/iTTnxZnIxGQyq5db6gFK9EIDxDQHgsac7IFqK6ywlL0l/PZae9vAPvHJkvG8m7dp3 j2OgR4Z1Z5lt7OCqIcq52E5I7A/8mnYiTxMB3MHxeAW6V0Kmcx+9D35zVl/5foOVG1tq J7lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=iai8gOE3z1MAnydfDZ/hmRICotLqvoUpCxmpbWuvdhk=; b=sjVci+2t/x+2H5AD9V6yL22UlOMf8sQNUqRiiAnaHK+8YRB4Ej4myLUZ7EHDIFcsEL hu9ULveevcWKXyC/XqCcaCEC28ymss8YklHogJowU/wW5KjYrwDcKXu3ba4SjUPvQwab rLJ4AJPLwlayXzvCYFmmV7PkudfnJ/fsib7OU/vaQjyCYoa8Clh0PuSnLqU8CdTtf2LR 6Z7Q1YdMysABzBRh8OBaIWBCrMXp5a1bjNrOsYTT4k18ozjBC7xkI/xyLvv66GdajGT4 DdJ10B6zymx0rMhA9VkfrSDvpQa0eL/KXAyftRSQyIO3yu+lCcPAF3tLrk0EuV7oLnXh djWg== X-Gm-Message-State: APjAAAWUW6S9G3oaK0gWhJBoWlcWPlPda+SLxMll/gWiAE0oi801k1jJ VXZFwV3n/YtKFYqGwdvMwWxbMg== X-Google-Smtp-Source: APXvYqyG+ZhxvFRKoPJOQAjOuPGebTseFZQpHs4mycCxOnX53ohMvPGcUywJyK7N+GOAVkAq+GTdAA== X-Received: by 2002:a63:1c5c:: with SMTP id c28mr21374323pgm.241.1575113295143; Sat, 30 Nov 2019 03:28:15 -0800 (PST) Received: from Iliass-MacBook-Pro.local ([50.225.178.238]) by smtp.gmail.com with ESMTPSA id 39sm18732330pjo.7.2019.11.30.03.28.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Nov 2019 03:28:14 -0800 (PST) Date: Sat, 30 Nov 2019 03:28:12 -0800 From: Ilias Apalodimas To: Grygorii Strashko Cc: netdev@vger.kernel.org, "David S . Miller" , Andrew Lunn , Sekhar Nori , Ivan Khoronzhuk , linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org Subject: Re: [PATCH v2] net: ethernet: ti: ale: ensure vlan/mdb deleted when no members Message-ID: <20191130112812.GA2779@Iliass-MacBook-Pro.local> References: <20191129175809.815-1-grygorii.strashko@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191129175809.815-1-grygorii.strashko@ti.com> User-Agent: Mutt/1.9.5 (2018-04-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Nov 29, 2019 at 07:58:09PM +0200, Grygorii Strashko wrote: > The recently updated ALE APIs cpsw_ale_del_mcast() and > cpsw_ale_del_vlan_modify() have an issue and will not delete ALE entry even > if VLAN/mcast group has no more members. Hence fix it here and delete ALE > entry if !port_mask. > > The issue affected only new cpsw switchdev driver. > > Fixes: e85c14370783 ("net: ethernet: ti: ale: modify vlan/mdb api for switchdev") > Signed-off-by: Grygorii Strashko > --- > drivers/net/ethernet/ti/cpsw_ale.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/ti/cpsw_ale.c b/drivers/net/ethernet/ti/cpsw_ale.c > index 929f3d3354e3..ecdbde539eb7 100644 > --- a/drivers/net/ethernet/ti/cpsw_ale.c > +++ b/drivers/net/ethernet/ti/cpsw_ale.c > @@ -384,7 +384,7 @@ int cpsw_ale_del_mcast(struct cpsw_ale *ale, const u8 *addr, int port_mask, > int flags, u16 vid) > { > u32 ale_entry[ALE_ENTRY_WORDS] = {0, 0, 0}; > - int mcast_members; > + int mcast_members = 0; > int idx; > > idx = cpsw_ale_match_addr(ale, addr, (flags & ALE_VLAN) ? vid : 0); > @@ -397,11 +397,13 @@ int cpsw_ale_del_mcast(struct cpsw_ale *ale, const u8 *addr, int port_mask, > mcast_members = cpsw_ale_get_port_mask(ale_entry, > ale->port_mask_bits); > mcast_members &= ~port_mask; > + } > + > + if (mcast_members) > cpsw_ale_set_port_mask(ale_entry, mcast_members, > ale->port_mask_bits); > - } else { > + else > cpsw_ale_set_entry_type(ale_entry, ALE_TYPE_FREE); > - } > > cpsw_ale_write(ale, idx, ale_entry); > return 0; > @@ -478,6 +480,10 @@ static void cpsw_ale_del_vlan_modify(struct cpsw_ale *ale, u32 *ale_entry, > members = cpsw_ale_get_vlan_member_list(ale_entry, > ale->vlan_field_bits); > members &= ~port_mask; > + if (!members) { > + cpsw_ale_set_entry_type(ale_entry, ALE_TYPE_FREE); > + return; > + } > > untag = cpsw_ale_get_vlan_untag_force(ale_entry, > ale->vlan_field_bits); > -- > 2.17.1 > Acked-by: Ilias Apalodimas