]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
mlxsw: core: Fix devlink unregister flow
authorShalom Toledo <shalomt@mellanox.com>
Mon, 29 Oct 2018 14:26:16 +0000 (14:26 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Nov 2018 13:51:55 +0000 (14:51 +0100)
commit6a84bdb84df3ed9c59baaf8a45701aa7f7a36677
tree351f36f22af21159170361c199735fc1bb1dfa21
parent2d484ce0a878567e8fef8c8484b21531abf77f46
mlxsw: core: Fix devlink unregister flow

[ Upstream commit a22712a962912faf257e857ab6857f56a93cfb34 ]

After a failed reload, the driver is still registered to devlink, its
devlink instance is still allocated and the 'reload_fail' flag is set.
Then, in the next reload try, the driver's allocated devlink instance will
be freed without unregistering from devlink and its components (e.g,
resources). This scenario can cause a use-after-free if the user tries to
execute command via devlink user-space tool.

Fix by not freeing the devlink instance during reload (failed or not).

Fixes: 24cc68ad6c46 ("mlxsw: core: Add support for reload")
Signed-off-by: Shalom Toledo <shalomt@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlxsw/core.c