https://github.com/torvalds/linux
Revision 88776c0e70be0290f8357019d844aae15edaa967 authored by Helge Deller on 02 January 2018, 19:36:44 UTC, committed by Helge Deller on 02 January 2018, 21:21:54 UTC
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>
Cc: <stable@vger.kernel.org> # v4.0+
1 parent 28df2f8
History
Tip revision: 88776c0e70be0290f8357019d844aae15edaa967 authored by Helge Deller on 02 January 2018, 19:36:44 UTC
parisc: Fix alignment of pa_tlb_lock in assembly on 32-bit SMP kernel
Tip revision: 88776c0
File Mode Size
Documentation
arch
block
certs
crypto
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt
.cocciconfig -rw-r--r-- 59 bytes
.get_maintainer.ignore -rw-r--r-- 31 bytes
.gitattributes -rw-r--r-- 30 bytes
.gitignore -rw-r--r-- 1.4 KB
.mailmap -rw-r--r-- 8.8 KB
COPYING -rw-r--r-- 18.3 KB
CREDITS -rw-r--r-- 96.2 KB
Kbuild -rw-r--r-- 2.2 KB
Kconfig -rw-r--r-- 287 bytes
MAINTAINERS -rw-r--r-- 426.3 KB
Makefile -rw-r--r-- 58.5 KB
README -rw-r--r-- 722 bytes

README

back to top