summary refs log tree commit diff
path: root/drivers/base
diff options
context:
space:
mode:
authorLukas Wunner <lukas@wunner.de>2018-02-10 19:13:58 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2018-02-12 11:12:58 +0100
commit433986c2c265d106d6a8e88006e0131fefc92b7b (patch)
tree6472311b17585f19b1e9ca9a25333a4428860b6f /drivers/base
parent69728051f5bf15efaf6edfbcfe1b5a49a2437918 (diff)
downloadlinux-433986c2c265d106d6a8e88006e0131fefc92b7b.tar.gz
PM / runtime: Update links_count also if !CONFIG_SRCU
Commit baa8809f6097 (PM / runtime: Optimize the use of device links)
added an invocation of pm_runtime_drop_link() to __device_link_del().
However there are two variants of that function, one for CONFIG_SRCU and
another for !CONFIG_SRCU, and the commit only modified the former.

Fixes: baa8809f6097 (PM / runtime: Optimize the use of device links)
Cc: v4.10+ <stable@vger.kernel.org> # v4.10+
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index b2261f92f2f1..5847364f25d9 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -310,6 +310,9 @@ static void __device_link_del(struct device_link *link)
 	dev_info(link->consumer, "Dropping the link to %s\n",
 		 dev_name(link->supplier));
 
+	if (link->flags & DL_FLAG_PM_RUNTIME)
+		pm_runtime_drop_link(link->consumer);
+
 	list_del(&link->s_node);
 	list_del(&link->c_node);
 	device_link_free(link);