Page MenuHomeFreeBSD

D59341.id185700.diff
No OneTemporary

D59341.id185700.diff

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
@@ -109,8 +109,11 @@
ENTRY(dtrace_copy)
cbz x2, 2f /* If len == 0 then skip loop */
1:
- ldtrb w4, [x0] /* Load from uaddr */
+ mvn x4, xzr /* Set all bits */
+ ldtrb w4, [x0] /* Load from uaddr or raise data abort */
add x0, x0, #1
+ lsr x3, x4, #32 /* Extract zero-extended high bits */
+ cbnz x3, 2f /* If high bits != 0 then exit loop */
strb w4, [x1], #1 /* Store in kaddr */
sub x2, x2, #1 /* len-- */
cbnz x2, 1b

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 14, 7:43 AM (1 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38242910
Default Alt Text
D59341.id185700.diff (627 B)

Event Timeline