nfp: fix the access to management firmware hanging
authorGao Xiao <gao.xiao@corigine.com>
Mon, 29 Aug 2022 10:16:51 +0000 (12:16 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 31 Aug 2022 06:03:44 +0000 (23:03 -0700)
When running `ethtool -p` with the old management firmware,
the management firmware resource is not correctly released,
which causes firmware related malfunction: all the access
to management firmware hangs.

It releases the management firmware resource when set id
mode operation is not supported.

Fixes: ccb9bc1dfa44 ("nfp: add 'ethtool --identify' support")
Signed-off-by: Gao Xiao <gao.xiao@corigine.com>
Reviewed-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Link: https://lore.kernel.org/r/20220829101651.633840-1-simon.horman@corigine.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp_eth.c

index edd3000..4cc3879 100644 (file)
@@ -507,6 +507,7 @@ int nfp_eth_set_idmode(struct nfp_cpp *cpp, unsigned int idx, bool state)
        if (nfp_nsp_get_abi_ver_minor(nsp) < 32) {
                nfp_err(nfp_nsp_cpp(nsp),
                        "set id mode operation not supported, please update flash\n");
+               nfp_eth_config_cleanup_end(nsp);
                return -EOPNOTSUPP;
        }