From 9a038ef28319536cbfd5c83b7528799b03c701b1 Mon Sep 17 00:00:00 2001 From: acevest Date: Sat, 11 May 2024 19:06:06 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8Dwake=5Fup=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- kernel/wait.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/wait.c b/kernel/wait.c index 6ddb303..bb4fd0f 100644 --- a/kernel/wait.c +++ b/kernel/wait.c @@ -12,7 +12,7 @@ #include #include -volatile void init_wait_queue_head(wait_queue_head_t *wqh) { INIT_LIST_HEAD(&wqh->task_list); } +volatile void init_wait_queue_head(wait_queue_head_t *wqh) { INIT_LIST_HEAD(&(wqh->task_list)); } volatile void prepare_to_wait(wait_queue_head_t *head, wait_queue_entry_t *wqe, unsigned int state) { unsigned long flags; @@ -51,8 +51,12 @@ volatile void __wake_up(wait_queue_head_t *head, int nr) { wait_queue_entry_t *p, *tmp; irq_save(flags); list_for_each_entry_safe(p, tmp, &head->task_list, entry) { + assert(p->task != NULL); + printk("wakeup %s\n", p->task->name); p->task->state = TASK_READY; - current->reason = "wake_up"; + p->task->reason = "wake_up"; + + list_del(&p->entry); --nr; if (nr == 0) { -- 2.44.0