tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: d35b2284e966c0bef3e2182a5c5ea02177dd32e4 commit: 9b6a30febddf4857cb4c367f5294bb6118340e30 [4263/4582] net: allow rps/rfs related configs to be switched config: arm64-randconfig-r111-20240609 (https://download.01.org/0day-ci/archive/20240609/202406091927.iEkVpYSa-lkp@xxxxxxxxx/config) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240609/202406091927.iEkVpYSa-lkp@xxxxxxxxx/reproduce) 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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202406091927.iEkVpYSa-lkp@xxxxxxxxx/ Note: the linux-next/master HEAD d35b2284e966c0bef3e2182a5c5ea02177dd32e4 builds fine. It may have been fixed somewhere. All errors (new ones prefixed by >>): net/core/dev.c: In function 'set_rps_cpu': >> net/core/dev.c:4551:17: error: 'head' undeclared (first use in this function) 4551 | head = READ_ONCE(per_cpu(softnet_data, next_cpu).input_queue_head); | ^~~~ net/core/dev.c:4551:17: note: each undeclared identifier is reported only once for each function it appears in vim +/head +4551 net/core/dev.c adc9300e78e609 Eric Dumazet 2011-11-17 4513 c445477d74ab37 Ben Hutchings 2011-01-19 4514 static struct rps_dev_flow * c445477d74ab37 Ben Hutchings 2011-01-19 4515 set_rps_cpu(struct net_device *dev, struct sk_buff *skb, c445477d74ab37 Ben Hutchings 2011-01-19 4516 struct rps_dev_flow *rflow, u16 next_cpu) c445477d74ab37 Ben Hutchings 2011-01-19 4517 { a31196b07f8034 Eric Dumazet 2015-04-25 4518 if (next_cpu < nr_cpu_ids) { c445477d74ab37 Ben Hutchings 2011-01-19 4519 #ifdef CONFIG_RFS_ACCEL c445477d74ab37 Ben Hutchings 2011-01-19 4520 struct netdev_rx_queue *rxqueue; c445477d74ab37 Ben Hutchings 2011-01-19 4521 struct rps_dev_flow_table *flow_table; c445477d74ab37 Ben Hutchings 2011-01-19 4522 struct rps_dev_flow *old_rflow; 84b6823cd96b38 Jason Xing 2024-04-18 4523 u32 flow_id, head; c445477d74ab37 Ben Hutchings 2011-01-19 4524 u16 rxq_index; c445477d74ab37 Ben Hutchings 2011-01-19 4525 int rc; c445477d74ab37 Ben Hutchings 2011-01-19 4526 c445477d74ab37 Ben Hutchings 2011-01-19 4527 /* Should we steer this flow to a different hardware queue? */ 69a19ee60d5d5a Ben Hutchings 2011-02-15 4528 if (!skb_rx_queue_recorded(skb) || !dev->rx_cpu_rmap || 69a19ee60d5d5a Ben Hutchings 2011-02-15 4529 !(dev->features & NETIF_F_NTUPLE)) c445477d74ab37 Ben Hutchings 2011-01-19 4530 goto out; c445477d74ab37 Ben Hutchings 2011-01-19 4531 rxq_index = cpu_rmap_lookup_index(dev->rx_cpu_rmap, next_cpu); c445477d74ab37 Ben Hutchings 2011-01-19 4532 if (rxq_index == skb_get_rx_queue(skb)) c445477d74ab37 Ben Hutchings 2011-01-19 4533 goto out; c445477d74ab37 Ben Hutchings 2011-01-19 4534 c445477d74ab37 Ben Hutchings 2011-01-19 4535 rxqueue = dev->_rx + rxq_index; c445477d74ab37 Ben Hutchings 2011-01-19 4536 flow_table = rcu_dereference(rxqueue->rps_flow_table); c445477d74ab37 Ben Hutchings 2011-01-19 4537 if (!flow_table) c445477d74ab37 Ben Hutchings 2011-01-19 4538 goto out; 61b905da33ae25 Tom Herbert 2014-03-24 4539 flow_id = skb_get_hash(skb) & flow_table->mask; c445477d74ab37 Ben Hutchings 2011-01-19 4540 rc = dev->netdev_ops->ndo_rx_flow_steer(dev, skb, c445477d74ab37 Ben Hutchings 2011-01-19 4541 rxq_index, flow_id); c445477d74ab37 Ben Hutchings 2011-01-19 4542 if (rc < 0) c445477d74ab37 Ben Hutchings 2011-01-19 4543 goto out; c445477d74ab37 Ben Hutchings 2011-01-19 4544 old_rflow = rflow; c445477d74ab37 Ben Hutchings 2011-01-19 4545 rflow = &flow_table->flows[flow_id]; f00bf5dc83202f Jason Xing 2024-04-18 4546 WRITE_ONCE(rflow->filter, rc); f00bf5dc83202f Jason Xing 2024-04-18 4547 if (old_rflow->filter == rc) f00bf5dc83202f Jason Xing 2024-04-18 4548 WRITE_ONCE(old_rflow->filter, RPS_NO_FILTER); c445477d74ab37 Ben Hutchings 2011-01-19 4549 out: c445477d74ab37 Ben Hutchings 2011-01-19 4550 #endif 84b6823cd96b38 Jason Xing 2024-04-18 @4551 head = READ_ONCE(per_cpu(softnet_data, next_cpu).input_queue_head); 84b6823cd96b38 Jason Xing 2024-04-18 4552 rps_input_queue_tail_save(&rflow->last_qtail, head); c445477d74ab37 Ben Hutchings 2011-01-19 4553 } c445477d74ab37 Ben Hutchings 2011-01-19 4554 f7b60cce847036 Jason Xing 2024-04-18 4555 WRITE_ONCE(rflow->cpu, next_cpu); c445477d74ab37 Ben Hutchings 2011-01-19 4556 return rflow; c445477d74ab37 Ben Hutchings 2011-01-19 4557 } c445477d74ab37 Ben Hutchings 2011-01-19 4558 :::::: The code at line 4551 was first introduced by commit :::::: 84b6823cd96b38c40b3b30beabbfa48d92990e1a net: rps: protect last_qtail with rps_input_queue_tail_save() helper :::::: TO: Jason Xing <kernelxing@xxxxxxxxxxx> :::::: CC: David S. Miller <davem@xxxxxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki