On 27 January 2016 at 20:35, Andrew Morton [off-list ref] wrote:
On Wed, 27 Jan 2016 11:55:23 +0100 Ard Biesheuvel [off-list ref] wrote:
quoted
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