]> git.baikalelectronics.ru Git - kernel.git/commit
of: unittest: kmemleak in duplicate property update
authorFrank Rowand <frank.rowand@sony.com>
Thu, 16 Apr 2020 21:42:50 +0000 (16:42 -0500)
committerRob Herring <robh@kernel.org>
Fri, 17 Apr 2020 13:31:34 +0000 (08:31 -0500)
commitd42e31a26bcee973f692863aa78536060896c650
tree836b074bbb04e9e3ef6ed08aad5491b66cb00b67
parent2d8cf590f2aef26c3808da229565bb161e5216cc
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: 68148a105f03 ("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>
drivers/of/unittest-data/overlay_bad_add_dup_prop.dts
drivers/of/unittest.c