mlxsw: spectrum: Add missing rollbacks in error path
While going over the code I noticed we are missing two rollbacks in the
port's creation error path. Add them and adjust the place of one of them
in the port's removal sequence so that both are symmetric.
Fixes: 56ade8fe3f
("mlxsw: spectrum: Add initial support for Spectrum ASIC")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0e7df1a290
commit
0583272d91
|
@ -2206,6 +2206,7 @@ err_core_port_init:
|
||||||
unregister_netdev(dev);
|
unregister_netdev(dev);
|
||||||
err_register_netdev:
|
err_register_netdev:
|
||||||
mlxsw_sp->ports[local_port] = NULL;
|
mlxsw_sp->ports[local_port] = NULL;
|
||||||
|
mlxsw_sp_port_switchdev_fini(mlxsw_sp_port);
|
||||||
mlxsw_sp_port_pvid_vport_destroy(mlxsw_sp_port);
|
mlxsw_sp_port_pvid_vport_destroy(mlxsw_sp_port);
|
||||||
err_port_pvid_vport_create:
|
err_port_pvid_vport_create:
|
||||||
mlxsw_sp_port_dcb_fini(mlxsw_sp_port);
|
mlxsw_sp_port_dcb_fini(mlxsw_sp_port);
|
||||||
|
@ -2215,6 +2216,7 @@ err_port_buffers_init:
|
||||||
err_port_admin_status_set:
|
err_port_admin_status_set:
|
||||||
err_port_mtu_set:
|
err_port_mtu_set:
|
||||||
err_port_speed_by_width_set:
|
err_port_speed_by_width_set:
|
||||||
|
mlxsw_sp_port_swid_set(mlxsw_sp_port, MLXSW_PORT_SWID_DISABLED_PORT);
|
||||||
err_port_swid_set:
|
err_port_swid_set:
|
||||||
err_port_system_port_mapping_set:
|
err_port_system_port_mapping_set:
|
||||||
err_dev_addr_init:
|
err_dev_addr_init:
|
||||||
|
@ -2237,9 +2239,9 @@ static void mlxsw_sp_port_remove(struct mlxsw_sp *mlxsw_sp, u8 local_port)
|
||||||
mlxsw_core_port_fini(&mlxsw_sp_port->core_port);
|
mlxsw_core_port_fini(&mlxsw_sp_port->core_port);
|
||||||
unregister_netdev(mlxsw_sp_port->dev); /* This calls ndo_stop */
|
unregister_netdev(mlxsw_sp_port->dev); /* This calls ndo_stop */
|
||||||
mlxsw_sp->ports[local_port] = NULL;
|
mlxsw_sp->ports[local_port] = NULL;
|
||||||
|
mlxsw_sp_port_switchdev_fini(mlxsw_sp_port);
|
||||||
mlxsw_sp_port_pvid_vport_destroy(mlxsw_sp_port);
|
mlxsw_sp_port_pvid_vport_destroy(mlxsw_sp_port);
|
||||||
mlxsw_sp_port_dcb_fini(mlxsw_sp_port);
|
mlxsw_sp_port_dcb_fini(mlxsw_sp_port);
|
||||||
mlxsw_sp_port_switchdev_fini(mlxsw_sp_port);
|
|
||||||
mlxsw_sp_port_swid_set(mlxsw_sp_port, MLXSW_PORT_SWID_DISABLED_PORT);
|
mlxsw_sp_port_swid_set(mlxsw_sp_port, MLXSW_PORT_SWID_DISABLED_PORT);
|
||||||
mlxsw_sp_port_module_unmap(mlxsw_sp, mlxsw_sp_port->local_port);
|
mlxsw_sp_port_module_unmap(mlxsw_sp, mlxsw_sp_port->local_port);
|
||||||
free_percpu(mlxsw_sp_port->pcpu_stats);
|
free_percpu(mlxsw_sp_port->pcpu_stats);
|
||||||
|
|
Loading…
Reference in New Issue