Re: [PATCH] random: vDSO: Redefine PAGE_SIZE and PAGE_MASK

From
Christophe Leroy <hidden>
Date
2024-08-29 15:01:11
Also in
linux-arch, lkml
Reply to
Vincenzo Frascino, 2024-08-29
Hi Vincenzo,

Le 29/08/2024 à 14:01, Vincenzo Frascino a écrit :
Hi Christophe,

On 27/08/2024 18:14, Christophe Leroy wrote:
quoted

Le 27/08/2024 à 18:05, Vincenzo Frascino a écrit :
quoted
Hi Christophe,

On 27/08/2024 11:49, Christophe Leroy wrote:

...
...
quoted
quoted
Could you please clarify where minmax is needed? I tried to build Jason's master
tree for x86, commenting the header and it seems building fine. I might be
missing something.
Without it:

   VDSO32C arch/powerpc/kernel/vdso/vgetrandom-32.o
In file included from /home/chleroy/linux-powerpc/lib/vdso/getrandom.c:11,
                  from <command-line>:
...
quoted
quoted
quoted
Same for ARRAY_SIZE(->reserved) by the way, easy to do opencode, we also have it
only once
I have a similar issue to figure out why linux/array_size.h and
uapi/linux/random.h are needed. It seems that I can build the object without
them. Could you please explain?
Without linux/array_size.h:

   VDSO32C arch/powerpc/kernel/vdso/vgetrandom-32.o
In file included from <command-line>:
/home/chleroy/linux-powerpc/lib/vdso/getrandom.c: In function
'__cvdso_getrandom_data':
/home/chleroy/linux-powerpc/lib/vdso/getrandom.c:89:40: error: implicit
If this is the case, those headers should be defined for the powerpc
implementation only. The generic implementation should be interpreted as the
minimum common denominator in between all the architectures for what concerns
the headers.
Sorry, I disagree. You can't rely on necessary headers being included indirectly by other arch specific headers. getrandom.c uses ARRAY_SIZE(), it must include the header that defines ARRAY_SIZE().

At the moment, on x86 you get linux/array.h by change through the following chain, that the reason why the build doesn't break:

In file included from ./include/linux/kernel.h:16,
                 from ./include/linux/cpumask.h:11,
                 from ./arch/x86/include/asm/cpumask.h:5,
                 from ./arch/x86/include/asm/msr.h:11,
                 from ./arch/x86/include/asm/vdso/gettimeofday.h:19,
                 from ./include/vdso/datapage.h:164,
                 from arch/x86/entry/vdso/../../../../lib/vdso/getrandom.c:9,

From my point of view you can't expect such a chain from each architecture.

Christophe
Thread (21 messages) 21 messages, 5 authors, last reply 2024-08-29
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