|
@@ -14,6 +14,7 @@
|
|
|
*/
|
|
|
#include <asm/processor.h>
|
|
|
#include <asm/ctl_reg.h>
|
|
|
+#include <asm/extable.h>
|
|
|
|
|
|
|
|
|
/*
|
|
@@ -59,31 +60,6 @@ static inline int __range_ok(unsigned long addr, unsigned long size)
|
|
|
|
|
|
#define access_ok(type, addr, size) __access_ok(addr, 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
|
|
|
-{
|
|
|
- int insn, fixup;
|
|
|
-};
|
|
|
-
|
|
|
-static inline unsigned long extable_fixup(const struct exception_table_entry *x)
|
|
|
-{
|
|
|
- return (unsigned long)&x->fixup + x->fixup;
|
|
|
-}
|
|
|
-
|
|
|
-#define ARCH_HAS_RELATIVE_EXTABLE
|
|
|
-
|
|
|
/**
|
|
|
* __copy_from_user: - Copy a block of data from user space, with less checking.
|
|
|
* @to: Destination address, in kernel space.
|