[Y2038] [PATCH 07/23] y2038: vdso: powerpc: avoid timespec references
Christophe Leroy
christophe.leroy at c-s.fr
Fri Nov 22 03:25:29 AEDT 2019
Arnd Bergmann <arnd at arndb.de> a écrit :
> On Wed, Nov 20, 2019 at 11:43 PM Ben Hutchings
> <ben.hutchings at codethink.co.uk> wrote:
>>
>> On Fri, 2019-11-08 at 22:07 +0100, Arnd Bergmann wrote:
>> [...]
>> > --- a/arch/powerpc/kernel/vdso32/gettimeofday.S
>> > +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S
>> > @@ -15,10 +15,8 @@
>> > /* Offset for the low 32-bit part of a field of long type */
>> > #if defined(CONFIG_PPC64) && defined(CONFIG_CPU_BIG_ENDIAN)
>> > #define LOPART 4
>> > -#define TSPEC_TV_SEC TSPC64_TV_SEC+LOPART
>> > #else
>> > #define LOPART 0
>> > -#define TSPEC_TV_SEC TSPC32_TV_SEC
>> > #endif
>> >
>> > .text
>> > @@ -192,7 +190,7 @@ V_FUNCTION_BEGIN(__kernel_time)
>> > bl __get_datapage at local
>> > mr r9, r3 /* datapage ptr in r9 */
>> >
>> > - lwz r3,STAMP_XTIME+TSPEC_TV_SEC(r9)
>> > + lwz r3,STAMP_XTIME_SEC+LOWPART(r9)
>>
>> "LOWPART" should be "LOPART".
>>
>
> Thanks, fixed both instances in a patch on top now. I considered folding
> it into the original patch, but as it's close to the merge window I'd
> rather not rebase it, and this way I also give you credit for
> finding the bug.
Take care, might conflict with
https://github.com/linuxppc/linux/commit/5e381d727fe8834ca5a126f510194a7a4ac6dd3a
Christophe
>
> I'm surprised that the 0-day bot did not report this already.
>
> Thanks fro the careful review!
>
> Arnd
>
> commit 1c11ca7a0584ddede5b8c93057b40d31e8a96d3d (HEAD)
> Author: Arnd Bergmann <arnd at arndb.de>
> Date: Thu Nov 21 15:19:49 2019 +0100
>
> y2038: fix typo in powerpc vdso "LOPART"
>
> The earlier patch introduced a typo, change LOWPART back to
> LOPART.
>
> Fixes: 176ed98c8a76 ("y2038: vdso: powerpc: avoid timespec references")
> Reported-by: Ben Hutchings <ben.hutchings at codethink.co.uk>
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
>
> diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S
> b/arch/powerpc/kernel/vdso32/gettimeofday.S
> index a7180b0f4aa1..c8e6902cb01b 100644
> --- a/arch/powerpc/kernel/vdso32/gettimeofday.S
> +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S
> @@ -190,7 +190,7 @@ V_FUNCTION_BEGIN(__kernel_time)
> bl __get_datapage at local
> mr r9, r3 /* datapage ptr in r9 */
>
> - lwz r3,STAMP_XTIME_SEC+LOWPART(r9)
> + lwz r3,STAMP_XTIME_SEC+LOPART(r9)
>
> cmplwi r11,0 /* check if t is NULL */
> beq 2f
> @@ -266,7 +266,7 @@ __do_get_tspec:
> * as a 32.32 fixed-point number in r3 and r4.
> * Load & add the xtime stamp.
> */
> - lwz r5,STAMP_XTIME_SEC+LOWPART(r9)
> + lwz r5,STAMP_XTIME_SEC+LOPART(r9)
>
> lwz r6,STAMP_SEC_FRAC(r9)
> addc r4,r4,r6
> adde r3,r3,r5
More information about the Linuxppc-dev
mailing list