Message ID | 20191108203435.112759-4-arnd@arndb.de |
---|---|
State | New |
Headers | show |
Series | None | expand |
On Fri, 2019-11-08 at 21:34 +0100, Arnd Bergmann wrote: > On little-endian 32-bit application running on 64-bit kernels, > the current vdso would read the wrong half of the xtime seconds > field. Change it to return the lower half like it does on > big-endian. ppc64le doesn't have 32-bit compat so this is only theoretical. Ben. > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > arch/powerpc/kernel/vdso32/gettimeofday.S | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso32/gettimeofday.S > index becd9f8767ed..4327665ad86f 100644 > --- a/arch/powerpc/kernel/vdso32/gettimeofday.S > +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S > @@ -13,7 +13,7 @@ > #include <asm/unistd.h> > > /* Offset for the low 32-bit part of a field of long type */ > -#ifdef CONFIG_PPC64 > +#if defined(CONFIG_PPC64) && defined(CONFIG_CPU_BIG_ENDIAN) > #define LOPART 4 > #define TSPEC_TV_SEC TSPC64_TV_SEC+LOPART > #else -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom
On Wed, Nov 20, 2019 at 8:13 PM Ben Hutchings <ben.hutchings@codethink.co.uk> wrote: > > On Fri, 2019-11-08 at 21:34 +0100, Arnd Bergmann wrote: > > On little-endian 32-bit application running on 64-bit kernels, > > the current vdso would read the wrong half of the xtime seconds > > field. Change it to return the lower half like it does on > > big-endian. > > ppc64le doesn't have 32-bit compat so this is only theoretical. That is probably true. I only looked at the kernel, which today still supports compat mode for ppc64le, but I saw the patches to disable it, and I don't think anyone has even attempted building user space for it. Arnd
On Wed, 2019-11-20 at 20:35 +0100, Arnd Bergmann wrote: > On Wed, Nov 20, 2019 at 8:13 PM Ben Hutchings > <ben.hutchings@codethink.co.uk> wrote: > > On Fri, 2019-11-08 at 21:34 +0100, Arnd Bergmann wrote: > > > On little-endian 32-bit application running on 64-bit kernels, > > > the current vdso would read the wrong half of the xtime seconds > > > field. Change it to return the lower half like it does on > > > big-endian. > > > > ppc64le doesn't have 32-bit compat so this is only theoretical. > > That is probably true. I only looked at the kernel, which today still > supports compat mode for ppc64le, but I saw the patches to disable > it, and I don't think anyone has even attempted building user space > for it. COMPAT is still enabled for some reason, but VDSO32 isn't (since 4.2). Ben. -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom
On Wed, Nov 20, 2019 at 10:49 PM Ben Hutchings <ben.hutchings@codethink.co.uk> wrote: > On Wed, 2019-11-20 at 20:35 +0100, Arnd Bergmann wrote: > > On Wed, Nov 20, 2019 at 8:13 PM Ben Hutchings > > <ben.hutchings@codethink.co.uk> wrote: > > > On Fri, 2019-11-08 at 21:34 +0100, Arnd Bergmann wrote: > > > > On little-endian 32-bit application running on 64-bit kernels, > > > > the current vdso would read the wrong half of the xtime seconds > > > > field. Change it to return the lower half like it does on > > > > big-endian. > > > > > > ppc64le doesn't have 32-bit compat so this is only theoretical. > > > > That is probably true. I only looked at the kernel, which today still > > supports compat mode for ppc64le, but I saw the patches to disable > > it, and I don't think anyone has even attempted building user space > > for it. > > COMPAT is still enabled for some reason, but VDSO32 isn't (since 4.2). Ok, I had missed that detail. Should I just drop my patch then? Arnd
On Thu, 2019-11-21 at 11:02 +0100, Arnd Bergmann wrote: > On Wed, Nov 20, 2019 at 10:49 PM Ben Hutchings > <ben.hutchings@codethink.co.uk> wrote: > > On Wed, 2019-11-20 at 20:35 +0100, Arnd Bergmann wrote: > > > On Wed, Nov 20, 2019 at 8:13 PM Ben Hutchings > > > <ben.hutchings@codethink.co.uk> wrote: > > > > On Fri, 2019-11-08 at 21:34 +0100, Arnd Bergmann wrote: > > > > > On little-endian 32-bit application running on 64-bit kernels, > > > > > the current vdso would read the wrong half of the xtime seconds > > > > > field. Change it to return the lower half like it does on > > > > > big-endian. > > > > > > > > ppc64le doesn't have 32-bit compat so this is only theoretical. > > > > > > That is probably true. I only looked at the kernel, which today still > > > supports compat mode for ppc64le, but I saw the patches to disable > > > it, and I don't think anyone has even attempted building user space > > > for it. > > > > COMPAT is still enabled for some reason, but VDSO32 isn't (since 4.2). > > Ok, I had missed that detail. Should I just drop my patch then? I think so. Ben. -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom
diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso32/gettimeofday.S index becd9f8767ed..4327665ad86f 100644 --- a/arch/powerpc/kernel/vdso32/gettimeofday.S +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S @@ -13,7 +13,7 @@ #include <asm/unistd.h> /* Offset for the low 32-bit part of a field of long type */ -#ifdef CONFIG_PPC64 +#if defined(CONFIG_PPC64) && defined(CONFIG_CPU_BIG_ENDIAN) #define LOPART 4 #define TSPEC_TV_SEC TSPC64_TV_SEC+LOPART #else
On little-endian 32-bit application running on 64-bit kernels, the current vdso would read the wrong half of the xtime seconds field. Change it to return the lower half like it does on big-endian. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/powerpc/kernel/vdso32/gettimeofday.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.20.0