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

From: Ard Biesheuvel
Date: Wed Jan 27 2016 - 14:39:35 EST


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