aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-12-25 01:22:09 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2017-03-27 20:27:28 -0400
commitaaa2e7ac80f679230faf28a8e12e8d68dbe977eb (patch)
tree904faa89e8a0d1400ab91662f28a6765caa02b9f
parent444f02c458db00bd6049cc1bfe4254e80f57459e (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/Kbuild1
-rw-r--r--arch/arc/include/asm/uaccess.h2
-rw-r--r--arch/c6x/include/asm/Kbuild1
-rw-r--r--arch/h8300/include/asm/Kbuild1
-rw-r--r--arch/hexagon/include/asm/Kbuild1
-rw-r--r--arch/um/include/asm/Kbuild1
-rw-r--r--arch/unicore32/include/asm/Kbuild1
-rw-r--r--arch/unicore32/include/asm/uaccess.h2
-rw-r--r--include/asm-generic/extable.h26
-rw-r--r--include/asm-generic/uaccess.h20
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
6generic-y += div64.h 6generic-y += div64.h
7generic-y += emergency-restart.h 7generic-y += emergency-restart.h
8generic-y += errno.h 8generic-y += errno.h
9generic-y += extable.h
9generic-y += fb.h 10generic-y += fb.h
10generic-y += fcntl.h 11generic-y += fcntl.h
11generic-y += ftrace.h 12generic-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
753extern 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
12generic-y += emergency-restart.h 12generic-y += emergency-restart.h
13generic-y += errno.h 13generic-y += errno.h
14generic-y += exec.h 14generic-y += exec.h
15generic-y += extable.h
15generic-y += fb.h 16generic-y += fb.h
16generic-y += fcntl.h 17generic-y += fcntl.h
17generic-y += futex.h 18generic-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
13generic-y += emergency-restart.h 13generic-y += emergency-restart.h
14generic-y += errno.h 14generic-y += errno.h
15generic-y += exec.h 15generic-y += exec.h
16generic-y += extable.h
16generic-y += fb.h 17generic-y += fb.h
17generic-y += fcntl.h 18generic-y += fcntl.h
18generic-y += ftrace.h 19generic-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
11generic-y += div64.h 11generic-y += div64.h
12generic-y += emergency-restart.h 12generic-y += emergency-restart.h
13generic-y += errno.h 13generic-y += errno.h
14generic-y += extable.h
14generic-y += fb.h 15generic-y += fb.h
15generic-y += fcntl.h 16generic-y += fcntl.h
16generic-y += ftrace.h 17generic-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
6generic-y += device.h 6generic-y += device.h
7generic-y += emergency-restart.h 7generic-y += emergency-restart.h
8generic-y += exec.h 8generic-y += exec.h
9generic-y += extable.h
9generic-y += ftrace.h 10generic-y += ftrace.h
10generic-y += futex.h 11generic-y += futex.h
11generic-y += hardirq.h 12generic-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
10generic-y += emergency-restart.h 10generic-y += emergency-restart.h
11generic-y += errno.h 11generic-y += errno.h
12generic-y += exec.h 12generic-y += exec.h
13generic-y += extable.h
13generic-y += fb.h 14generic-y += fb.h
14generic-y += fcntl.h 15generic-y += fcntl.h
15generic-y += ftrace.h 16generic-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
41extern 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
17struct exception_table_entry
18{
19 unsigned long insn, fixup;
20};
21
22
23struct pt_regs;
24extern 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
63struct 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 */