• Frank Rowand's avatar
    of: unittest: kmemleak in duplicate property update · 29acfb65
    Frank Rowand authored
    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: 2fe0e876 ("of: overlay: check prevents multiple fragments touching same property")
    Reported-by: default avatarErhard F. <erhard_f@mailbox.org>
    Signed-off-by: default avatarFrank Rowand <frank.rowand@sony.com>
    Signed-off-by: default avatarRob Herring <robh@kernel.org>
    29acfb65
unittest.c 91.5 KB