tree:
https://github.com/0day-ci/linux/commits/UPDATE-20200221-182711/Peter-Zij...
head: f4dfc8a95f29bf28eda9253734e8f6ffdc0c3d97
commit: f4dfc8a95f29bf28eda9253734e8f6ffdc0c3d97 [22/22] x86/int3: Ensure that
poke_int3_handler() is not sanitized
config: x86_64-randconfig-e002-20200301 (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
git checkout f4dfc8a95f29bf28eda9253734e8f6ffdc0c3d97
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86/kernel/traps.c:15:
arch/x86/kernel/traps.c: In function 'do_int3':
arch/x86/include/asm/preempt.h:24:28: error: inlining failed in call to always_inline
'preempt_count': function attribute mismatch
static __always_inline int preempt_count(void)
^~~~~~~~~~~~~
In file included from arch/x86/include/asm/current.h:5:0,
from include/linux/sched.h:12,
from include/linux/context_tracking.h:5,
from arch/x86/kernel/traps.c:15:
include/linux/preempt.h:102:20: note: called from here
#define in_nmi() (preempt_count() & NMI_MASK)
^~~~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/hardirq.h:83:3: note: in expansion of macro 'BUG_ON'
BUG_ON(in_nmi() == NMI_MASK); \
^~~~~~
include/linux/hardirq.h:83:10: note: in expansion of macro 'in_nmi'
BUG_ON(in_nmi() == NMI_MASK); \
^~~~~~
arch/x86/kernel/traps.c:504:2: note: in expansion of macro 'nmi_enter'
nmi_enter();
^~~~~~~~~
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86/kernel/traps.c:15:
> arch/x86/include/asm/preempt.h:77:29: error: inlining failed in
call to always_inline '__preempt_count_add': function attribute mismatch
static __always_inline void __preempt_count_add(int val)
^~~~~~~~~~~~~~~~~~~
In file included from include/linux/interrupt.h:11:0,
from arch/x86/kernel/traps.c:16:
include/linux/hardirq.h:84:3: note: called from here
__preempt_count_add(NMI_OFFSET + HARDIRQ_OFFSET); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/traps.c:504:2: note: in expansion of macro 'nmi_enter'
nmi_enter();
^~~~~~~~~
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86/kernel/traps.c:15:
arch/x86/include/asm/preempt.h:24:28: error: inlining failed in call to always_inline
'preempt_count': function attribute mismatch
static __always_inline int preempt_count(void)
^~~~~~~~~~~~~
In file included from arch/x86/include/asm/current.h:5:0,
from include/linux/sched.h:12,
from include/linux/context_tracking.h:5,
from arch/x86/kernel/traps.c:15:
include/linux/preempt.h:102:20: note: called from here
#define in_nmi() (preempt_count() & NMI_MASK)
^~~~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/hardirq.h:93:3: note: in expansion of macro 'BUG_ON'
BUG_ON(!in_nmi()); \
^~~~~~
include/linux/hardirq.h:93:11: note: in expansion of macro 'in_nmi'
BUG_ON(!in_nmi()); \
^~~~~~
arch/x86/kernel/traps.c:526:2: note: in expansion of macro 'nmi_exit'
nmi_exit();
^~~~~~~~
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86/kernel/traps.c:15:
> arch/x86/include/asm/preempt.h:82:29: error: inlining failed in
call to always_inline '__preempt_count_sub': function attribute mismatch
static __always_inline void __preempt_count_sub(int val)
^~~~~~~~~~~~~~~~~~~
In file included from include/linux/interrupt.h:11:0,
from arch/x86/kernel/traps.c:16:
include/linux/hardirq.h:94:3: note: called from here
__preempt_count_sub(NMI_OFFSET + HARDIRQ_OFFSET); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/traps.c:526:2: note: in expansion of macro 'nmi_exit'
nmi_exit();
^~~~~~~~
--
arch/x86/kernel/alternative.c: In function 'patch_cmp':
> arch/x86/kernel/alternative.c:977:30: error: inlining failed in
call to always_inline 'text_poke_addr': function attribute mismatch
static __always_inline void *text_poke_addr(struct text_poke_loc *tp)
^~~~~~~~~~~~~~
arch/x86/kernel/alternative.c:986:12: note: called from here
if (key < text_poke_addr(tp))
^~~~~~~~~~~~~~~~~~
> arch/x86/kernel/alternative.c:977:30: error: inlining failed in
call to always_inline 'text_poke_addr': function attribute mismatch
static __always_inline void *text_poke_addr(struct text_poke_loc *tp)
^~~~~~~~~~~~~~
arch/x86/kernel/alternative.c:988:12: note: called from here
if (key > text_poke_addr(tp))
^~~~~~~~~~~~~~~~~~
--
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86//kernel/traps.c:15:
arch/x86//kernel/traps.c: In function 'do_int3':
arch/x86/include/asm/preempt.h:24:28: error: inlining failed in call to always_inline
'preempt_count': function attribute mismatch
static __always_inline int preempt_count(void)
^~~~~~~~~~~~~
In file included from arch/x86/include/asm/current.h:5:0,
from include/linux/sched.h:12,
from include/linux/context_tracking.h:5,
from arch/x86//kernel/traps.c:15:
include/linux/preempt.h:102:20: note: called from here
#define in_nmi() (preempt_count() & NMI_MASK)
^~~~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/hardirq.h:83:3: note: in expansion of macro 'BUG_ON'
BUG_ON(in_nmi() == NMI_MASK); \
^~~~~~
include/linux/hardirq.h:83:10: note: in expansion of macro 'in_nmi'
BUG_ON(in_nmi() == NMI_MASK); \
^~~~~~
arch/x86//kernel/traps.c:504:2: note: in expansion of macro 'nmi_enter'
nmi_enter();
^~~~~~~~~
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86//kernel/traps.c:15:
> arch/x86/include/asm/preempt.h:77:29: error: inlining failed in
call to always_inline '__preempt_count_add': function attribute mismatch
static __always_inline void __preempt_count_add(int val)
^~~~~~~~~~~~~~~~~~~
In file included from include/linux/interrupt.h:11:0,
from arch/x86//kernel/traps.c:16:
include/linux/hardirq.h:84:3: note: called from here
__preempt_count_add(NMI_OFFSET + HARDIRQ_OFFSET); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/traps.c:504:2: note: in expansion of macro 'nmi_enter'
nmi_enter();
^~~~~~~~~
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86//kernel/traps.c:15:
arch/x86/include/asm/preempt.h:24:28: error: inlining failed in call to always_inline
'preempt_count': function attribute mismatch
static __always_inline int preempt_count(void)
^~~~~~~~~~~~~
In file included from arch/x86/include/asm/current.h:5:0,
from include/linux/sched.h:12,
from include/linux/context_tracking.h:5,
from arch/x86//kernel/traps.c:15:
include/linux/preempt.h:102:20: note: called from here
#define in_nmi() (preempt_count() & NMI_MASK)
^~~~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/hardirq.h:93:3: note: in expansion of macro 'BUG_ON'
BUG_ON(!in_nmi()); \
^~~~~~
include/linux/hardirq.h:93:11: note: in expansion of macro 'in_nmi'
BUG_ON(!in_nmi()); \
^~~~~~
arch/x86//kernel/traps.c:526:2: note: in expansion of macro 'nmi_exit'
nmi_exit();
^~~~~~~~
In file included from include/linux/preempt.h:78:0,
from include/linux/rcupdate.h:27,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/context_tracking.h:5,
from arch/x86//kernel/traps.c:15:
> arch/x86/include/asm/preempt.h:82:29: error: inlining failed in
call to always_inline '__preempt_count_sub': function attribute mismatch
static __always_inline void __preempt_count_sub(int val)
^~~~~~~~~~~~~~~~~~~
In file included from include/linux/interrupt.h:11:0,
from arch/x86//kernel/traps.c:16:
include/linux/hardirq.h:94:3: note: called from here
__preempt_count_sub(NMI_OFFSET + HARDIRQ_OFFSET); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86//kernel/traps.c:526:2: note: in expansion of macro 'nmi_exit'
nmi_exit();
^~~~~~~~
vim +/text_poke_addr +977 arch/x86/kernel/alternative.c
c0213b0ac03cf6 Daniel Bristot de Oliveira 2019-06-12 976
ff45b5770bc112 Thomas Gleixner 2020-02-19 @977 static __always_inline void
*text_poke_addr(struct text_poke_loc *tp)
4531ef6a8aaf13 Peter Zijlstra 2019-10-09 978 {
4531ef6a8aaf13 Peter Zijlstra 2019-10-09 979 return _stext +
tp->rel_addr;
4531ef6a8aaf13 Peter Zijlstra 2019-10-09 980 }
4531ef6a8aaf13 Peter Zijlstra 2019-10-09 981
:::::: The code at line 977 was first introduced by commit
:::::: ff45b5770bc1120b7faba9e52ea124b0c59375ec x86/int3: Ensure that poke_int3_handler()
is not traced
:::::: TO: Thomas Gleixner <tglx(a)linutronix.de>
:::::: CC: 0day robot <lkp(a)intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org