Hello, On Thu, Jun 16, 2016 at 01:17:28PM +0200, Petr Mladek wrote: > +/** > + * kthread_delayed_work_timer_fn - callback that queues the associated kthread > + * delayed work when the timer expires. > + * @__data: pointer to the data associated with the timer > + * > + * The format of the function is defined by struct timer_list. > + * It should have been called from irqsafe timer with irq already off. > + */ > +void kthread_delayed_work_timer_fn(unsigned long __data) > +{ > + struct kthread_delayed_work *dwork = > + (struct kthread_delayed_work *)__data; > + struct kthread_work *work = &dwork->work; > + struct kthread_worker *worker = work->worker; > + > + /* > + * This might happen when a pending work is reinitialized. > + * It means that it is used a wrong way. > + */ > + if (WARN_ON_ONCE(!worker)) > + return; > + > + spin_lock(&worker->lock); > + /* Work must not be used with more workers, see kthread_queue_work(). */ ^ ditto, this reads weird Other than that, Acked-by: Tejun Heo <tj@xxxxxxxxxx> Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html