summaryrefslogtreecommitdiffstats
path: root/arch/ppc/mm/extable.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-01-29 01:41:54 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-01-29 01:41:54 +0000
commitf969d69ba9f952e5bdd38278e25e26a3e4a61a70 (patch)
treeb3530d803df59d726afaabebc6626987dee1ca05 /arch/ppc/mm/extable.c
parenta10ce7ef2066b455d69187643ddf2073bfc4db24 (diff)
Merge with 2.3.27.
Diffstat (limited to 'arch/ppc/mm/extable.c')
-rw-r--r--arch/ppc/mm/extable.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/ppc/mm/extable.c b/arch/ppc/mm/extable.c
index afcf705e1..dc57bf868 100644
--- a/arch/ppc/mm/extable.c
+++ b/arch/ppc/mm/extable.c
@@ -43,13 +43,18 @@ search_exception_table(unsigned long addr)
#else
/* The kernel is the last "module" -- no need to treat it special. */
struct module *mp;
+ read_lock(&modlist_lock);
for (mp = module_list; mp != NULL; mp = mp->next) {
if (mp->ex_table_start == NULL)
continue;
ret = search_one_table(mp->ex_table_start,
mp->ex_table_end - 1, addr);
- if (ret) return ret;
+ if (ret) {
+ read_unlock(&modlist_lock);
+ return ret;
+ }
}
+ read_unlock(&modlist_lock);
#endif
return 0;