Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74807afd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MIPS fixes from Ralf Baechle:
 "The final round of fixes.  One corner case in the math emulator and
  another one in the mcount function for ftrace"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
  MIPS: mcount: Adjust stack pointer for static trace in MIPS32
  MIPS: Fix MFC1 & MFHC1 emulation for 64-bit MIPS systems
parents cd40fab6 8a574cfa
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -129,7 +129,11 @@ NESTED(_mcount, PT_SIZE, ra)
	 nop
#endif
	b	ftrace_stub
#ifdef CONFIG_32BIT
	 addiu sp, sp, 8
#else
	 nop
#endif

static_trace:
	MCOUNT_SAVE_REGS
@@ -139,6 +143,9 @@ static_trace:
	 move	a1, AT		/* arg2: parent's return address */

	MCOUNT_RESTORE_REGS
#ifdef CONFIG_32BIT
	addiu sp, sp, 8
#endif
	.globl ftrace_stub
ftrace_stub:
	RETURN_BACK
@@ -183,6 +190,11 @@ NESTED(ftrace_graph_caller, PT_SIZE, ra)
	jal	prepare_ftrace_return
	 nop
	MCOUNT_RESTORE_REGS
#ifndef CONFIG_DYNAMIC_FTRACE
#ifdef CONFIG_32BIT
	addiu sp, sp, 8
#endif
#endif
	RETURN_BACK
	END(ftrace_graph_caller)

+3 −3
Original line number Diff line number Diff line
@@ -650,9 +650,9 @@ static inline int cop1_64bit(struct pt_regs *xcp)
#define SIFROMREG(si, x)						\
do {									\
	if (cop1_64bit(xcp))						\
		(si) = get_fpr32(&ctx->fpr[x], 0);			\
		(si) = (int)get_fpr32(&ctx->fpr[x], 0);			\
	else								\
		(si) = get_fpr32(&ctx->fpr[(x) & ~1], (x) & 1);		\
		(si) = (int)get_fpr32(&ctx->fpr[(x) & ~1], (x) & 1);	\
} while (0)

#define SITOREG(si, x)							\
@@ -667,7 +667,7 @@ do { \
	}								\
} while (0)

#define SIFROMHREG(si, x)	((si) = get_fpr32(&ctx->fpr[x], 1))
#define SIFROMHREG(si, x)	((si) = (int)get_fpr32(&ctx->fpr[x], 1))

#define SITOHREG(si, x)							\
do {									\