net: Get rid of switchdev_port_attr_get()

With the bridge no longer calling switchdev_port_attr_get() to obtain
the supported bridge port flags from a driver but instead trying to set
the bridge port flags directly and relying on driver to reject
unsupported configurations, we can effectively get rid of
switchdev_port_attr_get() entirely since this was the only place where
it was called.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Florian Fainelli 2019-02-20 16:58:26 -08:00 коммит произвёл David S. Miller
Родитель cc0c207a5d
Коммит 010c8f01aa
6 изменённых файлов: 1 добавлений и 37 удалений

Просмотреть файл

@ -233,7 +233,7 @@ the bridge's FDB. It's possible, but not optimal, to enable learning on the
device port and on the bridge port, and disable learning_sync. device port and on the bridge port, and disable learning_sync.
To support learning, the driver implements switchdev op To support learning, the driver implements switchdev op
switchdev_port_attr_get/set for SWITCHDEV_ATTR_PORT_ID_BRIDGE_FLAGS. switchdev_port_attr_set for SWITCHDEV_ATTR_PORT_ID_{PRE}_BRIDGE_FLAGS.
FDB Ageing FDB Ageing
^^^^^^^^^^ ^^^^^^^^^^

Просмотреть файл

@ -431,12 +431,6 @@ static void mlxsw_sp_bridge_vlan_put(struct mlxsw_sp_bridge_vlan *bridge_vlan)
mlxsw_sp_bridge_vlan_destroy(bridge_vlan); mlxsw_sp_bridge_vlan_destroy(bridge_vlan);
} }
static int mlxsw_sp_port_attr_get(struct net_device *dev,
struct switchdev_attr *attr)
{
return -EOPNOTSUPP;
}
static int static int
mlxsw_sp_port_bridge_vlan_stp_set(struct mlxsw_sp_port *mlxsw_sp_port, mlxsw_sp_port_bridge_vlan_stp_set(struct mlxsw_sp_port *mlxsw_sp_port,
struct mlxsw_sp_bridge_vlan *bridge_vlan, struct mlxsw_sp_bridge_vlan *bridge_vlan,
@ -1945,7 +1939,6 @@ static struct mlxsw_sp_port *mlxsw_sp_lag_rep_port(struct mlxsw_sp *mlxsw_sp,
} }
static const struct switchdev_ops mlxsw_sp_port_switchdev_ops = { static const struct switchdev_ops mlxsw_sp_port_switchdev_ops = {
.switchdev_port_attr_get = mlxsw_sp_port_attr_get,
.switchdev_port_attr_set = mlxsw_sp_port_attr_set, .switchdev_port_attr_set = mlxsw_sp_port_attr_set,
}; };

Просмотреть файл

@ -2066,12 +2066,6 @@ static const struct net_device_ops rocker_port_netdev_ops = {
* swdev interface * swdev interface
********************/ ********************/
static int rocker_port_attr_get(struct net_device *dev,
struct switchdev_attr *attr)
{
return -EOPNOTSUPP;
}
static int rocker_port_attr_set(struct net_device *dev, static int rocker_port_attr_set(struct net_device *dev,
const struct switchdev_attr *attr, const struct switchdev_attr *attr,
struct switchdev_trans *trans) struct switchdev_trans *trans)
@ -2148,7 +2142,6 @@ static int rocker_port_obj_del(struct net_device *dev,
} }
static const struct switchdev_ops rocker_port_switchdev_ops = { static const struct switchdev_ops rocker_port_switchdev_ops = {
.switchdev_port_attr_get = rocker_port_attr_get,
.switchdev_port_attr_set = rocker_port_attr_set, .switchdev_port_attr_set = rocker_port_attr_set,
}; };

Просмотреть файл

@ -640,12 +640,6 @@ static void ethsw_teardown_irqs(struct fsl_mc_device *sw_dev)
fsl_mc_free_irqs(sw_dev); fsl_mc_free_irqs(sw_dev);
} }
static int swdev_port_attr_get(struct net_device *netdev,
struct switchdev_attr *attr)
{
return -EOPNOTSUPP;
}
static int port_attr_stp_state_set(struct net_device *netdev, static int port_attr_stp_state_set(struct net_device *netdev,
struct switchdev_trans *trans, struct switchdev_trans *trans,
u8 state) u8 state)
@ -932,7 +926,6 @@ static int swdev_port_obj_del(struct net_device *netdev,
} }
static const struct switchdev_ops ethsw_port_switchdev_ops = { static const struct switchdev_ops ethsw_port_switchdev_ops = {
.switchdev_port_attr_get = swdev_port_attr_get,
.switchdev_port_attr_set = swdev_port_attr_set, .switchdev_port_attr_set = swdev_port_attr_set,
}; };

Просмотреть файл

@ -179,8 +179,6 @@ switchdev_notifier_info_to_extack(const struct switchdev_notifier_info *info)
#ifdef CONFIG_NET_SWITCHDEV #ifdef CONFIG_NET_SWITCHDEV
void switchdev_deferred_process(void); void switchdev_deferred_process(void);
int switchdev_port_attr_get(struct net_device *dev,
struct switchdev_attr *attr);
int switchdev_port_attr_set(struct net_device *dev, int switchdev_port_attr_set(struct net_device *dev,
const struct switchdev_attr *attr); const struct switchdev_attr *attr);
int switchdev_port_obj_add(struct net_device *dev, int switchdev_port_obj_add(struct net_device *dev,
@ -225,12 +223,6 @@ static inline void switchdev_deferred_process(void)
{ {
} }
static inline int switchdev_port_attr_get(struct net_device *dev,
struct switchdev_attr *attr)
{
return -EOPNOTSUPP;
}
static inline int switchdev_port_attr_set(struct net_device *dev, static inline int switchdev_port_attr_set(struct net_device *dev,
const struct switchdev_attr *attr) const struct switchdev_attr *attr)
{ {

Просмотреть файл

@ -385,12 +385,6 @@ static int dsa_slave_get_port_parent_id(struct net_device *dev,
return 0; return 0;
} }
static int dsa_slave_port_attr_get(struct net_device *dev,
struct switchdev_attr *attr)
{
return -EOPNOTSUPP;
}
static inline netdev_tx_t dsa_slave_netpoll_send_skb(struct net_device *dev, static inline netdev_tx_t dsa_slave_netpoll_send_skb(struct net_device *dev,
struct sk_buff *skb) struct sk_buff *skb)
{ {
@ -1057,7 +1051,6 @@ static const struct net_device_ops dsa_slave_netdev_ops = {
}; };
static const struct switchdev_ops dsa_slave_switchdev_ops = { static const struct switchdev_ops dsa_slave_switchdev_ops = {
.switchdev_port_attr_get = dsa_slave_port_attr_get,
.switchdev_port_attr_set = dsa_slave_port_attr_set, .switchdev_port_attr_set = dsa_slave_port_attr_set,
}; };