lkml.org 
[lkml]   [2020]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 22/26] mips: vdso: Enable mips to use common headers
    Date
    Enable mips to use only the common headers in the implementation of
    the vDSO library.

    Cc: Paul Burton <paulburton@kernel.org>
    Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
    ---
    arch/mips/include/asm/processor.h | 16 +-------------
    arch/mips/include/asm/vdso/gettimeofday.h | 4 ----
    arch/mips/include/asm/vdso/processor.h | 27 +++++++++++++++++++++++
    3 files changed, 28 insertions(+), 19 deletions(-)
    create mode 100644 arch/mips/include/asm/vdso/processor.h

    diff --git a/arch/mips/include/asm/processor.h b/arch/mips/include/asm/processor.h
    index 7619ad319400..4c9cc667f3ed 100644
    --- a/arch/mips/include/asm/processor.h
    +++ b/arch/mips/include/asm/processor.h
    @@ -22,6 +22,7 @@
    #include <asm/dsemul.h>
    #include <asm/mipsregs.h>
    #include <asm/prefetch.h>
    +#include <asm/vdso/processor.h>

    /*
    * System setup and hardware flags..
    @@ -385,21 +386,6 @@ unsigned long get_wchan(struct task_struct *p);
    #define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29])
    #define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status)

    -#ifdef CONFIG_CPU_LOONGSON64
    -/*
    - * Loongson-3's SFB (Store-Fill-Buffer) may buffer writes indefinitely when a
    - * tight read loop is executed, because reads take priority over writes & the
    - * hardware (incorrectly) doesn't ensure that writes will eventually occur.
    - *
    - * Since spin loops of any kind should have a cpu_relax() in them, force an SFB
    - * flush from cpu_relax() such that any pending writes will become visible as
    - * expected.
    - */
    -#define cpu_relax() smp_mb()
    -#else
    -#define cpu_relax() barrier()
    -#endif
    -
    /*
    * Return_address is a replacement for __builtin_return_address(count)
    * which on certain architectures cannot reasonably be implemented in GCC
    diff --git a/arch/mips/include/asm/vdso/gettimeofday.h b/arch/mips/include/asm/vdso/gettimeofday.h
    index 88c3de1bdf22..c63ddcaea54c 100644
    --- a/arch/mips/include/asm/vdso/gettimeofday.h
    +++ b/arch/mips/include/asm/vdso/gettimeofday.h
    @@ -13,12 +13,8 @@

    #ifndef __ASSEMBLY__

    -#include <linux/compiler.h>
    -#include <linux/time.h>
    -
    #include <asm/vdso/vdso.h>
    #include <asm/clocksource.h>
    -#include <asm/io.h>
    #include <asm/unistd.h>
    #include <asm/vdso.h>

    diff --git a/arch/mips/include/asm/vdso/processor.h b/arch/mips/include/asm/vdso/processor.h
    new file mode 100644
    index 000000000000..511c95d735e6
    --- /dev/null
    +++ b/arch/mips/include/asm/vdso/processor.h
    @@ -0,0 +1,27 @@
    +/* SPDX-License-Identifier: GPL-2.0-only */
    +/*
    + * Copyright (C) 2020 ARM Ltd.
    + */
    +#ifndef __ASM_VDSO_PROCESSOR_H
    +#define __ASM_VDSO_PROCESSOR_H
    +
    +#ifndef __ASSEMBLY__
    +
    +#ifdef CONFIG_CPU_LOONGSON64
    +/*
    + * Loongson-3's SFB (Store-Fill-Buffer) may buffer writes indefinitely when a
    + * tight read loop is executed, because reads take priority over writes & the
    + * hardware (incorrectly) doesn't ensure that writes will eventually occur.
    + *
    + * Since spin loops of any kind should have a cpu_relax() in them, force an SFB
    + * flush from cpu_relax() such that any pending writes will become visible as
    + * expected.
    + */
    +#define cpu_relax() smp_mb()
    +#else
    +#define cpu_relax() barrier()
    +#endif
    +
    +#endif /* __ASSEMBLY__ */
    +
    +#endif /* __ASM_VDSO_PROCESSOR_H */
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-03-17 13:40    [W:4.142 / U:0.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site