tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/next head: 45723bfaf78f78e83e0949895a173ce08cb6ac47 commit: 45723bfaf78f78e83e0949895a173ce08cb6ac47 [38/38] rcu: Consolidate rcu_nmi_{enter,exit}() into rcu_irq_{enter,exit}() config: x86_64-acpi-redef (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: git checkout 45723bfaf78f78e83e0949895a173ce08cb6ac47 # save the attached .config to linux build tree make ARCH=x86_64
All errors (new ones prefixed by >>):
arch/x86//kernel/traps.c: In function 'ist_enter':
>> arch/x86//kernel/traps.c:105:3: error: implicit declaration of function
>> 'rcu_nmi_enter' [-Werror=implicit-function-declaration]
rcu_nmi_enter();
^~~~~~~~~~~~~
arch/x86//kernel/traps.c: In function 'ist_exit':
>> arch/x86//kernel/traps.c:119:3: error: implicit declaration of function
>> 'rcu_nmi_exit' [-Werror=implicit-function-declaration]
rcu_nmi_exit();
^~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/rcu_nmi_enter +105 arch/x86//kernel/traps.c
be716615 Thomas Gleixner 2009-01-13 87
aaee8c3c Andy Lutomirski 2016-05-24 88 /*
aaee8c3c Andy Lutomirski 2016-05-24 89 * In IST context, we explicitly
disable preemption. This serves two
aaee8c3c Andy Lutomirski 2016-05-24 90 * purposes: it makes it much less
likely that we would accidentally
aaee8c3c Andy Lutomirski 2016-05-24 91 * schedule in IST context and it
will force a warning if we somehow
aaee8c3c Andy Lutomirski 2016-05-24 92 * manage to schedule by accident.
aaee8c3c Andy Lutomirski 2016-05-24 93 */
8c84014f Andy Lutomirski 2015-07-03 94 void ist_enter(struct pt_regs *regs)
95927475 Andy Lutomirski 2014-11-19 95 {
f39b6f0e Andy Lutomirski 2015-03-18 96 if (user_mode(regs)) {
5778077d Linus Torvalds 2015-09-01 97
RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU");
95927475 Andy Lutomirski 2014-11-19 98 } else {
95927475 Andy Lutomirski 2014-11-19 99 /*
95927475 Andy Lutomirski 2014-11-19 100 * We might have
interrupted pretty much anything. In
95927475 Andy Lutomirski 2014-11-19 101 * fact, if we're a
machine check, we can even interrupt
95927475 Andy Lutomirski 2014-11-19 102 * NMI processing. We
don't want in_nmi() to return true,
95927475 Andy Lutomirski 2014-11-19 103 * but we need to
notify RCU.
95927475 Andy Lutomirski 2014-11-19 104 */
95927475 Andy Lutomirski 2014-11-19 @105 rcu_nmi_enter();
95927475 Andy Lutomirski 2014-11-19 106 }
b926e6f6 Andy Lutomirski 2015-01-31 107
aaee8c3c Andy Lutomirski 2016-05-24 108 preempt_disable();
b926e6f6 Andy Lutomirski 2015-01-31 109
b926e6f6 Andy Lutomirski 2015-01-31 110 /* This code is a bit fragile.
Test it. */
f78f5b90 Paul E. McKenney 2015-06-18 111
RCU_LOCKDEP_WARN(!rcu_is_watching(), "ist_enter didn't work");
95927475 Andy Lutomirski 2014-11-19 112 }
95927475 Andy Lutomirski 2014-11-19 113
8c84014f Andy Lutomirski 2015-07-03 114 void ist_exit(struct pt_regs *regs)
95927475 Andy Lutomirski 2014-11-19 115 {
aaee8c3c Andy Lutomirski 2016-05-24 116 preempt_enable_no_resched();
95927475 Andy Lutomirski 2014-11-19 117
8c84014f Andy Lutomirski 2015-07-03 118 if (!user_mode(regs))
95927475 Andy Lutomirski 2014-11-19 @119 rcu_nmi_exit();
95927475 Andy Lutomirski 2014-11-19 120 }
95927475 Andy Lutomirski 2014-11-19 121
:::::: The code at line 105 was first introduced by commit
:::::: 959274753857efe9c5f1ba35fe727f51e9aa128d x86, traps: Track entry into
and exit from IST context
:::::: TO: Andy Lutomirski <[email protected]>
:::::: CC: Andy Lutomirski <[email protected]>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip

