• Thomas Gleixner's avatar
    vdso/treewide: Add vdso_data pointer argument to __arch_get_hw_counter() · 4c5a116a
    Thomas Gleixner authored
    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: default avatarThomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/draft-87wo2ekuzn.fsf@nanos.tec.linutronix.de
    4c5a116a
gettimeofday.c 10.3 KB