linux/arch/arm64/include/asm
Ard Biesheuvel 6c94f27ac8 arm64: switch to relative exception tables
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.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2016-02-24 14:57:26 +00:00
..
xen xen/events: Support event channel rebind on ARM 2015-08-20 12:24:15 +01:00
acenv.h ARM64 / ACPI: Get RSDP and ACPI boot-time tables 2015-03-25 11:49:30 +00:00
acpi.h arm64: kernel: implement ACPI parking protocol 2016-02-16 15:12:32 +00:00
alternative.h arm64: switch to relative exception tables 2016-02-24 14:57:26 +00:00
arch_gicv3.h irqchip/gic-v3: Make sure read from ICC_IAR1_EL1 is visible on redestributor 2016-02-11 10:20:02 +00:00
arch_timer.h arm64: fix missing linux/bug.h include in asm/arch_timer.h 2015-01-07 11:40:59 +00:00
arm-cci.h arm-cci: Get rid of secure transactions for PMU driver 2015-03-27 13:44:35 +00:00
asm-offsets.h
assembler.h arm64: switch to relative exception tables 2016-02-24 14:57:26 +00:00
atomic_ll_sc.h arm64: cmpxchg_dbl: fix return value type 2015-11-05 17:29:40 +00:00
atomic_lse.h arm64: cmpxchg_dbl: fix return value type 2015-11-05 17:29:40 +00:00
atomic.h arm64 updates for 4.4: 2015-11-04 14:47:13 -08:00
barrier.h arm64: define __smp_xxx 2016-01-12 20:46:53 +02:00
bitops.h
bitrev.h ARM: 8189/1: arm64:add bitrev.h file to support rbit instruction 2014-12-22 16:47:32 +00:00
boot.h arm64: allow kernel Image to be loaded anywhere in physical memory 2016-02-18 18:16:53 +00:00
brk-imm.h arm64: move brk immediate argument definitions to separate header 2016-02-23 17:43:25 +00:00
bug.h arm64: move brk immediate argument definitions to separate header 2016-02-23 17:43:25 +00:00
cache.h arm64: Increase the max granular size 2015-10-28 19:09:17 +00:00
cacheflush.h arm64: Use PoU cache instr for I/D coherency 2015-12-17 11:07:13 +00:00
cachetype.h arm64: cachetype: fix definitions of ICACHEF_* flags 2015-10-28 18:32:12 +00:00
cmpxchg.h arm64: cmpxchg: Don't incldue linux/mmdebug.h 2015-12-10 17:36:09 +00:00
compat.h arm64: do not include ptrace.h from compat.h 2015-11-17 13:24:36 +00:00
compiler.h
cpu_ops.h ARM64: kernel: unify ACPI and DT cpus initialization 2015-05-19 16:09:29 +01:00
cpu.h arm64: add ARMv8.2 id_aa64mmfr2 boiler plate 2016-02-18 12:00:01 +00:00
cpufeature.h arm64: kernel: Don't toggle PAN on systems with UAO 2016-02-18 17:27:05 +00:00
cpuidle.h arm64: kernel: rename __cpu_suspend to keep it aligned with arm 2015-06-19 14:46:39 +01:00
cputype.h arm64: cpufeature: Change read_cpuid() to use sysreg's mrs_s macro 2016-02-18 11:59:54 +00:00
dcc.h ARM64: TTY: hvc_dcc: Add support for ARM64 dcc 2015-10-04 17:49:27 +01:00
debug-monitors.h arm64: move brk immediate argument definitions to separate header 2016-02-23 17:43:25 +00:00
device.h arm64: introduce is_device_dma_coherent 2014-12-04 12:41:49 +00:00
dma-mapping.h dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
dmi.h arm64: dmi: Add SMBIOS/DMI support 2014-11-05 09:03:25 +01:00
efi.h arm64/efi: refactor EFI init and runtime code for reuse by 32-bit ARM 2015-12-09 16:57:23 +00:00
elf.h arm64: make asm/elf.h available to asm files 2016-02-24 14:57:25 +00:00
esr.h arm64/debug: Add missing #includes 2015-07-27 11:08:42 +01:00
exception.h arm64: Add __exception_irq_entry definition for function graph 2015-08-12 17:23:45 +01:00
exec.h
fb.h
fixmap.h arm64: mm: add functions to walk tables in fixmap 2016-02-16 15:10:46 +00:00
fpsimd.h
fpsimdmacros.h arm64: Avoid breakage caused by .altmacro in fpsimd save/restore macros 2015-01-29 17:24:39 +00:00
ftrace.h arm64: ftrace: fix a stack tracer's output under function graph tracer 2015-12-21 17:26:02 +00:00
futex.h arm64: switch to relative exception tables 2016-02-24 14:57:26 +00:00
hardirq.h arm64: kernel: implement ACPI parking protocol 2016-02-16 15:12:32 +00:00
hugetlb.h arm64: hugetlb: add support for PTE contiguous bit 2015-12-21 17:26:00 +00:00
hw_breakpoint.h arm64: debug: Treat the BRPs/WRPs as unsigned 2015-11-26 18:08:36 +00:00
hwcap.h arm64/HWCAP: Use system wide safe values 2015-10-21 15:35:58 +01:00
hypervisor.h
insn.h arm64: insn: Add aarch64_{get,set}_branch_offset 2015-06-03 15:43:24 +01:00
io.h Revert "arm64: ioremap: add ioremap_cache macro" 2015-10-13 16:18:17 +01:00
irq_work.h arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
irq.h arm64: remove irq_count and do_softirq_own_stack() 2015-12-21 17:26:01 +00:00
irqflags.h
jump_label.h locking/static_keys: Add a new static_key interface 2015-08-03 11:34:15 +02:00
kasan.h arm64: move kernel image to base of vmalloc area 2016-02-18 18:16:44 +00:00
Kbuild mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
kernel-pgtable.h arm64: allow kernel Image to be loaded anywhere in physical memory 2016-02-18 18:16:53 +00:00
kgdb.h arm64: Fix typos in KGDB macros 2014-09-25 15:35:41 +01:00
kvm_arm.h arm64: KVM: Obey RES0/1 reserved bits when setting CPTR_EL2 2016-01-24 21:55:58 +00:00
kvm_asm.h arm64: allow kernel Image to be loaded anywhere in physical memory 2016-02-18 18:16:53 +00:00
kvm_coproc.h
kvm_emulate.h arm64: KVM: Fix wrong use of the CPSR MODE mask for 32bit guests 2016-01-24 21:55:59 +00:00
kvm_host.h arm64: kvm: deal with kernel symbols outside of linear mapping 2016-02-18 18:16:40 +00:00
kvm_mmio.h arm64: KVM: Turn system register numbers to an enum 2015-12-14 11:30:43 +00:00
kvm_mmu.h kvm: rename pfn_t to kvm_pfn_t 2016-01-15 17:56:32 -08:00
kvm_psci.h
linkage.h
lse.h arm64: lse: rename ARM64_CPU_FEAT_LSE_ATOMICS for consistency 2015-07-27 15:28:54 +01:00
memblock.h
memory.h arm64: mm: use bit ops rather than arithmetic in pa/va translations 2016-02-23 17:43:25 +00:00
mmu_context.h arm64: mm: add code to safely replace TTBR1_EL1 2016-02-16 15:10:45 +00:00
mmu.h arm64: mm: rewrite ASID allocator and MM context-switching code 2015-10-07 11:55:41 +01:00
module.h arm64: add support for module PLTs 2016-02-24 14:57:24 +00:00
neon.h
opcodes.h arm64: Add AArch32 instruction set condition code checks 2014-11-20 16:33:45 +00:00
page.h arm64: asm: Explicitly include linux/personality.h in asm/page.h 2016-02-03 19:22:02 +00:00
paravirt.h arm64: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops 2015-12-21 14:40:54 +00:00
pci.h ARM64 / ACPI: Introduce PCI stub functions for ACPI 2015-03-25 11:49:31 +00:00
percpu.h arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
perf_event.h arm64: perf: factor out callchain code 2015-07-27 11:08:39 +01:00
pgalloc.h arm64: mm: add __{pud,pgd}_populate 2016-02-16 15:10:46 +00:00
pgtable-hwdef.h arm64: hugetlb: add support for PTE contiguous bit 2015-12-21 17:26:00 +00:00
pgtable-types.h arm64: expose number of page table levels on Kconfig level 2015-04-14 16:49:01 -07:00
pgtable.h arm64: move kernel image to base of vmalloc area 2016-02-18 18:16:44 +00:00
proc-fns.h arm64: kill flush_cache_all() 2015-05-19 15:27:42 +01:00
processor.h arm64: kernel: Add support for User Access Override 2016-02-18 17:27:04 +00:00
ptrace.h arm64: Fix compat register mappings 2015-10-29 16:55:15 +00:00
seccomp.h arm64: add seccomp support 2014-11-28 10:24:59 +00:00
shmparam.h arm64: fix COMPAT_SHMLBA definition for large pages 2015-12-02 14:00:10 +00:00
signal32.h
smp_plat.h arm64: remove dead-code depending on CONFIG_UP_LATE_INIT 2015-07-29 18:32:09 +01:00
smp.h arm64: kernel: implement ACPI parking protocol 2016-02-16 15:12:32 +00:00
sparsemem.h arm64: mm: update max pa bits to 48 2014-08-19 20:23:02 +01:00
spinlock_types.h arm64: include linux/types.h in asm/spinlock_types.h 2015-07-27 11:09:34 +01:00
spinlock.h arm64: spinlock: serialise spin_unlock_wait against concurrent lockers 2015-12-03 19:37:59 +00:00
stackprotector.h
stacktrace.h arm64: ftrace: fix a stack tracer's output under function graph tracer 2015-12-21 17:26:02 +00:00
stat.h
string.h arm64: add KASAN support 2015-10-12 17:46:36 +01:00
suspend.h arm64: kernel: rename __cpu_suspend to keep it aligned with arm 2015-06-19 14:46:39 +01:00
sync_bitops.h
syscall.h
sysreg.h arm64: kernel: Add support for User Access Override 2016-02-18 17:27:04 +00:00
system_misc.h arm64: use private ratelimit state along with show_unhandled_signals 2015-06-19 16:26:15 +01:00
thread_info.h arm64: Remove the get_thread_info() function 2016-02-18 17:27:05 +00:00
timex.h
tlb.h arm64: tlbflush: avoid flushing when fullmm == 1 2015-10-07 11:56:21 +01:00
tlbflush.h arm64: tlb: remove redundant barrier from __flush_tlb_pgtable 2015-10-07 11:56:33 +01:00
topology.h arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
traps.h arm64: Add __exception_irq_entry definition for function graph 2015-08-12 17:23:45 +01:00
uaccess.h arm64: switch to relative exception tables 2016-02-24 14:57:26 +00:00
unistd32.h arm64: compat: wire up new syscalls 2015-10-14 13:51:41 +01:00
unistd.h arm64: compat: wire up new syscalls 2015-10-14 13:51:41 +01:00
vdso_datapage.h
vdso.h
virt.h
word-at-a-time.h arm64: switch to relative exception tables 2016-02-24 14:57:26 +00:00