diff --git a/arch/microblaze/cpu/interrupts.c b/arch/microblaze/cpu/interrupts.c
index e9d53c1afde638696067627325037b726a5a401b..5a1321128a40e99d0f51306f153f71b295439863 100644
--- a/arch/microblaze/cpu/interrupts.c
+++ b/arch/microblaze/cpu/interrupts.c
@@ -41,8 +41,11 @@ void enable_interrupts (void)
 
 int disable_interrupts (void)
 {
+	unsigned int msr;
+
+	MFS(msr, rmsr);
 	MSRCLR(0x2);
-	return 0;
+	return (msr & 0x2) != 0;
 }
 
 #ifdef CONFIG_SYS_INTC_0