From d1e9712189f9922f988d9a62dad2910c217a01cb Mon Sep 17 00:00:00 2001 From: Louie Lu Date: Fri, 18 Aug 2017 13:49:44 +0800 Subject: [PATCH] Fix tasklet_schedule should run with thread_softirqd --- kernel/softirq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/softirq.c b/kernel/softirq.c index 6c35e31..f5d307b 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -67,7 +67,8 @@ struct tasklet_struct *tasklet_init(void(*func), void *data, unsigned long prio) int tasklet_schedule(struct tasklet_struct *task) { - if (!task || task->prio > PRIO_TASKLET_MINPRIO) + CURRENT_THREAD_INFO(cur); + if (!task || task->prio > PRIO_TASKLET_MINPRIO || cur != thread_softirqd) return -1; // list_add_tail(&task->tsk_q, &prio_tasklet.runq[task->prio]);