From: Florian Fainelli <f.fainelli@gmail.com> To: netdev@vger.kernel.org Cc: Florian Fainelli <f.fainelli@gmail.com>, idosch@mellanox.com, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, bridge@lists.linux-foundation.org, jiri@mellanox.com, andrew@lunn.ch, vivien.didelot@gmail.com Subject: [PATCH net-next v2 05/16] rocker: Check bridge flags during prepare phase Date: Sun, 10 Feb 2019 09:50:54 -0800 [thread overview] Message-ID: <20190210175105.31629-6-f.fainelli@gmail.com> (raw) In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> In preparation for getting rid of switchdev_port_attr_get(), have rocker check for the bridge flags being set through switchdev_port_attr_set() with the SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS attribute identifier. Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/net/ethernet/rocker/rocker_main.c | 40 ++++++++++++++--------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 66f72f8c46e5..8657313b6f30 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -1565,18 +1565,42 @@ static int rocker_world_port_attr_stp_state_set(struct rocker_port *rocker_port, return wops->port_attr_stp_state_set(rocker_port, state); } +static int +rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * + rocker_port, + unsigned long * + p_brport_flags_support) +{ + struct rocker_world_ops *wops = rocker_port->rocker->wops; + + if (!wops->port_attr_bridge_flags_support_get) + return -EOPNOTSUPP; + return wops->port_attr_bridge_flags_support_get(rocker_port, + p_brport_flags_support); +} + static int rocker_world_port_attr_bridge_flags_set(struct rocker_port *rocker_port, unsigned long brport_flags, struct switchdev_trans *trans) { struct rocker_world_ops *wops = rocker_port->rocker->wops; + unsigned long brport_flags_s; + int err; if (!wops->port_attr_bridge_flags_set) return -EOPNOTSUPP; - if (switchdev_trans_ph_prepare(trans)) + if (switchdev_trans_ph_prepare(trans)) { + err = rocker_world_port_attr_bridge_flags_support_get(rocker_port, + &brport_flags_s); + if (err) + return err; + + if (brport_flags & ~brport_flags_s) + return -EOPNOTSUPP; return 0; + } return wops->port_attr_bridge_flags_set(rocker_port, brport_flags, trans); @@ -1593,20 +1617,6 @@ rocker_world_port_attr_bridge_flags_get(const struct rocker_port *rocker_port, return wops->port_attr_bridge_flags_get(rocker_port, p_brport_flags); } -static int -rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * - rocker_port, - unsigned long * - p_brport_flags_support) -{ - struct rocker_world_ops *wops = rocker_port->rocker->wops; - - if (!wops->port_attr_bridge_flags_support_get) - return -EOPNOTSUPP; - return wops->port_attr_bridge_flags_support_get(rocker_port, - p_brport_flags_support); -} - static int rocker_world_port_attr_bridge_ageing_time_set(struct rocker_port *rocker_port, u32 ageing_time, -- 2.19.1
WARNING: multiple messages have this Message-ID (diff)
From: Florian Fainelli <f.fainelli@gmail.com> To: netdev@vger.kernel.org Cc: devel@driverdev.osuosl.org, andrew@lunn.ch, Florian Fainelli <f.fainelli@gmail.com>, bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org, idosch@mellanox.com, jiri@mellanox.com, vivien.didelot@gmail.com Subject: [Bridge] [PATCH net-next v2 05/16] rocker: Check bridge flags during prepare phase Date: Sun, 10 Feb 2019 09:50:54 -0800 [thread overview] Message-ID: <20190210175105.31629-6-f.fainelli@gmail.com> (raw) In-Reply-To: <20190210175105.31629-1-f.fainelli@gmail.com> In preparation for getting rid of switchdev_port_attr_get(), have rocker check for the bridge flags being set through switchdev_port_attr_set() with the SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS attribute identifier. Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/net/ethernet/rocker/rocker_main.c | 40 ++++++++++++++--------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c index 66f72f8c46e5..8657313b6f30 100644 --- a/drivers/net/ethernet/rocker/rocker_main.c +++ b/drivers/net/ethernet/rocker/rocker_main.c @@ -1565,18 +1565,42 @@ static int rocker_world_port_attr_stp_state_set(struct rocker_port *rocker_port, return wops->port_attr_stp_state_set(rocker_port, state); } +static int +rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * + rocker_port, + unsigned long * + p_brport_flags_support) +{ + struct rocker_world_ops *wops = rocker_port->rocker->wops; + + if (!wops->port_attr_bridge_flags_support_get) + return -EOPNOTSUPP; + return wops->port_attr_bridge_flags_support_get(rocker_port, + p_brport_flags_support); +} + static int rocker_world_port_attr_bridge_flags_set(struct rocker_port *rocker_port, unsigned long brport_flags, struct switchdev_trans *trans) { struct rocker_world_ops *wops = rocker_port->rocker->wops; + unsigned long brport_flags_s; + int err; if (!wops->port_attr_bridge_flags_set) return -EOPNOTSUPP; - if (switchdev_trans_ph_prepare(trans)) + if (switchdev_trans_ph_prepare(trans)) { + err = rocker_world_port_attr_bridge_flags_support_get(rocker_port, + &brport_flags_s); + if (err) + return err; + + if (brport_flags & ~brport_flags_s) + return -EOPNOTSUPP; return 0; + } return wops->port_attr_bridge_flags_set(rocker_port, brport_flags, trans); @@ -1593,20 +1617,6 @@ rocker_world_port_attr_bridge_flags_get(const struct rocker_port *rocker_port, return wops->port_attr_bridge_flags_get(rocker_port, p_brport_flags); } -static int -rocker_world_port_attr_bridge_flags_support_get(const struct rocker_port * - rocker_port, - unsigned long * - p_brport_flags_support) -{ - struct rocker_world_ops *wops = rocker_port->rocker->wops; - - if (!wops->port_attr_bridge_flags_support_get) - return -EOPNOTSUPP; - return wops->port_attr_bridge_flags_support_get(rocker_port, - p_brport_flags_support); -} - static int rocker_world_port_attr_bridge_ageing_time_set(struct rocker_port *rocker_port, u32 ageing_time, -- 2.19.1
next prev parent reply other threads:[~2019-02-10 17:53 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-10 17:50 [PATCH net-next v2 00/16] net: Remove switchdev_ops Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 01/16] Documentation: networking: switchdev: Update port parent ID section Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 02/16] mlxsw: spectrum: Check bridge flags during prepare phase Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 03/16] staging: fsl-dpaa2: ethsw: Check bridge port flags during set Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 04/16] net: dsa: Add setter for SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` Florian Fainelli [this message] 2019-02-10 17:50 ` [Bridge] [PATCH net-next v2 05/16] rocker: Check bridge flags during prepare phase Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 06/16] net: bridge: Stop calling switchdev_port_attr_get() Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 19:05 ` Ido Schimmel 2019-02-10 19:05 ` [Bridge] " Ido Schimmel 2019-02-10 19:34 ` Florian Fainelli 2019-02-10 19:34 ` [Bridge] " Florian Fainelli 2019-02-12 14:20 ` Ido Schimmel 2019-02-12 14:20 ` [Bridge] " Ido Schimmel 2019-02-10 17:50 ` [PATCH net-next v2 07/16] net: Remove SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 08/16] net: Get rid of switchdev_port_attr_get() Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 09/16] switchdev: Add SWITCHDEV_PORT_ATTR_SET Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:50 ` [PATCH net-next v2 10/16] rocker: Handle SWITCHDEV_PORT_ATTR_SET Florian Fainelli 2019-02-10 17:50 ` [Bridge] " Florian Fainelli 2019-02-10 17:51 ` [PATCH net-next v2 11/16] net: dsa: " Florian Fainelli 2019-02-10 17:51 ` [Bridge] " Florian Fainelli 2019-02-10 17:51 ` [PATCH net-next v2 12/16] mlxsw: spectrum_switchdev: " Florian Fainelli 2019-02-10 17:51 ` [Bridge] " Florian Fainelli 2019-02-10 17:51 ` [PATCH net-next v2 13/16] net: mscc: ocelot: " Florian Fainelli 2019-02-10 17:51 ` [Bridge] " Florian Fainelli 2019-02-10 17:51 ` [PATCH net-next v2 14/16] staging: fsl-dpaa2: ethsw: " Florian Fainelli 2019-02-10 17:51 ` [Bridge] " Florian Fainelli 2019-02-10 17:51 ` [PATCH net-next v2 15/16] net: switchdev: Replace port attr set SDO with a notification Florian Fainelli 2019-02-10 17:51 ` [Bridge] " Florian Fainelli 2019-02-10 17:51 ` [PATCH net-next v2 16/16] net: Remove switchdev_ops Florian Fainelli 2019-02-10 17:51 ` [Bridge] " Florian Fainelli 2019-02-10 20:44 ` [PATCH net-next v2 00/16] " Florian Fainelli 2019-02-10 20:44 ` [Bridge] " Florian Fainelli 2019-02-10 20:51 ` David Miller 2019-02-10 20:51 ` [Bridge] " David Miller
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=20190210175105.31629-6-f.fainelli@gmail.com \ --to=f.fainelli@gmail.com \ --cc=andrew@lunn.ch \ --cc=bridge@lists.linux-foundation.org \ --cc=devel@driverdev.osuosl.org \ --cc=idosch@mellanox.com \ --cc=jiri@mellanox.com \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=vivien.didelot@gmail.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: linkBe 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.