All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err'
Date: Fri, 14 May 2021 18:58:35 +0800	[thread overview]
Message-ID: <202105141823.Td2h3Mbi-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 10947 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Ido Schimmel <idosch@nvidia.com>
CC: Jakub Kicinski <kuba@kernel.org>
CC: Jiri Pirko <jiri@nvidia.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   315d99318179b9cd5077ccc9f7f26a164c9fa998
commit: e3ddfb45bacdc623eedea7f7bf9e7879257471d6 mlxsw: spectrum_router: Allow returning errors from mlxsw_sp_nexthop_group_refresh()
date:   6 months ago
:::::: branch date: 16 hours ago
:::::: commit date: 6 months ago
config: x86_64-randconfig-m031-20210514 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err'

vim +/err +3598 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3554  
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3555  static int
a7ff87acd995e3 Jiri Pirko         2016-07-05  3556  mlxsw_sp_nexthop_group_refresh(struct mlxsw_sp *mlxsw_sp,
a7ff87acd995e3 Jiri Pirko         2016-07-05  3557  			       struct mlxsw_sp_nexthop_group *nh_grp)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3558  {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3559  	struct mlxsw_sp_nexthop_group_info *nhgi = nh_grp->nhgi;
eb789980d0aa6c Ido Schimmel       2017-10-22  3560  	u16 ecmp_size, old_ecmp_size;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3561  	struct mlxsw_sp_nexthop *nh;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3562  	bool offload_change = false;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3563  	u32 adj_index;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3564  	bool old_adj_index_valid;
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3565  	int i, err2, err = 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3566  	u32 old_adj_index;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3567  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3568  	if (!nhgi->gateway) {
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3569  		mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3570  		return 0;
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3571  	}
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3572  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3573  	for (i = 0; i < nhgi->count; i++) {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3574  		nh = &nhgi->nexthops[i];
a7ff87acd995e3 Jiri Pirko         2016-07-05  3575  
56b8a9ed276bc1 Petr Machata       2017-07-31  3576  		if (nh->should_offload != nh->offloaded) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3577  			offload_change = true;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3578  			if (nh->should_offload)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3579  				nh->update = 1;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3580  		}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3581  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3582  	if (!offload_change) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3583  		/* Nothing was added or removed, so no need to reallocate. Just
a7ff87acd995e3 Jiri Pirko         2016-07-05  3584  		 * update MAC on existing adjacency indexes.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3585  		 */
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3586  		err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nhgi, false);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3587  		if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3588  			dev_warn(mlxsw_sp->bus_info->dev, "Failed to update neigh MAC in adjacency table.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3589  			goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3590  		}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3591  		return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3592  	}
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3593  	mlxsw_sp_nexthop_group_normalize(nhgi);
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3594  	if (!nhgi->sum_norm_weight)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3595  		/* No neigh of this group is connected so we just set
a7ff87acd995e3 Jiri Pirko         2016-07-05  3596  		 * the trap and let everthing flow through kernel.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3597  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05 @3598  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3599  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3600  	ecmp_size = nhgi->sum_norm_weight;
425a08c67317ac Ido Schimmel       2017-10-22  3601  	err = mlxsw_sp_fix_adj_grp_size(mlxsw_sp, &ecmp_size);
425a08c67317ac Ido Schimmel       2017-10-22  3602  	if (err)
425a08c67317ac Ido Schimmel       2017-10-22  3603  		/* No valid allocation size available. */
425a08c67317ac Ido Schimmel       2017-10-22  3604  		goto set_trap;
425a08c67317ac Ido Schimmel       2017-10-22  3605  
4b6b18692aec20 Jiri Pirko         2018-07-08  3606  	err = mlxsw_sp_kvdl_alloc(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
4b6b18692aec20 Jiri Pirko         2018-07-08  3607  				  ecmp_size, &adj_index);
1312444374241f Arkadi Sharshevsky 2017-03-25  3608  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3609  		/* We ran out of KVD linear space, just set the
a7ff87acd995e3 Jiri Pirko         2016-07-05  3610  		 * trap and let everything flow through kernel.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3611  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05  3612  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to allocate KVD linear area for nexthop group.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3613  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3614  	}
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3615  	old_adj_index_valid = nhgi->adj_index_valid;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3616  	old_adj_index = nhgi->adj_index;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3617  	old_ecmp_size = nhgi->ecmp_size;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3618  	nhgi->adj_index_valid = 1;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3619  	nhgi->adj_index = adj_index;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3620  	nhgi->ecmp_size = ecmp_size;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3621  	mlxsw_sp_nexthop_group_rebalance(nhgi);
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3622  	err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nhgi, true);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3623  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3624  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to update neigh MAC in adjacency table.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3625  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3626  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3627  
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3628  	mlxsw_sp_nexthop_group_offload_refresh(mlxsw_sp, nh_grp);
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3629  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3630  	if (!old_adj_index_valid) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3631  		/* The trap was set for fib entries, so we have to call
a7ff87acd995e3 Jiri Pirko         2016-07-05  3632  		 * fib entry update to unset it and use adjacency index.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3633  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05  3634  		err = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3635  		if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3636  			dev_warn(mlxsw_sp->bus_info->dev, "Failed to add adjacency index to fib entries.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3637  			goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3638  		}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3639  		return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3640  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3641  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3642  	err = mlxsw_sp_adj_index_mass_update(mlxsw_sp, nh_grp,
a7ff87acd995e3 Jiri Pirko         2016-07-05  3643  					     old_adj_index, old_ecmp_size);
4b6b18692aec20 Jiri Pirko         2018-07-08  3644  	mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
0304c00546fce7 Jiri Pirko         2018-07-08  3645  			   old_ecmp_size, old_adj_index);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3646  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3647  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to mass-update adjacency index for nexthop group.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3648  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3649  	}
77d964e66cfad0 Ido Schimmel       2017-08-02  3650  
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3651  	return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3652  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3653  set_trap:
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3654  	old_adj_index_valid = nhgi->adj_index_valid;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3655  	nhgi->adj_index_valid = 0;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3656  	for (i = 0; i < nhgi->count; i++) {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3657  		nh = &nhgi->nexthops[i];
a7ff87acd995e3 Jiri Pirko         2016-07-05  3658  		nh->offloaded = 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3659  	}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3660  	err2 = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3661  	if (err2)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3662  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to set traps for fib entries.\n");
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3663  	mlxsw_sp_nexthop_group_offload_refresh(mlxsw_sp, nh_grp);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3664  	if (old_adj_index_valid)
4b6b18692aec20 Jiri Pirko         2018-07-08  3665  		mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3666  				   nhgi->ecmp_size, nhgi->adj_index);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3667  	return err;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3668  }
a7ff87acd995e3 Jiri Pirko         2016-07-05  3669  

:::::: The code at line 3598 was first introduced by commit
:::::: a7ff87acd995e3c024f3262bf90c8682c99b1f6b mlxsw: spectrum_router: Implement next-hop routing

:::::: TO: Jiri Pirko <jiri@mellanox.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 43238 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err'
Date: Fri, 14 May 2021 17:35:00 +0300	[thread overview]
Message-ID: <202105141823.Td2h3Mbi-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 10445 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   315d99318179b9cd5077ccc9f7f26a164c9fa998
commit: e3ddfb45bacdc623eedea7f7bf9e7879257471d6 mlxsw: spectrum_router: Allow returning errors from mlxsw_sp_nexthop_group_refresh()
config: x86_64-randconfig-m031-20210514 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err'

vim +/err +3598 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3555  static int
a7ff87acd995e3 Jiri Pirko         2016-07-05  3556  mlxsw_sp_nexthop_group_refresh(struct mlxsw_sp *mlxsw_sp,
a7ff87acd995e3 Jiri Pirko         2016-07-05  3557  			       struct mlxsw_sp_nexthop_group *nh_grp)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3558  {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3559  	struct mlxsw_sp_nexthop_group_info *nhgi = nh_grp->nhgi;
eb789980d0aa6c Ido Schimmel       2017-10-22  3560  	u16 ecmp_size, old_ecmp_size;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3561  	struct mlxsw_sp_nexthop *nh;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3562  	bool offload_change = false;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3563  	u32 adj_index;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3564  	bool old_adj_index_valid;
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3565  	int i, err2, err = 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3566  	u32 old_adj_index;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3567  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3568  	if (!nhgi->gateway) {
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3569  		mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3570  		return 0;
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3571  	}
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3572  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3573  	for (i = 0; i < nhgi->count; i++) {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3574  		nh = &nhgi->nexthops[i];
a7ff87acd995e3 Jiri Pirko         2016-07-05  3575  
56b8a9ed276bc1 Petr Machata       2017-07-31  3576  		if (nh->should_offload != nh->offloaded) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3577  			offload_change = true;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3578  			if (nh->should_offload)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3579  				nh->update = 1;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3580  		}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3581  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3582  	if (!offload_change) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3583  		/* Nothing was added or removed, so no need to reallocate. Just
a7ff87acd995e3 Jiri Pirko         2016-07-05  3584  		 * update MAC on existing adjacency indexes.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3585  		 */
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3586  		err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nhgi, false);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3587  		if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3588  			dev_warn(mlxsw_sp->bus_info->dev, "Failed to update neigh MAC in adjacency table.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3589  			goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3590  		}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3591  		return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3592  	}
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3593  	mlxsw_sp_nexthop_group_normalize(nhgi);
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3594  	if (!nhgi->sum_norm_weight)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3595  		/* No neigh of this group is connected so we just set
a7ff87acd995e3 Jiri Pirko         2016-07-05  3596  		 * the trap and let everthing flow through kernel.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3597  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05 @3598  		goto set_trap;

The comments sort of imply that this is a success path so no error
code necessary.  It's sort of hard to be positive though...

a7ff87acd995e3 Jiri Pirko         2016-07-05  3599  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3600  	ecmp_size = nhgi->sum_norm_weight;
425a08c67317ac Ido Schimmel       2017-10-22  3601  	err = mlxsw_sp_fix_adj_grp_size(mlxsw_sp, &ecmp_size);
425a08c67317ac Ido Schimmel       2017-10-22  3602  	if (err)
425a08c67317ac Ido Schimmel       2017-10-22  3603  		/* No valid allocation size available. */
425a08c67317ac Ido Schimmel       2017-10-22  3604  		goto set_trap;
425a08c67317ac Ido Schimmel       2017-10-22  3605  
4b6b18692aec20 Jiri Pirko         2018-07-08  3606  	err = mlxsw_sp_kvdl_alloc(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
4b6b18692aec20 Jiri Pirko         2018-07-08  3607  				  ecmp_size, &adj_index);
1312444374241f Arkadi Sharshevsky 2017-03-25  3608  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3609  		/* We ran out of KVD linear space, just set the
a7ff87acd995e3 Jiri Pirko         2016-07-05  3610  		 * trap and let everything flow through kernel.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3611  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05  3612  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to allocate KVD linear area for nexthop group.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3613  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3614  	}
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3615  	old_adj_index_valid = nhgi->adj_index_valid;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3616  	old_adj_index = nhgi->adj_index;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3617  	old_ecmp_size = nhgi->ecmp_size;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3618  	nhgi->adj_index_valid = 1;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3619  	nhgi->adj_index = adj_index;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3620  	nhgi->ecmp_size = ecmp_size;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3621  	mlxsw_sp_nexthop_group_rebalance(nhgi);
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3622  	err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nhgi, true);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3623  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3624  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to update neigh MAC in adjacency table.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3625  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3626  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3627  
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3628  	mlxsw_sp_nexthop_group_offload_refresh(mlxsw_sp, nh_grp);
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3629  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3630  	if (!old_adj_index_valid) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3631  		/* The trap was set for fib entries, so we have to call
a7ff87acd995e3 Jiri Pirko         2016-07-05  3632  		 * fib entry update to unset it and use adjacency index.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3633  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05  3634  		err = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3635  		if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3636  			dev_warn(mlxsw_sp->bus_info->dev, "Failed to add adjacency index to fib entries.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3637  			goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3638  		}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3639  		return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3640  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3641  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3642  	err = mlxsw_sp_adj_index_mass_update(mlxsw_sp, nh_grp,
a7ff87acd995e3 Jiri Pirko         2016-07-05  3643  					     old_adj_index, old_ecmp_size);
4b6b18692aec20 Jiri Pirko         2018-07-08  3644  	mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
0304c00546fce7 Jiri Pirko         2018-07-08  3645  			   old_ecmp_size, old_adj_index);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3646  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3647  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to mass-update adjacency index for nexthop group.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3648  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3649  	}
77d964e66cfad0 Ido Schimmel       2017-08-02  3650  
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3651  	return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3652  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3653  set_trap:
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3654  	old_adj_index_valid = nhgi->adj_index_valid;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3655  	nhgi->adj_index_valid = 0;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3656  	for (i = 0; i < nhgi->count; i++) {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3657  		nh = &nhgi->nexthops[i];
a7ff87acd995e3 Jiri Pirko         2016-07-05  3658  		nh->offloaded = 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3659  	}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3660  	err2 = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3661  	if (err2)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3662  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to set traps for fib entries.\n");
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3663  	mlxsw_sp_nexthop_group_offload_refresh(mlxsw_sp, nh_grp);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3664  	if (old_adj_index_valid)
4b6b18692aec20 Jiri Pirko         2018-07-08  3665  		mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3666  				   nhgi->ecmp_size, nhgi->adj_index);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3667  	return err;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3668  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Ido Schimmel <idosch@nvidia.com>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>,
	Jiri Pirko <jiri@nvidia.com>
Subject: drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err'
Date: Fri, 14 May 2021 17:35:00 +0300	[thread overview]
Message-ID: <202105141823.Td2h3Mbi-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   315d99318179b9cd5077ccc9f7f26a164c9fa998
commit: e3ddfb45bacdc623eedea7f7bf9e7879257471d6 mlxsw: spectrum_router: Allow returning errors from mlxsw_sp_nexthop_group_refresh()
config: x86_64-randconfig-m031-20210514 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err'

vim +/err +3598 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3555  static int
a7ff87acd995e3 Jiri Pirko         2016-07-05  3556  mlxsw_sp_nexthop_group_refresh(struct mlxsw_sp *mlxsw_sp,
a7ff87acd995e3 Jiri Pirko         2016-07-05  3557  			       struct mlxsw_sp_nexthop_group *nh_grp)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3558  {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3559  	struct mlxsw_sp_nexthop_group_info *nhgi = nh_grp->nhgi;
eb789980d0aa6c Ido Schimmel       2017-10-22  3560  	u16 ecmp_size, old_ecmp_size;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3561  	struct mlxsw_sp_nexthop *nh;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3562  	bool offload_change = false;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3563  	u32 adj_index;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3564  	bool old_adj_index_valid;
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3565  	int i, err2, err = 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3566  	u32 old_adj_index;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3567  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3568  	if (!nhgi->gateway) {
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3569  		mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3570  		return 0;
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3571  	}
b3e8d1ebad2d04 Ido Schimmel       2017-02-08  3572  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3573  	for (i = 0; i < nhgi->count; i++) {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3574  		nh = &nhgi->nexthops[i];
a7ff87acd995e3 Jiri Pirko         2016-07-05  3575  
56b8a9ed276bc1 Petr Machata       2017-07-31  3576  		if (nh->should_offload != nh->offloaded) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3577  			offload_change = true;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3578  			if (nh->should_offload)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3579  				nh->update = 1;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3580  		}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3581  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3582  	if (!offload_change) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3583  		/* Nothing was added or removed, so no need to reallocate. Just
a7ff87acd995e3 Jiri Pirko         2016-07-05  3584  		 * update MAC on existing adjacency indexes.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3585  		 */
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3586  		err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nhgi, false);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3587  		if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3588  			dev_warn(mlxsw_sp->bus_info->dev, "Failed to update neigh MAC in adjacency table.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3589  			goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3590  		}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3591  		return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3592  	}
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3593  	mlxsw_sp_nexthop_group_normalize(nhgi);
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3594  	if (!nhgi->sum_norm_weight)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3595  		/* No neigh of this group is connected so we just set
a7ff87acd995e3 Jiri Pirko         2016-07-05  3596  		 * the trap and let everthing flow through kernel.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3597  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05 @3598  		goto set_trap;

The comments sort of imply that this is a success path so no error
code necessary.  It's sort of hard to be positive though...

a7ff87acd995e3 Jiri Pirko         2016-07-05  3599  
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3600  	ecmp_size = nhgi->sum_norm_weight;
425a08c67317ac Ido Schimmel       2017-10-22  3601  	err = mlxsw_sp_fix_adj_grp_size(mlxsw_sp, &ecmp_size);
425a08c67317ac Ido Schimmel       2017-10-22  3602  	if (err)
425a08c67317ac Ido Schimmel       2017-10-22  3603  		/* No valid allocation size available. */
425a08c67317ac Ido Schimmel       2017-10-22  3604  		goto set_trap;
425a08c67317ac Ido Schimmel       2017-10-22  3605  
4b6b18692aec20 Jiri Pirko         2018-07-08  3606  	err = mlxsw_sp_kvdl_alloc(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
4b6b18692aec20 Jiri Pirko         2018-07-08  3607  				  ecmp_size, &adj_index);
1312444374241f Arkadi Sharshevsky 2017-03-25  3608  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3609  		/* We ran out of KVD linear space, just set the
a7ff87acd995e3 Jiri Pirko         2016-07-05  3610  		 * trap and let everything flow through kernel.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3611  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05  3612  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to allocate KVD linear area for nexthop group.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3613  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3614  	}
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3615  	old_adj_index_valid = nhgi->adj_index_valid;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3616  	old_adj_index = nhgi->adj_index;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3617  	old_ecmp_size = nhgi->ecmp_size;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3618  	nhgi->adj_index_valid = 1;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3619  	nhgi->adj_index = adj_index;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3620  	nhgi->ecmp_size = ecmp_size;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3621  	mlxsw_sp_nexthop_group_rebalance(nhgi);
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3622  	err = mlxsw_sp_nexthop_group_update(mlxsw_sp, nhgi, true);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3623  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3624  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to update neigh MAC in adjacency table.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3625  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3626  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3627  
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3628  	mlxsw_sp_nexthop_group_offload_refresh(mlxsw_sp, nh_grp);
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3629  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3630  	if (!old_adj_index_valid) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3631  		/* The trap was set for fib entries, so we have to call
a7ff87acd995e3 Jiri Pirko         2016-07-05  3632  		 * fib entry update to unset it and use adjacency index.
a7ff87acd995e3 Jiri Pirko         2016-07-05  3633  		 */
a7ff87acd995e3 Jiri Pirko         2016-07-05  3634  		err = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3635  		if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3636  			dev_warn(mlxsw_sp->bus_info->dev, "Failed to add adjacency index to fib entries.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3637  			goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3638  		}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3639  		return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3640  	}
a7ff87acd995e3 Jiri Pirko         2016-07-05  3641  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3642  	err = mlxsw_sp_adj_index_mass_update(mlxsw_sp, nh_grp,
a7ff87acd995e3 Jiri Pirko         2016-07-05  3643  					     old_adj_index, old_ecmp_size);
4b6b18692aec20 Jiri Pirko         2018-07-08  3644  	mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
0304c00546fce7 Jiri Pirko         2018-07-08  3645  			   old_ecmp_size, old_adj_index);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3646  	if (err) {
a7ff87acd995e3 Jiri Pirko         2016-07-05  3647  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to mass-update adjacency index for nexthop group.\n");
a7ff87acd995e3 Jiri Pirko         2016-07-05  3648  		goto set_trap;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3649  	}
77d964e66cfad0 Ido Schimmel       2017-08-02  3650  
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3651  	return 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3652  
a7ff87acd995e3 Jiri Pirko         2016-07-05  3653  set_trap:
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3654  	old_adj_index_valid = nhgi->adj_index_valid;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3655  	nhgi->adj_index_valid = 0;
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3656  	for (i = 0; i < nhgi->count; i++) {
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3657  		nh = &nhgi->nexthops[i];
a7ff87acd995e3 Jiri Pirko         2016-07-05  3658  		nh->offloaded = 0;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3659  	}
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3660  	err2 = mlxsw_sp_nexthop_fib_entries_update(mlxsw_sp, nh_grp);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3661  	if (err2)
a7ff87acd995e3 Jiri Pirko         2016-07-05  3662  		dev_warn(mlxsw_sp->bus_info->dev, "Failed to set traps for fib entries.\n");
8c5a5b9b9185e5 Ido Schimmel       2020-01-14  3663  	mlxsw_sp_nexthop_group_offload_refresh(mlxsw_sp, nh_grp);
a7ff87acd995e3 Jiri Pirko         2016-07-05  3664  	if (old_adj_index_valid)
4b6b18692aec20 Jiri Pirko         2018-07-08  3665  		mlxsw_sp_kvdl_free(mlxsw_sp, MLXSW_SP_KVDL_ENTRY_TYPE_ADJ,
7f7a417e6a11d7 Ido Schimmel       2020-11-13  3666  				   nhgi->ecmp_size, nhgi->adj_index);
e3ddfb45bacdc6 Ido Schimmel       2020-11-17  3667  	return err;
a7ff87acd995e3 Jiri Pirko         2016-07-05  3668  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org


             reply	other threads:[~2021-05-14 10:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-14 10:58 kernel test robot [this message]
2021-05-14 14:35 ` drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:3598 mlxsw_sp_nexthop_group_refresh() warn: missing error code 'err' Dan Carpenter
2021-05-14 14:35 ` Dan Carpenter
2021-05-15 15:48 ` Ido Schimmel
2021-05-15 15:48   ` Ido Schimmel
2021-05-15 16:53   ` Dan Carpenter
2021-05-15 16:53     ` Dan Carpenter
2021-05-15 16:53     ` Dan Carpenter
2021-05-15 16:56     ` Dan Carpenter
2021-05-15 16:56       ` Dan Carpenter
2021-05-15 16:56       ` Dan Carpenter
2021-05-16 10:28     ` Ido Schimmel
2021-05-16 10:28       ` Ido Schimmel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202105141823.Td2h3Mbi-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.