Messages in this thread | | | From | Rusty Russell <> | Subject | Re: [PATCH] extable cleanup | Date | Sat, 04 Jan 2003 16:33:57 +1100 |
| |
In message <Pine.LNX.4.44.0301031036560.2750-100000@home.transmeta.com> you wri te: > > On Fri, 3 Jan 2003, Rusty Russell wrote: > > > > Fairly straightforward consolidation of extable handling. Sparc64 is > > trickiest, with its extable range stuff (ideally, the ranges would be > > in a separate __extable_range section, then the extable walking code > > could be made common, too). > > > > Only tested on x86: ppc and sparc64 written untested, others broken. > > Did you test on a true i386, which needs exception handling very early on > to handle the test for broken WP? In other words, are all the exception > table data structures properly initialized?
That's not a problem: the exception table search code looks like:
/* Given an address, look for it in the exception tables. */ const struct exception_table_entry *search_exception_tables(unsigned long addr) { const struct exception_table_entry *e;
e = search_extable(__start___ex_table, __stop___ex_table-1, addr); if (!e) e = search_module_extables(addr); return e; }
search_extable is arch specific, and requires no setup on any arch. The list containing the modules is initialized using the LIST_HEAD, so is empty, so search_module_extables is a noop.
> And did you check that an oops in the init handling works correctly before > the kallsyms table has been initialized? That "initcall(symbol_init)" > makes me suspect it won't..
Once again, no initialization required. "symbol_init" initializes the EXPORT'ed symbol tables for module loading: kallsyms doesn't need initialization.
> There was a reason why "extable_init()" was in init/main.c, and was done > _early_.
Yes, because archs iterated through the extable list to find even core kernel exception tables. The patch changes that: the lookup for core kernel is done first, then the module code looks through a linked list, meaning you don't need an extable list for !CONFIG_MODULES, etc.
Hope that clarifies, Rusty. -- Anyone who quotes me in their sig is an idiot. -- Rusty Russell. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |