Messages in this thread | | | Date | Thu, 14 Jul 2022 05:23:19 +0800 | From | kernel test robot <> | Subject | [toke:xdp-queueing-06 11/17] net/core/dev.c:5038: undefined reference to `dev_run_xdp_dequeue' |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git xdp-queueing-06 head: eb15b48f1b85d5986f1c2dbaf68c3c27e93f0c0c commit: 0fb9291256bd9a2e0b9a58ce6755891bcdf21938 [11/17] dev: Add XDP dequeue hook config: x86_64-randconfig-m001 (https://download.01.org/0day-ci/archive/20220714/202207140528.8qEWv6Hl-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git/commit/?id=0fb9291256bd9a2e0b9a58ce6755891bcdf21938 git remote add toke https://git.kernel.org/pub/scm/linux/kernel/git/toke/linux.git git fetch --no-tags toke xdp-queueing-06 git checkout 0fb9291256bd9a2e0b9a58ce6755891bcdf21938 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
ld: net/core/dev.o: in function `net_tx_action': >> net/core/dev.c:5038: undefined reference to `dev_run_xdp_dequeue'
vim +5038 net/core/dev.c
5025 5026 static __latent_entropy void net_tx_action(struct softirq_action *h) 5027 { 5028 struct softnet_data *sd = this_cpu_ptr(&softnet_data); 5029 5030 if (sd->xdp_dequeue) { 5031 struct xdp_dequeue *deq; 5032 5033 local_irq_disable(); 5034 deq = sd->xdp_dequeue; 5035 sd->xdp_dequeue = NULL; 5036 local_irq_enable(); 5037 > 5038 dev_run_xdp_dequeue(deq); 5039 } 5040 5041 if (sd->completion_queue) { 5042 struct sk_buff *clist; 5043 5044 local_irq_disable(); 5045 clist = sd->completion_queue; 5046 sd->completion_queue = NULL; 5047 local_irq_enable(); 5048 5049 while (clist) { 5050 struct sk_buff *skb = clist; 5051 5052 clist = clist->next; 5053 5054 WARN_ON(refcount_read(&skb->users)); 5055 if (likely(get_kfree_skb_cb(skb)->reason == SKB_REASON_CONSUMED)) 5056 trace_consume_skb(skb); 5057 else 5058 trace_kfree_skb(skb, net_tx_action, 5059 SKB_DROP_REASON_NOT_SPECIFIED); 5060 5061 if (skb->fclone != SKB_FCLONE_UNAVAILABLE) 5062 __kfree_skb(skb); 5063 else 5064 __kfree_skb_defer(skb); 5065 } 5066 } 5067 5068 if (sd->output_queue) { 5069 struct Qdisc *head; 5070 5071 local_irq_disable(); 5072 head = sd->output_queue; 5073 sd->output_queue = NULL; 5074 sd->output_queue_tailp = &sd->output_queue; 5075 local_irq_enable(); 5076 5077 rcu_read_lock(); 5078 5079 while (head) { 5080 struct Qdisc *q = head; 5081 spinlock_t *root_lock = NULL; 5082 5083 head = head->next_sched; 5084 5085 /* We need to make sure head->next_sched is read 5086 * before clearing __QDISC_STATE_SCHED 5087 */ 5088 smp_mb__before_atomic(); 5089 5090 if (!(q->flags & TCQ_F_NOLOCK)) { 5091 root_lock = qdisc_lock(q); 5092 spin_lock(root_lock); 5093 } else if (unlikely(test_bit(__QDISC_STATE_DEACTIVATED, 5094 &q->state))) { 5095 /* There is a synchronize_net() between 5096 * STATE_DEACTIVATED flag being set and 5097 * qdisc_reset()/some_qdisc_is_busy() in 5098 * dev_deactivate(), so we can safely bail out 5099 * early here to avoid data race between 5100 * qdisc_deactivate() and some_qdisc_is_busy() 5101 * for lockless qdisc. 5102 */ 5103 clear_bit(__QDISC_STATE_SCHED, &q->state); 5104 continue; 5105 } 5106 5107 clear_bit(__QDISC_STATE_SCHED, &q->state); 5108 qdisc_run(q); 5109 if (root_lock) 5110 spin_unlock(root_lock); 5111 } 5112 5113 rcu_read_unlock(); 5114 } 5115 5116 xfrm_dev_backlog(sd); 5117 } 5118
-- 0-DAY CI Kernel Test Service https://01.org/lkp
| |