Index: kernel/arch/arm64/src/interrupt.c
===================================================================
--- kernel/arch/arm64/src/interrupt.c	(revision 1b1be5f1a71e1f658889ccb441f5fe8ad9bc216f)
+++ kernel/arch/arm64/src/interrupt.c	(revision 6de65f37762c68a80126db1923a3341dc11c2450)
@@ -53,5 +53,5 @@
 	DAIF_write(daif | DAIF_IRQ_FLAG);
 
-	return (daif >> DAIF_IRQ_SHIFT) & 1;
+	return daif & DAIF_IRQ_FLAG;
 }
 
@@ -66,5 +66,5 @@
 	DAIF_write(daif & ~DAIF_IRQ_FLAG);
 
-	return (daif >> DAIF_IRQ_SHIFT) & 1;
+	return daif & DAIF_IRQ_FLAG;
 }
 
@@ -77,6 +77,5 @@
 	uint64_t daif = DAIF_read();
 
-	DAIF_write((daif & ~DAIF_IRQ_FLAG) |
-	    ((ipl & 1) << DAIF_IRQ_SHIFT));
+	DAIF_write((daif & ~DAIF_IRQ_FLAG) | (ipl & DAIF_IRQ_FLAG));
 }
 
@@ -87,5 +86,5 @@
 ipl_t interrupts_read(void)
 {
-	return (DAIF_read() >> DAIF_IRQ_SHIFT) & 1;
+	return DAIF_read() & DAIF_IRQ_FLAG;
 }
 
