Thread (10 messages) 10 messages, 4 authors, 2022-11-30

Re: [PATCH v10 3/4] random: introduce generic vDSO getrandom() implementation

flat view

From: Thomas Gleixner <hidden>
Date: 2022-11-30 17:05:58
Also in: linux-crypto, linux-patches, lkml

Possibly related (same subject, not in this thread)

On Wed, Nov 30 2022 at 16:47, Jason A. Donenfeld wrote:
On Wed, Nov 30, 2022 at 4:29 PM Arnd Bergmann [off-list ref] wrote:
quoted
I see what you mean now. However this means your vdso32 copies
are different between 32-bit and 64-bit kernels. If you need to
access one of the fields from assembler, it even ends up
different at source level, which adds a bit of complexity.

Making the interface configuration-independent makes it obvious
to the reader that none of these problems can happen.
Except ideally, these are word-sized accesses (where only compat code
has to suffer I suppose).
While I hate it with a passion, there is actually a valid reason to use
this ugly typedef.

On 32bit architectures which have load/store tearing of 64bit variables
into two 32bit accesses due to ISA limitations, that results in
undefined behaviour when write and read are concurrent. Neither
READ_ONCE() nor WRITE_ONCE help there.

Though that begs the question whether we need a 64bit generation counter
for the VDSO at all.

Thanks,

        tglx



Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help