diff options
author | David S. Miller <davem@davemloft.net> | 2009-06-15 06:02:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-06-15 06:02:23 -0400 |
commit | 9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb (patch) | |
tree | 8d104ec2a459346b99413b0b77421ca7b9936c1a /arch/avr32/kernel | |
parent | ca44d6e60f9de26281fda203f58b570e1748c015 (diff) | |
parent | 45e3e1935e2857c54783291107d33323b3ef33c8 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
Documentation/feature-removal-schedule.txt
drivers/scsi/fcoe/fcoe.c
net/core/drop_monitor.c
net/core/net-traces.c
Diffstat (limited to 'arch/avr32/kernel')
-rw-r--r-- | arch/avr32/kernel/module.c | 2 | ||||
-rw-r--r-- | arch/avr32/kernel/traps.c | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/arch/avr32/kernel/module.c b/arch/avr32/kernel/module.c index 1167fe9cf6c4..98f94d041d9c 100644 --- a/arch/avr32/kernel/module.c +++ b/arch/avr32/kernel/module.c | |||
@@ -32,8 +32,6 @@ void module_free(struct module *mod, void *module_region) | |||
32 | mod->arch.syminfo = NULL; | 32 | mod->arch.syminfo = NULL; |
33 | 33 | ||
34 | vfree(module_region); | 34 | vfree(module_region); |
35 | /* FIXME: if module_region == mod->init_region, trim exception | ||
36 | * table entries. */ | ||
37 | } | 35 | } |
38 | 36 | ||
39 | static inline int check_rela(Elf32_Rela *rela, struct module *module, | 37 | static inline int check_rela(Elf32_Rela *rela, struct module *module, |
diff --git a/arch/avr32/kernel/traps.c b/arch/avr32/kernel/traps.c index d547c8df157d..6e3d491184ea 100644 --- a/arch/avr32/kernel/traps.c +++ b/arch/avr32/kernel/traps.c | |||
@@ -75,8 +75,17 @@ void _exception(long signr, struct pt_regs *regs, int code, | |||
75 | { | 75 | { |
76 | siginfo_t info; | 76 | siginfo_t info; |
77 | 77 | ||
78 | if (!user_mode(regs)) | 78 | if (!user_mode(regs)) { |
79 | const struct exception_table_entry *fixup; | ||
80 | |||
81 | /* Are we prepared to handle this kernel fault? */ | ||
82 | fixup = search_exception_tables(regs->pc); | ||
83 | if (fixup) { | ||
84 | regs->pc = fixup->fixup; | ||
85 | return; | ||
86 | } | ||
79 | die("Unhandled exception in kernel mode", regs, signr); | 87 | die("Unhandled exception in kernel mode", regs, signr); |
88 | } | ||
80 | 89 | ||
81 | memset(&info, 0, sizeof(info)); | 90 | memset(&info, 0, sizeof(info)); |
82 | info.si_signo = signr; | 91 | info.si_signo = signr; |