On Wed, Nov 20, 2019 at 11:43 PM Ben Hutchings ben.hutchings@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@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.
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@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@codethink.co.uk Signed-off-by: Arnd Bergmann arnd@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@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