diff options
| author | Jakub Kicinski <[email protected]> | 2022-07-14 21:19:42 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2022-07-14 22:27:35 +0000 |
| commit | 816cd1688331e0ffa1927889c15e7ed56650a183 (patch) | |
| tree | 30cbcb7d5d4e1dd226fda651f25ca094e54714a0 /drivers/base/core.c | |
| parent | Merge branch 'xen-netfront-xsa-403-follow-on' (diff) | |
| parent | x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current (diff) | |
| download | kernel-816cd1688331e0ffa1927889c15e7ed56650a183.tar.gz kernel-816cd1688331e0ffa1927889c15e7ed56650a183.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
include/net/sock.h
310731e2f161 ("net: Fix data-races around sysctl_mem.")
e70f3c701276 ("Revert "net: set SK_MEM_QUANTUM to 4096"")
https://lore.kernel.org/all/[email protected]/
net/ipv4/fib_semantics.c
747c14307214 ("ip: fix dflt addr selection for connected nexthop")
d62607c3fe45 ("net: rename reference+tracking helpers")
net/tls/tls.h
include/net/tls.h
3d8c51b25a23 ("net/tls: Check for errors in tls_device_init")
587903142308 ("tls: create an internal header")
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'drivers/base/core.c')
| -rw-r--r-- | drivers/base/core.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 7cd789c4985d..460d6f163e41 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -486,7 +486,18 @@ static void device_link_release_fn(struct work_struct *work) /* Ensure that all references to the link object have been dropped. */ device_link_synchronize_removal(); - pm_runtime_release_supplier(link, true); + pm_runtime_release_supplier(link); + /* + * If supplier_preactivated is set, the link has been dropped between + * the pm_runtime_get_suppliers() and pm_runtime_put_suppliers() calls + * in __driver_probe_device(). In that case, drop the supplier's + * PM-runtime usage counter to remove the reference taken by + * pm_runtime_get_suppliers(). + */ + if (link->supplier_preactivated) + pm_runtime_put_noidle(link->supplier); + + pm_request_idle(link->supplier); put_device(link->consumer); put_device(link->supplier); |
