git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
arm26
/
mm
/
extable.c
diff --git
a/arch/arm26/mm/extable.c
b/arch/arm26/mm/extable.c
index
72644dd
..
38e1958
100644
(file)
--- a/
arch/arm26/mm/extable.c
+++ b/
arch/arm26/mm/extable.c
@@
-1,8
+1,7
@@
/*
/*
- * linux/arch/arm/mm/extable.c
+ * linux/arch/arm
26
/mm/extable.c
*/
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <asm/uaccess.h>
#include <linux/module.h>
#include <asm/uaccess.h>
@@
-11,6
+10,12
@@
int fixup_exception(struct pt_regs *regs)
const struct exception_table_entry *fixup;
fixup = search_exception_tables(instruction_pointer(regs));
const struct exception_table_entry *fixup;
fixup = search_exception_tables(instruction_pointer(regs));
+
+ /*
+ * The kernel runs in SVC mode - make sure we keep running in SVC mode
+ * by frobbing the PSR appropriately (PSR and PC are in the same reg.
+ * on ARM26)
+ */
if (fixup)
regs->ARM_pc = fixup->fixup | PSR_I_BIT | MODE_SVC26;
if (fixup)
regs->ARM_pc = fixup->fixup | PSR_I_BIT | MODE_SVC26;