Hi,
On Mon, Feb 06, 2012 at 11:11:45AM +0100, Guennadi Liakhovetski wrote:
Hi Felipe
On Sun, 5 Feb 2012, Felipe Balbi wrote:
Hi,
On Fri, Feb 03, 2012 at 04:43:20PM +0100, Guennadi Liakhovetski wrote:
The current renesas_usbhs driver triggers
BUG: scheduling while atomic: ksoftirqd/0/3/0x00000102
with enabled CONFIG_DEBUG_ATOMIC_SLEEP, by submitting DMA transfers from an atomic (tasklet) context, which is not supported by the shdma dmaengine driver. Fix it by switching to a work. Also simplify some list manipulations.
you are doing much more than what you say.
Are those two list macro changes what you refer to as "a lot?" ;-) You're right in principle, they are not directly related to the purpose of this patch, they are just something that occurred to me, while tracking down DMA packets. But yes, it can be extracted to a separate cosmetic patch...
please do so ;-)
Also, instead of using a workqueue, have you considered using threaded_irqs ?
(I didn't go over the driver again to see if it makes sense to use threaded_irqs in this case, but doesn't hurt asking)
From a first glance these tasklets are not directly enough related to IRQs, so, doing that is either impossible, or would require a _much_ deeper change to the driver and _this_ would indeed be a much bigger change than just fixing the Oops.
I see.. so please just split the list changes to separate patch and resend.