diff --git a/src/rt/rust_stack.h b/src/rt/rust_stack.h index bea86cf1ec8f..ecd591cbe365 100644 --- a/src/rt/rust_stack.h +++ b/src/rt/rust_stack.h @@ -12,6 +12,7 @@ struct stk_seg { uint32_t pad; #endif + rust_task *task; uintptr_t canary; uint8_t data[]; diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 98c3c9e456fa..317638b93c99 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -508,6 +508,7 @@ rust_task::new_stack(size_t requested_sz) { size_t sz = rust_stk_sz + RED_ZONE_SIZE; stk_seg *new_stk = create_stack(&local_region, sz); LOGPTR(thread, "new stk", (uintptr_t)new_stk); + new_stk->task = this; new_stk->next = NULL; new_stk->prev = stk; if (stk) {