[PATCH] driver core: Don't log intentional skip of device link creation as error

From: Nícolas F. R. A. Prado
Date: Mon Jun 24 2024 - 11:21:41 EST


Commit ac66c5bbb437 ("driver core: Allow only unprobed consumers for
SYNC_STATE_ONLY device links") introduced an early return in
device_link_add() to prevent useless links from being created. However
the calling function fw_devlink_create_devlink() unconditionally prints
an error if device_link_add() didn't create a link, even in this case
where it is intentionally skipping the link creation.

Add a check to detect if the link wasn't created intentionally and in
that case don't log an error.

Fixes: ac66c5bbb437 ("driver core: Allow only unprobed consumers for SYNC_STATE_ONLY device links")
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxx>
---
drivers/base/core.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 2b4c0624b704..5eaafe3a280c 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -2187,8 +2187,13 @@ static int fw_devlink_create_devlink(struct device *con,
}

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));
+ if (flags & DL_FLAG_SYNC_STATE_ONLY &&
+ con->links.status != DL_DEV_NO_DRIVER &&
+ con->links.status != DL_DEV_PROBING)
+ dev_dbg(con, "Skipping device link creation for probed device\n");
+ else
+ dev_err(con, "Failed to create device link (0x%x) with %s\n",
+ flags, dev_name(sup_dev));
ret = -EINVAL;
}


---
base-commit: b992b79ca8bc336fa8e2c80990b5af80ed8f36fd
change-id: 20240624-fwdevlink-probed-no-err-45d21feb05fd

Best regards,
--
Nícolas F. R. A. Prado <nfraprado@xxxxxxxxxxxxx>