Skip to contentSkip to conversation

Patch "ACPI / scan: Annotate physical_node_lock in acpi_scan_is_offline()" has been added to the 3.19-stable tree

PATCH [email protected] 1 participant 1 message May 2, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ACPI / scan: Annotate physical_node_lock in acpi_scan_is_offline()

to the 3.19-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
acpi-scan-annotate-physical_node_lock-in-acpi_scan_is_offline.patch
and it can be found in the queue-3.19 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 4c533c801d1c9b5c38458a0e7516e0cf50643782 Mon Sep 17 00:00:00 2001

From: "Rafael J. Wysocki" <[email protected]>
Date: Sat, 18 Apr 2015 01:25:46 +0200
Subject: ACPI / scan: Annotate physical_node_lock in acpi_scan_is_offline()

From: "Rafael J. Wysocki" <[email protected]>

commit 4c533c801d1c9b5c38458a0e7516e0cf50643782 upstream.

acpi_scan_is_offline() may be called under the physical_node_lock lock of the given device object's parent, so prevent lockdep from complaining about that by annotating that instance with SINGLE_DEPTH_NESTING.

Fixes caa73ea158de (ACPI / hotplug / driver core: Handle containers in a special way)
Reported-and-tested-by Xie XiuQi <[email protected]>
---
 drivers/acpi/scan.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/acpi/scan.c +5 -1
@@ -298,7 +298,11 @@ bool acpi_scan_is_offline(struct acpi_de
 	struct acpi_device_physical_node *pn;
 	bool offline = true;
 
-	mutex_lock(&adev->physical_node_lock);
+	/*
+	 * acpi_container_offline() calls this for all of the container's
+	 * children under the container's physical_node_lock lock.
+	 */
+	mutex_lock_nested(&adev->physical_node_lock, SINGLE_DEPTH_NESTING);
 
 	list_for_each_entry(pn, &adev->physical_node_list, node)
 		if (device_supports_offline(pn->dev) && !pn->dev->offline) {

Patches currently in stable-queue which might be from [email protected] are

queue-3.19/acpica-tables-don-t-release-acpi_mtx_tables-in-acpi_tb_install_standard_table.patch queue-3.19/acpi-scan-annotate-physical_node_lock-in-acpi_scan_is_offline.patch queue-3.19/acpica-utilities-split-io-address-types-from-data-type-models.patch