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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/17/2013 09:36 AM, Steven J. Hill wrote:
From: "Steven J. Hill" <sjhill@xxxxxxxx>

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@xxxxxxxx>
---
  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)
  {




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux