diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S b/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S
--- a/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S
+++ b/sys/cddl/dev/dtrace/aarch64/dtrace_asm.S
@@ -72,7 +72,9 @@
 dtrace_fuword8_nocheck(void *addr)
 */
 ENTRY(dtrace_fuword8_nocheck)
+	ENTER_USER_ACCESS(w6, x7)
 	ldrb	w0, [x0]
+	EXIT_USER_ACCESS(w6)
 	RET
 END(dtrace_fuword8_nocheck)
 
@@ -81,7 +83,9 @@
 dtrace_fuword16_nocheck(void *addr)
 */
 ENTRY(dtrace_fuword16_nocheck)
+	ENTER_USER_ACCESS(w6, x7)
 	ldrh	w0, [x0]
+	EXIT_USER_ACCESS(w6)
 	RET
 END(dtrace_fuword16_nocheck)
 
@@ -90,7 +94,9 @@
 dtrace_fuword32_nocheck(void *addr)
 */
 ENTRY(dtrace_fuword32_nocheck)
+	ENTER_USER_ACCESS(w6, x7)
 	ldr	w0, [x0]
+	EXIT_USER_ACCESS(w6)
 	RET
 END(dtrace_fuword32_nocheck)
 
@@ -99,7 +105,9 @@
 dtrace_fuword64_nocheck(void *addr)
 */
 ENTRY(dtrace_fuword64_nocheck)
+	ENTER_USER_ACCESS(w6, x7)
 	ldr	x0, [x0]
+	EXIT_USER_ACCESS(w6)
 	RET
 END(dtrace_fuword64_nocheck)
 
@@ -108,6 +116,7 @@
 dtrace_copy(uintptr_t uaddr, uintptr_t kaddr, size_t size)
 */
 ENTRY(dtrace_copy)
+	ENTER_USER_ACCESS(w6, x7)
 	cbz	x2, 2f		/* If len == 0 then skip loop */
 1:
 	ldrb	w4, [x0], #1	/* Load from uaddr */
@@ -115,6 +124,7 @@
 	sub	x2, x2, #1	/* len-- */
 	cbnz	x2, 1b
 2:
+	EXIT_USER_ACCESS(w6)
 	RET
 END(dtrace_copy)
 
@@ -125,6 +135,7 @@
 XXX: Check for flags?
 */
 ENTRY(dtrace_copystr)
+	ENTER_USER_ACCESS(w6, x7)
 	cbz     x2, 2f          /* If len == 0 then skip loop */
  
 1:	ldrb    w4, [x0], #1    /* Load from uaddr */
@@ -133,6 +144,7 @@
 	sub     x2, x2, #1      /* len-- */
 	cbnz    x2, 1b
 2:
+	EXIT_USER_ACCESS(w6)
 	RET
 END(dtrace_copystr)