Commit bb4a23c9 authored by Tong Tiangen's avatar Tong Tiangen Committed by Palmer Dabbelt

riscv/vdso: Refactor asm/vdso.h

The asm/vdso.h will be included in vdso.lds.S in the next patch, the
following cleanup is needed to avoid syntax error:

 1.the declaration of sys_riscv_flush_icache() is moved into asm/syscall.h.
 2.the definition of struct vdso_data is moved into kernel/vdso.c.
 2.the definition of VDSO_SYMBOL is placed under "#ifndef __ASSEMBLY__".

Also remove the redundant linux/types.h include.
Signed-off-by: default avatarTong Tiangen <tongtiangen@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
parent 6880fa6c
...@@ -82,4 +82,5 @@ static inline int syscall_get_arch(struct task_struct *task) ...@@ -82,4 +82,5 @@ static inline int syscall_get_arch(struct task_struct *task)
#endif #endif
} }
asmlinkage long sys_riscv_flush_icache(uintptr_t, uintptr_t, uintptr_t);
#endif /* _ASM_RISCV_SYSCALL_H */ #endif /* _ASM_RISCV_SYSCALL_H */
...@@ -16,18 +16,22 @@ ...@@ -16,18 +16,22 @@
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
#include <linux/types.h> #include <linux/types.h>
#include <generated/vdso-offsets.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
#ifndef CONFIG_GENERIC_TIME_VSYSCALL #ifndef __ASSEMBLY__
struct vdso_data { #include <generated/vdso-offsets.h>
};
#endif
#define VDSO_SYMBOL(base, name) \ #define VDSO_SYMBOL(base, name) \
(void __user *)((unsigned long)(base) + __vdso_##name##_offset) (void __user *)((unsigned long)(base) + __vdso_##name##_offset)
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
asmlinkage long sys_riscv_flush_icache(uintptr_t, uintptr_t, uintptr_t); #endif /* !__ASSEMBLY__ */
#endif /* CONFIG_MMU */
#endif /* _ASM_RISCV_VDSO_H */ #endif /* _ASM_RISCV_VDSO_H */
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/syscalls.h> #include <linux/syscalls.h>
#include <asm-generic/syscalls.h> #include <asm-generic/syscalls.h>
#include <asm/vdso.h>
#include <asm/syscall.h> #include <asm/syscall.h>
#undef __SYSCALL #undef __SYSCALL
......
...@@ -12,10 +12,13 @@ ...@@ -12,10 +12,13 @@
#include <linux/binfmts.h> #include <linux/binfmts.h>
#include <linux/err.h> #include <linux/err.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/vdso.h>
#ifdef CONFIG_GENERIC_TIME_VSYSCALL #ifdef CONFIG_GENERIC_TIME_VSYSCALL
#include <vdso/datapage.h> #include <vdso/datapage.h>
#else #else
#include <asm/vdso.h> struct vdso_data {
};
#endif #endif
extern char vdso_start[], vdso_end[]; extern char vdso_start[], vdso_end[];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment