aboutsummaryrefslogtreecommitdiff
path: root/scripts/mksysmap
diff options
context:
space:
mode:
authorRafael J. Wysocki2021-05-14 14:10:15 +0200
committerGreg Kroah-Hartman2021-05-21 22:12:09 +0200
commit80dd33cf72d1ab4f0af303f1fa242c6d6c8d328f (patch)
tree5fb932417cb7394215d515f39e19ee558c44d52e /scripts/mksysmap
parent5881fa8dc2de9697a89451f6518e8b3a796c09c6 (diff)
drivers: base: Fix device link removal
When device_link_free() drops references to the supplier and consumer devices of the device link going away and the reference being dropped turns out to be the last one for any of those device objects, its ->release callback will be invoked and it may sleep which goes against the SRCU callback execution requirements. To address this issue, make the device link removal code carry out the device_link_free() actions preceded by SRCU synchronization from a separate work item (the "long" workqueue is used for that, because it does not matter when the device link memory is released and it may take time to get to that point) instead of using SRCU callbacks. While at it, make the code work analogously when SRCU is not enabled to reduce the differences between the SRCU and non-SRCU cases. Fixes: 843e600b8a2b ("driver core: Fix sleeping in invalid context during device link deletion") Cc: stable <stable@vger.kernel.org> Reported-by: chenxiang (M) <chenxiang66@hisilicon.com> Tested-by: chenxiang (M) <chenxiang66@hisilicon.com> Reviewed-by: Saravana Kannan <saravanak@google.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://lore.kernel.org/r/5722787.lOV4Wx5bFT@kreacher Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/mksysmap')
0 files changed, 0 insertions, 0 deletions