[parisc-linux] memory mapping and sort_extable?
James Bottomley
James.Bottomley at steeleye.com
Wed Feb 4 08:04:52 MST 2004
On Wed, 2004-02-04 at 04:43, Randolph Chung wrote:
> 2.6.2-rc2 doesn't boot on my c3k when running 32-bit kernel and if
> CONFIG_STI_CONSOLE is not enabled. The problem seems to be that for some
> reason [*] when CONFIG_STI_CONSOLE is not defined, we map all kernel
> memory as r/o, so when sort_extable (in lib/extable.c) tries to
> rearrange our exception tables it writes to the kernel pages and faults.
>
> interestingly, when building a 64-bit kernel with similar config options
> i don't see a fault... maybe there is something else happening there.
>
> From a cursory inspection, it appears that we never use to sort our
> exception tables; dumping the extable from a vmlinux binary shows that
> the entries are properly sorted at link time... but i haven't tried
> this on modules to see if they are also sorted. Not sure how the
> sorting is happening... does ld do it?
>
> Anyway, the following patch trivially removes sort_extable for parisc
> and lets the kernel boot. Not yet sure if it's correct. Does anyone
> know?
>
> [*] Why do we map kernel pages as read-only? is it just to be "extra
> safe"?
Let me have a look at this. It sounds like a section naming issue that
differs on 32/64 bit.
Of course, you guessed that I'd only tested on a 64 bit kernel...
We need the sort extable because the generic search function (which we
now use) expects a sorted table to simplify address searches, so going
back to an unsorted one may produce unexpected results...
James
More information about the parisc-linux
mailing list