• Frank Rowand's avatar
    of: overlay: check prevents multiple fragments touching same property · 2fe0e876
    Frank Rowand authored
    Add test case of two fragments updating the same property.  After
    adding the test case, the system hangs at end of boot, after
    after slub stack dumps from kfree() in crypto modprobe code.
    
    Multiple overlay fragments adding, modifying, or deleting the same
    property is not supported.  Add check to detect the attempt and fail
    the overlay apply.
    
    Before this patch, the first fragment error would terminate
    processing.  Allow fragment checking to proceed and report all
    of the fragment errors before terminating the overlay apply. This
    is not a hot path, thus not a performance issue (the error is not
    transient and requires fixing the overlay before attempting to
    apply it again).
    
    After applying this patch, the devicetree unittest messages will
    include:
    
       OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/rpm_avail
    
       ...
    
       ### dt-test ### end of unittest - 212 passed, 0 failed
    
    The check to detect two fragments updating the same property is
    folded into the patch that created the test case to maintain
    bisectability.
    Tested-by: default avatarAlan Tull <atull@kernel.org>
    Signed-off-by: default avatarFrank Rowand <frank.rowand@sony.com>
    2fe0e876
overlay_base.dts 1.91 KB