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

From: Nícolas F. R. A. Prado
Date: Tue Oct 15 2024 - 17:28:17 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 | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 88a47a6e26d69aacbaeb094c42be4fcf9dde4a6b..fc992b5a2f295d6bb23f50d32e5fddc59b32b840 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -2189,8 +2189,11 @@ 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 (device_link_is_useless(flags, con))
+ 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;
}


--
2.47.0