]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
MIPS: jump_label.c: Handle the microMIPS J instruction encoding
authorMaciej W. Rozycki <macro@codesourcery.com>
Mon, 17 Nov 2014 16:10:32 +0000 (16:10 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 22 May 2019 22:15:01 +0000 (23:15 +0100)
commit90cc6c818a4c348213b74c00032a8dc107db33fd
treeabcea6f7e974069ae6c6fbc27e01e9a67412a460
parentef4debcacabf15f80933390382ffd280994e4955
MIPS: jump_label.c: Handle the microMIPS J instruction encoding

commit 935c2dbec4d6d3163ee8e7409996904a734ad89a upstream.

Implement the microMIPS encoding of the J instruction for the purpose of
the static keys feature, fixing a crash early on in bootstrap as the
kernel is unhappy seeing the ISA bit set in jump table entries.  Make
sure the ISA bit correctly reflects the instruction encoding chosen for
the kernel, 0 for the standard MIPS and 1 for the microMIPS encoding.

Also make sure the instruction to patch is a 32-bit NOP in the microMIPS
mode as by default the 16-bit short encoding is assumed

Signed-off-by: Maciej W. Rozycki <macro@codesourcery.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8516/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/mips/include/asm/jump_label.h
arch/mips/kernel/jump_label.c