From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Fainelli Subject: Re: [PATCH net-next v2 10/12] staging: fsl-dpaa2: ethsw: Implement ndo_get_port_parent_id() Date: Tue, 5 Feb 2019 14:18:03 -0800 Message-ID: <32de3be2-7e6a-f34e-9e04-3e3d39989317@gmail.com> References: <20190205221311.18476-1-f.fainelli@gmail.com> <20190205221311.18476-11-f.fainelli@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20190205221311.18476-11-f.fainelli@gmail.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: netdev@vger.kernel.org Cc: "David S. Miller" , Ido Schimmel , open list , "open list:MELLANOX MLX5 core VPI driver" , "open list:NETRONOME ETHERNET DRIVERS" , "open list:STAGING SUBSYSTEM" , "moderated list:ETHERNET BRIDGE" List-Id: linux-rdma@vger.kernel.org On 2/5/19 2:13 PM, Florian Fainelli wrote: > ethsw implements SWITCHDEV_ATTR_ID_PORT_PARENT_ID and we want to get rid > of switchdev_ops eventually, ease that migration by implementing a > ndo_get_port_parent_id() function which returns what > switchdev_port_attr_get() would do. > > Signed-off-by: Florian Fainelli > --- > drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c > index daabaceeea52..622f32377b91 100644 > --- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c > +++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c > @@ -505,6 +505,17 @@ static netdev_tx_t port_dropframe(struct sk_buff *skb, > return NETDEV_TX_OK; > } > > +static int swdev_get_port_parent_id(struct net_device *dev, > + struct netdev_phys_item_id *ppid) > +{ > + struct ethsw_port_priv *port_priv = netdev_priv(dev); > + > + ppid->id_len = 1; > + ppid->id[0] = port_priv->ethsw_data->dev_id; > + > + return 0; > +} > + > static const struct net_device_ops ethsw_port_ops = { > .ndo_open = port_open, > .ndo_stop = port_stop, > @@ -515,6 +526,7 @@ static const struct net_device_ops ethsw_port_ops = { > .ndo_get_offload_stats = port_get_offload_stats, > > .ndo_start_xmit = port_dropframe, > + .ndo_get_port_parent_id = swdev_get_port_parent_id, > }; > > static void ethsw_links_state_update(struct ethsw_core *ethsw) > @@ -634,10 +646,6 @@ static int swdev_port_attr_get(struct net_device *netdev, > struct ethsw_port_priv *port_priv = netdev_priv(netdev); > > switch (attr->id) { > - case SWITCHDEV_ATTR_ID_PORT_PARENT_ID: > - attr->u.ppid.id_len = 1; > - attr->u.ppid.id[0] = port_priv->ethsw_data->dev_id; > - break; > case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS: > attr->u.brport_flags = > (port_priv->ethsw_data->learning ? BR_LEARNING : 0) | > @@ -1434,7 +1442,6 @@ static int ethsw_probe_port(struct ethsw_core *ethsw, u16 port_idx) > SET_NETDEV_DEV(port_netdev, dev); > port_netdev->netdev_ops = ðsw_port_ops; > port_netdev->ethtool_ops = ðsw_port_ethtool_ops; > - port_netdev->switchdev_ops = ðsw_port_switchdev_ops; This hunk should not be removed, I will respin a new version after getting feedback. -- Florian