Re: [RFC PATCH v2 07/10] lib: vdso: don't use READ_ONCE() in __c_kernel_time()

From: christophe leroy
Date: Tue Dec 24 2019 - 06:12:28 EST




Le 24/12/2019 Ã 02:58, Andy Lutomirski a ÃcritÂ:
On Mon, Dec 23, 2019 at 6:31 AM Christophe Leroy
<christophe.leroy@xxxxxx> wrote:

READ_ONCE() forces the read of the 64 bit value of
vd[CS_HRES_COARSE].basetime[CLOCK_REALTIME].sec allthough
only the lower part is needed.

Seems reasonable and very unlikely to be harmful. That being said,
this function really ought to be considered deprecated -- 32-bit
time_t is insufficient.

Do you get even better code if you move the read into the if statement?

Euh ...

How can you return t when time pointer is NULL if you read t only when time pointer is not NULL ?

Christophe