File tree Expand file tree Collapse file tree 2 files changed +30
-25
lines changed Expand file tree Collapse file tree 2 files changed +30
-25
lines changed Original file line number Diff line number Diff line change
1
+ #ifndef _ARCH_POWERPC_EXTABLE_H
2
+ #define _ARCH_POWERPC_EXTABLE_H
3
+
4
+ /*
5
+ * The exception table consists of pairs of relative addresses: the first is
6
+ * the 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 what
9
+ * to do.
10
+ *
11
+ * All the routines below use bits of fixup code that are out of line with the
12
+ * main instruction path. This means when everything is well, we don't even
13
+ * have to jump over them. Further, they do not intrude on our cache or tlb
14
+ * entries.
15
+ */
16
+
17
+ #define ARCH_HAS_RELATIVE_EXTABLE
18
+
19
+ struct exception_table_entry {
20
+ int insn ;
21
+ int fixup ;
22
+ };
23
+
24
+ static inline unsigned long extable_fixup (const struct exception_table_entry * x )
25
+ {
26
+ return (unsigned long )& x -> fixup + x -> fixup ;
27
+ }
28
+
29
+ #endif
Original file line number Diff line number Diff line change 5
5
#include <asm/ppc_asm.h>
6
6
#include <asm/processor.h>
7
7
#include <asm/page.h>
8
+ #include <asm/extable.h>
8
9
9
10
/*
10
11
* The fs value determines whether argument validity checking should be
55
56
(__chk_user_ptr(addr), \
56
57
__access_ok((__force unsigned long)(addr), (size), get_fs()))
57
58
58
- /*
59
- * The exception table consists of pairs of relative addresses: the first is
60
- * the address of an instruction that is allowed to fault, and the second is
61
- * the address at which the program should continue. No registers are
62
- * modified, so it is entirely up to the continuation code to figure out what
63
- * to do.
64
- *
65
- * All the routines below use bits of fixup code that are out of line with the
66
- * main instruction path. This means when everything is well, we don't even
67
- * have to jump over them. Further, they do not intrude on our cache or tlb
68
- * entries.
69
- */
70
-
71
- #define ARCH_HAS_RELATIVE_EXTABLE
72
-
73
- struct exception_table_entry {
74
- int insn ;
75
- int fixup ;
76
- };
77
-
78
- static inline unsigned long extable_fixup (const struct exception_table_entry * x )
79
- {
80
- return (unsigned long )& x -> fixup + x -> fixup ;
81
- }
82
-
83
59
/*
84
60
* These are the main single-value transfer routines. They automatically
85
61
* use the right size if we just have the right pointer type.
You can’t perform that action at this time.
0 commit comments