tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 
WIP.x86/stackguards
head:   f06282dacdf39de480ede989a689743402e1110c
commit: 2e2333a2ed97c5df6bac64f689a1d4695e8e9ec9 [19/29] x86/exceptions: Split 
debug IST stack
config: x86_64-randconfig-x002-201913 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout 2e2333a2ed97c5df6bac64f689a1d4695e8e9ec9
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   In file included from include/asm-generic/percpu.h:7:0,
                    from arch/x86/include/asm/percpu.h:544,
                    from arch/x86/include/asm/preempt.h:6,
                    from include/linux/preempt.h:78,
                    from include/linux/spinlock.h:51,
                    from arch/x86/kernel/nmi.c:13:
   arch/x86/kernel/nmi.c: In function 'is_debug_stack':
   arch/x86/kernel/nmi.c:493:52: error: 'cea_exception_stacks' undeclared 
(first use in this function)
     struct cea_exception_stacks *cs = __this_cpu_read(cea_exception_stacks);
                                                       ^
   include/linux/percpu-defs.h:318:9: note: in definition of macro 
'__pcpu_size_call_return'
     typeof(variable) pscr_ret__;     \
            ^~~~~~~~
   include/linux/percpu-defs.h:446:2: note: in expansion of macro 'raw_cpu_read'
     raw_cpu_read(pcp);      \
     ^~~~~~~~~~~~
   arch/x86/kernel/nmi.c:493:36: note: in expansion of macro '__this_cpu_read'
     struct cea_exception_stacks *cs = __this_cpu_read(cea_exception_stacks);
                                       ^~~~~~~~~~~~~~~
   arch/x86/kernel/nmi.c:493:52: note: each undeclared identifier is reported 
only once for each function it appears in
     struct cea_exception_stacks *cs = __this_cpu_read(cea_exception_stacks);
                                                       ^
   include/linux/percpu-defs.h:318:9: note: in definition of macro 
'__pcpu_size_call_return'
     typeof(variable) pscr_ret__;     \
            ^~~~~~~~
   include/linux/percpu-defs.h:446:2: note: in expansion of macro 'raw_cpu_read'
     raw_cpu_read(pcp);      \
     ^~~~~~~~~~~~
   arch/x86/kernel/nmi.c:493:36: note: in expansion of macro '__this_cpu_read'
     struct cea_exception_stacks *cs = __this_cpu_read(cea_exception_stacks);
                                       ^~~~~~~~~~~~~~~
   include/linux/percpu-defs.h:444:1: warning: initialization makes pointer 
from integer without a cast [-Wint-conversion]
    ({         \
    ^
   arch/x86/kernel/nmi.c:493:36: note: in expansion of macro '__this_cpu_read'
     struct cea_exception_stacks *cs = __this_cpu_read(cea_exception_stacks);
                                       ^~~~~~~~~~~~~~~
   arch/x86/kernel/nmi.c:494:22: error: implicit declaration of function 
'CEA_ESTACK_TOP'; did you mean 'STACK_TOP'? 
[-Werror=implicit-function-declaration]
     unsigned long top = CEA_ESTACK_TOP(cs, DB);
                         ^~~~~~~~~~~~~~
                         STACK_TOP
   arch/x86/kernel/nmi.c:494:41: error: 'DB' undeclared (first use in this 
function)
     unsigned long top = CEA_ESTACK_TOP(cs, DB);
                                            ^~
>> arch/x86/kernel/nmi.c:495:22: error: implicit declaration of function 
>> 'CEA_ESTACK_BOT'; did you mean 'CUR_STACK_SIZE'? 
>> [-Werror=implicit-function-declaration]
     unsigned long bot = CEA_ESTACK_BOT(cs, DB1);
                         ^~~~~~~~~~~~~~
                         CUR_STACK_SIZE
   arch/x86/kernel/nmi.c:495:41: error: 'DB1' undeclared (first use in this 
function); did you mean 'DB'?
     unsigned long bot = CEA_ESTACK_BOT(cs, DB1);
                                            ^~~
                                            DB
   cc1: some warnings being treated as errors

vim +495 arch/x86/kernel/nmi.c

   490  
   491  static bool notrace is_debug_stack(unsigned long addr)
   492  {
   493          struct cea_exception_stacks *cs = 
__this_cpu_read(cea_exception_stacks);
 > 494          unsigned long top = CEA_ESTACK_TOP(cs, DB);
 > 495          unsigned long bot = CEA_ESTACK_BOT(cs, DB1);
   496  
   497          if (__this_cpu_read(debug_stack_usage))
   498                  return true;
   499          /*
   500           * Note, this covers the guard page between DB and DB1 as well 
to
   501           * avoid two checks. But by all means @addr can never point into
   502           * the guard page.
   503           */
   504          return addr > bot && addr < top;
   505  }
   506  NOKPROBE_SYMBOL(is_debug_stack);
   507  #endif
   508  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to