Re: [PATCH v2 02/17] vdso: Clean header inclusion in getrandom

Christophe Leroy
2024-08-26T08:37:54Z

Le 26/08/2024 à 10:07, Jason A. Donenfeld a écrit :
> On Thu, Aug 22, 2024 at 09:13:10AM +0200, Christophe Leroy wrote:
>>
>> +#define _PAGE_SIZE (1UL << CONFIG_PAGE_SHIFT)
>> +#define _PAGE_MASK (~(_PAGE_SIZE - 1))
>
> If PAGE_SIZE isn't defined at this point, why not just call it PAGE_SIZE
> instead of _PAGE_SIZE? But if that's the case, why not put the vdso
> definition of PAGE_SIZE into some vdso header included by this file?

It was working ok on powerpc but on x86 I got:

CC arch/x86/entry/vdso/vgetrandom.o
In file included from arch/x86/entry/vdso/vgetrandom.c:7:
arch/x86/entry/vdso/../../../../lib/vdso/getrandom.c:24: error:
"PAGE_SIZE" redefined [-Werror]
24 | #define PAGE_SIZE (1UL << CONFIG_PAGE_SHIFT)
|
In file included from ./arch/x86/include/asm/page.h:9,
from ./arch/x86/include/asm/thread_info.h:12,
from ./include/linux/thread_info.h:60,
from ./include/linux/smp.h:118,
from ./include/linux/alloc_tag.h:14,
from ./include/linux/percpu.h:5,
from ./arch/x86/include/asm/msr.h:15,
from ./arch/x86/include/asm/vdso/gettimeofday.h:19,
from ./include/vdso/datapage.h:164,
from
arch/x86/entry/vdso/../../../../lib/vdso/getrandom.c:7,
from arch/x86/entry/vdso/vgetrandom.c:7:
./arch/x86/include/asm/page_types.h:11: note: this is the location of
the previous definition
11 | #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
|
In file included from arch/x86/entry/vdso/vgetrandom.c:7:
arch/x86/entry/vdso/../../../../lib/vdso/getrandom.c:25: error:
"PAGE_MASK" redefined [-Werror]
25 | #define PAGE_MASK (~(PAGE_SIZE - 1))
|
In file included from ./arch/x86/include/asm/page.h:9,
from ./arch/x86/include/asm/thread_info.h:12,
from ./include/linux/thread_info.h:60,
from ./include/linux/smp.h:118,
from ./include/linux/alloc_tag.h:14,
from ./include/linux/percpu.h:5,
from ./arch/x86/include/asm/msr.h:15,
from ./arch/x86/include/asm/vdso/gettimeofday.h:19,
from ./include/vdso/datapage.h:164,
from
arch/x86/entry/vdso/../../../../lib/vdso/getrandom.c:7,
from arch/x86/entry/vdso/vgetrandom.c:7:
./arch/x86/include/asm/page_types.h:12: note: this is the location of
the previous definition
12 | #define PAGE_MASK (~(PAGE_SIZE-1))
|
cc1: all warnings being treated as errors

Christophe