On 06/09/2014 11:32 PM, Dan Williams wrote:
> On Mon, Jun 9, 2014 at 9:07 AM, Mathias Nyman
> <mathias.ny...@linux.intel.com> wrote:
>> xhci_stop_device() allocates and issues stop commands for each active 
>> endpoint.
>> This is done with spinlock held and interrupt disabled so we can't sleep 
>> during
>> memory allocation. Use GFP_ATOMIC instead
>>
>> Regressiong from commit ddba5cd0aeff5bbed92ebdf4b1223300b0541e78
>> "xhci: Use command structures when queuing commands on the command ring"
>> for 3.16-rc1
>>
>> Signed-off-by: Mathias Nyman <mathias.ny...@linux.intel.com>
>> ---
>>  drivers/usb/host/xhci-hub.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
>> index 6231ce6..0373487 100644
>> --- a/drivers/usb/host/xhci-hub.c
>> +++ b/drivers/usb/host/xhci-hub.c
>> @@ -287,7 +287,7 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int 
>> slot_id, int suspend)
>>                 if (virt_dev->eps[i].ring && virt_dev->eps[i].ring->dequeue) 
>> {
>>                         struct xhci_command *command;
>>                         command = xhci_alloc_command(xhci, false, false,
>> -                                                    GFP_NOIO);
>> +                                                    GFP_ATOMIC);
> 
> GFP_NOWAIT instead?  Do we really need to steal from emergency pools for this?
> 

Sure, makes sense.
I'll resend

-Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to