linux/arch
Mark Rutland d1f58c31ae UPSTREAM: arm64: vdso: fix clock_getres for 4GiB-aligned res
(cherry pick from commit c80ed088a5)

The vdso tries to check for a NULL res pointer in __kernel_clock_getres,
but only checks the lower 32 bits as is uses CBZ on the W register the
res pointer is held in.

Thus, if the res pointer happened to be aligned to a 4GiB boundary, we'd
spuriously skip storing the timespec to it, while returning a zero error code
to the caller.

Prevent this by checking the whole pointer, using CBZ on the X register
the res pointer is held in.

Fixes: 9031fefde6 ("arm64: VDSO support")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reported-by: Andrew Pinski <apinski@cavium.com>
Reported-by: Mark Salyzyn <salyzyn@android.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Bug: 20045882
Bug: 63737556
Change-Id: Iab5449d8515f9d655e792e3d7ce43a8f016fa2a0
2018-01-22 13:15:43 +05:30
..
alpha Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
arc Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
arm Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
arm64 UPSTREAM: arm64: vdso: fix clock_getres for 4GiB-aligned res 2018-01-22 13:15:43 +05:30
avr32 UPSTREAM: module: use a structure to encapsulate layout. 2017-08-11 19:31:04 +05:30
blackfin pinctrl: adi2: Fix Kconfig build problem 2017-12-20 10:05:00 +01:00
c6x c6x/ptrace: Remove useless PTRACE_SETREGSET implementation 2017-03-31 09:49:53 +02:00
cris
frv mm: larger stack guard gap, between vmas 2017-06-26 07:13:11 +02:00
h8300 h8300/ptrace: Fix incorrect register transfer count 2017-03-31 09:49:53 +02:00
hexagon
ia64 UPSTREAM: kbuild: Consolidate header generation from ASM offset information 2017-11-20 21:15:59 +05:30
m32r
m68k
metag UPSTREAM: module: use a structure to encapsulate layout. 2017-08-11 19:31:04 +05:30
microblaze
mips Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
mn10300 UPSTREAM: Clarify naming of thread info/stack allocators 2017-08-11 19:31:04 +05:30
nios2 nios2: reserve boot memory for device tree 2017-04-12 12:38:34 +02:00
openrisc openrisc: fix issue handling 8 byte get_user calls 2017-12-20 10:04:54 +01:00
parisc Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
powerpc Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
s390 Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
score
sh serial: sh-sci: Fix register offsets for the IRDA serial port 2017-11-15 17:13:10 +01:00
sparc Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2017-12-19 13:08:40 +08:00
tile UPSTREAM: Clarify naming of thread info/stack allocators 2017-08-11 19:31:04 +05:30
um
unicore32
x86 Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android 2018-01-22 11:50:22 +05:30
xtensa mm: larger stack guard gap, between vmas 2017-06-26 07:13:11 +02:00
.gitignore
Kconfig UPSTREAM: Clarify naming of thread info/stack allocators 2017-08-11 19:31:04 +05:30