Messages in this thread | | | From | Bryan Wu <> | Date | Tue, 24 Jul 2012 08:23:00 +0800 | Subject | Re: [PATCH v2] leds: add new lp8788 led driver |
| |
On Mon, Jul 23, 2012 at 2:19 AM, Mark Brown <broonie@opensource.wolfsonmicro.com> wrote: > On Sat, Jul 21, 2012 at 02:48:49AM +0800, Bryan Wu wrote: > >> Actually cancel_work_sync() is quite similar to flush_work_sync() >> here. For the timer thing, in fact it is NULL when cancel_work_sync() >> call __cancel_work_timer(). > >> And Mark, do you have any advice about the flush_work_sync() and >> cancel_work_sync(). I saw you use flush in the >> drivers/leds/leds-wm8350.c. > > If the work is flushed then the state that userspace thought was set > when the driver is removed will actually be set before the driver is > removed. This is fairly minor but might be useful.
So what's kind of state you mentioned here that is cared by user space. I find these 2 functions are quite confused for use right now. Literally, canceling normally will remove pending work item and wait for running work item to finish. flushing will wait for both pending and running work item to finish.
Thanks, -- Bryan Wu <bryan.wu@canonical.com> Kernel Developer +86.186-168-78255 Mobile Canonical Ltd. www.canonical.com Ubuntu - Linux for human beings | www.ubuntu.com
| |