From 2c8b6de913973274e877639658e9e7273a012adb Mon Sep 17 00:00:00 2001
From: "Dmitry V. Levin" <ldv@altlinux.org>
Date: Tue, 8 Jan 2019 19:23:44 +0000
Subject: [PATCH] mips o32: fix build

Upstream-Status: Backport

Commit 917c2ccf3a67 "Refactor stack pointers" moved mips_REG_* macros
from linux/mips/arch_regs.h to linux/mips/arch_regs.c because these
macros are no longer used outside syscall.c or files included by
syscall.c, but this caused a build regression on mips o32 because
decode_syscall_subcall() uses mips_REG_SP prior to its definition.

* syscall.c (decode_syscall_subcall): Move ...
* linux/mips/get_syscall_args.c: ... here.

Reported-by: Baruch Siach <baruch@tkos.co.il>
Fixes: v4.26~61 "Refactor stack pointers"
---
 linux/mips/get_syscall_args.c | 26 ++++++++++++++++++++++++++
 syscall.c                     | 27 ++-------------------------
 2 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/linux/mips/get_syscall_args.c b/linux/mips/get_syscall_args.c
index 387aa852..e2889f98 100644
--- a/linux/mips/get_syscall_args.c
+++ b/linux/mips/get_syscall_args.c
@@ -37,3 +37,29 @@ arch_get_syscall_args(struct tcb *tcp)
 #endif
 	return 1;
 }
+
+#ifdef SYS_syscall_subcall
+static void
+decode_syscall_subcall(struct tcb *tcp)
+{
+	if (!scno_is_valid(tcp->u_arg[0]))
+		return;
+	tcp->scno = tcp->u_arg[0];
+	tcp->qual_flg = qual_flags(tcp->scno);
+	tcp->s_ent = &sysent[tcp->scno];
+	memmove(&tcp->u_arg[0], &tcp->u_arg[1],
+		sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0]));
+	/*
+	 * Fetching the last arg of 7-arg syscalls (fadvise64_64
+	 * and sync_file_range) requires additional code,
+	 * see linux/mips/get_syscall_args.c
+	 */
+	if (tcp->s_ent->nargs == MAX_ARGS) {
+		if (umoven(tcp,
+			   mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]),
+			   sizeof(tcp->u_arg[0]),
+			   &tcp->u_arg[MAX_ARGS - 1]) < 0)
+		tcp->u_arg[MAX_ARGS - 1] = 0;
+	}
+}
+#endif /* SYS_syscall_subcall */
diff --git a/syscall.c b/syscall.c
index d78f51dd..51fcc721 100644
--- a/syscall.c
+++ b/syscall.c
@@ -349,31 +349,8 @@ decode_ipc_subcall(struct tcb *tcp)
 #endif /* SYS_ipc_subcall */
 
 #ifdef SYS_syscall_subcall
-static void
-decode_syscall_subcall(struct tcb *tcp)
-{
-	if (!scno_is_valid(tcp->u_arg[0]))
-		return;
-	tcp->scno = tcp->u_arg[0];
-	tcp->qual_flg = qual_flags(tcp->scno);
-	tcp->s_ent = &sysent[tcp->scno];
-	memmove(&tcp->u_arg[0], &tcp->u_arg[1],
-		sizeof(tcp->u_arg) - sizeof(tcp->u_arg[0]));
-# ifdef LINUX_MIPSO32
-	/*
-	 * Fetching the last arg of 7-arg syscalls (fadvise64_64
-	 * and sync_file_range) requires additional code,
-	 * see linux/mips/get_syscall_args.c
-	 */
-	if (tcp->s_ent->nargs == MAX_ARGS) {
-		if (umoven(tcp,
-			   mips_REG_SP + MAX_ARGS * sizeof(tcp->u_arg[0]),
-			   sizeof(tcp->u_arg[0]),
-			   &tcp->u_arg[MAX_ARGS - 1]) < 0)
-		tcp->u_arg[MAX_ARGS - 1] = 0;
-	}
-# endif /* LINUX_MIPSO32 */
-}
+/* The implementation is architecture specific.  */
+static void decode_syscall_subcall(struct tcb *);
 #endif /* SYS_syscall_subcall */
 
 static void
-- 
2.17.0

