linux/drivers/of
Frank Rowand 29acfb6559 of: unittest: kmemleak in duplicate property update
kmemleak reports several memory leaks from devicetree unittest.
This is the fix for problem 5 of 5.

When overlay 'overlay_bad_add_dup_prop' is applied, the apply code
properly detects that a memory leak will occur if the overlay is removed
since the duplicate property is located in a base devicetree node and
reports via printk():

  OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail
  OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail

The overlay is removed when the apply code detects multiple changesets
modifying the same property.  This is reported via printk():

  OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/rpm_avail

As a result of this error, the overlay is removed resulting in the
expected memory leak.

Add another device node level to the overlay so that the duplicate
property is located in a node added by the overlay, thus no memory
leak will occur when the overlay is removed.

Thus users of kmemleak will not have to debug this leak in the future.

Fixes: 2fe0e8769d ("of: overlay: check prevents multiple fragments touching same property")
Reported-by: Erhard F. <erhard_f@mailbox.org>
Signed-off-by: Frank Rowand <frank.rowand@sony.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2020-04-17 08:31:34 -05:00
..
unittest-data of: unittest: kmemleak in duplicate property update 2020-04-17 08:31:34 -05:00
Kconfig of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc 2020-01-28 08:26:20 -06:00
Makefile PCI: Move OF-related PCI functions into PCI core 2018-01-17 17:36:39 -06:00
address.c of/address: Support multiple 'dma-ranges' entries 2020-02-14 15:27:08 -06:00
base.c ARM: SoC-related driver updates 2020-02-08 14:04:19 -08:00
device.c treewide: remove redundant IS_ERR() before error code check 2020-02-04 03:05:27 +00:00
dynamic.c of: Rework and simplify phandle cache to use a fixed size 2019-12-24 14:17:52 -07:00
fdt.c Devicetree updates for v5.5: 2019-12-02 11:41:35 -08:00
fdt_address.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
irq.c of: irq: fix a trivial typo in a doc comment 2019-08-14 20:12:16 -06:00
kobj.c of: overlay: add missing of_node_get() in __of_attach_node_sysfs 2018-11-08 22:10:53 -08:00
of_mdio.c drivers/of/of_mdio.c:fix of_mdiobus_register() 2020-03-03 19:01:51 -08: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, numa: Validate some distance map rules 2018-11-08 12:44:34 -06:00
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: of_reserved_mem: Increase limit on number of reserved regions 2020-02-25 15:08:28 -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: Unconditionally pause/resume sync state during kernel init 2019-12-12 18:39:52 -06:00
property.c Devicetree updates for v5.7: 2020-04-02 17:32:52 -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: kmemleak in duplicate property update 2020-04-17 08:31:34 -05:00