linux-mips
[Top] [All Lists]

Re: [PATCH] MIPS: microMIPS: Redefine value of BRK_BUG.

To: "Steven J. Hill" <sjhill@mips.com>
Subject: Re: [PATCH] MIPS: microMIPS: Redefine value of BRK_BUG.
From: David Daney <ddaney.cavm@gmail.com>
Date: Thu, 17 Jan 2013 10:15:49 -0800
Cc: linux-mips@linux-mips.org, ralf@linux-mips.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:message-id:date:from:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=hEY41LKmAPuTq2DlL6N1C2edmWkfzm6zyXHT0qbtKbQ=; b=Xsd2pylbVOiIyr8xg1bq+hGRaF498g0d58V9YZVewuuknAgNv2wLVyfV3oSj9vSL5X E6Gn87w5in+7ZnoQrehqnl/KUeOpDFuOyLAHpv9R3l1Yxs8atZXe7d4MkoW1vjf+P5a+ grjiTSe34wiZD6BBtqNXqCkEbhE9/yMd+v1QSnjhIl2VMOAeVwARNDqd7g22hhhbfwI/ qfiKqIQ7wFLJ/Q8VdymyMs1RNkS7AY3HX64PLIgUi4tsJfzk36pVw6Blskbv9U127NtL c7x6Jtz6zPHSoJXxWhHtIR43dj9xlYLwdqpdJ846tnXRdpqQi1gTfa968NcE81LJtBuo AF4g==
In-reply-to: <1358444216-17213-1-git-send-email-sjhill@mips.com>
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>
References: <1358444216-17213-1-git-send-email-sjhill@mips.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0
On 01/17/2013 09:36 AM, Steven J. Hill wrote:
From: "Steven J. Hill" <sjhill@mips.com>

The BRK_BUG value is used in the BUG and __BUG_ON inline macros. For
standard MIPS cores the code in the 'tne' instruction is 10-bits long.
In microMIPS, the 'tne' instruction is recoded and the code can only be
4-bits long. We use the value of 12 instead of 512 when building a
microMIPS kernel.

Signed-off-by: Steven J. Hill <sjhill@mips.com>
---
  arch/mips/include/asm/break.h |    1 +
  arch/mips/include/asm/bug.h   |    4 ++++
  2 files changed, 5 insertions(+)

diff --git a/arch/mips/include/asm/break.h b/arch/mips/include/asm/break.h
index 9161e68..df9d090 100644
--- a/arch/mips/include/asm/break.h
+++ b/arch/mips/include/asm/break.h
@@ -27,6 +27,7 @@
  #define BRK_STACKOVERFLOW 9   /* For Ada stackchecking */
  #define BRK_NORLD     10      /* No rld found - not used by Linux/MIPS */
  #define _BRK_THREADBP 11      /* For threads, user bp (used by debuggers) */
+#define BRK_BUG_MM     12      /* Used by BUG() in microMIPS mode */
  #define BRK_BUG               512     /* Used by BUG() */

Can we move the CONFIG_CPU_MICROMIPS to here and just call the thing BRK_BUG?

Or perhaps redefining it unconditionally. I am not sure what the implications of doing that would be.

That way...


  #define BRK_KDB               513     /* Used in KDB_ENTER() */
  #define BRK_MEMU      514     /* Used by FPU emulator */
diff --git a/arch/mips/include/asm/bug.h b/arch/mips/include/asm/bug.h
index 540c98a..b716fb9 100644
--- a/arch/mips/include/asm/bug.h
+++ b/arch/mips/include/asm/bug.h
@@ -7,6 +7,10 @@
  #ifdef CONFIG_BUG

  #include <asm/break.h>
+#ifdef CONFIG_CPU_MICROMIPS
+#undef BRK_BUG
+#define BRK_BUG                BRK_BUG_MM
+#endif


...We don't need this bit. Doing an #undef risks using different values for BRK_BUG depending on whether or not asm/bug.h is included.

  static inline void __noreturn BUG(void)
  {



<Prev in Thread] Current Thread [Next in Thread>