linux-stable/drivers/of
Thierry Reding 70a29209f6 of: platform: Destroy child devices symmetrically
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@nvidia.com>
Link: https://lore.kernel.org/r/20200806153650.3883530-1-thierry.reding@gmail.com
Signed-off-by: Rob Herring <robh@kernel.org>
2020-08-17 20:19:35 -06:00
..
unittest-data of: unittest: Use bigger address cells to catch parser regressions 2020-08-03 16:24:49 -06:00
address.c MIPS upates for v5.9 2020-08-06 10:54:07 -07:00
base.c of/iommu: Make of_map_rid() PCI agnostic 2020-07-28 15:51:31 +01:00
device.c of/device: Add input id to of_dma_configure() 2020-07-28 15:51:32 +01:00
dynamic.c of: of_detach_node() remove unneeded local return variable 2020-04-14 07:59:54 -05:00
fdt.c of/fdt: Remove redundant kbasename function call 2020-05-28 20:57:17 -06:00
fdt_address.c
irq.c of/irq: Make of_msi_map_rid() PCI bus agnostic 2020-07-28 15:51:32 +01:00
Kconfig of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc 2020-01-28 08:26:20 -06:00
kobj.c of: Fix a refcounting bug in __of_attach_node_sysfs() 2020-05-27 19:30:25 -06:00
Makefile
of_mdio.c net: mdiobus: add reset-post-delay-us handling 2020-08-03 15:01:02 -07:00
of_net.c net: of_get_phy_mode: Change API to solve int/unit warnings 2019-11-04 11:21:25 -08:00
of_numa.c
of_private.h of: of_private.h: Replace zero-length array with flexible-array member 2020-03-31 09:03:34 -06:00
of_reserved_mem.c of: reserved-memory: remove duplicated call to of_get_flat_dt_prop() for no-map node 2020-08-03 16:50:54 -06:00
overlay.c of: overlay: kmemleak in dup_and_fixup_symbol_prop() 2020-04-17 08:31:34 -05:00
pdt.c of: Remove struct device_node.type pointer 2019-01-10 16:24:44 -06:00
platform.c of: platform: Destroy child devices symmetrically 2020-08-17 20:19:35 -06:00
property.c drm next for 5.9-rc1 2020-08-05 19:50:06 -07:00
resolver.c of: overlay: log the error cause on resolver failure 2020-03-02 11:32:44 -06:00
unittest.c of: unittest: Use bigger address cells to catch parser regressions 2020-08-03 16:24:49 -06:00