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