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

From
Christophe Leroy <hidden>
Date
2024-08-26 08:37:54
Also in
linux-arch, linux-fsdevel, linux-kselftest, linux-mm, linux-trace-kernel, lkml
Reply to
Jason A. Donenfeld, 2024-08-26

Le 26/08/2024 à 10:07, Jason A. Donenfeld a écrit :
On Thu, Aug 22, 2024 at 09:13:10AM +0200, Christophe Leroy wrote:
quoted
  
+#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
Thread (65 messages) 65 messages, 10 authors, last reply 2024-08-30
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help