RE: [PATCH 1/1] usb: fsl_udc_core: Fix scheduling while atomic dump message

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




>-----Original Message-----
>From: Chen Peter-B29397
>Sent: Wednesday, February 15, 2012 3:12 PM
>To: Li Yang-R58472; balbi@xxxxxx
>Cc: linux-usb@xxxxxxxxxxxxxxx
>Subject: RE: [PATCH 1/1] usb: fsl_udc_core: Fix scheduling while atomic
>dump message
>
>
>> >>
>> >> >> >The reason of above dump message is calling dma_poll_alloc with
>> >> >> >can- schedule mem_flags at interrupt context. Changing
>> >> >> >mem_flags from GFP_KERNEL to GFP_ATOMIC fix this problem.
>> >> >>
>> >> >> Thanks for the patch.  But I think the proper way to fix this is
>> >> >> to use the gfp_flags parameter passed by fsl_ep_queue().
>> >> >>
>> >> >Hi Leo, current allocate dtd descriptor code are all at atomic
>> context.
>> >>
>> >> Most of the usb_ep_queue() are using GFP_ATOMIC, but there are a
>> >> few using GFP_KERNEL.  For example start_transfer() in file_storage.c.
>> >>
>> >It is in spin_lock_irqsave/spin_unlock_irqrestore.
>>
>> You are quite right.  But on a second thought, it seems to me that the
>> fsl_req_to_dtd() doesn't need to hold the lock while fsl_queue_td() does.
>> Might need to change that also?
>>
>Correct, we don't need to protect current struct usb_request, but need to
>protect hardware visit at fsl_queue_td().
>
>So, is it ok I post v2 patch by adding gfp_flags to fsl_queue_td, and move
>lock from beginning of fsl_req_to_dtd to beginning of fsl_queue_td?

Yes.  Please.

- Leo

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux