Thread (28 messages) 28 messages, 6 authors, 2019-10-25

Re: [PATCH] usb: dwc3: Add shutdown toplatform_driver

From: Vicente Bergas <hidden>
Date: 2019-09-09 15:07:37
Also in: linux-rockchip, linux-usb

On Tuesday, August 27, 2019 2:16:20 PM CEST, Vicente Bergas wrote:
On Tuesday, August 27, 2019 1:53:04 PM CEST, Felipe Balbi wrote:
quoted
Hi,

Vicente Bergas [off-list ref] writes:
quoted
On Saturday, August 17, 2019 7:41:40 PM CEST, Vicente Bergas wrote:
quoted
Otherwise the device keeps writing to memory after kexec and disturbs
the next kernel.
...
quoted
why don't you just have shutdown use the same exact function as remove?
Frankly, though, I still don't fully understand what's going wrong
here. Why is the device still alive during kexec?

cheers
Hi Felipe,
the remove and shutdown functions have different prototypes, so
shutdown is wrapping remove.
Would it be preferable to cast remove as shutdown?

The issue with kexec is that the device is being used during the livetime
of the first kernel. When the first kernel executes kexec it calls the
shutdown function of drivers (instead of remove). Because of this the dwc3
device keeps doing things like DMA.
While the second kernel is taking over, it gets its memory corrupted with
such DMA accesses from the device. When the second kernel reaches the point
of taking over the dwc3 device, re-initializes it, but it is already too
late. Still worse, if the second kernel did not have the dwc3 driver, it
would get endless memory corruptions.
All in all, devices that can do DMA need to stop doing it on shutdown.

Regards,
 Vicenç.
Hi,
please, can you provide some feedback on this?

Regards,
 Vicenç.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help