Page MenuHomeFreeBSD

No OneTemporary

Size
592 B
Referenced Files
None
Subscribers
None
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
index 9f792332a931..6292522ae67b 100644
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -214,0 +215,11 @@ align_abort(struct thread *td, struct trapframe *frame, uint64_t esr,
+ /*
+ * Accessing unaligned memory may fault when using atomics.
+ * Make sure we don't panic if we're doing an unaligned
+ * access to userland memory, as can happen with _umtx_op()
+ */
+ if (td->td_intr_nesting_level == 0 &&
+ td->td_pcb->pcb_onfault != 0) {
+ frame->tf_elr = td->td_pcb->pcb_onfault;
+ return;
+ }
+

File Metadata

Mime Type
text/x-diff
Expires
Thu, Aug 6, 10:39 AM (23 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29349047
Default Alt Text
(592 B)

Event Timeline