]> git.baikalelectronics.ru Git - kernel.git/commit
vdso/treewide: Add vdso_data pointer argument to __arch_get_hw_counter()
authorThomas Gleixner <tglx@linutronix.de>
Tue, 4 Aug 2020 20:37:48 +0000 (22:37 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 6 Aug 2020 08:57:30 +0000 (10:57 +0200)
commit90a3181d78bf6bf81b3c54228a28e95881c10803
tree3c160c281da5e710dfa196cf9243caacf18462bc
parentebae98a6060ed26cef6448754ff03b1d7a37b9ce
vdso/treewide: Add vdso_data pointer argument to __arch_get_hw_counter()

MIPS already uses and S390 will need the vdso data pointer in
__arch_get_hw_counter().

This works nicely as long as the architecture does not support time
namespaces in the VDSO. With time namespaces enabled the regular
accessor to the vdso data pointer __arch_get_vdso_data() will return the
namespace specific VDSO data page for tasks which are part of a
non-root time namespace. This would cause the architectures which need
the vdso data pointer in __arch_get_hw_counter() to access the wrong
vdso data page.

Add a vdso_data pointer argument to __arch_get_hw_counter() and hand it in
from the call sites in the core code. For architectures which do not need
the data pointer in their counter accessor function the compiler will just
optimize it out.

Fix up all existing architecture implementations and make MIPS utilize the
pointer instead of invoking the accessor function.

No functional change and no change in the resulting object code (except
MIPS).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/draft-87wo2ekuzn.fsf@nanos.tec.linutronix.de
arch/arm/include/asm/vdso/gettimeofday.h
arch/arm64/include/asm/vdso/compat_gettimeofday.h
arch/arm64/include/asm/vdso/gettimeofday.h
arch/mips/include/asm/vdso/gettimeofday.h
arch/riscv/include/asm/vdso/gettimeofday.h
arch/x86/include/asm/vdso/gettimeofday.h
lib/vdso/gettimeofday.c