From 94681aeae8926085ba60976bf12cdc9c6e5720e8 Mon Sep 17 00:00:00 2001 From: Thomas Makin Date: Wed, 5 Nov 2025 05:55:44 +0000 Subject: [PATCH] [WAR] core: don't loop --- drivers/base/core.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/base/core.c b/drivers/base/core.c index 048ff98dbdfd..44e2841d78bd 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -2179,6 +2179,15 @@ static int fw_devlink_create_devlink(struct device *con, goto out; } + /* + * SYNC_STATE_ONLY links are useless once a consumer device has probed. + * So, only create it if the consumer hasn't probed yet. + */ + if (flags & DL_FLAG_SYNC_STATE_ONLY && + con->links.status != DL_DEV_NO_DRIVER && + con->links.status != DL_DEV_PROBING) + goto out; + if (con != sup_dev && !device_link_add(con, sup_dev, flags)) { dev_err(con, "Failed to create device link (0x%x) with %s\n", flags, dev_name(sup_dev));