From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: Grygorii Strashko <grygorii.strashko@ti.com>,
netdev@vger.kernel.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:53:41 +0300 [thread overview]
Message-ID: <20190426105341.GA22373@apalos> (raw)
In-Reply-To: <20190426104156.GA2796@khorivan>
Hi Ivan,
> >}
> >
> >+static int cpsw_ale_read_mc(struct cpsw_ale *ale, u8 *addr, int flags, u16 vid)
> See below.
>
Yes
> >+{
> >+ 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()
>
Yes this is correct. The reason the duplication exists is that this was
originally coded on top of the current cpsw code. So i didn't want to change any
part of the working driver.
Since we are re-working a bunch of stuff now this makes sense
> >+
> >+ return ret;
> >+}
> >+
> >+int cpsw_ale_mcast_del_modify(struct cpsw_ale *ale, u8 *addr, int port_mask,
> >+ int flags, u16 vid)
> See above.
and yes :)
>
> >+{
> >+ 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,
/Ilias
next prev parent reply other threads:[~2019-04-26 10:53 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
2019-04-26 10:53 ` Ilias Apalodimas [this message]
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=20190426105341.GA22373@apalos \
--to=ilias.apalodimas@linaro.org \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=grygorii.strashko@ti.com \
--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.