Re: usb: chipidea: udc: BUG: sleeping function called from invalid context

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

 



06.03.2020 04:53, Peter Chen пишет:
> On 20-03-05 23:53:46, Dmitry Osipenko wrote:
>> 05.03.2020 05:12, Peter Chen пишет:
>>> On 20-03-04 19:10:08, Dmitry Osipenko wrote:
>>>> Hello,
>>>>
>>>> I was trying out today's linux-next-20200304 and noticed this splat in KMSG:
>>>>
>> ...
>>>> I haven't tried to figure out what change causes this problem, it didn't
>>>> happen using next-20200218. Please take a look, thanks in advance.
>>>
>>> Dmitry, thanks for reporting. I haven't met that issue, it maybe I
>>> enable runtime pm, but you have not? So I don't trigger
>>> "dev->power.runtime_status != RPM_ACTIVE" condition below
>>>
>>> 	might_sleep_if(!(rpmflags & RPM_ASYNC) && !dev->power.irq_safe &&
>>> 			dev->power.runtime_status != RPM_ACTIVE);
>>
>> The runtime PM always presents on Tegra, do you have
>> CONFIG_DEBUG_ATOMIC_SLEEP=y in the kernel's config?
>>
> 
> No, the reason should be "dev->power.runtime_status != RPM_ACTIVE", your
> ci device's runtime may not be active at that time, if I move the spinlock
> above pm_runtime_get_sync at ci_hdrc_gadget_connect, I could reproduce it
> too.
> 
> I enabled CONFIG_DEBUG_ATOMIC_SLEEP, but can't reproduce the dump
> without above changes.

It happened using a setup where UDC is set to a hardcoded USBNET
peripheral-mode, the splat happened as soon as UDC is probed and cable
is plugged.

I'm not sure whether RPM needs to be explicitly enabled for the CI
device by the tegra_udc_driver. If yes, then indeed Tegra's CI driver
doesn't support RPM and it should be in a disabled state.



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

  Powered by Linux