diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-12-25 01:22:09 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-03-27 20:27:28 -0400 |
commit | aaa2e7ac80f679230faf28a8e12e8d68dbe977eb (patch) | |
tree | 904faa89e8a0d1400ab91662f28a6765caa02b9f | |
parent | 444f02c458db00bd6049cc1bfe4254e80f57459e (diff) |
add asm-generic/extable.h
... and make the users of generic uaccess.h use that.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/arc/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/arc/include/asm/uaccess.h | 2 | ||||
-rw-r--r-- | arch/c6x/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/h8300/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/hexagon/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/um/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/unicore32/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/unicore32/include/asm/uaccess.h | 2 | ||||
-rw-r--r-- | include/asm-generic/extable.h | 26 | ||||
-rw-r--r-- | include/asm-generic/uaccess.h | 20 |
10 files changed, 34 insertions, 22 deletions
diff --git a/arch/arc/include/asm/Kbuild b/arch/arc/include/asm/Kbuild index 63a04013d05a..7bee4e4799fd 100644 --- a/arch/arc/include/asm/Kbuild +++ b/arch/arc/include/asm/Kbuild | |||
@@ -6,6 +6,7 @@ generic-y += device.h | |||
6 | generic-y += div64.h | 6 | generic-y += div64.h |
7 | generic-y += emergency-restart.h | 7 | generic-y += emergency-restart.h |
8 | generic-y += errno.h | 8 | generic-y += errno.h |
9 | generic-y += extable.h | ||
9 | generic-y += fb.h | 10 | generic-y += fb.h |
10 | generic-y += fcntl.h | 11 | generic-y += fcntl.h |
11 | generic-y += ftrace.h | 12 | generic-y += ftrace.h |
diff --git a/arch/arc/include/asm/uaccess.h b/arch/arc/include/asm/uaccess.h index 0431f5668354..d837a53c6e59 100644 --- a/arch/arc/include/asm/uaccess.h +++ b/arch/arc/include/asm/uaccess.h | |||
@@ -750,6 +750,4 @@ extern long arc_strnlen_user_noinline(const char __user *src, long n); | |||
750 | 750 | ||
751 | #include <asm-generic/uaccess.h> | 751 | #include <asm-generic/uaccess.h> |
752 | 752 | ||
753 | extern int fixup_exception(struct pt_regs *regs); | ||
754 | |||
755 | #endif | 753 | #endif |
diff --git a/arch/c6x/include/asm/Kbuild b/arch/c6x/include/asm/Kbuild index 82619c32d25b..f0eaf0475e7e 100644 --- a/arch/c6x/include/asm/Kbuild +++ b/arch/c6x/include/asm/Kbuild | |||
@@ -12,6 +12,7 @@ generic-y += dma.h | |||
12 | generic-y += emergency-restart.h | 12 | generic-y += emergency-restart.h |
13 | generic-y += errno.h | 13 | generic-y += errno.h |
14 | generic-y += exec.h | 14 | generic-y += exec.h |
15 | generic-y += extable.h | ||
15 | generic-y += fb.h | 16 | generic-y += fb.h |
16 | generic-y += fcntl.h | 17 | generic-y += fcntl.h |
17 | generic-y += futex.h | 18 | generic-y += futex.h |
diff --git a/arch/h8300/include/asm/Kbuild b/arch/h8300/include/asm/Kbuild index 341740c3581c..f14e4e6ccbde 100644 --- a/arch/h8300/include/asm/Kbuild +++ b/arch/h8300/include/asm/Kbuild | |||
@@ -13,6 +13,7 @@ generic-y += dma.h | |||
13 | generic-y += emergency-restart.h | 13 | generic-y += emergency-restart.h |
14 | generic-y += errno.h | 14 | generic-y += errno.h |
15 | generic-y += exec.h | 15 | generic-y += exec.h |
16 | generic-y += extable.h | ||
16 | generic-y += fb.h | 17 | generic-y += fb.h |
17 | generic-y += fcntl.h | 18 | generic-y += fcntl.h |
18 | generic-y += ftrace.h | 19 | generic-y += ftrace.h |
diff --git a/arch/hexagon/include/asm/Kbuild b/arch/hexagon/include/asm/Kbuild index 797b64a4b80b..a2036bfda8af 100644 --- a/arch/hexagon/include/asm/Kbuild +++ b/arch/hexagon/include/asm/Kbuild | |||
@@ -11,6 +11,7 @@ generic-y += device.h | |||
11 | generic-y += div64.h | 11 | generic-y += div64.h |
12 | generic-y += emergency-restart.h | 12 | generic-y += emergency-restart.h |
13 | generic-y += errno.h | 13 | generic-y += errno.h |
14 | generic-y += extable.h | ||
14 | generic-y += fb.h | 15 | generic-y += fb.h |
15 | generic-y += fcntl.h | 16 | generic-y += fcntl.h |
16 | generic-y += ftrace.h | 17 | generic-y += ftrace.h |
diff --git a/arch/um/include/asm/Kbuild b/arch/um/include/asm/Kbuild index e9d42aab76dc..50a32c33d729 100644 --- a/arch/um/include/asm/Kbuild +++ b/arch/um/include/asm/Kbuild | |||
@@ -6,6 +6,7 @@ generic-y += delay.h | |||
6 | generic-y += device.h | 6 | generic-y += device.h |
7 | generic-y += emergency-restart.h | 7 | generic-y += emergency-restart.h |
8 | generic-y += exec.h | 8 | generic-y += exec.h |
9 | generic-y += extable.h | ||
9 | generic-y += ftrace.h | 10 | generic-y += ftrace.h |
10 | generic-y += futex.h | 11 | generic-y += futex.h |
11 | generic-y += hardirq.h | 12 | generic-y += hardirq.h |
diff --git a/arch/unicore32/include/asm/Kbuild b/arch/unicore32/include/asm/Kbuild index 84205fe1cd79..e9ad511c1043 100644 --- a/arch/unicore32/include/asm/Kbuild +++ b/arch/unicore32/include/asm/Kbuild | |||
@@ -10,6 +10,7 @@ generic-y += div64.h | |||
10 | generic-y += emergency-restart.h | 10 | generic-y += emergency-restart.h |
11 | generic-y += errno.h | 11 | generic-y += errno.h |
12 | generic-y += exec.h | 12 | generic-y += exec.h |
13 | generic-y += extable.h | ||
13 | generic-y += fb.h | 14 | generic-y += fb.h |
14 | generic-y += fcntl.h | 15 | generic-y += fcntl.h |
15 | generic-y += ftrace.h | 16 | generic-y += ftrace.h |
diff --git a/arch/unicore32/include/asm/uaccess.h b/arch/unicore32/include/asm/uaccess.h index 1622f37a0514..f60fab718b59 100644 --- a/arch/unicore32/include/asm/uaccess.h +++ b/arch/unicore32/include/asm/uaccess.h | |||
@@ -38,6 +38,4 @@ __strnlen_user(const char __user *s, long n); | |||
38 | 38 | ||
39 | #include <asm-generic/uaccess.h> | 39 | #include <asm-generic/uaccess.h> |
40 | 40 | ||
41 | extern int fixup_exception(struct pt_regs *regs); | ||
42 | |||
43 | #endif /* __UNICORE_UACCESS_H__ */ | 41 | #endif /* __UNICORE_UACCESS_H__ */ |
diff --git a/include/asm-generic/extable.h b/include/asm-generic/extable.h new file mode 100644 index 000000000000..ca14c6664027 --- /dev/null +++ b/include/asm-generic/extable.h | |||
@@ -0,0 +1,26 @@ | |||
1 | #ifndef __ASM_GENERIC_EXTABLE_H | ||
2 | #define __ASM_GENERIC_EXTABLE_H | ||
3 | |||
4 | /* | ||
5 | * The exception table consists of pairs of addresses: the first is the | ||
6 | * address of an instruction that is allowed to fault, and the second is | ||
7 | * the address at which the program should continue. No registers are | ||
8 | * modified, so it is entirely up to the continuation code to figure out | ||
9 | * what to do. | ||
10 | * | ||
11 | * All the routines below use bits of fixup code that are out of line | ||
12 | * with the main instruction path. This means when everything is well, | ||
13 | * we don't even have to jump over them. Further, they do not intrude | ||
14 | * on our cache or tlb entries. | ||
15 | */ | ||
16 | |||
17 | struct exception_table_entry | ||
18 | { | ||
19 | unsigned long insn, fixup; | ||
20 | }; | ||
21 | |||
22 | |||
23 | struct pt_regs; | ||
24 | extern int fixup_exception(struct pt_regs *regs); | ||
25 | |||
26 | #endif | ||
diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h index d20955e495b3..4b4f4a7f22c6 100644 --- a/include/asm-generic/uaccess.h +++ b/include/asm-generic/uaccess.h | |||
@@ -48,24 +48,6 @@ static inline int __access_ok(unsigned long addr, unsigned long size) | |||
48 | #endif | 48 | #endif |
49 | 49 | ||
50 | /* | 50 | /* |
51 | * The exception table consists of pairs of addresses: the first is the | ||
52 | * address of an instruction that is allowed to fault, and the second is | ||
53 | * the address at which the program should continue. No registers are | ||
54 | * modified, so it is entirely up to the continuation code to figure out | ||
55 | * what to do. | ||
56 | * | ||
57 | * All the routines below use bits of fixup code that are out of line | ||
58 | * with the main instruction path. This means when everything is well, | ||
59 | * we don't even have to jump over them. Further, they do not intrude | ||
60 | * on our cache or tlb entries. | ||
61 | */ | ||
62 | |||
63 | struct exception_table_entry | ||
64 | { | ||
65 | unsigned long insn, fixup; | ||
66 | }; | ||
67 | |||
68 | /* | ||
69 | * architectures with an MMU should override these two | 51 | * architectures with an MMU should override these two |
70 | */ | 52 | */ |
71 | #ifndef __copy_from_user | 53 | #ifndef __copy_from_user |
@@ -344,4 +326,6 @@ clear_user(void __user *to, unsigned long n) | |||
344 | return __clear_user(to, n); | 326 | return __clear_user(to, n); |
345 | } | 327 | } |
346 | 328 | ||
329 | #include <asm/extable.h> | ||
330 | |||
347 | #endif /* __ASM_GENERIC_UACCESS_H */ | 331 | #endif /* __ASM_GENERIC_UACCESS_H */ |