mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 15:29:16 +00:00
MIPS64: R6: R2 emulation bugfix
Error recovery pointers for fixups was improperly set as ".word" which is unsuitable for MIPS64. Replaced by STR(PTR) [ralf@linux-mips.org: Apply changes as requested in the review process.] Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> Reviewed-by: James Hogan <james.hogan@imgtec.com> Reviewed-by: Markos Chandras <markos.chandras@imgtec.com> Fixes: b0a668fb2038 ("MIPS: kernel: mips-r2-to-r6-emul: Add R2 emulator for MIPS R6") Cc: macro@linux-mips.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Cc: <stable@vger.kernel.org> # 4.0+ Patchwork: https://patchwork.linux-mips.org/patch/9911/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
8d4925e9a5
commit
41fa29e4d8
@ -28,6 +28,7 @@
|
||||
#include <asm/inst.h>
|
||||
#include <asm/mips-r2-to-r6-emul.h>
|
||||
#include <asm/local.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
@ -1251,10 +1252,10 @@ fpu_emul:
|
||||
" j 10b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -1326,10 +1327,10 @@ fpu_emul:
|
||||
" j 10b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -1397,10 +1398,10 @@ fpu_emul:
|
||||
" j 9b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -1467,10 +1468,10 @@ fpu_emul:
|
||||
" j 9b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -1582,14 +1583,14 @@ fpu_emul:
|
||||
" j 9b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
" .word 5b,8b\n"
|
||||
" .word 6b,8b\n"
|
||||
" .word 7b,8b\n"
|
||||
" .word 0b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
STR(PTR) " 5b,8b\n"
|
||||
STR(PTR) " 6b,8b\n"
|
||||
STR(PTR) " 7b,8b\n"
|
||||
STR(PTR) " 0b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -1701,14 +1702,14 @@ fpu_emul:
|
||||
" j 9b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
" .word 5b,8b\n"
|
||||
" .word 6b,8b\n"
|
||||
" .word 7b,8b\n"
|
||||
" .word 0b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
STR(PTR) " 5b,8b\n"
|
||||
STR(PTR) " 6b,8b\n"
|
||||
STR(PTR) " 7b,8b\n"
|
||||
STR(PTR) " 0b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -1820,14 +1821,14 @@ fpu_emul:
|
||||
" j 9b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
" .word 5b,8b\n"
|
||||
" .word 6b,8b\n"
|
||||
" .word 7b,8b\n"
|
||||
" .word 0b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
STR(PTR) " 5b,8b\n"
|
||||
STR(PTR) " 6b,8b\n"
|
||||
STR(PTR) " 7b,8b\n"
|
||||
STR(PTR) " 0b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -1938,14 +1939,14 @@ fpu_emul:
|
||||
" j 9b\n"
|
||||
" .previous\n"
|
||||
" .section __ex_table,\"a\"\n"
|
||||
" .word 1b,8b\n"
|
||||
" .word 2b,8b\n"
|
||||
" .word 3b,8b\n"
|
||||
" .word 4b,8b\n"
|
||||
" .word 5b,8b\n"
|
||||
" .word 6b,8b\n"
|
||||
" .word 7b,8b\n"
|
||||
" .word 0b,8b\n"
|
||||
STR(PTR) " 1b,8b\n"
|
||||
STR(PTR) " 2b,8b\n"
|
||||
STR(PTR) " 3b,8b\n"
|
||||
STR(PTR) " 4b,8b\n"
|
||||
STR(PTR) " 5b,8b\n"
|
||||
STR(PTR) " 6b,8b\n"
|
||||
STR(PTR) " 7b,8b\n"
|
||||
STR(PTR) " 0b,8b\n"
|
||||
" .previous\n"
|
||||
" .set pop\n"
|
||||
: "+&r"(rt), "=&r"(rs),
|
||||
@ -2000,7 +2001,7 @@ fpu_emul:
|
||||
"j 2b\n"
|
||||
".previous\n"
|
||||
".section __ex_table,\"a\"\n"
|
||||
".word 1b, 3b\n"
|
||||
STR(PTR) " 1b,3b\n"
|
||||
".previous\n"
|
||||
: "=&r"(res), "+&r"(err)
|
||||
: "r"(vaddr), "i"(SIGSEGV)
|
||||
@ -2058,7 +2059,7 @@ fpu_emul:
|
||||
"j 2b\n"
|
||||
".previous\n"
|
||||
".section __ex_table,\"a\"\n"
|
||||
".word 1b, 3b\n"
|
||||
STR(PTR) " 1b,3b\n"
|
||||
".previous\n"
|
||||
: "+&r"(res), "+&r"(err)
|
||||
: "r"(vaddr), "i"(SIGSEGV));
|
||||
@ -2119,7 +2120,7 @@ fpu_emul:
|
||||
"j 2b\n"
|
||||
".previous\n"
|
||||
".section __ex_table,\"a\"\n"
|
||||
".word 1b, 3b\n"
|
||||
STR(PTR) " 1b,3b\n"
|
||||
".previous\n"
|
||||
: "=&r"(res), "+&r"(err)
|
||||
: "r"(vaddr), "i"(SIGSEGV)
|
||||
@ -2182,7 +2183,7 @@ fpu_emul:
|
||||
"j 2b\n"
|
||||
".previous\n"
|
||||
".section __ex_table,\"a\"\n"
|
||||
".word 1b, 3b\n"
|
||||
STR(PTR) " 1b,3b\n"
|
||||
".previous\n"
|
||||
: "+&r"(res), "+&r"(err)
|
||||
: "r"(vaddr), "i"(SIGSEGV));
|
||||
|
Loading…
x
Reference in New Issue
Block a user