diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-12-25 20:49:42 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-03-29 00:23:59 +0200 |
commit | bcd541d9a2f43fbf08d2e909fb8247bed3dac750 (patch) | |
tree | 1976aa22b8ed3e687ecdf80e43654facc257a19a /arch/sh/include/asm | |
parent | generic ...copy_..._user primitives (diff) | |
download | linux-bcd541d9a2f43fbf08d2e909fb8247bed3dac750.tar.xz linux-bcd541d9a2f43fbf08d2e909fb8247bed3dac750.zip |
sh: switch to extable.h
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/sh/include/asm')
-rw-r--r-- | arch/sh/include/asm/extable.h | 10 | ||||
-rw-r--r-- | arch/sh/include/asm/uaccess.h | 23 |
2 files changed, 11 insertions, 22 deletions
diff --git a/arch/sh/include/asm/extable.h b/arch/sh/include/asm/extable.h new file mode 100644 index 000000000000..df2ee2fcb8d3 --- /dev/null +++ b/arch/sh/include/asm/extable.h @@ -0,0 +1,10 @@ +#ifndef __ASM_SH_EXTABLE_H +#define __ASM_SH_EXTABLE_H + +#include <asm-generic/extable.h> + +#if defined(CONFIG_SUPERH64) && defined(CONFIG_MMU) +#define ARCH_HAS_SEARCH_EXTABLE +#endif + +#endif diff --git a/arch/sh/include/asm/uaccess.h b/arch/sh/include/asm/uaccess.h index 89a28dfbabfa..5cb0c5484efb 100644 --- a/arch/sh/include/asm/uaccess.h +++ b/arch/sh/include/asm/uaccess.h @@ -2,6 +2,7 @@ #define __ASM_SH_UACCESS_H #include <asm/segment.h> +#include <asm/extable.h> #define __addr_ok(addr) \ ((unsigned long __force)(addr) < current_thread_info()->addr_limit.seg) @@ -166,28 +167,6 @@ copy_to_user(void __user *to, const void *from, unsigned long n) return __copy_size; } -/* - * The exception table consists of pairs of addresses: the first is the - * address of an instruction that is allowed to fault, and the second is - * the address at which the program should continue. No registers are - * modified, so it is entirely up to the continuation code to figure out - * what to do. - * - * All the routines below use bits of fixup code that are out of line - * with the main instruction path. This means when everything is well, - * we don't even have to jump over them. Further, they do not intrude - * on our cache or tlb entries. - */ -struct exception_table_entry { - unsigned long insn, fixup; -}; - -#if defined(CONFIG_SUPERH64) && defined(CONFIG_MMU) -#define ARCH_HAS_SEARCH_EXTABLE -#endif - -int fixup_exception(struct pt_regs *regs); - extern void *set_exception_table_vec(unsigned int vec, void *handler); static inline void *set_exception_table_evt(unsigned int evt, void *handler) |