diff mbox series

interconnect: Sanity check that node isn't already on list

Message ID 20210625234903.1324755-1-bjorn.andersson@linaro.org
State Accepted
Commit 9cc969675dea496b6689f576ddd4d8fd172705c5
Headers show
Series interconnect: Sanity check that node isn't already on list | expand

Commit Message

Bjorn Andersson June 25, 2021, 11:49 p.m. UTC
Broken interconnect providers might add the same node multiple times or
in multiple providers, which causes strange errors as the provider's
node list is later traversed.

Detect that a node already has an associated provider, complain and
reject the addition of the node, to aid the developer.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

---
 drivers/interconnect/core.c | 3 +++
 1 file changed, 3 insertions(+)

-- 
2.29.2
diff mbox series

Patch

diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
index 8a1e70e00876..fcb5d8eefb51 100644
--- a/drivers/interconnect/core.c
+++ b/drivers/interconnect/core.c
@@ -959,6 +959,9 @@  EXPORT_SYMBOL_GPL(icc_link_destroy);
  */
 void icc_node_add(struct icc_node *node, struct icc_provider *provider)
 {
+	if (WARN_ON(node->provider))
+		return;
+
 	mutex_lock(&icc_lock);
 
 	node->provider = provider;