Re: [PATCH v2 resend 6/6] arm64: switch to relative exception tables

From: Andrew Morton
Date: Wed Jan 27 2016 - 14:46:23 EST


On Wed, 27 Jan 2016 20:39:23 +0100 Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote:

> On 27 January 2016 at 20:35, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> > On Wed, 27 Jan 2016 11:55:23 +0100 Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote:
> >
> >> Instead of using absolute addresses for both the exception location
> >> and the fixup, use offsets relative to the exception table entry values.
> >> Not only does this cut the size of the exception table in half, it is
> >> also a prerequisite for KASLR, since absolute exception table entries
> >> are subject to dynamic relocation, which is incompatible with the sorting
> >> of the exception table that occurs at build time.
> >>
> >> This patch also introduces the _ASM_EXTABLE preprocessor macro (which
> >> exists on x86 as well) and its _asm_extable assembly counterpart, as
> >> shorthands to emit exception table entries.
> >
> > checkpatch speaketh truth:
> >
> > ERROR: #define of 'ARCH_HAS_RELATIVE_EXTABLE' is wrong - use Kconfig variables or standard guards instead
> > #113: FILE: arch/arm64/include/asm/uaccess.h:56:
>
> That may be true, but it extends an established pattern of #defines in
> the various uaccess.h versions, i.e., ARCH_HAS_SORT_EXTABLE, and
> ARCH_HAS_SEARCH_EXTABLE

True. But now we have two things to fix, not one ;)

Whatever. Later.