Skip to content

Commit 527b5ba

Browse files
author
Al Viro
committed
powerpc: switch to extable.h
Signed-off-by: Al Viro <[email protected]>
1 parent d597580 commit 527b5ba

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

arch/powerpc/include/asm/extable.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
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

arch/powerpc/include/asm/uaccess.h

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <asm/ppc_asm.h>
66
#include <asm/processor.h>
77
#include <asm/page.h>
8+
#include <asm/extable.h>
89

910
/*
1011
* The fs value determines whether argument validity checking should be
@@ -55,31 +56,6 @@
5556
(__chk_user_ptr(addr), \
5657
__access_ok((__force unsigned long)(addr), (size), get_fs()))
5758

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-
8359
/*
8460
* These are the main single-value transfer routines. They automatically
8561
* use the right size if we just have the right pointer type.

0 commit comments

Comments
 (0)