android_kernel_oneplus_msm8998/arch
Will Deacon e30cb51ecc arm64/vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW
Recently vDSO support for CLOCK_MONOTONIC_RAW was added in
49eea433b326 ("arm64: Add support for CLOCK_MONOTONIC_RAW in
clock_gettime() vDSO"). Noticing that the core timekeeping code
never set tkr_raw.xtime_nsec, the vDSO implementation didn't
bother exposing it via the data page and instead took the
unshifted tk->raw_time.tv_nsec value which was then immediately
shifted left in the vDSO code.

Unfortunately, by accellerating the MONOTONIC_RAW clockid, it
uncovered potential 1ns time inconsistencies caused by the
timekeeping core not handing sub-ns resolution.

Now that the core code has been fixed and is actually setting
tkr_raw.xtime_nsec, we need to take that into account in the
vDSO by adding it to the shifted raw_time value, in order to
fix the user-visible inconsistency. Rather than do that at each
use (and expand the data page in the process), instead perform
the shift/addition operation when populating the data page and
remove the shift from the vDSO code entirely.

[jstultz: minor whitespace tweak, tried to improve commit
 message to make it more clear this fixes a regression]

Reported-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Tested-by: Daniel Mentz <danielmentz@google.com>
Acked-by: Kevin Brodsky <kevin.brodsky@arm.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Stephen Boyd <stephen.boyd@linaro.org>
Cc: "stable #4 . 8+" <stable@vger.kernel.org>
Cc: Miroslav Lichvar <mlichvar@redhat.com>
Link: http://lkml.kernel.org/r/1496965462-20003-4-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Git-commit: dbb236c1ceb697a559e0694ac4c9e7b9131d0b16
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Change-Id: Ifa530498a6cd364ef258691ddf03cd3bc2a860b5
[vivekuma@codeaurora.org: resolve trivial merge conflicts]
Signed-off-by: Vivek Kumar <vivekuma@codeaurora.org>
2018-05-20 22:29:26 -07:00
..
alpha Merge android-4.4.127 (d6bbe8b) into msm-4.4 2018-04-20 12:27:57 +05:30
arc Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
arm Merge "Revert "usb: host: Add support for usb core indexing"" 2018-05-19 14:01:20 -07:00
arm64 arm64/vdso: Fix nsec handling for CLOCK_MONOTONIC_RAW 2018-05-20 22:29:26 -07:00
avr32 Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
blackfin Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
c6x Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
cris BACKPORT: exit_thread: accept a task parameter to be exited 2018-02-05 08:58:29 -08:00
frv Merge android-4.4.127 (d6bbe8b) into msm-4.4 2018-04-20 12:27:57 +05:30
h8300 BACKPORT: exit_thread: remove empty bodies 2018-02-05 08:58:29 -08:00
hexagon Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
ia64 Merge android-4.4.127 (d6bbe8b) into msm-4.4 2018-04-20 12:27:57 +05:30
m32r Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
m68k BACKPORT: exit_thread: remove empty bodies 2018-02-05 08:58:29 -08:00
metag Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
microblaze Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
mips Merge android-4.4.129 (b1c4836) into msm-4.4 2018-04-24 19:07:57 +05:30
mn10300 Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
nios2 BACKPORT: exit_thread: remove empty bodies 2018-02-05 08:58:29 -08:00
openrisc Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
parisc Merge android-4.4.129 (b1c4836) into msm-4.4 2018-04-24 19:07:57 +05:30
powerpc Merge android-4.4.129 (b1c4836) into msm-4.4 2018-04-24 19:07:57 +05:30
s390 Merge android-4.4.131 (d5d6526) into msm-4.4 2018-05-03 15:53:14 +05:30
score Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
sh Merge android-4.4.120 (d63fdf6) into msm-4.4 2018-03-08 17:53:30 +05:30
sparc Merge android-4.4.128 (89904cc) into msm-4.4 2018-04-20 13:05:36 +05:30
tile Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
um Merge android-4.4.129 (b1c4836) into msm-4.4 2018-04-24 19:07:57 +05:30
unicore32 Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
x86 Merge android-4.4.131 (d5d6526) into msm-4.4 2018-05-03 15:53:14 +05:30
xtensa Merge android-4.4.116 (20ddb25) into msm-4.4 2018-03-01 17:18:47 +05:30
.gitignore
Kconfig BACKPORT: exit_thread: remove empty bodies 2018-02-05 08:58:29 -08:00