linux/arch/arm64/include/asm
Mark Rutland 3eca86e75e arm64: Remove fixmap include fragility
The asm-generic fixmap.h depends on each architecture's fixmap.h to pull
in the definition of PAGE_KERNEL_RO, if this exists. In the absence of
this, FIXMAP_PAGE_RO will not be defined. In mm/early_ioremap.c the
definition of early_memremap_ro is predicated on FIXMAP_PAGE_RO being
defined.

Currently, the arm64 fixmap.h doesn't include pgtable.h for the
definition of PAGE_KERNEL_RO, and as a knock-on effect early_memremap_ro
is not always defined, leading to link-time failures when it is used.
This has been observed with defconfig on next-20160226.

Unfortunately, as pgtable.h includes fixmap.h, adding the include
introduces a circular dependency, which is just as fragile.

Instead, this patch factors out PAGE_KERNEL_RO and other prot
definitions into a new pgtable-prot header which can be included by poth
pgtable.h and fixmap.h, avoiding the  circular dependency, and ensuring
that early_memremap_ro is alwyas defined where it is used.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2016-02-26 15:22:53 +00:00
..
xen xen/events: Support event channel rebind on ARM 2015-08-20 12:24:15 +01:00
acenv.h
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
arm-cci.h
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
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
cpu.h arm64: add ARMv8.2 id_aa64mmfr2 boiler plate 2016-02-18 12:00:01 +00:00
cpufeature.h arm64: Add workaround for Cavium erratum 27456 2016-02-26 15:14:27 +00:00
cpuidle.h
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
dma-mapping.h dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
dmi.h
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: add support for building vmlinux as a relocatable PIE binary 2016-02-24 14:57:27 +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: Remove fixmap include fragility 2016-02-26 15:22:53 +00:00
fpsimd.h
fpsimdmacros.h
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
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
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 arm64: Rename cpuid_feature field extract routines 2016-02-25 10:33:08 +00: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: add support for kernel ASLR 2016-02-24 14:57:27 +00:00
mmu_context.h arm64: Ensure the secondary CPUs have safe ASIDBits size 2016-02-25 10:33:06 +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 kernel ASLR 2016-02-24 14:57:27 +00:00
neon.h
opcodes.h
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
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-prot.h arm64: Remove fixmap include fragility 2016-02-26 15:22:53 +00:00
pgtable-types.h
pgtable.h arm64: Remove fixmap include fragility 2016-02-26 15:22:53 +00:00
proc-fns.h
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
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: Handle early CPU boot failures 2016-02-25 10:32:23 +00:00
sparsemem.h
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
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