linux/arch/mips/include/uapi/asm
Matt Redfearn da5a7a6da5 MIPS: microMIPS: Fix decoding of swsp16 instruction
commit cea8cd498f upstream.

When the immediate encoded in the instruction is accessed, it is sign
extended due to being a signed value being assigned to a signed integer.
The ISA specifies that this operation is an unsigned operation.
The sign extension leads us to incorrectly decode:

801e9c8e:       cbf1            sw      ra,68(sp)

As having an immediate of 1073741809.

Since the instruction format does not specify signed/unsigned, and this
is currently the only location to use this instuction format, change it
to an unsigned immediate.

Fixes: bb9bc4689b ("MIPS: Calculate microMIPS ra properly when unwinding the stack")
Suggested-by: Paul Burton <paul.burton@imgtec.com>
Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Cc: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Cc: Miodrag Dinic <miodrag.dinic@imgtec.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/16957/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2017-11-26 13:50:33 +00:00
..
bitfield.h MIPS: Move definition of __BITFIELD_FIELD to sharable header. 2014-05-21 11:12:45 +02:00
bitsperlong.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
break.h MIPS: Quit exporting kernel internel break codes to uapi/asm/break.h 2013-02-20 18:24:24 +01:00
byteorder.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
cachectl.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
errno.h errno.h: remove "NFS" from descriptions in comments 2013-11-13 12:09:12 +09:00
fcntl.h Merge branch '3.10-fixes' into mips-for-linux-next 2013-07-12 18:11:43 +02:00
inst.h MIPS: microMIPS: Fix decoding of swsp16 instruction 2017-11-26 13:50:33 +00:00
ioctl.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
ioctls.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
Kbuild MIPS: Move definition of __BITFIELD_FIELD to sharable header. 2014-05-21 11:12:45 +02:00
kvm.h MIPS: KVM: Add count frequency KVM register 2014-05-30 13:02:54 +02:00
kvm_para.h MIPS: Add functions for hypervisor call 2014-05-30 21:01:11 +02:00
mman.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
msgbuf.h MIPS: <uapi/asm/msgbuf.h>: Don't reference CONFIG_* symbols. 2013-06-18 16:28:16 +02:00
param.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
poll.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
posix_types.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
ptrace.h MIPS: Quit exposing Kconfig symbols in uapi headers. 2013-05-23 10:19:04 +02:00
resource.h MIPS: <uapi/asm/resource.h: Don't reference CONFIG_* symbols. 2013-06-18 16:28:15 +02:00
sembuf.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
setup.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
sgidefs.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
shmbuf.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
sigcontext.h Revert "MIPS: Save/restore MSA context around signals" 2014-06-26 10:48:18 +01:00
siginfo.h MIPS: Fix siginfo.h to use strict posix types 2016-08-22 22:37:55 +01:00
signal.h MIPS: Delete definition of SA_RESTORER. 2013-04-05 15:10:51 +02:00
socket.h net: introduce SO_BPF_EXTENSIONS 2014-01-18 19:08:58 -08:00
sockios.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
stat.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
statfs.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
swab.h MIPS: <uapi/asm/swab.h>: Don't reference CONFIG_* symbols. 2013-06-18 16:28:16 +02:00
sysmips.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
termbits.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
termios.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
types.h MIPS: Add __SANE_USERSPACE_TYPES__ to asm/types.h for LL64 2014-05-28 10:51:13 +02:00
unistd.h MIPS: Fix inconsistancy of __NR_Linux_syscalls value 2014-05-25 12:43:26 +02:00