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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Vincenzo,

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

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


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

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

...

...


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>:
...




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




[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux