• S
    of: fix recursive locking in of_get_next_available_child() · c31a0c05
    Stephen Warren 提交于
    of_get_next_available_child() acquires devtree_lock, then calls
    of_device_is_available() which calls of_get_property() which calls
    of_find_property() which tries to re-acquire devtree_lock, thus causing
    deadlock.
    
    To avoid this, create a new __of_device_is_available() which calls
    __of_get_property() instead, which calls __of_find_property(), which
    does not take the lock,. Update of_get_next_available_child() to call
    the new __of_device_is_available() since it already owns the lock.
    Signed-off-by: NStephen Warren <swarren@nvidia.com>
    Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
    c31a0c05
base.c 41.9 KB