On Fri, Feb 22, 2019 at 03:59:22PM -0800, Florian Fainelli wrote: > Following patches will change the way we communicate setting a port's > attribute and use a notifier to perform those tasks. > > Prepare mlxsw to support receiving notifier events targeting > SWITCHDEV_PORT_ATTR_SET and utilize the switchdev_handle_port_attr_set() > to handle stacking of devices. > > Signed-off-by: Florian Fainelli <f.faine...@gmail.com> > --- > .../net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c > b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c > index 766f5b5f1cf5..c1aedfea3a31 100644 > --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c > +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c > @@ -3123,6 +3123,13 @@ static int mlxsw_sp_switchdev_event(struct > notifier_block *unused, > struct net_device *br_dev; > int err; > > + if (event == SWITCHDEV_PORT_ATTR_SET) { > + err = switchdev_handle_port_attr_set(dev, ptr, > + mlxsw_sp_port_dev_check, > + mlxsw_sp_port_attr_set); > + return notifier_from_errno(err);
I don't think this code is ever executed. And if it was executed, we would have problems because switchdev_handle_port_attr_set() might block. > + } > + > /* Tunnel devices are not our uppers, so check their master instead */ > br_dev = netdev_master_upper_dev_get_rcu(dev); > if (!br_dev) > @@ -3446,6 +3453,11 @@ static int mlxsw_sp_switchdev_blocking_event(struct > notifier_block *unused, > mlxsw_sp_port_dev_check, > mlxsw_sp_port_obj_del); > return notifier_from_errno(err); > + case SWITCHDEV_PORT_ATTR_SET: > + err = switchdev_handle_port_attr_set(dev, ptr, > + mlxsw_sp_port_dev_check, > + mlxsw_sp_port_attr_set); > + return notifier_from_errno(err); > } > > return NOTIFY_DONE; > -- > 2.17.1 > _______________________________________________ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel