Subject: Re: [PATCH 1/2 v5] usbnet: allow status interrupt URB to always be active

From: Oliver Neukum <[email-masked]>
Date: Thu, 11 Apr 2013 13:14:35 +0200

On Thursday 11 April 2013 18:03:09 Ming Lei wrote:
> On Thu, Apr 11, 2013 at 5:53 PM, Oliver Neukum <[email-masked]> wrote:
> > On Thursday 11 April 2013 16:09:16 Ming Lei wrote:
> >>
> >> Could you explain why work queue need GFP_NOIO?
> >
> > Your fix for the memory allocation depends on it happening in the same
> > context. If you execute code on a work queue this happens in the context
> > of a kernel thread.
> 
> I understand the interface might be called from workqueue, and my question
> is why GFP_NOIO is needed in the work queue context. Generally speaking,
> GFP_KERNEL is enough for work queue context.
> 
> As we discussed before, GFP_NOIO is required in runtime resume context
> and reset context, and the two contexts have been addressed automatically.
> So looks you didn't answer my question, :-)

Sorry, I misunderstood.

Task A					Task B				queue

queue work
						request a reset
											allocate memory and block
						cancel the work
											shit happened

	Regards
		Oliver