aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Gaignard <benjamin.gaignard@linaro.org>2018-07-16 07:37:44 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-21 03:51:44 -0400
commite16f4f3e0b7daecd48d4f944ab4147c1a6cb16a8 (patch)
tree02c94be8042debb20bc40926891c893dcf018978
parent3297c8fc65af5d40501ea7cddff1b195cae57e4e (diff)
base: core: Remove WARN_ON from link dependencies check
In some cases the link between between customer and supplier already exist, for example when a device use its parent as a supplier. Do not warn about already existing dependencies because device_link_add() takes care of this case. Link: http://lkml.kernel.org/r/20180709111753eucas1p1f32e66fb2f7ea3216097cd72a132355d~-rzycA5Rg0378203782eucas1p1C@eucas1p1.samsung.com Reported-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Mark Brown <broonie@kernel.org> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com> Reviewed-by: Rafael J. Wysocki <rafael@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/base/core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 5411af447418..2300d834d11f 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -105,7 +105,7 @@ static int device_is_dependent(struct device *dev, void *target)
105 struct device_link *link; 105 struct device_link *link;
106 int ret; 106 int ret;
107 107
108 if (WARN_ON(dev == target)) 108 if (dev == target)
109 return 1; 109 return 1;
110 110
111 ret = device_for_each_child(dev, target, device_is_dependent); 111 ret = device_for_each_child(dev, target, device_is_dependent);
@@ -113,7 +113,7 @@ static int device_is_dependent(struct device *dev, void *target)
113 return ret; 113 return ret;
114 114
115 list_for_each_entry(link, &dev->links.consumers, s_node) { 115 list_for_each_entry(link, &dev->links.consumers, s_node) {
116 if (WARN_ON(link->consumer == target)) 116 if (link->consumer == target)
117 return 1; 117 return 1;
118 118
119 ret = device_is_dependent(link->consumer, target); 119 ret = device_is_dependent(link->consumer, target);