| From: Baoquan He <bhe@redhat.com> |
| Subject: x86: kdump: move crash_low_size_default() code into <asm/crash_core.h> |
| Content-type: text/plain |
| |
| LKP reported below error with 'W=1' and randconfig. |
| ========= |
| >> arch/x86/kernel/setup.c:476:15: warning: no previous prototype for function 'crash_low_size_default' |
| [-Wmissing-prototypes] |
| unsigned long crash_low_size_default(void) |
| ^ |
| arch/x86/kernel/setup.c:476:1: note: declare 'static' if the function is not intended to be used outside of this |
| translation unit |
| unsigned long crash_low_size_default(void) |
| ^ |
| static |
| 1 warning generated. |
| ========= |
| |
| In that config, CONFIG_KEXEC is not set. So all KEXEC/CRASH related |
| configs depending on CONFIG_KEXEC are all unset. Then the declaration |
| in <asm/crash_core.h> won't be seen. Finally the warning is caused. |
| |
| So move the code of crash_low_size_default() into x86's |
| <asm/crash_core.h>, and make it static inline to fix the warning. |
| |
| Link: https://lkml.kernel.org/r/ZQpeAjOmuMJBFw1/@MiWiFi-R3L-srv |
| Signed-off-by: Baoquan He <bhe@redhat.com> |
| Reported-by: kernel test robot <lkp@intel.com> |
| Closes: https://lore.kernel.org/oe-kbuild-all/202309141534.moH4dTcz-lkp@intel.com/ |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| arch/x86/include/asm/crash_core.h | 10 +++++++++- |
| arch/x86/kernel/setup.c | 12 ------------ |
| 2 files changed, 9 insertions(+), 13 deletions(-) |
| |
| --- a/arch/x86/include/asm/crash_core.h~x86-kdump-use-generic-interface-to-simplify-crashkernel-reservation-code-fix |
| +++ a/arch/x86/include/asm/crash_core.h |
| @@ -18,6 +18,7 @@ |
| * no good way to detect the paging mode of the target kernel which will be |
| * loaded for dumping. |
| */ |
| +extern unsigned long swiotlb_size_or_default(void); |
| |
| #ifdef CONFIG_X86_32 |
| # define CRASH_ADDR_LOW_MAX SZ_512M |
| @@ -29,6 +30,13 @@ |
| |
| # define DEFAULT_CRASH_KERNEL_LOW_SIZE crash_low_size_default() |
| |
| -extern unsigned long crash_low_size_default(void); |
| +static inline unsigned long crash_low_size_default(void) |
| +{ |
| +#ifdef CONFIG_X86_64 |
| + return max(swiotlb_size_or_default() + (8UL << 20), 256UL << 20); |
| +#else |
| + return 0; |
| +#endif |
| +} |
| |
| #endif /* _X86_CRASH_CORE_H */ |
| --- a/arch/x86/kernel/setup.c~x86-kdump-use-generic-interface-to-simplify-crashkernel-reservation-code-fix |
| +++ a/arch/x86/kernel/setup.c |
| @@ -466,18 +466,6 @@ static void __init memblock_x86_reserve_ |
| } |
| } |
| |
| -/* |
| - * --------- Crashkernel reservation ------------------------------ |
| - */ |
| -unsigned long crash_low_size_default(void) |
| -{ |
| -#ifdef CONFIG_X86_64 |
| - return max(swiotlb_size_or_default() + (8UL << 20), 256UL << 20); |
| -#else |
| - return 0; |
| -#endif |
| -} |
| - |
| static void __init arch_reserve_crashkernel(void) |
| { |
| unsigned long long crash_base, crash_size, low_size = 0; |
| _ |