linux-mips
[Top] [All Lists]

[PATCH] MIPS: Unbreak function tracer for 64-bit kernel.

To: linux-mips@linux-mips.org, ralf@linux-mips.org
Subject: [PATCH] MIPS: Unbreak function tracer for 64-bit kernel.
From: David Daney <ddaney.cavm@gmail.com>
Date: Tue, 2 Apr 2013 16:59:29 -0700
Cc: David Daney <david.daney@cavium.com>, Al Cooper <alcooperx@gmail.com>, viric@viric.name, stable@vger.kernel.org.#.3.8.x
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=j1d6fDnlHTFk9Fyfu+Z17Xg8mjlzrtNNYTRePUgb+vQ=; b=WmsUBgdQwjBpia+dQ/ges+reBn4pFGM4iwWkhGMFdee5TP3sgn+l6Sp6GtJaGZl1dC aA/GCUCCPEsx7q2tWsDw1Ta+3x0iHKUmO5HiuUn4b5pg9tZgH/pwUpnOIHc6CwOFdh/E fkSHjl4TOevRKfJm5cTiSzvqD5Fq+SoXJXWlsKLO//Qqt+a1sUtfFnTJcYlf67uDx/Kl +SQAF0S+WyEwVkKu0srE+bka/kAF+MHf59h/r7PSVkhKd3WCsRyt2fPFRUsjcvPKHO18 xB6irQjmbinLtM+A3tRCZhCSMAq5AVQSMPm8BAs3yhqS4+qxG1aJp6ul6wVVuolVcoJY BE1Q==
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Sender: linux-mips-bounce@linux-mips.org
From: David Daney <david.daney@cavium.com>

commit 58b69401c797 (MIPS: Function tracer: Fix broken function
tracing) completely broke the function tracer for 64-bit kernels.  The
symptom is a system hang very early in the boot process.

The fix: Remove/fix $sp adjustments for 64-bit case.

Signed-off-by: David Daney <david.daney@cavium.com>
Cc: Al Cooper <alcooperx@gmail.com>
Cc: viric@viric.name
Cc: stable@vger.kernel.org # 3.8.x
---
 arch/mips/kernel/mcount.S | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S
index 1658676..33d0671 100644
--- a/arch/mips/kernel/mcount.S
+++ b/arch/mips/kernel/mcount.S
@@ -46,10 +46,9 @@
        PTR_L   a5, PT_R9(sp)
        PTR_L   a6, PT_R10(sp)
        PTR_L   a7, PT_R11(sp)
-#else
-       PTR_ADDIU       sp, PT_SIZE
 #endif
-.endm
+       PTR_ADDIU       sp, PT_SIZE
+       .endm
 
        .macro RETURN_BACK
        jr ra
@@ -68,7 +67,11 @@ NESTED(ftrace_caller, PT_SIZE, ra)
        .globl _mcount
 _mcount:
        b       ftrace_stub
-       addiu sp,sp,8
+#ifdef CONFIG_32BIT
+        addiu sp,sp,8
+#else
+        nop
+#endif
 
        /* When tracing is activated, it calls ftrace_caller+8 (aka here) */
        lw      t1, function_trace_stop
-- 
1.7.11.7


<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] MIPS: Unbreak function tracer for 64-bit kernel., David Daney <=