Re: [PATCH/RFC] usb: fix renesas_usbhs to not schedule in atomiccontext

From: Felipe Balbi
Date: Mon Feb 06 2012 - 05:32:08 EST


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.

--
balbi

Attachment: signature.asc
Description: Digital signature