Intel-Wired-Lan Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-wired-lan] [tnguy-next-queue:dev-queue 41/61] drivers/net/ethernet/intel/idpf/idpf_ethtool.c:252 idpf_add_flow_steer() warn: missing error code 'err'
@ 2025-12-05  7:23 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2025-12-05  7:23 UTC (permalink / raw)
  To: oe-kbuild
  Cc: Larysa Zaremba, Aleksandr Loktionov, Tony Nguyen, oe-kbuild-all,
	Intel Wired LAN

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git dev-queue
head:   b8ceeacaba537294e383161a87e09b939ecd7d1d
commit: f017eeeb027274f63af4d541a315235abf2bc5e9 [41/61] idpf: refactor idpf to use libie control queues
config: s390-randconfig-r072-20251204 (https://download.01.org/0day-ci/archive/20251205/202512050309.Jd0nVLZj-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)

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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202512050309.Jd0nVLZj-lkp@intel.com/

smatch warnings:
drivers/net/ethernet/intel/idpf/idpf_ethtool.c:252 idpf_add_flow_steer() warn: missing error code 'err'

vim +/err +252 drivers/net/ethernet/intel/idpf/idpf_ethtool.c

ada3e24b84a097 Ahmed Zaki            2025-04-23  164  static int idpf_add_flow_steer(struct net_device *netdev,
ada3e24b84a097 Ahmed Zaki            2025-04-23  165  			       struct ethtool_rxnfc *cmd)
ada3e24b84a097 Ahmed Zaki            2025-04-23  166  {
ada3e24b84a097 Ahmed Zaki            2025-04-23  167  	struct idpf_fsteer_fltr *fltr, *parent = NULL, *f;
ada3e24b84a097 Ahmed Zaki            2025-04-23  168  	struct idpf_netdev_priv *np = netdev_priv(netdev);
ada3e24b84a097 Ahmed Zaki            2025-04-23  169  	struct idpf_vport_user_config_data *user_config;
ada3e24b84a097 Ahmed Zaki            2025-04-23  170  	struct ethtool_rx_flow_spec *fsp = &cmd->fs;
ada3e24b84a097 Ahmed Zaki            2025-04-23  171  	struct virtchnl2_flow_rule_add_del *rule;
ada3e24b84a097 Ahmed Zaki            2025-04-23  172  	struct idpf_vport_config *vport_config;
ada3e24b84a097 Ahmed Zaki            2025-04-23  173  	struct virtchnl2_rule_action_set *acts;
ada3e24b84a097 Ahmed Zaki            2025-04-23  174  	struct virtchnl2_flow_rule_info *info;
ada3e24b84a097 Ahmed Zaki            2025-04-23  175  	struct virtchnl2_proto_hdrs *hdrs;
ada3e24b84a097 Ahmed Zaki            2025-04-23  176  	struct idpf_vport *vport;
ada3e24b84a097 Ahmed Zaki            2025-04-23  177  	u32 flow_type, q_index;
ada3e24b84a097 Ahmed Zaki            2025-04-23  178  	u16 num_rxq;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  179  	int err = 0;
ada3e24b84a097 Ahmed Zaki            2025-04-23  180  
ada3e24b84a097 Ahmed Zaki            2025-04-23  181  	vport = idpf_netdev_to_vport(netdev);
ada3e24b84a097 Ahmed Zaki            2025-04-23  182  	vport_config = vport->adapter->vport_config[np->vport_idx];
ada3e24b84a097 Ahmed Zaki            2025-04-23  183  	user_config = &vport_config->user_config;
ada3e24b84a097 Ahmed Zaki            2025-04-23  184  	num_rxq = user_config->num_req_rx_qs;
ada3e24b84a097 Ahmed Zaki            2025-04-23  185  
ada3e24b84a097 Ahmed Zaki            2025-04-23  186  	flow_type = fsp->flow_type & ~(FLOW_EXT | FLOW_MAC_EXT | FLOW_RSS);
ada3e24b84a097 Ahmed Zaki            2025-04-23  187  	if (flow_type != fsp->flow_type)
ada3e24b84a097 Ahmed Zaki            2025-04-23  188  		return -EINVAL;
ada3e24b84a097 Ahmed Zaki            2025-04-23  189  
ada3e24b84a097 Ahmed Zaki            2025-04-23  190  	if (!idpf_sideband_action_ena(vport, fsp) ||
ada3e24b84a097 Ahmed Zaki            2025-04-23  191  	    !idpf_sideband_flow_type_ena(vport, flow_type))
ada3e24b84a097 Ahmed Zaki            2025-04-23  192  		return -EOPNOTSUPP;
ada3e24b84a097 Ahmed Zaki            2025-04-23  193  
ada3e24b84a097 Ahmed Zaki            2025-04-23  194  	if (user_config->num_fsteer_fltrs > idpf_fsteer_max_rules(vport))
ada3e24b84a097 Ahmed Zaki            2025-04-23  195  		return -ENOSPC;
ada3e24b84a097 Ahmed Zaki            2025-04-23  196  
ada3e24b84a097 Ahmed Zaki            2025-04-23  197  	q_index = fsp->ring_cookie;
ada3e24b84a097 Ahmed Zaki            2025-04-23  198  	if (q_index >= num_rxq)
ada3e24b84a097 Ahmed Zaki            2025-04-23  199  		return -EINVAL;
ada3e24b84a097 Ahmed Zaki            2025-04-23  200  
ada3e24b84a097 Ahmed Zaki            2025-04-23  201  	rule = kzalloc(struct_size(rule, rule_info, 1), GFP_KERNEL);
ada3e24b84a097 Ahmed Zaki            2025-04-23  202  	if (!rule)
ada3e24b84a097 Ahmed Zaki            2025-04-23  203  		return -ENOMEM;
ada3e24b84a097 Ahmed Zaki            2025-04-23  204  
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  205  	fltr = kzalloc(sizeof(*fltr), GFP_KERNEL);
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  206  	if (!fltr) {
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  207  		err = -ENOMEM;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  208  		goto out_free_rule;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  209  	}
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  210  
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  211  	/* detect duplicate entry and reject before adding rules */
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  212  	spin_lock_bh(&vport_config->flow_steer_list_lock);
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  213  	list_for_each_entry(f, &user_config->flow_steer_list, list) {
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  214  		if (f->fs.location == fsp->location) {
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  215  			err = -EEXIST;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  216  			break;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  217  		}
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  218  
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  219  		if (f->fs.location > fsp->location)
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  220  			break;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  221  		parent = f;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  222  	}
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  223  	spin_unlock_bh(&vport_config->flow_steer_list_lock);
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  224  
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  225  	if (err)
f017eeeb027274 Pavan Kumar Linga     2025-11-17  226  		goto out_free_fltr;
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  227  
ada3e24b84a097 Ahmed Zaki            2025-04-23  228  	rule->vport_id = cpu_to_le32(vport->vport_id);
ada3e24b84a097 Ahmed Zaki            2025-04-23  229  	rule->count = cpu_to_le32(1);
ada3e24b84a097 Ahmed Zaki            2025-04-23  230  	info = &rule->rule_info[0];
ada3e24b84a097 Ahmed Zaki            2025-04-23  231  	info->rule_id = cpu_to_le32(fsp->location);
ada3e24b84a097 Ahmed Zaki            2025-04-23  232  
ada3e24b84a097 Ahmed Zaki            2025-04-23  233  	hdrs = &info->rule_cfg.proto_hdrs;
ada3e24b84a097 Ahmed Zaki            2025-04-23  234  	hdrs->tunnel_level = 0;
ada3e24b84a097 Ahmed Zaki            2025-04-23  235  	hdrs->count = cpu_to_le32(2);
ada3e24b84a097 Ahmed Zaki            2025-04-23  236  
ada3e24b84a097 Ahmed Zaki            2025-04-23  237  	acts = &info->rule_cfg.action_set;
ada3e24b84a097 Ahmed Zaki            2025-04-23  238  	acts->count = cpu_to_le32(1);
ada3e24b84a097 Ahmed Zaki            2025-04-23  239  	acts->actions[0].action_type = cpu_to_le32(VIRTCHNL2_ACTION_QUEUE);
ada3e24b84a097 Ahmed Zaki            2025-04-23  240  	acts->actions[0].act_conf.q_id = cpu_to_le32(q_index);
ada3e24b84a097 Ahmed Zaki            2025-04-23  241  
ada3e24b84a097 Ahmed Zaki            2025-04-23  242  	switch (flow_type) {
ada3e24b84a097 Ahmed Zaki            2025-04-23  243  	case UDP_V4_FLOW:
ada3e24b84a097 Ahmed Zaki            2025-04-23  244  		idpf_fsteer_fill_ipv4(hdrs, fsp);
ada3e24b84a097 Ahmed Zaki            2025-04-23  245  		idpf_fsteer_fill_udp(hdrs, fsp, true);
ada3e24b84a097 Ahmed Zaki            2025-04-23  246  		break;
ada3e24b84a097 Ahmed Zaki            2025-04-23  247  	case TCP_V4_FLOW:
ada3e24b84a097 Ahmed Zaki            2025-04-23  248  		idpf_fsteer_fill_ipv4(hdrs, fsp);
ada3e24b84a097 Ahmed Zaki            2025-04-23  249  		idpf_fsteer_fill_tcp(hdrs, fsp, true);
ada3e24b84a097 Ahmed Zaki            2025-04-23  250  		break;
02cbfba1add5bd Alan Brady            2023-08-07  251  	default:
f017eeeb027274 Pavan Kumar Linga     2025-11-17 @252  		goto out_free_fltr;

err = -EINVAL, plz.

ada3e24b84a097 Ahmed Zaki            2025-04-23  253  	}
ada3e24b84a097 Ahmed Zaki            2025-04-23  254  
ada3e24b84a097 Ahmed Zaki            2025-04-23  255  	err = idpf_add_del_fsteer_filters(vport->adapter, rule,
ada3e24b84a097 Ahmed Zaki            2025-04-23  256  					  VIRTCHNL2_OP_ADD_FLOW_RULE);
f017eeeb027274 Pavan Kumar Linga     2025-11-17  257  	if (err || info->status != cpu_to_le32(VIRTCHNL2_FLOW_RULE_SUCCESS)) {
f017eeeb027274 Pavan Kumar Linga     2025-11-17  258  		/* virtchnl2 rule is already consumed */
f017eeeb027274 Pavan Kumar Linga     2025-11-17  259  		kfree(fltr);
f017eeeb027274 Pavan Kumar Linga     2025-11-17  260  		return err;

Should this be:

	return err ?: -EINVAL;

ada3e24b84a097 Ahmed Zaki            2025-04-23  261  	}
ada3e24b84a097 Ahmed Zaki            2025-04-23  262  
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  263  	/* Save a copy of the user's flow spec so ethtool can later retrieve it */
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  264  	fltr->fs = *fsp;
ada3e24b84a097 Ahmed Zaki            2025-04-23  265  
61022f50353bc8 Sreedevi Joshi        2025-09-30  266  	spin_lock_bh(&vport_config->flow_steer_list_lock);
ada3e24b84a097 Ahmed Zaki            2025-04-23  267  	parent ? list_add(&fltr->list, &parent->list) :
ada3e24b84a097 Ahmed Zaki            2025-04-23  268  		 list_add(&fltr->list, &user_config->flow_steer_list);
ada3e24b84a097 Ahmed Zaki            2025-04-23  269  
ada3e24b84a097 Ahmed Zaki            2025-04-23  270  	user_config->num_fsteer_fltrs++;
61022f50353bc8 Sreedevi Joshi        2025-09-30  271  	spin_unlock_bh(&vport_config->flow_steer_list_lock);
02cbfba1add5bd Alan Brady            2023-08-07  272  
f017eeeb027274 Pavan Kumar Linga     2025-11-17  273  	return 0;
f017eeeb027274 Pavan Kumar Linga     2025-11-17  274  
f017eeeb027274 Pavan Kumar Linga     2025-11-17  275  out_free_fltr:
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  276  	kfree(fltr);
f19069e5da487f Erik Gabriel Carrillo 2025-09-30  277  out_free_rule:
ada3e24b84a097 Ahmed Zaki            2025-04-23  278  	kfree(rule);
ada3e24b84a097 Ahmed Zaki            2025-04-23  279  	return err;
ada3e24b84a097 Ahmed Zaki            2025-04-23  280  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-12-05  7:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-05  7:23 [Intel-wired-lan] [tnguy-next-queue:dev-queue 41/61] drivers/net/ethernet/intel/idpf/idpf_ethtool.c:252 idpf_add_flow_steer() warn: missing error code 'err' Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox