Re: [ACPI] PATCH-ACPI based CPU hotplug[3/6]-Mapping lsapic to cpu
From: Keiichiro Tokunaga <hidden>
Date: 2004-09-27 12:54:32
Also in:
lkml
On Fri, 24 Sep 2004 16:36:32 -0700 Keshavamurthy Anil S wrote:
On Thu, Sep 23, 2004 at 02:10:31AM +0900, Keiichiro Tokunaga wrote:quoted
On Wed, 22 Sep 2004 08:52:59 -0600, Alex Williamson wrote:quoted
On Wed, 2004-09-22 at 22:15 +0900, Keiichiro Tokunaga wrote:quoted
I would like to suggest introducing a new function 'acpi_get_pxm()' since other drivers might need it in the future. Acutally, ACPI container hotplug will be using it soon. Here is a patch creating the function.Nice, I have a couple I/O locality patches that could be simplifiedHere is the revised patch which now fixes the all issues that were discussed. - Now defines and uses acpi_get_pxm - small bugfix "change __initdata to __devinitdata for pxm_to_nid_map varable
One more thing. Did you modify my acpi_get_pxm.patch by hand? That causes an infinite loop. Please apply my fix patch.
+int
+acpi_get_pxm(acpi_handle handle)
+{
+ unsigned long pxm;
+ acpi_status status;
+ acpi_handle phandle;
+
+ do {
+ status = acpi_evaluate_integer(handle, "_PXM", NULL, &pxm);
+ if (ACPI_SUCCESS(status))
+ return (int)pxm;
+ status = acpi_get_parent(handle, &phandle);
+ } while(ACPI_SUCCESS(status));
+ return -1;
+}
+EXPORT_SYMBOL(acpi_get_pxm);
_This do-loop never ends... Thanks, Keiichiro Tokunaga Status: Tested on 2.6.9-rc2 Signed-off-by: Keiichiro Tokunaga <redacted> --- linux-2.6.9-rc2-092704-kei/drivers/acpi/numa.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff -puN drivers/acpi/numa.c~acpi_get_pxm-fix drivers/acpi/numa.c
--- linux-2.6.9-rc2-092704/drivers/acpi/numa.c~acpi_get_pxm-fix 2004-09-27 20:44:22.000000000 +0900
+++ linux-2.6.9-rc2-092704-kei/drivers/acpi/numa.c 2004-09-27 21:33:24.266377945 +0900@@ -198,13 +198,15 @@ acpi_numa_init() } int -acpi_get_pxm(acpi_handle handle) +acpi_get_pxm(acpi_handle h) { unsigned long pxm; acpi_status status; - acpi_handle phandle; + acpi_handle handle; + acpi_handle phandle = h; do { + handle = phandle; status = acpi_evaluate_integer(handle, "_PXM", NULL, &pxm); if (ACPI_SUCCESS(status)) return (int)pxm;
_