linux/arch/arm/kernel
Russell King 2a3811068f ARM: Fix XIP kernels
Commit 7619751f8c ("ARM: 8595/2: apply more __ro_after_init") caused
a regression with XIP kernels by moving the __ro_after_init data into
the read-only section.  With XIP kernels, the read-only section is
located in read-only memory from the very beginning.

Work around this by moving the __ro_after_init data back into the .data
section, which will be in RAM, and hence will be writable.

It should be noted that in doing so, this remains writable after init.

Fixes: 7619751f8c ("ARM: 8595/2: apply more __ro_after_init")
Reported-by: Andrea Merello <andrea.merello@gmail.com>
Tested-by: Andrea Merello <andrea.merello@gmail.com> [ XIP stm32 ]
Tested-by: Alexandre Torgue <alexandre.torgue@st.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2016-11-16 23:51:19 +00:00
..
.gitignore
arch_timer.c
asm-offsets.c ARM: save and reset the address limit when entering an exception 2016-07-07 16:01:01 +01:00
atags_compat.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00
atags_parse.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00
atags_proc.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00
atags.h ARM: 8495/1: ATAGS: move save_atags() to arch/arm/include/asm/setup.h 2016-01-04 11:26:00 +00:00
bios32.c Merge branches 'pci/demodularize-hosts' and 'pci/host-request-windows' into next 2016-08-01 12:23:57 -05:00
calls.S ARM: wire up new pkey syscalls 2016-10-19 10:18:47 +01:00
cpuidle.c ARM: 8595/2: apply more __ro_after_init 2016-08-12 16:47:06 +01:00
crash_dump.c ARM: 8012/1: kdump: Avoid overflow when converting pfn to physaddr 2014-04-07 12:10:00 +01:00
debug.S ARM: unify MMU/!MMU addruart calls 2015-05-20 23:09:51 +02:00
devtree.c ARM: 8616/1: dt: Respect property size when parsing CPUs 2016-09-29 16:57:43 +01:00
dma-isa.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00
dma.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00
early_printk.c
efi.c ARM/efi: Apply strict permissions for UEFI Runtime Services regions 2016-04-28 11:33:53 +02:00
elf.c
entry-armv.S ARM: fix address limit restoration for undefined instructions 2016-08-09 22:57:59 +01:00
entry-common.S ARM: rename S_FRAME_SIZE to PT_REGS_SIZE 2016-06-22 19:54:28 +01:00
entry-ftrace.S arm: move exports to definitions 2016-08-07 23:47:21 -04:00
entry-header.S ARM: save and reset the address limit when entering an exception 2016-07-07 16:01:01 +01:00
entry-v7m.S ARM: rename S_FRAME_SIZE to PT_REGS_SIZE 2016-06-22 19:54:28 +01:00
fiq.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00
fiqasm.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
ftrace.c ftrace: Add return address pointer to ftrace_ret_stack 2016-08-24 12:15:14 +02:00
head-common.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
head-nommu.S ARM: 8607/1: V7M: Wire up caches for V7M processors with cache support. 2016-09-06 15:51:08 +01:00
head.S arm: move exports to definitions 2016-08-07 23:47:21 -04:00
hibernate.c ARM: use virt_to_idmap() for soft_restart() 2016-02-08 15:48:32 +00:00
hw_breakpoint.c perf/core: Set event's default ::overflow_handler() 2016-03-31 10:30:47 +02:00
hyp-stub.S ARM: 8600/1: Enforce some NS-SVC initialisation 2016-08-23 10:08:33 +01:00
insn.c
io.c ARM: io.c: clean up EXPORT_SYMBOL()s 2014-11-21 15:25:02 +00:00
irq.c ARM: 8499/1: irq: l2c: do not print error in case of missing l2c from 2016-01-26 23:49:02 +00:00
isa.c arm: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:15 -07:00
iwmmxt.S ARM: 8221/1: PJ4: allow building in Thumb-2 mode 2014-12-03 16:08:00 +00:00
jump_label.c jump_label: Rename JUMP_LABEL_{EN,DIS}ABLE to JUMP_LABEL_{JMP,NOP} 2015-08-03 11:34:12 +02:00
kgdb.c ARM: 8428/1: kgdb: Fix registers on sleeping tasks 2015-10-03 16:36:45 +01:00
machine_kexec.c ARM: kexec: fix kexec for Keystone 2 2016-08-02 19:35:29 -04:00
Makefile arm: move exports to definitions 2016-08-07 23:47:21 -04:00
module-plts.c ARM: kernel: avoid brute force search on PLT generation 2016-08-30 17:45:34 +01:00
module.c ARM: 8518/1: Use correct symbols for XIP_KERNEL 2016-02-11 15:43:14 +00:00
module.lds ARM: kernel: merge core and init PLTs 2016-08-30 17:45:34 +01:00
opcodes.c
paravirt.c arm: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops 2015-12-21 14:40:54 +00:00
patch.c ARM: probes: move all probe code to dedicate directory 2015-01-09 09:36:50 +00:00
perf_callchain.c perf core: Add a 'nr' field to perf_event_callchain_context 2016-05-16 23:11:51 -03:00
perf_event_v6.c arm: perf: factor arm_pmu core out to drivers 2015-07-31 15:01:14 +01:00
perf_event_v7.c arm: perf: move to common attr_group fields 2016-09-09 14:51:51 +01:00
perf_event_xscale.c arm: perf: factor arm_pmu core out to drivers 2015-07-31 15:01:14 +01:00
perf_regs.c perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
pj4-cp0.c ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode 2016-01-04 11:12:10 +00:00
process.c ARM: use simpler API for random address requests 2016-10-11 15:06:32 -07:00
psci_smp.c ARM: use const and __initconst for smp_operations 2015-12-01 22:17:45 +01:00
ptrace.c arm/ptrace: run seccomp after ptrace 2016-06-14 10:54:42 -07:00
reboot.c ARM: 8568/1: reboot: remove duplicated local_irq_disable() 2016-05-05 19:02:09 +01:00
reboot.h ARM: move reboot code to arch/arm/kernel/reboot.c 2015-04-02 09:50:45 +01:00
relocate_kernel.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
return_address.c ARM: 8328/1: remove empty preprocessor #else branch 2015-03-28 16:54:53 +00:00
setup.c ARM: 8604/1: V7M: Add support for reading the CTR with read_cpuid_cachetype() 2016-09-06 15:51:07 +01:00
signal.c Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2015-09-19 21:05:02 -07:00
sigreturn_codes.S ARM: 7895/1: signal: fix armv7-m build issue in sigreturn_codes.S 2013-11-30 22:21:00 +00:00
sleep.S ARM: fix new BSYM() usage introduced via for-arm-soc branch 2015-06-12 21:19:35 +01:00
smccc-call.S arm: move exports to definitions 2016-08-07 23:47:21 -04:00
smp_scu.c ARM: 8122/1: smp_scu: enable SCU standby support 2014-08-02 08:51:53 +01:00
smp_tlb.c ARM: 8577/1: Fix Cortex-A15 798181 errata initialization 2016-07-02 12:13:03 +01:00
smp_twd.c arm/twd: Convert to hotplug state machine 2016-07-15 10:40:28 +02:00
smp.c nmi_backtrace: do a local dump_stack() instead of a self-NMI 2016-10-07 18:46:30 -07:00
stacktrace.c ARM: 8172/1: Use current_stack_pointer in save_stack_trace_tsk 2014-11-13 23:58:03 +00:00
suspend.c ARM: 8248/1: pm: remove outdated comment 2015-01-21 15:58:57 +00:00
swp_emulate.c ARM: 8475/1: SWP emulation: Restore original *data when failed 2015-12-15 11:51:42 +00:00
sys_arm.c
sys_oabi-compat.c arm: oabi compat: add missing access checks 2016-08-10 12:57:45 -07:00
tcm.c ARM: 8388/1: tcm: Don't crash when TCM banks are protected by TrustZone 2015-06-06 10:37:28 +01:00
thumbee.c ARM: convert printk(KERN_* to pr_* 2014-11-21 15:24:50 +00:00
time.c clocksource: cosmetic: Drop OF 'dependency' from symbols 2015-10-01 02:18:39 +02:00
topology.c ARM: 8497/1: initialize cpu_scale to its default 2016-01-26 23:49:02 +00:00
traps.c ARM: fix backtrace 2016-11-15 15:25:39 +00:00
unwind.c ARM: 8176/1: Use current_stack_pointer in unwind_backtrace 2014-11-13 23:58:09 +00:00
v7m.c
vdso.c Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-10-06 07:59:37 -07:00
vmlinux-xip.lds.S ARM: Fix XIP kernels 2016-11-16 23:51:19 +00:00
vmlinux.lds.S nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
xscale-cp0.c ARM: make xscale iwmmxt code multiplatform aware 2015-12-01 21:44:24 +01:00