lkml.org 
[lkml]   [2021]   [Oct]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 122/151] RISC-V: Fix VDSO build for !MMU
    Date
    From: Palmer Dabbelt <palmerdabbelt@google.com>

    [ Upstream commit a290f510a178830a01bfc06e66a54bbe4ece5d2a ]

    We don't have a VDSO for the !MMU configurations, so don't try to build
    one.

    Fixes: fde9c59aebaf ("riscv: explicitly use symbol offsets for VDSO")
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/riscv/Makefile | 2 ++
    arch/riscv/include/asm/vdso.h | 9 +++++++++
    2 files changed, 11 insertions(+)

    diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
    index e026b2d0a5a4..83ee0e71204c 100644
    --- a/arch/riscv/Makefile
    +++ b/arch/riscv/Makefile
    @@ -108,9 +108,11 @@ PHONY += vdso_install
    vdso_install:
    $(Q)$(MAKE) $(build)=arch/riscv/kernel/vdso $@

    +ifeq ($(CONFIG_MMU),y)
    prepare: vdso_prepare
    vdso_prepare: prepare0
    $(Q)$(MAKE) $(build)=arch/riscv/kernel/vdso include/generated/vdso-offsets.h
    +endif

    ifneq ($(CONFIG_XIP_KERNEL),y)
    ifeq ($(CONFIG_RISCV_M_MODE)$(CONFIG_SOC_CANAAN),yy)
    diff --git a/arch/riscv/include/asm/vdso.h b/arch/riscv/include/asm/vdso.h
    index d8d003c2b5a3..893e47195e30 100644
    --- a/arch/riscv/include/asm/vdso.h
    +++ b/arch/riscv/include/asm/vdso.h
    @@ -8,6 +8,13 @@
    #ifndef _ASM_RISCV_VDSO_H
    #define _ASM_RISCV_VDSO_H

    +
    +/*
    + * All systems with an MMU have a VDSO, but systems without an MMU don't
    + * support shared libraries and therefor don't have one.
    + */
    +#ifdef CONFIG_MMU
    +
    #include <linux/types.h>
    #include <generated/vdso-offsets.h>

    @@ -19,6 +26,8 @@ struct vdso_data {
    #define VDSO_SYMBOL(base, name) \
    (void __user *)((unsigned long)(base) + __vdso_##name##_offset)

    +#endif /* CONFIG_MMU */
    +
    asmlinkage long sys_riscv_flush_icache(uintptr_t, uintptr_t, uintptr_t);

    #endif /* _ASM_RISCV_VDSO_H */
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-10-11 16:37    [W:4.639 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site