Re: [akpm-mm:mm-unstable 62/89] include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



All,
Not sure if I should reply to this or not (so please point me in the correct direction if needed).

The problem identified here existed before this patch series. The problem manifests because the CRASH_DUMP can be enabled without enabling KEXEC. Or perhaps stated differently, CRASH_DUMP does not select KEXEC, and so they are independent of one another, even though CRASH_DUMP clearly needs KEXEC.

CONFIG_CRASH_CORE=y
CONFIG_KEXEC_CORE=y
# CONFIG_KEXEC is not set
CONFIG_CRASH_DUMP=y

In this patch series, I only sought to preserve existing behavior, which is why this problem shows here as well. This particular problem can be fixed by having CRASH_DUMP select KEXEC. Here is original CRASH_DUMP definition (notice no dependencies listed):

config CRASH_DUMP
    bool "Build kdump crash kernel (EXPERIMENTAL)"
    help
      ...

Here are three possible courses of action:
- do nothing; preserve existing behavior as intended by the series (even though problems like this can occur)
 - fix it with CRASH_DUMP selecting KEXEC to eliminate the problem
 - do not fix it but document the reason why this problem occurs in the commit message

Let me know if there is a preference.
Thank you!
eric


On 7/3/23 01:31, kernel test robot wrote:
Hi Eric,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable
head:   f30ee81787a5abee6c7c72b0fcc30d428319c449
commit: c717f7a0e6b98a52da146e1c09e4c5d92934ca41 [62/89] arm/kexec: refactor for kernel/Kconfig.kexec
config: arm-randconfig-r046-20230703 (https://download.01.org/0day-ci/archive/20230703/202307031404.Mjmo2JK6-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230703/202307031404.Mjmo2JK6-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307031404.Mjmo2JK6-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

    In file included from drivers/misc/pvpanic/pvpanic-mmio.c:12:
include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined
       41 | #error KEXEC_SOURCE_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:45:2: error: #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
       45 | #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:49:2: error: #error KEXEC_CONTROL_MEMORY_LIMIT not defined
       49 | #error KEXEC_CONTROL_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:57:2: error: #error KEXEC_CONTROL_PAGE_SIZE not defined
       57 | #error KEXEC_CONTROL_PAGE_SIZE not defined
          |  ^~~~~
include/linux/kexec.h:61:2: error: #error KEXEC_ARCH not defined
       61 | #error KEXEC_ARCH not defined
          |  ^~~~~
--
    In file included from kernel/panic.c:25:
include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined
       41 | #error KEXEC_SOURCE_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:45:2: error: #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
       45 | #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:49:2: error: #error KEXEC_CONTROL_MEMORY_LIMIT not defined
       49 | #error KEXEC_CONTROL_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:57:2: error: #error KEXEC_CONTROL_PAGE_SIZE not defined
       57 | #error KEXEC_CONTROL_PAGE_SIZE not defined
          |  ^~~~~
include/linux/kexec.h:61:2: error: #error KEXEC_ARCH not defined
       61 | #error KEXEC_ARCH not defined
          |  ^~~~~
    kernel/panic.c: In function '__warn':
    kernel/panic.c:666:17: warning: function '__warn' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
      666 |                 vprintk(args->fmt, args->args);
          |                 ^~~~~~~
--
    In file included from kernel/kexec_core.c:15:
include/linux/kexec.h:41:2: error: #error KEXEC_SOURCE_MEMORY_LIMIT not defined
       41 | #error KEXEC_SOURCE_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:45:2: error: #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
       45 | #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:49:2: error: #error KEXEC_CONTROL_MEMORY_LIMIT not defined
       49 | #error KEXEC_CONTROL_MEMORY_LIMIT not defined
          |  ^~~~~
include/linux/kexec.h:57:2: error: #error KEXEC_CONTROL_PAGE_SIZE not defined
       57 | #error KEXEC_CONTROL_PAGE_SIZE not defined
          |  ^~~~~
include/linux/kexec.h:61:2: error: #error KEXEC_ARCH not defined
       61 | #error KEXEC_ARCH not defined
          |  ^~~~~
    kernel/kexec_core.c: In function 'sanity_check_segment_list':
kernel/kexec_core.c:179:29: error: 'KEXEC_DESTINATION_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CRASH_CONTROL_MEMORY_LIMIT'?
      179 |                 if (mend >= KEXEC_DESTINATION_MEMORY_LIMIT)
          |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                             KEXEC_CRASH_CONTROL_MEMORY_LIMIT
    kernel/kexec_core.c:179:29: note: each undeclared identifier is reported only once for each function it appears in
    kernel/kexec_core.c: In function 'kimage_alloc_normal_control_pages':
kernel/kexec_core.c:388:31: error: 'KEXEC_CONTROL_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CONTROL_MEMORY_GFP'?
      388 |                 if ((epfn >= (KEXEC_CONTROL_MEMORY_LIMIT >> PAGE_SHIFT)) ||
          |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
          |                               KEXEC_CONTROL_MEMORY_GFP
    kernel/kexec_core.c: In function 'kimage_alloc_crash_control_pages':
include/linux/kexec.h:65:42: error: 'KEXEC_CONTROL_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CONTROL_MEMORY_GFP'?
       65 | #define KEXEC_CRASH_CONTROL_MEMORY_LIMIT KEXEC_CONTROL_MEMORY_LIMIT
          |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    kernel/kexec_core.c:454:32: note: in expansion of macro 'KEXEC_CRASH_CONTROL_MEMORY_LIMIT'
      454 |                 if (hole_end > KEXEC_CRASH_CONTROL_MEMORY_LIMIT)
          |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    kernel/kexec_core.c: In function 'kimage_alloc_page':
kernel/kexec_core.c:721:34: error: 'KEXEC_SOURCE_MEMORY_LIMIT' undeclared (first use in this function); did you mean 'KEXEC_CRASH_CONTROL_MEMORY_LIMIT'?
      721 |                                 (KEXEC_SOURCE_MEMORY_LIMIT >> PAGE_SHIFT)) {
          |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
          |                                  KEXEC_CRASH_CONTROL_MEMORY_LIMIT
    kernel/kexec_core.c: In function '__crash_kexec':
kernel/kexec_core.c:1061:25: error: implicit declaration of function 'crash_setup_regs' [-Werror=implicit-function-declaration]
     1061 |                         crash_setup_regs(&fixed_regs, regs);
          |                         ^~~~~~~~~~~~~~~~
    cc1: some warnings being treated as errors


vim +41 include/linux/kexec.h

dc009d92435f99 Eric W. Biederman  2005-06-25  39
dc009d92435f99 Eric W. Biederman  2005-06-25  40  #ifndef KEXEC_SOURCE_MEMORY_LIMIT
dc009d92435f99 Eric W. Biederman  2005-06-25 @41  #error KEXEC_SOURCE_MEMORY_LIMIT not defined
dc009d92435f99 Eric W. Biederman  2005-06-25  42  #endif
dc009d92435f99 Eric W. Biederman  2005-06-25  43
dc009d92435f99 Eric W. Biederman  2005-06-25  44  #ifndef KEXEC_DESTINATION_MEMORY_LIMIT
dc009d92435f99 Eric W. Biederman  2005-06-25 @45  #error KEXEC_DESTINATION_MEMORY_LIMIT not defined
dc009d92435f99 Eric W. Biederman  2005-06-25  46  #endif
dc009d92435f99 Eric W. Biederman  2005-06-25  47
dc009d92435f99 Eric W. Biederman  2005-06-25  48  #ifndef KEXEC_CONTROL_MEMORY_LIMIT
dc009d92435f99 Eric W. Biederman  2005-06-25 @49  #error KEXEC_CONTROL_MEMORY_LIMIT not defined
dc009d92435f99 Eric W. Biederman  2005-06-25  50  #endif
dc009d92435f99 Eric W. Biederman  2005-06-25  51
7e01b5acd88b3f Martin Schwidefsky 2015-04-16  52  #ifndef KEXEC_CONTROL_MEMORY_GFP
dc5cccacf4272d Russell King       2016-08-02  53  #define KEXEC_CONTROL_MEMORY_GFP (GFP_KERNEL | __GFP_NORETRY)
7e01b5acd88b3f Martin Schwidefsky 2015-04-16  54  #endif
7e01b5acd88b3f Martin Schwidefsky 2015-04-16  55
163f6876f5c3ff Huang Ying         2008-08-15  56  #ifndef KEXEC_CONTROL_PAGE_SIZE
163f6876f5c3ff Huang Ying         2008-08-15 @57  #error KEXEC_CONTROL_PAGE_SIZE not defined
dc009d92435f99 Eric W. Biederman  2005-06-25  58  #endif
dc009d92435f99 Eric W. Biederman  2005-06-25  59
dc009d92435f99 Eric W. Biederman  2005-06-25  60  #ifndef KEXEC_ARCH
dc009d92435f99 Eric W. Biederman  2005-06-25 @61  #error KEXEC_ARCH not defined
dc009d92435f99 Eric W. Biederman  2005-06-25  62  #endif
dc009d92435f99 Eric W. Biederman  2005-06-25  63
3d214faea6e4f9 Michael Holzheu    2011-10-30  64  #ifndef KEXEC_CRASH_CONTROL_MEMORY_LIMIT
3d214faea6e4f9 Michael Holzheu    2011-10-30 @65  #define KEXEC_CRASH_CONTROL_MEMORY_LIMIT KEXEC_CONTROL_MEMORY_LIMIT
3d214faea6e4f9 Michael Holzheu    2011-10-30  66  #endif
3d214faea6e4f9 Michael Holzheu    2011-10-30  67

:::::: The code at line 41 was first introduced by commit
:::::: dc009d92435f99498cbc579ce76bf28e837e2c14 [PATCH] kexec: add kexec syscalls

:::::: TO: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux