Re: [Bug #14388] keyboard under X with 2.6.31

Alan Cox
2009-10-14T21:16:33Z

> Assuming that we should not check all CPUs. And in this case perhaps we can
> even do something like
>
> if (!delayed_work_pending() &&
> get_wq_data()->current_work != dwork)
> return;
>
> but this needs barriers, and run_workqueue() needs mb__before_clear_bit().

Linus correctly said that we got into the mess because the locking was
too clever before. At this point the mutex approach seems to be rather
preferable to the other approaches which are at least as "clever" as the
current locking