linux/arch/arm64/kernel
Marc Zyngier 6468178767 arm64: let the core code deal with preempt_count
Commit f27dde8dee (sched: Add NEED_RESCHED to the preempt_count)
introduced the use of bit 31 in preempt_count for obscure scheduling
purposes.

This causes interrupts taken from EL0 to hit the (open coded) BUG when
this flag is flipped while handling the interrupt (we compare the
values before and after, and kill the kernel if they are different).

The fix is to stop messing with the preempt count entirely, as this
is already being dealt with in the generic code (irq_enter/irq_exit).

Tested on a dual A53 FPGA running cyclictest.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2013-11-25 16:44:04 +00:00
..
vdso arm64: vdso: remove broken, redundant sequence counting for timezones 2013-01-10 10:43:43 +00:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
arm64ksyms.c arm64: Export __copy_in_user() to modules 2013-10-24 15:47:19 +01:00
asm-offsets.c arm64: KVM: Kconfig integration 2013-07-04 14:40:26 +02:00
cpu_ops.c arm64: Slightly improve the warning on CPU0 enable-method 2013-10-31 16:37:26 +00:00
cputable.c arm64: add CPU_HOTPLUG infrastructure 2013-10-25 11:33:21 +01:00
debug-monitors.c ARM: 7862/1: pcpu: replace __get_cpu_var_uses 2013-10-29 11:06:27 +00:00
early_printk.c arm64: Fix duplicate definition of early_console 2013-05-13 11:44:53 +01:00
entry-fpsimd.S arm64: move FP-SIMD save/restore code to a macro 2012-12-05 11:26:50 +00:00
entry.S arm64: let the core code deal with preempt_count 2013-11-25 16:44:04 +00:00
fpsimd.c arm64: fix possible invalid FPSIMD initialization state 2013-09-27 18:21:37 +01:00
head.S arm64: big-endian: set correct endianess on kernel entry 2013-10-25 15:59:41 +01:00
hw_breakpoint.c ARM: 7862/1: pcpu: replace __get_cpu_var_uses 2013-10-29 11:06:27 +00:00
hyp-stub.S arm64: add hypervisor stub 2012-12-05 11:26:49 +00:00
io.c arm64: Device specific operations 2012-09-17 13:42:04 +01:00
irq.c arm64: add CPU_HOTPLUG infrastructure 2013-10-25 11:33:21 +01:00
kuser32.S arm64: update 32-bit kuser helpers to ARMv8 2013-10-28 10:40:28 +00:00
Makefile arm64: reorganise smp_enable_ops 2013-10-25 11:33:20 +01:00
module.c mm/arch: use NUMA_NO_NODE 2013-11-13 12:09:05 +09:00
perf_event.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2013-11-14 08:51:29 +09:00
process.c arm64: add CPU_HOTPLUG infrastructure 2013-10-25 11:33:21 +01:00
psci.c arm64: add PSCI CPU_OFF-based hotplug support 2013-10-25 11:33:21 +01:00
ptrace.c arm64: debug: consolidate software breakpoint handlers 2013-06-12 11:23:02 +01:00
setup.c DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
signal32.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-11-13 15:34:18 +09:00
signal.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
smp_spin_table.c arm64: big-endian: write CPU holding pen address as LE 2013-10-25 15:59:42 +01:00
smp.c ARM64: /proc/interrupts: display IPIs of online CPUs only 2013-11-07 17:26:54 +00:00
stacktrace.c arm64: Exception handling 2012-09-17 10:24:46 +01:00
sys32.S arm64: compat: correct register concatenation for syscall wrappers 2013-10-25 15:59:36 +01:00
sys_compat.c compat: generic compat_sys_sched_rr_get_interval() implementation 2012-12-17 17:15:18 -08:00
sys.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
time.c arch_timer: Move to generic sched_clock framework 2013-10-09 16:54:10 -07:00
traps.c arm64: debug: consolidate software breakpoint handlers 2013-06-12 11:23:02 +01:00
vdso.c arm64: big-endian: don't treat code as data when copying sigret code 2013-10-25 15:59:37 +01:00
vmlinux.lds.S arm64: use generic RW_DATA_SECTION macro in linker script 2013-11-04 18:17:25 +00:00