Index: kernel/arch/arm64/src/interrupt.c
===================================================================
--- kernel/arch/arm64/src/interrupt.c	(revision 8c5586cbcee875245cbcc8e57bf16d08c4f811b9)
+++ kernel/arch/arm64/src/interrupt.c	(revision 5773e827cf0567542d18c932dd0f0b24725b01ca)
@@ -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;
 }
 
