Re: [PATCH v2 7/8] mm/x86: Add missing pud helpers
From: Peter Xu
Date: Tue Jul 09 2024 - 15:45:02 EST
On Sat, Jul 06, 2024 at 05:16:15PM +0800, kernel test robot wrote:
> Hi Peter,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on akpm-mm/mm-everything]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Peter-Xu/mm-dax-Dump-start-address-in-fault-handler/20240705-013812
> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link: https://lore.kernel.org/r/20240703212918.2417843-8-peterx%40redhat.com
> patch subject: [PATCH v2 7/8] mm/x86: Add missing pud helpers
> config: i386-randconfig-011-20240706 (https://download.01.org/0day-ci/archive/20240706/202407061716.WH5NMiL2-lkp@xxxxxxxxx/config)
> compiler: gcc-11 (Ubuntu 11.4.0-4ubuntu1) 11.4.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240706/202407061716.WH5NMiL2-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/202407061716.WH5NMiL2-lkp@xxxxxxxxx/
>
> All errors (new ones prefixed by >>):
>
> In file included from arch/x86/include/asm/atomic.h:8,
> from include/linux/atomic.h:7,
> from include/linux/jump_label.h:256,
> from include/linux/static_key.h:1,
> from arch/x86/include/asm/nospec-branch.h:6,
> from arch/x86/include/asm/irqflags.h:9,
> from include/linux/irqflags.h:18,
> from include/linux/spinlock.h:59,
> from include/linux/mmzone.h:8,
> from include/linux/gfp.h:7,
> from include/linux/mm.h:7,
> from arch/x86/mm/pgtable.c:2:
> In function 'pudp_establish',
> inlined from 'pudp_invalidate' at arch/x86/mm/pgtable.c:649:14:
> >> arch/x86/include/asm/cmpxchg.h:67:25: error: call to '__xchg_wrong_size' declared with attribute error: Bad argument size for xchg
> 67 | __ ## op ## _wrong_size(); \
> | ^~~~~~~~~~~~~~~~~~~~~~~~~
> arch/x86/include/asm/cmpxchg.h:78:33: note: in expansion of macro '__xchg_op'
> 78 | #define arch_xchg(ptr, v) __xchg_op((ptr), (v), xchg, "")
> | ^~~~~~~~~
> include/linux/atomic/atomic-arch-fallback.h:12:18: note: in expansion of macro 'arch_xchg'
> 12 | #define raw_xchg arch_xchg
> | ^~~~~~~~~
> include/linux/atomic/atomic-instrumented.h:4758:9: note: in expansion of macro 'raw_xchg'
> 4758 | raw_xchg(__ai_ptr, __VA_ARGS__); \
> | ^~~~~~~~
> arch/x86/include/asm/pgtable.h:1415:24: note: in expansion of macro 'xchg'
> 1415 | return xchg(pudp, pud);
> | ^~~~
So this is the PAE paging on i386 which indeed didn't get covered in my
testsuite.. where it only covered allno/alldef which were always 2lvls.
I'll fix it when I repost, I'll add PAE into my harness too.
--
Peter Xu