android_kernel_oneplus_msm8998/arch/parisc/kernel
John David Anglin fcc65ab173 parisc: Fix double-word compare and exchange in LWS code on 32-bit kernels
commit 374b3bf8e8b519f61eb9775888074c6e46b3bf0c upstream.

As discussed on the debian-hppa list, double-wordcompare and exchange
operations fail on 32-bit kernels.  Looking at the code, I realized that
the ",ma" completer does the wrong thing in the  "ldw,ma  4(%r26), %r29"
instruction.  This increments %r26 and causes the following store to
write to the wrong location.

Note by Helge Deller:
The patch applies cleanly to stable kernel series if this upstream
commit is merged in advance:
f4125cfdb300 ("parisc: Avoid trashing sr2 and sr3 in LWS code").

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Tested-by: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
Fixes: 8920649120 ("parisc: Implement new LWS CAS supporting 64 bit operations.")
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-10-27 10:23:17 +02: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 parisc: fix redefinition of SET_PERSONALITY 2013-03-02 20:15:28 +01:00
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: Add Huge Page and HUGETLBFS support 2015-11-22 12:23:10 +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: Remove unnecessary TLB purges from flush_dcache_page_asm and flush_icache_page_asm 2016-12-15 08:49:21 -08: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 parisc: single_open() leaks 2013-05-05 00:10:41 -04:00
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 double-word compare and exchange in LWS code on 32-bit kernels 2017-10-27 10:23:17 +02: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