1
0
Fork 0
remarkable-linux/arch/arm64/kernel
Nathan Lynch 878854a374 arm64: VDSO: fix coarse clock monotonicity regression
Since 906c55579a ("timekeeping: Copy the shadow-timekeeper over the
real timekeeper last") it has become possible on arm64 to:

- Obtain a CLOCK_MONOTONIC_COARSE or CLOCK_REALTIME_COARSE timestamp
  via syscall.
- Subsequently obtain a timestamp for the same clock ID via VDSO which
  predates the first timestamp (by one jiffy).

This is because arm64's update_vsyscall is deriving the coarse time
using the __current_kernel_time interface, when it should really be
using the timekeeper object provided to it by the timekeeping core.
It happened to work before only because __current_kernel_time would
access the same timekeeper object which had been passed to
update_vsyscall.  This is no longer the case.

Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2015-08-10 15:37:45 +01:00
..
vdso arm64: vdso: work-around broken ELF toolchains in Makefile 2015-06-19 14:54:10 +01:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
Makefile Initial ACPI support for arm64: 2015-04-24 08:23:45 -07:00
acpi.c arm64: psci: remove ACPI coupling 2015-05-27 13:22:24 +01:00
alternative.c arm64: alternative: Allow immediate branch as alternative instruction 2015-06-05 10:38:53 +01:00
arm64ksyms.c arm64: Add ftrace support 2014-05-29 09:08:08 +01:00
armv8_deprecated.c arm64: Emulate SETEND for AArch32 tasks 2015-01-23 17:11:44 +00:00
asm-offsets.c arm64: KVM: Switch vgic save/restore to alternative_insn 2015-06-12 15:12:08 +01:00
cacheinfo.c arm64: kernel: add support for cpu cache information 2015-01-15 11:55:07 +00:00
cpu_errata.c arm64: fix midr range for Cortex-A57 erratum 832075 2015-04-01 11:12:03 +01:00
cpu_ops.c ARM64: kernel: unify ACPI and DT cpus initialization 2015-05-19 16:09:29 +01:00
cpufeature.c arm64: alternative: Introduce feature for GICv3 CPU interface 2015-06-12 15:11:50 +01:00
cpuidle.c arm64: cpuidle: add __init section marker to arm_cpuidle_init 2015-07-02 17:44:27 +01:00
cpuinfo.c arm64: Extract feature parsing code from cpu_errata.c 2015-03-30 11:03:43 +01:00
debug-monitors.c KVM/ARM New features for 3.17 include: 2014-08-05 09:47:45 +02:00
efi-entry.S arm64 updates for 3.19 2014-12-09 13:12:47 -08:00
efi-stub.c arm64/efi: efistub: Apply __init annotation 2015-01-15 21:28:35 +00:00
efi.c arm64/efi: map the entire UEFI vendor string before reading it 2015-07-27 18:00:05 +01:00
entry-fpsimd.S arm64: fpsimd: fix a typo in fpsimd_save_partial_state ENDPROC 2014-07-31 11:42:42 +01:00
entry-ftrace.S arm64: ftrace: eliminate literal pool entries 2014-11-07 15:04:49 +00:00
entry.S arm64: switch_to: calculate cpu context pointer using separate register 2015-07-22 10:56:41 +01:00
entry32.S arm64: entry32: remove pointless register assignment 2015-07-10 16:47:13 +01:00
fpsimd.c arm64: fix bug for reloading FPSIMD state after CPU hotplug. 2015-06-11 17:08:11 +01:00
ftrace.c arm64: ftrace: fix ftrace_modify_graph_caller for branch replace 2015-02-23 09:13:45 +00:00
head.S arm64: reduce ID map to a single page 2015-06-02 17:44:51 +01:00
hw_breakpoint.c arm64/hw_breakpoint.c: remove unnecessary header 2015-06-26 17:32:13 +01:00
hyp-stub.S irqchip: gic-v3: Initial support for GICv3 2014-07-08 22:11:47 +00:00
image.h arm64: Update the Image header 2014-07-10 12:36:40 +01:00
insn.c arm64: insn: Add aarch64_{get,set}_branch_offset 2015-06-03 15:43:24 +01:00
io.c arm64: optimize memcpy_{from,to}io() and memset_io() 2014-11-06 17:25:27 +00:00
irq.c ARM64/irq: Use access helper irq_data_get_affinity_mask() 2015-07-22 10:57:09 +01:00
jump_label.c arm64: jump labels: NOP out NOP -> NOP replacement 2014-11-26 17:19:47 +00:00
kgdb.c arm64: Fix typos in KGDB macros 2014-09-25 15:35:41 +01:00
kuser32.S arm64: Add __NR_* definitions for compat syscalls 2014-07-10 11:02:40 +01:00
module.c mm: vmalloc: pass additional vm_flags to __vmalloc_node_range() 2015-02-13 21:21:42 -08:00
pci.c ARM64 / ACPI: Introduce PCI stub functions for ACPI 2015-03-25 11:49:31 +00:00
perf_event.c arm64: perf: fix unassigned cpu_pmu->plat_device when probing PMU PPIs 2015-06-30 18:13:05 +01:00
perf_regs.c perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
process.c arm64: kernel thread don't need to save fpsimd context. 2015-06-11 15:35:23 +01:00
psci-call.S arm64: psci: move psci firmware calls out of line 2015-02-26 18:23:53 +00:00
psci.c arm64: kernel: rename __cpu_suspend to keep it aligned with arm 2015-06-19 14:46:39 +01:00
ptrace.c arm64: add seccomp support 2014-11-28 10:24:59 +00:00
return_address.c arm64: LLVMLinux: Use global stack pointer in return_address() 2014-09-08 14:39:19 +01:00
setup.c xen: features and cleanups for 4.2-rc0 2015-07-01 11:53:46 -07:00
signal.c arm64: Removed unused variable 2015-04-13 20:40:10 +02:00
signal32.c signal: fix information leak in copy_siginfo_to_user 2015-08-07 04:39:40 +03:00
sleep.S arm64: drop sleep_idmap_phys and clean up cpu_resume() 2015-06-02 17:45:07 +01:00
smp.c ACPI / ARM64 : use the new BAD_MADT_GICC_ENTRY macro 2015-07-07 14:55:04 +01:00
smp_spin_table.c ARM64: kernel: make cpu_ops hooks DT agnostic 2015-05-19 16:09:29 +01:00
stacktrace.c arm64: LLVMLinux: Use current_stack_pointer in save_stack_trace_tsk 2014-09-08 14:39:19 +01:00
suspend.c arm64: kernel: rename __cpu_suspend to keep it aligned with arm 2015-06-19 14:46:39 +01:00
sys.c arm64: make sys_call_table const 2015-01-27 09:38:08 +00:00
sys32.c arm64: fix implementation of mmap2 compat syscall 2015-03-19 10:43:51 +00:00
sys_compat.c arm64: compat: align cacheflush syscall with arch/arm 2014-12-01 13:31:12 +00:00
time.c clocksource / arch_timer: Parse GTDT to initialize arch timer 2015-03-26 15:13:07 +00:00
topology.c arm64: topology: Fix handling of multi-level cluster MPIDR-based detection 2014-11-25 15:56:43 +00:00
trace-events-emulation.h arm64: Trace emulation of AArch32 legacy instructions 2014-11-20 16:35:02 +00:00
traps.c arm64: Fix show_unhandled_signal_ratelimited usage 2015-07-03 17:03:06 +01:00
vdso.c arm64: VDSO: fix coarse clock monotonicity regression 2015-08-10 15:37:45 +01:00
vmlinux.lds.S arm64: reduce ID map to a single page 2015-06-02 17:44:51 +01:00