The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links
@ 2024-10-15 21:27 Nícolas F. R. A. Prado
  2024-10-15 21:27 ` [PATCH v2 1/2] driver core: Create device_link_is_useless() helper Nícolas F. R. A. Prado
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Nícolas F. R. A. Prado @ 2024-10-15 21:27 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Saravana Kannan
  Cc: kernel, linux-kernel, Jon Hunter, Nícolas F. R. A. Prado

This series gets rid of the false-positive errors printed when device
links are intentionally skipped. Patch 1 commonizes the logic into a
helper and patch 2 uses that to remove the error.

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
Changes in v2:
- Added patch 1 introducing the device_link_is_useless() helper and used
  that in patch 2
- Link to v1: https://lore.kernel.org/r/20240624-fwdevlink-probed-no-err-v1-1-d1213cd354e2@collabora.com

---
Nícolas F. R. A. Prado (2):
      driver core: Create device_link_is_useless() helper
      driver core: Don't log intentional skip of device link creation as error

 drivers/base/core.c | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)
---
base-commit: 6708132e80a2ced620bde9b9c36e426183544a23
change-id: 20240624-fwdevlink-probed-no-err-45d21feb05fd

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/2] driver core: Create device_link_is_useless() helper
  2024-10-15 21:27 [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Nícolas F. R. A. Prado
@ 2024-10-15 21:27 ` Nícolas F. R. A. Prado
  2024-10-15 21:27 ` [PATCH v2 2/2] driver core: Don't log intentional skip of device link creation as error Nícolas F. R. A. Prado
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Nícolas F. R. A. Prado @ 2024-10-15 21:27 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Saravana Kannan
  Cc: kernel, linux-kernel, Jon Hunter, Nícolas F. R. A. Prado

Create a device_link_is_useless() helper to encapsulate the logic that
checks whether a device link is useless and use that instead.

Suggested-by: Saravana Kannan <saravanak@google.com>
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
 drivers/base/core.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index b69b82da8837ebb6b3497d52d46a43e26ea1c64a..88a47a6e26d69aacbaeb094c42be4fcf9dde4a6b 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -668,6 +668,19 @@ postcore_initcall(devlink_class_init);
 #define DL_ADD_VALID_FLAGS (DL_MANAGED_LINK_FLAGS | DL_FLAG_STATELESS | \
 			    DL_FLAG_PM_RUNTIME | DL_FLAG_RPM_ACTIVE)
 
+static bool device_link_is_useless(u32 flags, struct device *consumer)
+{
+	/*
+	 * SYNC_STATE_ONLY links are useless once a consumer device has probed.
+	 */
+	if (flags & DL_FLAG_SYNC_STATE_ONLY &&
+	    consumer->links.status != DL_DEV_NO_DRIVER &&
+	    consumer->links.status != DL_DEV_PROBING)
+		return true;
+
+	return false;
+}
+
 /**
  * device_link_add - Create a link between two devices.
  * @consumer: Consumer end of the link.
@@ -771,13 +784,7 @@ struct device_link *device_link_add(struct device *consumer,
 		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 &&
-	    consumer->links.status != DL_DEV_NO_DRIVER &&
-	    consumer->links.status != DL_DEV_PROBING) {
+	if (device_link_is_useless(flags, consumer)) {
 		link = NULL;
 		goto out;
 	}

-- 
2.47.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/2] driver core: Don't log intentional skip of device link creation as error
  2024-10-15 21:27 [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Nícolas F. R. A. Prado
  2024-10-15 21:27 ` [PATCH v2 1/2] driver core: Create device_link_is_useless() helper Nícolas F. R. A. Prado
@ 2024-10-15 21:27 ` Nícolas F. R. A. Prado
  2024-10-16  5:37   ` Greg Kroah-Hartman
  2024-10-16 11:19 ` [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Jon Hunter
  2024-10-23 20:03 ` Nícolas F. R. A. Prado
  3 siblings, 1 reply; 6+ messages in thread
From: Nícolas F. R. A. Prado @ 2024-10-15 21:27 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Saravana Kannan
  Cc: kernel, linux-kernel, Jon Hunter, Nícolas F. R. A. Prado

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@collabora.com>
---
 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


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] driver core: Don't log intentional skip of device link creation as error
  2024-10-15 21:27 ` [PATCH v2 2/2] driver core: Don't log intentional skip of device link creation as error Nícolas F. R. A. Prado
@ 2024-10-16  5:37   ` Greg Kroah-Hartman
  0 siblings, 0 replies; 6+ messages in thread
From: Greg Kroah-Hartman @ 2024-10-16  5:37 UTC (permalink / raw)
  To: Nícolas F. R. A. Prado
  Cc: Rafael J. Wysocki, Saravana Kannan, kernel, linux-kernel,
	Jon Hunter

On Tue, Oct 15, 2024 at 05:27:18PM -0400, Nícolas F. R. A. Prado wrote:
> 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@collabora.com>
> ---
>  drivers/base/core.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- You have marked a patch with a "Fixes:" tag for a commit that is in an
  older released kernel, yet you do not have a cc: stable line in the
  signed-off-by area at all, which means that the patch will not be
  applied to any older kernel releases.  To properly fix this, please
  follow the documented rules in the
  Documentation/process/stable-kernel-rules.rst file for how to resolve
  this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links
  2024-10-15 21:27 [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Nícolas F. R. A. Prado
  2024-10-15 21:27 ` [PATCH v2 1/2] driver core: Create device_link_is_useless() helper Nícolas F. R. A. Prado
  2024-10-15 21:27 ` [PATCH v2 2/2] driver core: Don't log intentional skip of device link creation as error Nícolas F. R. A. Prado
@ 2024-10-16 11:19 ` Jon Hunter
  2024-10-23 20:03 ` Nícolas F. R. A. Prado
  3 siblings, 0 replies; 6+ messages in thread
From: Jon Hunter @ 2024-10-16 11:19 UTC (permalink / raw)
  To: Nícolas F. R. A. Prado, Greg Kroah-Hartman,
	Rafael J. Wysocki, Saravana Kannan
  Cc: kernel, linux-kernel


On 15/10/2024 22:27, Nícolas F. R. A. Prado wrote:
> This series gets rid of the false-positive errors printed when device
> links are intentionally skipped. Patch 1 commonizes the logic into a
> helper and patch 2 uses that to remove the error.
> 
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> ---
> Changes in v2:
> - Added patch 1 introducing the device_link_is_useless() helper and used
>    that in patch 2
> - Link to v1: https://lore.kernel.org/r/20240624-fwdevlink-probed-no-err-v1-1-d1213cd354e2@collabora.com
> 
> ---
> Nícolas F. R. A. Prado (2):
>        driver core: Create device_link_is_useless() helper
>        driver core: Don't log intentional skip of device link creation as error
> 
>   drivers/base/core.c | 28 +++++++++++++++++++---------
>   1 file changed, 19 insertions(+), 9 deletions(-)


Looks good to me. For the series ...

Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>

Thanks!
Jon

-- 
nvpublic

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links
  2024-10-15 21:27 [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Nícolas F. R. A. Prado
                   ` (2 preceding siblings ...)
  2024-10-16 11:19 ` [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Jon Hunter
@ 2024-10-23 20:03 ` Nícolas F. R. A. Prado
  3 siblings, 0 replies; 6+ messages in thread
From: Nícolas F. R. A. Prado @ 2024-10-23 20:03 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rafael J. Wysocki, Saravana Kannan
  Cc: kernel, linux-kernel, Jon Hunter

On Tue, Oct 15, 2024 at 05:27:16PM -0400, Nícolas F. R. A. Prado wrote:
> This series gets rid of the false-positive errors printed when device
> links are intentionally skipped. Patch 1 commonizes the logic into a
> helper and patch 2 uses that to remove the error.
> 
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> ---
> Changes in v2:
> - Added patch 1 introducing the device_link_is_useless() helper and used
>   that in patch 2
> - Link to v1: https://lore.kernel.org/r/20240624-fwdevlink-probed-no-err-v1-1-d1213cd354e2@collabora.com
> 
> ---
> Nícolas F. R. A. Prado (2):
>       driver core: Create device_link_is_useless() helper
>       driver core: Don't log intentional skip of device link creation as error

NACK. It turned out these were real issues, for which fixes have now been
sent: https://lore.kernel.org/all/20241023191339.1491282-1-saravanak@google.com
So let's keep the error log message around since it is useful to detect such
issues.

Thanks,
Nícolas

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-10-23 20:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-15 21:27 [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Nícolas F. R. A. Prado
2024-10-15 21:27 ` [PATCH v2 1/2] driver core: Create device_link_is_useless() helper Nícolas F. R. A. Prado
2024-10-15 21:27 ` [PATCH v2 2/2] driver core: Don't log intentional skip of device link creation as error Nícolas F. R. A. Prado
2024-10-16  5:37   ` Greg Kroah-Hartman
2024-10-16 11:19 ` [PATCH v2 0/2] driver core: Avoid false-positive errors for intentionally skipped links Jon Hunter
2024-10-23 20:03 ` Nícolas F. R. A. Prado

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox