Re: linux-next: build failure after merge of the nvdimm tree

From: Dan Williams
Date: Mon May 16 2022 - 14:06:19 EST


On Mon, May 16, 2022 at 2:11 AM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> After merging the nvdimm tree, today's linux-next build (i386 defconfig)
> failed like this:
>
> In file included from include/linux/bits.h:6,
> from include/linux/bitops.h:6,
> from include/linux/kernel.h:22,
> from arch/x86/include/asm/percpu.h:27,
> from arch/x86/include/asm/preempt.h:6,
> from include/linux/preempt.h:78,
> from include/linux/spinlock.h:55,
> from include/linux/wait.h:9,
> from include/linux/wait_bit.h:8,
> from include/linux/fs.h:6,
> from include/linux/highmem.h:5,
> from arch/x86/mm/pat/set_memory.c:6:
> arch/x86/mm/pat/set_memory.c: In function 'set_mce_nospec':
> include/vdso/bits.h:7:40: error: left shift count >= width of type [-Werror=shift-count-overflow]
> 7 | #define BIT(nr) (UL(1) << (nr))
> | ^~
> arch/x86/mm/pat/set_memory.c:1941:59: note: in expansion of macro 'BIT'
> 1941 | decoy_addr = (pfn << PAGE_SHIFT) + (PAGE_OFFSET ^ BIT(63));
> | ^~~
>
> Caused by commit
>
> 39702cf7885c ("x86/mce: relocate set{clear}_mce_nospec() functions")
>
> I applied the following patch for today.

Sorry I missed this. I looked for a way to avoid adding ifdefs in the
C file, but it seems that game is already lost in this file, so I'll
fold this change into the resend.

Thanks!