diff --git a/arch/mips/mm/uasm-micromips.c b/arch/mips/mm/uasm-micromips.c
index 476d50c5fac1..162ee6d62788 100644
--- a/arch/mips/mm/uasm-micromips.c
+++ b/arch/mips/mm/uasm-micromips.c
@@ -130,7 +130,8 @@ static inline __uasminit u32 build_bimm(s32 arg)
 
 static inline __uasminit u32 build_jimm(u32 arg)
 {
-	WARN(arg & ~(JIMM_MASK << 2),
+
+	WARN(arg & ~((JIMM_MASK << 2) | 1),
 	     KERN_WARNING "Micro-assembler field overflow\n");
 
 	return (arg >> 1) & JIMM_MASK;