Re: [PATCH] x86: fixmap: use CONFIG_NR_CPUS instead of NR_CPUS

From: Randy Dunlap
Date: Thu May 27 2021 - 11:48:14 EST


On 5/27/21 6:53 AM, Mel Gorman wrote:
> On Wed, May 26, 2021 at 10:59:51AM -0700, Randy Dunlap wrote:
>>> - Once early_ioremap.h is gone from io.h, it's potentially possible to
>>> include <linux/threads.h>. More work to resolve dependencies might be
>>> needed though.
>>
>> Yes, my first patch for this (unsent) just included <linux/threads.h>
>> in fixmap.h unconditionally instead of conditionally.
>>
>>> Frankly, I'd prefer if such a low level header dependencies change came in
>>> via the x86 tree so we can properly review it, test it, and keep it
>>> working. Right now I can only guess what is needed here...
>>
>> Sure, makes sense.
>>
>> Mel, do you have any patch suggestions here? re:
>
> For whatever reason, I do not see the same build warnings you report.

Not warnings, build errors. The attached config file should do it for you.
I am testing on today's linux-next.

> Dropping "mm/early_ioremap: add prototype for early_memremap_pgprot_adjust"
> is one option. Alternatively, this should also work and it's a more
> sensible dependency.
>
> diff --git a/include/asm-generic/early_ioremap.h b/include/asm-generic/early_ioremap.h
> index 022f8f908b42..d95c693de640 100644
> --- a/include/asm-generic/early_ioremap.h
> +++ b/include/asm-generic/early_ioremap.h
> @@ -3,7 +3,7 @@
> #define _ASM_EARLY_IOREMAP_H_
>
> #include <linux/types.h>
> -#include <asm/fixmap.h>
> +#include <linux/pgtable.h>
>
> /*
> * early_ioremap() and early_iounmap() are for temporary early boot-time
>

That patch also lots of (different) problems:

../arch/x86/include/asm/pgtable_types.h:58:43: warning: left shift count >= width of type [-Wshift-count-overflow]
../arch/x86/include/asm/pgtable_types.h:69:26: note: in expansion of macro ‘_PAGE_PKEY_BIT0’
../arch/x86/include/asm/pgtable.h:1393:22: note: in expansion of macro ‘_PAGE_PKEY_MASK’
../arch/x86/include/asm/pgtable_types.h:59:43: warning: left shift count >= width of type [-Wshift-count-overflow]
../arch/x86/include/asm/pgtable_types.h:70:5: note: in expansion of macro ‘_PAGE_PKEY_BIT1’
../arch/x86/include/asm/pgtable.h:1393:22: note: in expansion of macro ‘_PAGE_PKEY_MASK’
../arch/x86/include/asm/pgtable_types.h:60:43: warning: left shift count >= width of type [-Wshift-count-overflow]
../arch/x86/include/asm/pgtable_types.h:71:5: note: in expansion of macro ‘_PAGE_PKEY_BIT2’
../arch/x86/include/asm/pgtable.h:1393:22: note: in expansion of macro ‘_PAGE_PKEY_MASK’
../arch/x86/include/asm/pgtable_types.h:61:43: warning: left shift count >= width of type [-Wshift-count-overflow]
../arch/x86/include/asm/pgtable_types.h:72:5: note: in expansion of macro ‘_PAGE_PKEY_BIT3’
../arch/x86/include/asm/pgtable.h:1393:22: note: in expansion of macro ‘_PAGE_PKEY_MASK’
../arch/x86/include/asm/pgtable.h:1393:39: warning: right shift count >= width of type [-Wshift-count-overflow]
../include/linux/pgtable.h:1544:2: error: #error Missing MAX_POSSIBLE_PHYSMEM_BITS definition
make[4]: *** [../scripts/Makefile.build:271: arch/x86/entry/vdso/vdso32/vclock_gettime.o] Error 1
make[3]: *** [../scripts/Makefile.build:532: arch/x86/entry/vdso] Error 2
make[2]: *** [../scripts/Makefile.build:532: arch/x86/entry] Error 2
make[1]: *** [/home/rdunlap/lnx/next/linux-next-20210527/Makefile:1948: arch/x86] Error 2
make: *** [Makefile:222: __sub-make] Error 2



--
~Randy

Attachment: config-r9622.gz
Description: application/gzip