* [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