From: Rusty Russell <rusty@rustcorp.com.au>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: linux-kernel@vger.kernel.org, sfr@canb.auug.org.au,
rth@twiddle.net, rmk@arm.linux.org.uk, bjornw@axis.com,
davidm@hpl.hp.com, geert@linux-m68k.org, ralf@gnu.org,
paulus@samba.org, anton@samba.org,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
gniibe@m17n.org, kkojima@rr.iij4u.or.jp,
"David S. Miller" <davem@redhat.com>,
ak@suse.de
Subject: Re: [PATCH] extable cleanup
Date: Sat, 04 Jan 2003 16:33:57 +1100 [thread overview]
Message-ID: <20030104060424.6E8CC2C37B@lists.samba.org> (raw)
In-Reply-To: Your message of "Fri, 03 Jan 2003 10:41:41 -0800." <Pine.LNX.4.44.0301031036560.2750-100000@home.transmeta.com>
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.
next prev parent reply other threads:[~2003-01-04 5:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-03 8:07 [PATCH] extable cleanup Rusty Russell
2003-01-03 8:19 ` David S. Miller
2003-01-03 18:41 ` Linus Torvalds
2003-01-04 5:33 ` Rusty Russell [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-01-03 22:06 Manfred Spraul
2003-01-04 6:03 ` Rusty Russell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030104060424.6E8CC2C37B@lists.samba.org \
--to=rusty@rustcorp.com.au \
--cc=ak@suse.de \
--cc=anton@samba.org \
--cc=bjornw@axis.com \
--cc=davem@redhat.com \
--cc=davidm@hpl.hp.com \
--cc=geert@linux-m68k.org \
--cc=gniibe@m17n.org \
--cc=kkojima@rr.iij4u.or.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=paulus@samba.org \
--cc=ralf@gnu.org \
--cc=rmk@arm.linux.org.uk \
--cc=rth@twiddle.net \
--cc=schwidefsky@de.ibm.com \
--cc=sfr@canb.auug.org.au \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.