All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: netdev@vger.kernel.org,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Andrew Lunn <andrew@lunn.ch>,
	"David S . Miller" <davem@davemloft.net>,
	Jiri Pirko <jiri@resnulli.us>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Sekhar Nori <nsekhar@ti.com>,
	linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org,
	Murali Karicheri <m-karicheri2@ti.com>,
	Ivan Vecera <ivecera@redhat.com>
Subject: Re: [RFC PATCH v3 net-next 03/11] net: ethernet: ti: cpsw: ale: add functions to modify VLANs/MDBs
Date: Fri, 26 Apr 2019 13:41:57 +0300	[thread overview]
Message-ID: <20190426104156.GA2796@khorivan> (raw)
In-Reply-To: <1556144667-27997-4-git-send-email-grygorii.strashko@ti.com>

On Thu, Apr 25, 2019 at 01:24:19AM +0300, Grygorii Strashko wrote:
>From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>
>A following patch introduces switchdev functionality. Add functions
>to cpsw ALE engine to modify VLANs/MDBs
>
>Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
>---
> drivers/net/ethernet/ti/cpsw_ale.c | 179 ++++++++++++++++++++++++++++-
> drivers/net/ethernet/ti/cpsw_ale.h |  10 ++
> 2 files changed, 187 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/net/ethernet/ti/cpsw_ale.c b/drivers/net/ethernet/ti/cpsw_ale.c
>index d09768368dbd..add3f6e4917b 100644
>--- a/drivers/net/ethernet/ti/cpsw_ale.c
>+++ b/drivers/net/ethernet/ti/cpsw_ale.c
>@@ -400,6 +400,45 @@ int cpsw_ale_del_mcast(struct cpsw_ale *ale, const u8 *addr, int port_mask,
> 	return 0;
> }
>
>+static int cpsw_ale_read_mc(struct cpsw_ale *ale, u8 *addr, int flags, u16 vid)
See below.

>+{
>+	u32 ale_entry[ALE_ENTRY_WORDS] = {0, 0, 0};
>+	int idx;
>+
>+	idx = cpsw_ale_match_addr(ale, addr, (flags & ALE_VLAN) ? vid : 0);
>+	if (idx >= 0)
>+		cpsw_ale_read(ale, idx, ale_entry);
>+
>+	return cpsw_ale_get_port_mask(ale_entry, ale->port_mask_bits);
>+}
>+
>+int cpsw_ale_mcast_add_modify(struct cpsw_ale *ale, u8 *addr, int port_mask,
>+			      int flags, u16 vid, int mcast_state)
>+{
>+	int mcast_members, ret;
>+
>+	mcast_members = cpsw_ale_read_mc(ale, addr, flags, vid) | port_mask;
>+	ret = cpsw_ale_add_mcast(ale, addr, mcast_members, flags, vid,
>+				 mcast_state);
By fact, cpsw_ale_add_mcast() is doing modify itself already, just name is
different.

These 3 func duplicate the existent functionality as result code is done twice.
Better remove/combine them and rename existent ones, like:
cpsw_ale_add_mcast() -> cpsw_ale_add_mcast_modify()
cpsw_ale_del_mcast() -> cpsw_ale_del_mcast_modify()

>+
>+	return ret;
>+}
>+
>+int cpsw_ale_mcast_del_modify(struct cpsw_ale *ale, u8 *addr, int port_mask,
>+			      int flags, u16 vid)
See above.

>+{
>+	int mcast_members, ret;
>+	int idx;
>+
>+	mcast_members = cpsw_ale_read_mc(ale, addr, flags, vid) & ~port_mask;
>+	idx = cpsw_ale_match_addr(ale, addr, (flags & ALE_VLAN) ? vid : 0);
>+	if (idx < 0)
>+		return 0;
>+	ret = cpsw_ale_del_mcast(ale, addr, mcast_members, flags, vid);
>+
>+	return ret;
>+}
>+

[...]

-- 
Regards,
Ivan Khoronzhuk

  reply	other threads:[~2019-04-26 10:41 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24 22:24 [RFC PATCH v3 net-next 00/11] net: ethernet: ti: introduce new cpsw switchdev based driver Grygorii Strashko
2019-04-24 22:24 ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 01/11] net: ethernet: ti: cpts: use devm_get_clk_from_child Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-24 22:46   ` Andrew Lunn
2019-04-25 10:05     ` Grygorii Strashko
2019-04-25 10:05       ` Grygorii Strashko
2019-04-25 12:18       ` Andrew Lunn
2019-04-24 22:24 ` [RFC PATCH v3 net-next 02/11] net: ethernet: ti: cpsw: move set of common functions in cpsw_priv Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 03/11] net: ethernet: ti: cpsw: ale: add functions to modify VLANs/MDBs Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-26 10:41   ` Ivan Khoronzhuk [this message]
2019-04-26 10:53     ` Ilias Apalodimas
2019-04-24 22:24 ` [RFC PATCH v3 net-next 04/11] net: ethernet: ti: cpsw: allow untagged traffic on host port Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 05/11] net: ethernet: ti: cpsw: add switchdev API for cpsw driver Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 06/11] dt-bindings: net: ti: add new cpsw switch driver bindings Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-25 22:40   ` Andrew Lunn
2019-04-26  7:50     ` Grygorii Strashko
2019-04-26  7:50       ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 07/11] net: ethernet: ti: cpsw: introduce cpsw switch driver based on switchdev Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-25 23:44   ` Andrew Lunn
2019-04-24 22:24 ` [RFC PATCH v3 net-next 08/11] net: ethernet: ti: cpsw: fix build of cpsw drivers Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 09/11] phy: ti: phy-gmii-sel: dependency from ti cpsw-switchdev driver Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 10/11] Documentation: networking: add cpsw switchdev based driver documentation Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko
2019-04-24 22:24 ` [RFC PATCH v3 net-next 11/11] ARM: dts: am57xx-idk: add dt nodes for new cpsw switch dev driver Grygorii Strashko
2019-04-24 22:24   ` Grygorii Strashko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190426104156.GA2796@khorivan \
    --to=ivan.khoronzhuk@linaro.org \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=grygorii.strashko@ti.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=ivecera@redhat.com \
    --cc=jiri@resnulli.us \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=m-karicheri2@ti.com \
    --cc=netdev@vger.kernel.org \
    --cc=nsekhar@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.