mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-29 15:43:59 +08:00
riscv: extable: consolidate definitions
This is a riscv port of commit 819771cc28
("arm64: extable:
consolidate definitions").
Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
9d504f9aa5
commit
6dd10d9166
33
arch/riscv/include/asm/asm-extable.h
Normal file
33
arch/riscv/include/asm/asm-extable.h
Normal file
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
#ifndef __ASM_ASM_EXTABLE_H
|
||||
#define __ASM_ASM_EXTABLE_H
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
#define __ASM_EXTABLE_RAW(insn, fixup) \
|
||||
.pushsection __ex_table, "a"; \
|
||||
.balign 4; \
|
||||
.long ((insn) - .); \
|
||||
.long ((fixup) - .); \
|
||||
.popsection;
|
||||
|
||||
.macro _asm_extable, insn, fixup
|
||||
__ASM_EXTABLE_RAW(\insn, \fixup)
|
||||
.endm
|
||||
|
||||
#else /* __ASSEMBLY__ */
|
||||
|
||||
#include <linux/stringify.h>
|
||||
|
||||
#define __ASM_EXTABLE_RAW(insn, fixup) \
|
||||
".pushsection __ex_table, \"a\"\n" \
|
||||
".balign 4\n" \
|
||||
".long ((" insn ") - .)\n" \
|
||||
".long ((" fixup ") - .)\n" \
|
||||
".popsection\n"
|
||||
|
||||
#define _ASM_EXTABLE(insn, fixup) __ASM_EXTABLE_RAW(#insn, #fixup)
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif /* __ASM_ASM_EXTABLE_H */
|
@ -11,6 +11,7 @@
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/errno.h>
|
||||
#include <asm/asm.h>
|
||||
#include <asm/asm-extable.h>
|
||||
|
||||
/* We don't even really need the extable code, but for now keep it simple */
|
||||
#ifndef CONFIG_MMU
|
||||
|
@ -8,14 +8,9 @@
|
||||
#ifndef _ASM_RISCV_UACCESS_H
|
||||
#define _ASM_RISCV_UACCESS_H
|
||||
|
||||
#include <asm/asm-extable.h>
|
||||
#include <asm/pgtable.h> /* for TASK_SIZE */
|
||||
|
||||
#define _ASM_EXTABLE(from, to) \
|
||||
" .pushsection __ex_table, \"a\"\n" \
|
||||
" .balign 4\n" \
|
||||
" .long (" #from " - .), (" #to " - .)\n" \
|
||||
" .popsection\n"
|
||||
|
||||
/*
|
||||
* User space memory access functions
|
||||
*/
|
||||
|
@ -1,15 +1,13 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <asm-generic/export.h>
|
||||
#include <asm/asm.h>
|
||||
#include <asm/asm-extable.h>
|
||||
#include <asm/csr.h>
|
||||
|
||||
.macro fixup op reg addr lbl
|
||||
100:
|
||||
\op \reg, \addr
|
||||
.section __ex_table,"a"
|
||||
.balign 4
|
||||
.long (100b - .), (\lbl - .)
|
||||
.previous
|
||||
_asm_extable 100b, \lbl
|
||||
.endm
|
||||
|
||||
ENTRY(__asm_copy_to_user)
|
||||
|
Loading…
Reference in New Issue
Block a user