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]

 



 
> >>
> >> >> >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?

> - 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