[rcu:dev 110/110] kernel/softirq.c:298: undefined reference to `rcu_softirq_qs'

From: kbuild test robot
Date: Thu Jun 28 2018 - 19:07:43 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
head: 0028a1e4fdbb4263539595da08979d59954d4873
commit: 0028a1e4fdbb4263539595da08979d59954d4873 [110/110] rcu: Apply RCU-bh QSes to RCU-sched and RCU-preempt when safe
config: x86_64-randconfig-i0-201825 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
git checkout 0028a1e4fdbb4263539595da08979d59954d4873
# save the attached .config to linux build tree
make ARCH=x86_64

All errors (new ones prefixed by >>):

kernel/softirq.o: In function `__do_softirq':
>> kernel/softirq.c:298: undefined reference to `rcu_softirq_qs'

vim +298 kernel/softirq.c

240
241 asmlinkage __visible void __softirq_entry __do_softirq(void)
242 {
243 unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
244 unsigned long old_flags = current->flags;
245 int max_restart = MAX_SOFTIRQ_RESTART;
246 struct softirq_action *h;
247 bool in_hardirq;
248 __u32 pending;
249 int softirq_bit;
250
251 /*
252 * Mask out PF_MEMALLOC s current task context is borrowed for the
253 * softirq. A softirq handled such as network RX might set PF_MEMALLOC
254 * again if the socket is related to swap
255 */
256 current->flags &= ~PF_MEMALLOC;
257
258 pending = local_softirq_pending();
259 account_irq_enter_time(current);
260
261 __local_bh_disable_ip(_RET_IP_, SOFTIRQ_OFFSET);
262 in_hardirq = lockdep_softirq_start();
263
264 restart:
265 /* Reset the pending bitmask before enabling irqs */
266 set_softirq_pending(0);
267
268 local_irq_enable();
269
270 h = softirq_vec;
271
272 while ((softirq_bit = ffs(pending))) {
273 unsigned int vec_nr;
274 int prev_count;
275
276 h += softirq_bit - 1;
277
278 vec_nr = h - softirq_vec;
279 prev_count = preempt_count();
280
281 kstat_incr_softirqs_this_cpu(vec_nr);
282
283 trace_softirq_entry(vec_nr);
284 h->action(h);
285 trace_softirq_exit(vec_nr);
286 if (unlikely(prev_count != preempt_count())) {
287 pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
288 vec_nr, softirq_to_name[vec_nr], h->action,
289 prev_count, preempt_count());
290 preempt_count_set(prev_count);
291 }
292 h++;
293 pending >>= softirq_bit;
294 }
295
296 rcu_bh_qs();
297 if (__this_cpu_read(ksoftirqd) == current)
> 298 rcu_softirq_qs();
299 local_irq_disable();
300
301 pending = local_softirq_pending();
302 if (pending) {
303 if (time_before(jiffies, end) && !need_resched() &&
304 --max_restart)
305 goto restart;
306
307 wakeup_softirqd();
308 }
309
310 lockdep_softirq_end(in_hardirq);
311 account_irq_exit_time(current);
312 __local_bh_enable(SOFTIRQ_OFFSET);
313 WARN_ON_ONCE(in_interrupt());
314 current_restore_flags(old_flags, PF_MEMALLOC);
315 }
316

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip