The syscall number of compat_clock_getres was erroneously set to 247 instead of 264. This causes the vDSO fallback of clock_getres to land on the wrong syscall.
Address the issue fixing the syscall number of compat_clock_getres.
Fixes: 53c489e1dfeb6 ("arm64: compat: Add missing syscall numbers") Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will.deacon@arm.com Cc: stable@vger.kernel.org Signed-off-by: Vincenzo Frascino vincenzo.frascino@arm.com --- arch/arm64/include/asm/unistd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h index 1dd22da1c3a9..803039d504de 100644 --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@ -25,8 +25,8 @@ #define __NR_compat_gettimeofday 78 #define __NR_compat_sigreturn 119 #define __NR_compat_rt_sigreturn 173 -#define __NR_compat_clock_getres 247 #define __NR_compat_clock_gettime 263 +#define __NR_compat_clock_getres 264 #define __NR_compat_clock_gettime64 403 #define __NR_compat_clock_getres_time64 406
On Thu, Mar 19, 2020 at 7:11 AM Vincenzo Frascino vincenzo.frascino@arm.com wrote:
The syscall number of compat_clock_getres was erroneously set to 247 instead of 264. This causes the vDSO fallback of clock_getres to land on the wrong syscall.
Address the issue fixing the syscall number of compat_clock_getres.
Fixes: 53c489e1dfeb6 ("arm64: compat: Add missing syscall numbers") Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will.deacon@arm.com Cc: stable@vger.kernel.org Signed-off-by: Vincenzo Frascino vincenzo.frascino@arm.com
arch/arm64/include/asm/unistd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h index 1dd22da1c3a9..803039d504de 100644 --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@ -25,8 +25,8 @@ #define __NR_compat_gettimeofday 78 #define __NR_compat_sigreturn 119 #define __NR_compat_rt_sigreturn 173 -#define __NR_compat_clock_getres 247 #define __NR_compat_clock_gettime 263 +#define __NR_compat_clock_getres 264
This seems to match up with the glibc sources: https://sourceware.org/git/?p=glibc.git%3Ba=blob%3Bf=sysdeps/unix/sysv/linux... Here's bionic's headers for good measure: https://android.googlesource.com/platform/bionic/+/refs/heads/master/libc/ke...
I assume the _compat_ prefixes are the aarch32 syscall numbers? Otherwise here's the list for aarch64: https://sourceware.org/git/?p=glibc.git%3Ba=blob%3Bf=sysdeps/unix/sysv/linux...
Looks like 247 was __NR_io_cancel; that's a subtle bug I'm glad was noticed!
Reviewed-by: Nick Desaulniers ndesaulniers@google.com
#define __NR_compat_clock_gettime64 403 #define __NR_compat_clock_getres_time64 406
-- 2.25.1
-- You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200319141138.19343-1-v....
Hi Nick,
On 3/19/20 3:39 PM, Nick Desaulniers wrote:
On Thu, Mar 19, 2020 at 7:11 AM Vincenzo Frascino vincenzo.frascino@arm.com wrote:
[...]
This seems to match up with the glibc sources: https://sourceware.org/git/?p=glibc.git%3Ba=blob%3Bf=sysdeps/unix/sysv/linux... Here's bionic's headers for good measure: https://android.googlesource.com/platform/bionic/+/refs/heads/master/libc/ke...
I assume the _compat_ prefixes are the aarch32 syscall numbers? Otherwise here's the list for aarch64: https://sourceware.org/git/?p=glibc.git%3Ba=blob%3Bf=sysdeps/unix/sysv/linux...
Looks like 247 was __NR_io_cancel; that's a subtle bug I'm glad was noticed!
Yes, very subtle, I agree!
Thank you for the information provided.
Reviewed-by: Nick Desaulniers ndesaulniers@google.com
#define __NR_compat_clock_gettime64 403 #define __NR_compat_clock_getres_time64 406
-- 2.25.1
-- You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200319141138.19343-1-v....
On Thu, Mar 19, 2020 at 02:11:38PM +0000, Vincenzo Frascino wrote:
The syscall number of compat_clock_getres was erroneously set to 247 instead of 264. This causes the vDSO fallback of clock_getres to land on the wrong syscall.
Address the issue fixing the syscall number of compat_clock_getres.
Fixes: 53c489e1dfeb6 ("arm64: compat: Add missing syscall numbers") Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will.deacon@arm.com
Will left ARM about 8 months ago IIRC ;).
Cc: stable@vger.kernel.org Signed-off-by: Vincenzo Frascino vincenzo.frascino@arm.com
Acked-by: Catalin Marinas catalin.marinas@arm.com
I think Will could take this as a fix.
Thanks,
Catalin
On Thu, Mar 19, 2020 at 06:12:03PM +0000, Catalin Marinas wrote:
On Thu, Mar 19, 2020 at 02:11:38PM +0000, Vincenzo Frascino wrote:
The syscall number of compat_clock_getres was erroneously set to 247 instead of 264. This causes the vDSO fallback of clock_getres to land on the wrong syscall.
Address the issue fixing the syscall number of compat_clock_getres.
Fixes: 53c489e1dfeb6 ("arm64: compat: Add missing syscall numbers") Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will.deacon@arm.com
Will left ARM about 8 months ago IIRC ;).
Haha, well I certainly tried to!
Cc: stable@vger.kernel.org Signed-off-by: Vincenzo Frascino vincenzo.frascino@arm.com
Acked-by: Catalin Marinas catalin.marinas@arm.com
I think Will could take this as a fix.
For sure, I'm queuing it now.
Will
On 3/19/20 6:12 PM, Catalin Marinas wrote:
On Thu, Mar 19, 2020 at 02:11:38PM +0000, Vincenzo Frascino wrote:
The syscall number of compat_clock_getres was erroneously set to 247 instead of 264. This causes the vDSO fallback of clock_getres to land on the wrong syscall.
Address the issue fixing the syscall number of compat_clock_getres.
Fixes: 53c489e1dfeb6 ("arm64: compat: Add missing syscall numbers") Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will.deacon@arm.com
Will left ARM about 8 months ago IIRC ;).
Nice ;) I typed it manually, it came by "instinct" I guess ;) Sorry Will!
Cc: stable@vger.kernel.org Signed-off-by: Vincenzo Frascino vincenzo.frascino@arm.com
Acked-by: Catalin Marinas catalin.marinas@arm.com
I think Will could take this as a fix.
Thanks,
Catalin
On Thu, Mar 19, 2020 at 02:11:38PM +0000, Vincenzo Frascino wrote:
The syscall number of compat_clock_getres was erroneously set to 247 instead of 264. This causes the vDSO fallback of clock_getres to land on the wrong syscall.
Address the issue fixing the syscall number of compat_clock_getres.
Fixes: 53c489e1dfeb6 ("arm64: compat: Add missing syscall numbers") Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will.deacon@arm.com Cc: stable@vger.kernel.org Signed-off-by: Vincenzo Frascino vincenzo.frascino@arm.com
arch/arm64/include/asm/unistd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h index 1dd22da1c3a9..803039d504de 100644 --- a/arch/arm64/include/asm/unistd.h +++ b/arch/arm64/include/asm/unistd.h @@ -25,8 +25,8 @@ #define __NR_compat_gettimeofday 78 #define __NR_compat_sigreturn 119 #define __NR_compat_rt_sigreturn 173 -#define __NR_compat_clock_getres 247 #define __NR_compat_clock_gettime 263 +#define __NR_compat_clock_getres 264 #define __NR_compat_clock_gettime64 403 #define __NR_compat_clock_getres_time64 406
Ha, what a howler. I'll queue this one as a fix.
Will
linux-stable-mirror@lists.linaro.org