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() */ #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 static inline void __noreturn BUG(void) { -- 1.7.9.5