On Thu, 06 Aug 2020 17:36:50 +0200, Thierry Reding wrote: > From: Thierry Reding <treding@xxxxxxxxxx> > > Iterate over child devices in reverse when unpopulating a platform > device to make this step symmetrical with the population step. This > fixes an issue in the Tegra DRM driver where upon module unload the > DPAUX controller tries to unregister an I2C controller but will end > up waiting indefinitely because one of the SOR devices is keeping a > reference to it. Since the SOR devices are instantiated after the > DPAUX devices, they would only be removed (and hence release their > reference to the I2C controller) after the DPAUX devices have been > removed. > > While destroying the child devices in reverse order helps in this > situation, it isn't fully safe to do so either. An even better way > would be for the child devices to be reordered to match the probe > order, which would work irrespective of the instantiation order. > > However, reordering by probe order would be fairly complicated and > doesn't fix any known issues, so we'll go with the simpler fix for > now. > > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > --- > drivers/of/platform.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Applied, thanks!