Re: [PATCH v2 05/23] arm64: use asm-generic/mmu_context.h for no-op implementations

From: kernel test robot
Date: Wed Aug 26 2020 - 15:05:26 EST


Hi Nicholas,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.9-rc2 next-20200826]
[cannot apply to sparc/master asm-generic/master sparc-next/master xtensa/for_next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/Use-asm-generic-for-mmu_context-no-op-functions/20200826-225632
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2ac69819ba9e3d8d550bb5d2d2df74848e556812
config: arm64-randconfig-r013-20200826 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from arch/arm64/kernel/process.c:54:
arch/arm64/include/asm/mmu_context.h: In function '__switch_mm':
>> arch/arm64/include/asm/mmu_context.h:226:2: error: too few arguments to function 'check_and_switch_context'
226 | check_and_switch_context(next);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/include/asm/mmu_context.h:177:6: note: declared here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/process.c: At top level:
arch/arm64/kernel/process.c:260:6: warning: no previous prototype for '__show_regs' [-Wmissing-prototypes]
260 | void __show_regs(struct pt_regs *regs)
| ^~~~~~~~~~~
arch/arm64/kernel/process.c:352:5: warning: no previous prototype for 'arch_dup_task_struct' [-Wmissing-prototypes]
352 | int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
| ^~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/process.c:554:41: warning: no previous prototype for '__switch_to' [-Wmissing-prototypes]
554 | __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
| ^~~~~~~~~~~
arch/arm64/kernel/process.c:692:25: warning: no previous prototype for 'arm64_preempt_schedule_irq' [-Wmissing-prototypes]
692 | asmlinkage void __sched arm64_preempt_schedule_irq(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/arm64/include/asm/efi.h:10,
from arch/arm64/kernel/setup.c:50:
arch/arm64/include/asm/mmu_context.h: In function '__switch_mm':
>> arch/arm64/include/asm/mmu_context.h:226:2: error: too few arguments to function 'check_and_switch_context'
226 | check_and_switch_context(next);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/include/asm/mmu_context.h:177:6: note: declared here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/arm64/kernel/cpu_errata.c:111:
arch/arm64/include/asm/mmu_context.h: In function '__switch_mm':
>> arch/arm64/include/asm/mmu_context.h:226:2: error: too few arguments to function 'check_and_switch_context'
226 | check_and_switch_context(next);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/include/asm/mmu_context.h:177:6: note: declared here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/cpu_errata.c: At top level:
arch/arm64/kernel/cpu_errata.c:295:13: warning: no previous prototype for 'arm64_update_smccc_conduit' [-Wmissing-prototypes]
295 | void __init arm64_update_smccc_conduit(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/cpu_errata.c:317:13: warning: no previous prototype for 'arm64_enable_wa2_handling' [-Wmissing-prototypes]
317 | void __init arm64_enable_wa2_handling(struct alt_instr *alt,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/arm64/include/asm/kvm_mmu.h:90,
from arch/arm64/kernel/smp.c:43:
arch/arm64/include/asm/mmu_context.h: In function '__switch_mm':
>> arch/arm64/include/asm/mmu_context.h:226:2: error: too few arguments to function 'check_and_switch_context'
226 | check_and_switch_context(next);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/include/asm/mmu_context.h:177:6: note: declared here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/smp.c: At top level:
arch/arm64/kernel/smp.c:842:6: warning: no previous prototype for 'arch_irq_work_raise' [-Wmissing-prototypes]
842 | void arch_irq_work_raise(void)
| ^~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/smp.c:863:6: warning: no previous prototype for 'panic_smp_self_stop' [-Wmissing-prototypes]
863 | void panic_smp_self_stop(void)
| ^~~~~~~~~~~~~~~~~~~
--
In file included from arch/arm64/kernel/suspend.c:14:
arch/arm64/include/asm/mmu_context.h: In function '__switch_mm':
>> arch/arm64/include/asm/mmu_context.h:226:2: error: too few arguments to function 'check_and_switch_context'
226 | check_and_switch_context(next);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/include/asm/mmu_context.h:177:6: note: declared here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/suspend.c: At top level:
arch/arm64/kernel/suspend.c:32:13: warning: no previous prototype for 'cpu_suspend_set_dbg_restorer' [-Wmissing-prototypes]
32 | void __init cpu_suspend_set_dbg_restorer(int (*hw_bp_restore)(unsigned int))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/arm64/kernel/machine_kexec.c:21:
arch/arm64/include/asm/mmu_context.h: In function '__switch_mm':
>> arch/arm64/include/asm/mmu_context.h:226:2: error: too few arguments to function 'check_and_switch_context'
226 | check_and_switch_context(next);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/include/asm/mmu_context.h:177:6: note: declared here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/machine_kexec.c: At top level:
arch/arm64/kernel/machine_kexec.c:250:6: warning: no previous prototype for 'machine_crash_shutdown' [-Wmissing-prototypes]
250 | void machine_crash_shutdown(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~~
--
In file included from arch/arm64/mm/context.c:16:
arch/arm64/include/asm/mmu_context.h: In function '__switch_mm':
>> arch/arm64/include/asm/mmu_context.h:226:2: error: too few arguments to function 'check_and_switch_context'
226 | check_and_switch_context(next);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/include/asm/mmu_context.h:177:6: note: declared here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/mm/context.c: At top level:
>> arch/arm64/mm/context.c:201:6: error: conflicting types for 'check_and_switch_context'
201 | void check_and_switch_context(struct mm_struct *mm)
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from arch/arm64/mm/context.c:16:
arch/arm64/include/asm/mmu_context.h:177:6: note: previous declaration of 'check_and_switch_context' was here
177 | void check_and_switch_context(struct mm_struct *mm, unsigned int cpu);
| ^~~~~~~~~~~~~~~~~~~~~~~~

# https://github.com/0day-ci/linux/commit/b7168fc5046fd65223bdc51ef411e157939433b6
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nicholas-Piggin/Use-asm-generic-for-mmu_context-no-op-functions/20200826-225632
git checkout b7168fc5046fd65223bdc51ef411e157939433b6
vim +/check_and_switch_context +226 arch/arm64/include/asm/mmu_context.h

d96cc49bff5a77 Will Deacon 2017-12-06 214
39bc88e5e38e9b Catalin Marinas 2016-09-02 215 static inline void __switch_mm(struct mm_struct *next)
39bc88e5e38e9b Catalin Marinas 2016-09-02 216 {
e53f21bce4d35a Catalin Marinas 2015-03-23 217 /*
e53f21bce4d35a Catalin Marinas 2015-03-23 218 * init_mm.pgd does not contain any user mappings and it is always
e53f21bce4d35a Catalin Marinas 2015-03-23 219 * active for kernel addresses in TTBR1. Just set the reserved TTBR0.
e53f21bce4d35a Catalin Marinas 2015-03-23 220 */
e53f21bce4d35a Catalin Marinas 2015-03-23 221 if (next == &init_mm) {
e53f21bce4d35a Catalin Marinas 2015-03-23 222 cpu_set_reserved_ttbr0();
e53f21bce4d35a Catalin Marinas 2015-03-23 223 return;
e53f21bce4d35a Catalin Marinas 2015-03-23 224 }
e53f21bce4d35a Catalin Marinas 2015-03-23 225
c4885bbb3afee8 Pingfan Liu 2020-07-10 @226 check_and_switch_context(next);
b3901d54dc4f73 Catalin Marinas 2012-03-05 227 }
b3901d54dc4f73 Catalin Marinas 2012-03-05 228

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip