Skip to contentSkip to conversation

make acpi_path_name() global

PATCH New Randy Dunlap 1 participant 1 message Dec 16, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 make acpi_path_name() global

From: Randy Dunlap <randy_d_dunlap-VuQAYsv1563Yd54FQh9/[email protected]>

Make acpi_path_name() usable by everyone.
I need this for adding SATA suspend/resume ACPI support.

Note:
This function is now a memory allocator and callers should kfree() the memory when done with it. It doesn't seem safe to me to leave it as returning a pointer to a static buffer (as it was in multiple cloned copies) as we add callers to it.

---
 drivers/acpi/osl.c      |   29 +++++++++++++++++++++++++++++
 include/acpi/acpiosxf.h |    2 ++
 2 files changed, 31 insertions(+)
drivers/acpi/osl.c +29 -0
@@ -1078,6 +1078,35 @@ void acpi_os_release_lock(acpi_handle ha
 	spin_unlock_irqrestore((spinlock_t *) handle, flags);
 }
 
+/**
+ * acpi_path_name - get ACPI path_name for the given handle
+ * @handle: ACPI object handle to look up name of
+ *
+ * Allocates memory if successul.  Caller must free the memory.
+ *
+ * Returns: pointer to path_name if successful, NULL if not.
+ */
+u8 *acpi_path_name(acpi_handle handle)
+{
+	acpi_status		status;
+	static u8		*path_name;
+	struct acpi_buffer	ret_buf = {ACPI_PATHNAME_MAX, path_name};
+
+	path_name = kzalloc(ACPI_PATHNAME_MAX, GFP_KERNEL);
+	if (!path_name)
+		return NULL;
+
+	status = acpi_get_name(handle, ACPI_FULL_PATHNAME, &ret_buf);
+
+	if (ACPI_FAILURE(status)) {
+		acpi_os_free(path_name);
+		return NULL;
+	}
+
+	return path_name;
+}
+EXPORT_SYMBOL(acpi_path_name);
+
 #ifndef ACPI_USE_LOCAL_CACHE
 
 /*******************************************************************************
include/acpi/acpiosxf.h +2 -0
@@ -112,6 +112,8 @@ unsigned long acpi_os_acquire_lock(acpi_
 
 void acpi_os_release_lock(acpi_handle handle, unsigned long flags);
 
+u8 *acpi_path_name(acpi_handle handle);
+
 /*
  * Memory allocation and mapping
  */

---

-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click