The function mlx5_query_nic_vport_node_guid() calls the function mlx5_query_nic_vport_context() but does not check its return value. A proper implementation can be found in mlx5_nic_vport_query_local_lb().
Add error handling for mlx5_query_nic_vport_context(). If it fails, free the out buffer via kvfree() and return error code.
Fixes: 9efa75254593 ("net/mlx5_core: Introduce access functions to query vport RoCE fields") Cc: stable@vger.kernel.org # v4.5 Target: net Signed-off-by: Wentao Liang vulab@iscas.ac.cn --- v3: Explicitly mention target branch. Change improper code. v2: Remove redundant reassignment. Fix typo error.
drivers/net/ethernet/mellanox/mlx5/core/vport.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/vport.c b/drivers/net/ethernet/mellanox/mlx5/core/vport.c index 0d5f750faa45..66e44905c1f0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/vport.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/vport.c @@ -465,19 +465,22 @@ int mlx5_query_nic_vport_node_guid(struct mlx5_core_dev *mdev, u64 *node_guid) { u32 *out; int outlen = MLX5_ST_SZ_BYTES(query_nic_vport_context_out); + int err;
out = kvzalloc(outlen, GFP_KERNEL); if (!out) return -ENOMEM;
- mlx5_query_nic_vport_context(mdev, 0, out); + ret = mlx5_query_nic_vport_context(mdev, 0, out); + if (err) + goto out;
*node_guid = MLX5_GET64(query_nic_vport_context_out, out, nic_vport_context.node_guid); - +out: kvfree(out);
- return 0; + return err; } EXPORT_SYMBOL_GPL(mlx5_query_nic_vport_node_guid);
Hi Wentao,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main] [also build test ERROR on net/main linus/master v6.15-rc7 next-20250521] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Wentao-Liang/net-mlx5-Add-err... base: net-next/main patch link: https://lore.kernel.org/r/20250521132343.844-1-vulab%40iscas.ac.cn patch subject: [PATCH v3] net/mlx5: Add error handling in mlx5_query_nic_vport_node_guid() config: loongarch-randconfig-002-20250522 (https://download.01.org/0day-ci/archive/20250522/202505221016.r93lwUfJ-lkp@i...) compiler: loongarch64-linux-gcc (GCC) 15.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250522/202505221016.r93lwUfJ-lkp@i...)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202505221016.r93lwUfJ-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/ethernet/mellanox/mlx5/core/vport.c: In function 'mlx5_query_nic_vport_node_guid':
drivers/net/ethernet/mellanox/mlx5/core/vport.c:474:9: error: 'ret' undeclared (first use in this function); did you mean 'net'?
474 | ret = mlx5_query_nic_vport_context(mdev, 0, out); | ^~~ | net drivers/net/ethernet/mellanox/mlx5/core/vport.c:474:9: note: each undeclared identifier is reported only once for each function it appears in
vim +474 drivers/net/ethernet/mellanox/mlx5/core/vport.c
463 464 int mlx5_query_nic_vport_node_guid(struct mlx5_core_dev *mdev, u64 *node_guid) 465 { 466 u32 *out; 467 int outlen = MLX5_ST_SZ_BYTES(query_nic_vport_context_out); 468 int err; 469 470 out = kvzalloc(outlen, GFP_KERNEL); 471 if (!out) 472 return -ENOMEM; 473
474 ret = mlx5_query_nic_vport_context(mdev, 0, out);
475 if (err) 476 goto out; 477 478 *node_guid = MLX5_GET64(query_nic_vport_context_out, out, 479 nic_vport_context.node_guid); 480 out: 481 kvfree(out); 482 483 return err; 484 } 485 EXPORT_SYMBOL_GPL(mlx5_query_nic_vport_node_guid); 486
On Wed, May 21, 2025 at 09:23:43PM +0800, Wentao Liang wrote:
The function mlx5_query_nic_vport_node_guid() calls the function mlx5_query_nic_vport_context() but does not check its return value. A proper implementation can be found in mlx5_nic_vport_query_local_lb().
Add error handling for mlx5_query_nic_vport_context(). If it fails, free the out buffer via kvfree() and return error code.
Fixes: 9efa75254593 ("net/mlx5_core: Introduce access functions to query vport RoCE fields") Cc: stable@vger.kernel.org # v4.5 Target: net
I don't think Target is a standard tag, so please omit it in v4. The correct way to target a Networking tree is to put the tree name in the subject line. Like this:
Subject: [PATCH net v4] ...
Signed-off-by: Wentao Liang vulab@iscas.ac.cn
v3: Explicitly mention target branch. Change improper code. v2: Remove redundant reassignment. Fix typo error.
linux-stable-mirror@lists.linaro.org