Re: [RFC PATCH] tasklet: correct the comments about tasklet schedule
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2015-02-26 14:35:59
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2015-02-26 14:35:59
* Qiang Huang | 2014-04-30 12:02:09 [+0800]:
--- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h@@ -514,9 +514,8 @@ extern void __send_remote_softirq(struct call_single_data *cp, int cpu, to be executed on some cpu at least once after this. * If the tasklet is already scheduled, but its execution is still not started, it will be executed only once. - * If this tasklet is already running on another CPU, it is rescheduled - for later.
This is true
- * Schedule must not be called from the tasklet itself (a lockup occurs)
This is true
+ * If this tasklet is already running on another CPU (or schedule is called + from tasklet itself), it wound not be rescheduled.
that are two statements. I suggest you fix the driver instead poking at the tasklet code.
* Tasklet is strictly serialized wrt itself, but not
wrt another tasklets. If client needs some intertask synchronization,
he makes it with spinlocks.Sebastian