Ido Schimmel <ido...@idosch.org> writes:
> +Petr > > On Thu, Jan 07, 2021 at 01:17:20AM +0200, Vladimir Oltean wrote: >> static int mlxsw_sp_port_obj_add(struct net_device *dev, >> const struct switchdev_obj *obj, >> - struct switchdev_trans *trans, >> struct netlink_ext_ack *extack) >> { >> struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev); >> const struct switchdev_obj_port_vlan *vlan; >> + struct switchdev_trans trans; >> int err = 0; >> >> switch (obj->id) { >> case SWITCHDEV_OBJ_ID_PORT_VLAN: >> vlan = SWITCHDEV_OBJ_PORT_VLAN(obj); >> - err = mlxsw_sp_port_vlans_add(mlxsw_sp_port, vlan, trans, >> + > > Got the regression results. The call to mlxsw_sp_span_respin() should be > placed here because it needs to be triggered regardless of the return > value of mlxsw_sp_port_vlans_add(). Agreed, the new code differs in that respin is not called on error path.