Re: [PATCH] allow placing exception table in .rodata (and do soon x86)

From: Heiko Carstens
Date: Thu Apr 28 2011 - 08:53:12 EST


On Thu, Apr 28, 2011 at 01:07:07PM +0100, Jan Beulich wrote:
> >>> On 28.04.11 at 13:47, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
> > On Thu, Apr 28, 2011 at 13:40, Jan Beulich <JBeulich@xxxxxxxxxx> wrote:
> >>>>> On 28.04.11 at 12:43, Heiko Carstens <heiko.carstens@xxxxxxxxxx> wrote:
> >>> On Wed, Apr 27, 2011 at 04:36:04PM +0100, Jan Beulich wrote:
> >>> That's odd. The kernel actually writes to it (sort_main_extable()), so
> >>> it shouldn't be in the ro data section, but the data section.
> >>
> >> This area does get written, but only at boot time, before read-only
> >> data gets set to r/o (on x86 at least). With this in mind, it's better
> >> to place it in .rodata, as that way run-time protection will be in place
> >> (and I think you agree that it was misplaced in .text in any case).
> >
> > Which means it may be in ROM (which is really read-only) on some embedded
> > devices, so it cannot be sorted?
>
> Perhaps - but since sorting is a requirement, people building such
> systems must have found a way... Anyway, I don't see where both

Yes, we found a way on s390: we put the exception table in the data section.

> your and Heiko's comment are heading, since the situation is even
> worse without the patch afaics (since .text gets marked read-only
> as much as .rodata does, and could equally be placed in ROM).

My point is that your default is wrong. If it makes sense to put the extable
into the rodata section then an architecture could do so. However making the
default to put data into the rodata section that is actually written to is
the wrong approach.
It just asks for breakage.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/