android_kernel_oneplus_msm8998/arch/parisc/kernel
Helge Deller d5bbffc050 parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel
commit 88776c0e70be0290f8357019d844aae15edaa967 upstream.

Qemu for PARISC reported on a 32bit SMP parisc kernel strange failures
about "Not-handled unaligned insn 0x0e8011d6 and 0x0c2011c9."

Those opcodes evaluate to the ldcw() assembly instruction which requires
(on 32bit) an alignment of 16 bytes to ensure atomicity.

As it turns out, qemu is correct and in our assembly code in entry.S and
pacache.S we don't pay attention to the required alignment.

This patch fixes the problem by aligning the lock offset in assembly
code in the same manner as we do in our C-code.

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-01-10 09:27:12 +01:00
..
.gitignore
asm-offsets.c parisc: Unbreak handling exceptions from kernel modules 2016-04-20 15:41:52 +09:00
audit.c parisc: add kernel audit feature 2013-11-07 22:27:20 +01:00
binfmt_elf32.c
cache.c parisc: Fix TLB related boot crash on SMP machines 2016-12-15 08:49:22 -08:00
compat_audit.c parisc: add kernel audit feature 2013-11-07 22:27:20 +01:00
drivers.c parisc/PCI: Use dev_is_pci() to identify PCI devices 2013-12-11 16:53:12 -07:00
entry.S parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel 2018-01-10 09:27:12 +01:00
firmware.c parisc: delete __cpuinit usage from all users 2013-07-14 19:36:51 -04:00
ftrace.c parisc: ftrace: Remove check of obsolete variable function_trace_stop 2014-07-18 13:57:05 -04:00
hardware.c parisc: add serial ports of C8000/1GHz machine to hardware database 2014-07-13 15:51:58 +02:00
head.S parisc: Increase initial kernel mapping to 32MB on 64bit kernel 2015-11-22 12:22:53 +01:00
hpmc.S parisc: fix partly 16/64k PAGE_SIZE boot 2013-05-06 23:08:32 +02:00
inventory.c parisc: Fix interrupt routing for C8000 serial ports 2013-07-31 23:42:32 +02:00
irq.c parisc: Filter out spurious interrupts in PA-RISC irq handler 2015-09-08 15:31:16 +02:00
Makefile parisc: add kernel audit feature 2013-11-07 22:27:20 +01:00
module.c mm: vmalloc: pass additional vm_flags to __vmalloc_node_range() 2015-02-13 21:21:42 -08:00
pa7300lc.c
pacache.S parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel 2018-01-10 09:27:12 +01:00
parisc_ksyms.c parisc: Avoid function pointers for kernel exception routines 2016-04-20 15:41:52 +09:00
pci-dma.c parisc: Fix race in pci-dma.c 2016-12-02 09:09:01 +01:00
pci.c parisc: Remove unused pcibios_init_bus() 2015-12-12 16:07:35 +01:00
pdc_chassis.c
pdc_cons.c parisc: don't use module_init for non-modular core pdc_cons code 2015-06-16 14:12:30 -04:00
perf.c parisc: perf: Fix potential NULL pointer dereference 2017-10-08 10:14:19 +02:00
perf_asm.S
perf_images.h
process.c parisc: copy_thread(): rename 'arg' argument to 'kthread_arg' 2015-04-24 13:45:55 +02:00
processor.c parisc: delete __cpuinit usage from all users 2013-07-14 19:36:51 -04:00
ptrace.c parisc: Fix ptrace syscall number and return value modification 2016-03-09 15:34:50 -08:00
real2.S
setup.c parisc: Fix races in parisc_setup_cache_timing() 2016-12-02 09:09:01 +01:00
signal.c parisc: Fix syscall restarts 2015-12-21 10:16:18 +01:00
signal32.c constify copy_siginfo_to_user{,32}() 2013-11-09 00:16:29 -05:00
signal32.h constify copy_siginfo_to_user{,32}() 2013-11-09 00:16:29 -05:00
smp.c parisc: Remove unused function 2015-02-17 10:41:19 +01:00
stacktrace.c
sys_parisc.c mm: larger stack guard gap, between vmas 2017-06-26 07:13:11 +02:00
sys_parisc32.c parisc: drop unused defines and header includes 2014-07-13 15:56:12 +02:00
syscall.S parisc: Fix validity check of pointer size argument in new CAS implementation 2017-11-30 08:37:24 +00:00
syscall_table.S parisc: use compat_sys_keyctl() 2017-07-21 07:44:56 +02:00
time.c parisc: Use platform_device_register_simple("rtc-generic") 2015-09-08 17:53:48 +02:00
topology.c
traps.c parisc: Fix kernel crash with reversed copy_from_user() 2016-04-20 15:41:52 +09:00
unaligned.c parisc: Fix pagefault crash in unaligned __get_user() call 2016-06-24 10:18:20 -07:00
unwind.c parisc: use kernel_text_address() in unwind functions 2013-11-30 22:08:54 +01:00
vmlinux.lds.S parisc: Fix kernel memory layout regarding position of __gp 2016-10-28 03:01:27 -04:00