Messages in this thread | | | Date | Thu, 30 Jul 2009 15:34:25 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] pcf50633: use a dedicated workqueue for irq processing |
| |
On Tue, 28 Jul 2009 00:41:15 +0400 Paul Fertser <fercerpav@gmail.com> wrote:
> Using the default kernel "events" workqueue causes problems with > synchronous adc readings if initiated from some task on the same > workqueue. > > I had a deadlock trying to use pcf50633_adc_sync_read from a > power_supply class driver because the reading was initiated from the > workqueue and it waited for the irq processing to complete (to get the > result) and that was put on the same workqueue.
I don't get it.
Do you meant that pcf50633_adc_sync_read() was called via a schedule_work() handler? If so, wasn't that a bug?
The patch looks reasonable, but creating yet another kernel thread is a bit sad. And I suspect that other MFD drivers are doing the same thing as pcf50633-core.c, in which case we should change those as well?
So.. please provide a more complete description of the problem which is being solved so that we can explore alternative fixes.
| |