public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup
@ 2025-09-15 18:20 Rafael J. Wysocki
  2025-09-15 18:21 ` [PATCH v2 1/5] ACPI: property: Fix buffer properties extraction for subnodes Rafael J. Wysocki
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2025-09-15 18:20 UTC (permalink / raw)
  To: Linux ACPI; +Cc: LKML, Mika Westerberg, Andy Shevchenko, Sakari Ailus

Hi All,

This is an update of

https://lore.kernel.org/linux-acpi/5046661.31r3eYUQgx@rafael.j.wysocki/

A user report regarding "ACPI: \: Can't tag data node" error messages in dmesg
made me look at the ACPI property code and I've found a couple of issues in
it.

Also, it took me some time to figure out why the code was doing what it was
doing, so I decided to add some comments explaining it.

Finally, there's always something that can be cleaned up in every piece of
kernel code.

Hence, this series.

Please refer to the patch changelogs for details.

Thanks!




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

* [PATCH v2 1/5] ACPI: property: Fix buffer properties extraction for subnodes
  2025-09-15 18:20 [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Rafael J. Wysocki
@ 2025-09-15 18:21 ` Rafael J. Wysocki
  2025-09-15 18:23 ` [PATCH v2 2/5] ACPI: property: Disregard references in data-only subnode lists Rafael J. Wysocki
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2025-09-15 18:21 UTC (permalink / raw)
  To: Linux ACPI; +Cc: LKML, Mika Westerberg, Andy Shevchenko, Sakari Ailus

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

The ACPI handle passed to acpi_extract_properties() as the first
argument represents the ACPI namespace scope in which to look for
objects returning buffers associated with buffer properties.

For _DSD objects located immediately under ACPI devices, this handle is
the same as the handle of the device object holding the _DSD, but for
data-only subnodes it is not so.

First of all, data-only subnodes are represented by objects that
cannot hold other objects in their scopes (like control methods).
Therefore a data-only subnode handle cannot be used for completing
relative pathname segments, so the current code in
in acpi_nondev_subnode_extract() passing a data-only subnode handle
to acpi_extract_properties() is invalid.

Moreover, a data-only subnode of device A may be represented by an
object located in the scope of device B (which kind of makes sense,
for instance, if A is a B's child).  In that case, the scope in
question would be the one of device B.  In other words, the scope
mentioned above is the same as the scope used for subnode object
lookup in acpi_nondev_subnode_extract().

Accordingly, rearrange that function to use the same scope for the
extraction of properties and subnode object lookup.

Fixes: 103e10c69c61 ("ACPI: property: Add support for parsing buffer property UUID")
Cc: 6.0+ <stable@vger.kernel.org> # 6.0+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

v1 -> v2: No changes

---
 drivers/acpi/property.c |   30 +++++++++++-------------------
 1 file changed, 11 insertions(+), 19 deletions(-)

--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -83,6 +83,7 @@ static bool acpi_nondev_subnode_extract(
 					struct fwnode_handle *parent)
 {
 	struct acpi_data_node *dn;
+	acpi_handle scope = NULL;
 	bool result;
 
 	if (acpi_graph_ignore_port(handle))
@@ -98,27 +99,18 @@ static bool acpi_nondev_subnode_extract(
 	INIT_LIST_HEAD(&dn->data.properties);
 	INIT_LIST_HEAD(&dn->data.subnodes);
 
-	result = acpi_extract_properties(handle, desc, &dn->data);
+	/*
+	 * The scope for the completion of relative pathname segments and
+	 * subnode object lookup is the one of the namespace node (device)
+	 * containing the object that has returned the package.  That is, it's
+	 * the scope of that object's parent device.
+	 */
+	if (handle)
+		acpi_get_parent(handle, &scope);
 
-	if (handle) {
-		acpi_handle scope;
-		acpi_status status;
-
-		/*
-		 * The scope for the subnode object lookup is the one of the
-		 * namespace node (device) containing the object that has
-		 * returned the package.  That is, it's the scope of that
-		 * object's parent.
-		 */
-		status = acpi_get_parent(handle, &scope);
-		if (ACPI_SUCCESS(status)
-		    && acpi_enumerate_nondev_subnodes(scope, desc, &dn->data,
-						      &dn->fwnode))
-			result = true;
-	} else if (acpi_enumerate_nondev_subnodes(NULL, desc, &dn->data,
-						  &dn->fwnode)) {
+	result = acpi_extract_properties(scope, desc, &dn->data);
+	if (acpi_enumerate_nondev_subnodes(scope, desc, &dn->data, &dn->fwnode))
 		result = true;
-	}
 
 	if (result) {
 		dn->handle = handle;




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

* [PATCH v2 2/5] ACPI: property: Disregard references in data-only subnode lists
  2025-09-15 18:20 [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Rafael J. Wysocki
  2025-09-15 18:21 ` [PATCH v2 1/5] ACPI: property: Fix buffer properties extraction for subnodes Rafael J. Wysocki
@ 2025-09-15 18:23 ` Rafael J. Wysocki
  2025-09-15 18:25 ` [PATCH v2 3/5] ACPI: property: Add code comments explaining what is going on Rafael J. Wysocki
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2025-09-15 18:23 UTC (permalink / raw)
  To: Linux ACPI; +Cc: LKML, Mika Westerberg, Andy Shevchenko, Sakari Ailus

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Data-only subnode links following the ACPI data subnode GUID in a _DSD
package are expected to point to named objects returning _DSD-equivalent
packages.  If a reference to such an object is used in the target field
of any of those links, that object will be evaluated in place (as a
named object) and its return data will be embedded in the outer _DSD
package.

For this reason, it is not expected to see a subnode link with the
target field containing a local reference (that would mean pointing
to a device or another object that cannot be evaluated in place and
therefore cannot return a _DSD-equivalent package).

Accordingly, simplify the code parsing data-only subnode links to
simply print a message when it encounters a local reference in the
target field of one of those links.

Moreover, since acpi_nondev_subnode_data_ok() would only have one
caller after the change above, fold it into that caller.

Link: https://lore.kernel.org/linux-acpi/CAJZ5v0jVeSrDO6hrZhKgRZrH=FpGD4vNUjFD8hV9WwN9TLHjzQ@mail.gmail.com/
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

v1 -> v2: New patch

---
 drivers/acpi/property.c |   51 ++++++++++++++++++++----------------------------
 1 file changed, 22 insertions(+), 29 deletions(-)

--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -124,32 +124,12 @@ static bool acpi_nondev_subnode_extract(
 	return false;
 }
 
-static bool acpi_nondev_subnode_data_ok(acpi_handle handle,
-					const union acpi_object *link,
-					struct list_head *list,
-					struct fwnode_handle *parent)
-{
-	struct acpi_buffer buf = { ACPI_ALLOCATE_BUFFER };
-	acpi_status status;
-
-	status = acpi_evaluate_object_typed(handle, NULL, NULL, &buf,
-					    ACPI_TYPE_PACKAGE);
-	if (ACPI_FAILURE(status))
-		return false;
-
-	if (acpi_nondev_subnode_extract(buf.pointer, handle, link, list,
-					parent))
-		return true;
-
-	ACPI_FREE(buf.pointer);
-	return false;
-}
-
 static bool acpi_nondev_subnode_ok(acpi_handle scope,
 				   const union acpi_object *link,
 				   struct list_head *list,
 				   struct fwnode_handle *parent)
 {
+	struct acpi_buffer buf = { ACPI_ALLOCATE_BUFFER };
 	acpi_handle handle;
 	acpi_status status;
 
@@ -161,7 +141,17 @@ static bool acpi_nondev_subnode_ok(acpi_
 	if (ACPI_FAILURE(status))
 		return false;
 
-	return acpi_nondev_subnode_data_ok(handle, link, list, parent);
+	status = acpi_evaluate_object_typed(handle, NULL, NULL, &buf,
+					    ACPI_TYPE_PACKAGE);
+	if (ACPI_FAILURE(status))
+		return false;
+
+	if (acpi_nondev_subnode_extract(buf.pointer, handle, link, list,
+					parent))
+		return true;
+
+	ACPI_FREE(buf.pointer);
+	return false;
 }
 
 static bool acpi_add_nondev_subnodes(acpi_handle scope,
@@ -174,7 +164,6 @@ static bool acpi_add_nondev_subnodes(acp
 
 	for (i = 0; i < links->package.count; i++) {
 		union acpi_object *link, *desc;
-		acpi_handle handle;
 		bool result;
 
 		link = &links->package.elements[i];
@@ -186,22 +175,26 @@ static bool acpi_add_nondev_subnodes(acp
 		if (link->package.elements[0].type != ACPI_TYPE_STRING)
 			continue;
 
-		/* The second one may be a string, a reference or a package. */
+		/* The second one may be a string or a package. */
 		switch (link->package.elements[1].type) {
 		case ACPI_TYPE_STRING:
 			result = acpi_nondev_subnode_ok(scope, link, list,
 							 parent);
 			break;
-		case ACPI_TYPE_LOCAL_REFERENCE:
-			handle = link->package.elements[1].reference.handle;
-			result = acpi_nondev_subnode_data_ok(handle, link, list,
-							     parent);
-			break;
 		case ACPI_TYPE_PACKAGE:
 			desc = &link->package.elements[1];
 			result = acpi_nondev_subnode_extract(desc, NULL, link,
 							     list, parent);
 			break;
+		case ACPI_TYPE_LOCAL_REFERENCE:
+			/*
+			 * It is not expected to see any local references in
+			 * the links package because referencing a named object
+			 * should cause it to be evaluated in place.
+			 */
+			acpi_handle_info(scope, "subnode %s: Unexpected reference\n",
+					 link->package.elements[0].string.pointer);
+			fallthrough;
 		default:
 			result = false;
 			break;




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

* [PATCH v2 3/5] ACPI: property: Add code comments explaining what is going on
  2025-09-15 18:20 [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Rafael J. Wysocki
  2025-09-15 18:21 ` [PATCH v2 1/5] ACPI: property: Fix buffer properties extraction for subnodes Rafael J. Wysocki
  2025-09-15 18:23 ` [PATCH v2 2/5] ACPI: property: Disregard references in data-only subnode lists Rafael J. Wysocki
@ 2025-09-15 18:25 ` Rafael J. Wysocki
  2025-09-15 18:28 ` [PATCH v2 4/5] ACPI: property: Do not pass NULL handles to acpi_attach_data() Rafael J. Wysocki
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2025-09-15 18:25 UTC (permalink / raw)
  To: Linux ACPI; +Cc: LKML, Mika Westerberg, Andy Shevchenko, Sakari Ailus

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

In some places in the ACPI device properties handling code, it is
unclear why the code is what it is.  Some assumptions are not documented
and some pieces of code are based on knowledge that is not mentioned
anywhere.

Add code comments explaining these things.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

v1 -> v2:
   * Previously [2/4]
   * Rebase on top of the new [2/5]
   * Rephrase the comment under ACPI_TYPE_PACKAGE

---
 drivers/acpi/property.c |   46 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 44 insertions(+), 2 deletions(-)

--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -108,7 +108,18 @@ static bool acpi_nondev_subnode_extract(
 	if (handle)
 		acpi_get_parent(handle, &scope);
 
+	/*
+	 * Extract properties from the _DSD-equivalent package pointed to by
+	 * desc and use scope (if not NULL) for the completion of relative
+	 * pathname segments.
+	 *
+	 * The extracted properties will be held in the new data node dn.
+	 */
 	result = acpi_extract_properties(scope, desc, &dn->data);
+	/*
+	 * Look for subnodes in the _DSD-equivalent package pointed to by desc
+	 * and create child nodes of dn if there are any.
+	 */
 	if (acpi_enumerate_nondev_subnodes(scope, desc, &dn->data, &dn->fwnode))
 		result = true;
 
@@ -133,6 +144,12 @@ static bool acpi_nondev_subnode_ok(acpi_
 	acpi_handle handle;
 	acpi_status status;
 
+	/*
+	 * If the scope is unknown, the _DSD-equivalent package being parsed
+	 * was embedded in an outer _DSD-equivalent package as a result of
+	 * direct evaluation of an object pointed to by a reference.  In that
+	 * case, using a pathname as the target object pointer is invalid.
+	 */
 	if (!scope)
 		return false;
 
@@ -162,6 +179,10 @@ static bool acpi_add_nondev_subnodes(acp
 	bool ret = false;
 	int i;
 
+	/*
+	 * Every element in the links package is expected to represent a link
+	 * to a non-device node in a tree containing device-specific data.
+	 */
 	for (i = 0; i < links->package.count; i++) {
 		union acpi_object *link, *desc;
 		bool result;
@@ -171,17 +192,38 @@ static bool acpi_add_nondev_subnodes(acp
 		if (link->package.count != 2)
 			continue;
 
-		/* The first one must be a string. */
+		/* The first one (the key) must be a string. */
 		if (link->package.elements[0].type != ACPI_TYPE_STRING)
 			continue;
 
-		/* The second one may be a string or a package. */
+		/* The second one (the target) may be a string or a package. */
 		switch (link->package.elements[1].type) {
 		case ACPI_TYPE_STRING:
+			/*
+			 * The string is expected to be a full pathname or a
+			 * pathname segment relative to the given scope.  That
+			 * pathname is expected to point to an object returning
+			 * a package that contains _DSD-equivalent information.
+			 */
 			result = acpi_nondev_subnode_ok(scope, link, list,
 							 parent);
 			break;
 		case ACPI_TYPE_PACKAGE:
+			/*
+			 * This happens when a reference is used in AML to
+			 * point to the target.  Since the target is expected
+			 * to be a named object, a reference to it will cause it
+			 * to be avaluated in place and its return package will
+			 * be embedded in the links package at the location of
+			 * the reference.
+			 *
+			 * The target package is expected to contain _DSD-
+			 * equivalent information, but the scope in which it
+			 * is located in the original AML is unknown.  Thus
+			 * it cannot contain pathname segments represented as
+			 * strings because there is no way to build full
+			 * pathnames out of them.
+			 */
 			desc = &link->package.elements[1];
 			result = acpi_nondev_subnode_extract(desc, NULL, link,
 							     list, parent);




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

* [PATCH v2 4/5] ACPI: property: Do not pass NULL handles to acpi_attach_data()
  2025-09-15 18:20 [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Rafael J. Wysocki
                   ` (2 preceding siblings ...)
  2025-09-15 18:25 ` [PATCH v2 3/5] ACPI: property: Add code comments explaining what is going on Rafael J. Wysocki
@ 2025-09-15 18:28 ` Rafael J. Wysocki
  2025-09-15 18:29 ` [PATCH v2 5/5] ACPI: property: Adjust failure handling in acpi_nondev_subnode_extract() Rafael J. Wysocki
  2025-09-16 14:09 ` [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Sakari Ailus
  5 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2025-09-15 18:28 UTC (permalink / raw)
  To: Linux ACPI; +Cc: LKML, Mika Westerberg, Andy Shevchenko, Sakari Ailus

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

In certain circumstances, the ACPI handle of a data-only node may be
NULL, in which case it does not make sense to attempt to attach that
node to an ACPI namespace object, so update the code to avoid attempts
to do so.

This prevents confusing and unuseful error messages from being printed.

Also document the fact that the ACPI handle of a data-only node may be
NULL and when that happens in a code comment.  In addition, make
acpi_add_nondev_subnodes() print a diagnostic message for each data-only
node with an unknown ACPI namespace scope.

Fixes: 1d52f10917a7 ("ACPI: property: Tie data nodes to acpi handles")
Cc: 6.0+ <stable@vger.kernel.org> # 6.0+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

v1 -> v2:
   * Previously [3/4]
   * Rebase on top of new [2-3/5]
   * Reformat the "unknown scope" message and downgrade it to "debug" (it
     may not indicate any functional issue)

---
 drivers/acpi/property.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -124,6 +124,10 @@ static bool acpi_nondev_subnode_extract(
 		result = true;
 
 	if (result) {
+		/*
+		 * This will be NULL if the desc package is embedded in an outer
+		 * _DSD-equivalent package and its scope cannot be determined.
+		 */
 		dn->handle = handle;
 		dn->data.pointer = desc;
 		list_add_tail(&dn->sibling, list);
@@ -224,6 +228,8 @@ static bool acpi_add_nondev_subnodes(acp
 			 * strings because there is no way to build full
 			 * pathnames out of them.
 			 */
+			acpi_handle_debug(scope, "subnode %s: Unknown scope\n",
+					  link->package.elements[0].string.pointer);
 			desc = &link->package.elements[1];
 			result = acpi_nondev_subnode_extract(desc, NULL, link,
 							     list, parent);
@@ -396,6 +402,9 @@ static void acpi_untie_nondev_subnodes(s
 	struct acpi_data_node *dn;
 
 	list_for_each_entry(dn, &data->subnodes, sibling) {
+		if (!dn->handle)
+			continue;
+
 		acpi_detach_data(dn->handle, acpi_nondev_subnode_tag);
 
 		acpi_untie_nondev_subnodes(&dn->data);
@@ -410,6 +419,9 @@ static bool acpi_tie_nondev_subnodes(str
 		acpi_status status;
 		bool ret;
 
+		if (!dn->handle)
+			continue;
+
 		status = acpi_attach_data(dn->handle, acpi_nondev_subnode_tag, dn);
 		if (ACPI_FAILURE(status) && status != AE_ALREADY_EXISTS) {
 			acpi_handle_err(dn->handle, "Can't tag data node\n");




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

* [PATCH v2 5/5] ACPI: property: Adjust failure handling in acpi_nondev_subnode_extract()
  2025-09-15 18:20 [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Rafael J. Wysocki
                   ` (3 preceding siblings ...)
  2025-09-15 18:28 ` [PATCH v2 4/5] ACPI: property: Do not pass NULL handles to acpi_attach_data() Rafael J. Wysocki
@ 2025-09-15 18:29 ` Rafael J. Wysocki
  2025-09-16 14:09 ` [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Sakari Ailus
  5 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2025-09-15 18:29 UTC (permalink / raw)
  To: Linux ACPI; +Cc: LKML, Mika Westerberg, Andy Shevchenko, Sakari Ailus

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Make acpi_nondev_subnode_extract() follow the usual code flow pattern
in which failure is handled at the point where it is detected.

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---

v1 -> v2: Previously [4/4], no changes

---
 drivers/acpi/property.c |   25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -123,20 +123,21 @@ static bool acpi_nondev_subnode_extract(
 	if (acpi_enumerate_nondev_subnodes(scope, desc, &dn->data, &dn->fwnode))
 		result = true;
 
-	if (result) {
-		/*
-		 * This will be NULL if the desc package is embedded in an outer
-		 * _DSD-equivalent package and its scope cannot be determined.
-		 */
-		dn->handle = handle;
-		dn->data.pointer = desc;
-		list_add_tail(&dn->sibling, list);
-		return true;
+	if (!result) {
+		kfree(dn);
+		acpi_handle_debug(handle, "Invalid properties/subnodes data, skipping\n");
+		return false;
 	}
 
-	kfree(dn);
-	acpi_handle_debug(handle, "Invalid properties/subnodes data, skipping\n");
-	return false;
+	/*
+	 * This will be NULL if the desc package is embedded in an outer
+	 * _DSD-equivalent package and its scope cannot be determined.
+	 */
+	dn->handle = handle;
+	dn->data.pointer = desc;
+	list_add_tail(&dn->sibling, list);
+
+	return true;
 }
 
 static bool acpi_nondev_subnode_ok(acpi_handle scope,




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

* Re: [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup
  2025-09-15 18:20 [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Rafael J. Wysocki
                   ` (4 preceding siblings ...)
  2025-09-15 18:29 ` [PATCH v2 5/5] ACPI: property: Adjust failure handling in acpi_nondev_subnode_extract() Rafael J. Wysocki
@ 2025-09-16 14:09 ` Sakari Ailus
  2025-09-16 14:10   ` Rafael J. Wysocki
  5 siblings, 1 reply; 8+ messages in thread
From: Sakari Ailus @ 2025-09-16 14:09 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Linux ACPI, LKML, Mika Westerberg, Andy Shevchenko

Hi Rafael,

On Mon, Sep 15, 2025 at 08:20:03PM +0200, Rafael J. Wysocki wrote:
> Hi All,
> 
> This is an update of
> 
> https://lore.kernel.org/linux-acpi/5046661.31r3eYUQgx@rafael.j.wysocki/
> 
> A user report regarding "ACPI: \: Can't tag data node" error messages in dmesg
> made me look at the ACPI property code and I've found a couple of issues in
> it.
> 
> Also, it took me some time to figure out why the code was doing what it was
> doing, so I decided to add some comments explaining it.
> 
> Finally, there's always something that can be cleaned up in every piece of
> kernel code.
> 
> Hence, this series.

For the set:

Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: Sakari Ailus <sakari.ailus@linux.intel.com>

-- 
Kind regards,

Sakari Ailus

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

* Re: [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup
  2025-09-16 14:09 ` [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Sakari Ailus
@ 2025-09-16 14:10   ` Rafael J. Wysocki
  0 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2025-09-16 14:10 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: Rafael J. Wysocki, Linux ACPI, LKML, Mika Westerberg,
	Andy Shevchenko

Hi Sakari,

On Tue, Sep 16, 2025 at 4:09 PM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
>
> Hi Rafael,
>
> On Mon, Sep 15, 2025 at 08:20:03PM +0200, Rafael J. Wysocki wrote:
> > Hi All,
> >
> > This is an update of
> >
> > https://lore.kernel.org/linux-acpi/5046661.31r3eYUQgx@rafael.j.wysocki/
> >
> > A user report regarding "ACPI: \: Can't tag data node" error messages in dmesg
> > made me look at the ACPI property code and I've found a couple of issues in
> > it.
> >
> > Also, it took me some time to figure out why the code was doing what it was
> > doing, so I decided to add some comments explaining it.
> >
> > Finally, there's always something that can be cleaned up in every piece of
> > kernel code.
> >
> > Hence, this series.
>
> For the set:
>
> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> Tested-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Thank you!

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

end of thread, other threads:[~2025-09-16 14:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-15 18:20 [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Rafael J. Wysocki
2025-09-15 18:21 ` [PATCH v2 1/5] ACPI: property: Fix buffer properties extraction for subnodes Rafael J. Wysocki
2025-09-15 18:23 ` [PATCH v2 2/5] ACPI: property: Disregard references in data-only subnode lists Rafael J. Wysocki
2025-09-15 18:25 ` [PATCH v2 3/5] ACPI: property: Add code comments explaining what is going on Rafael J. Wysocki
2025-09-15 18:28 ` [PATCH v2 4/5] ACPI: property: Do not pass NULL handles to acpi_attach_data() Rafael J. Wysocki
2025-09-15 18:29 ` [PATCH v2 5/5] ACPI: property: Adjust failure handling in acpi_nondev_subnode_extract() Rafael J. Wysocki
2025-09-16 14:09 ` [PATCH v2 0/5] ACPI: property: Two fixes, more documentation and a cleanup Sakari Ailus
2025-09-16 14:10   ` Rafael J. Wysocki

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