lkml.org 
[lkml]   [2003]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] extable cleanup
Date
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/

\
 
 \ /
  Last update: 2005-03-22 13:32    [W:0.035 / U:0.660 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site