All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Chiang <achiang@hp.com>
To: lenb@kernel.org
Cc: Tony Luck <tony.luck@intel.com>,
	linux-acpi@vger.kernel.org, x86@kernel.org,
	linux-kernel@vger.kernel.org,
	Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Subject: [PATCH 07/12] ACPI: processor: driver doesn't need to evaluate _PDC
Date: Mon, 25 Jan 2010 14:41:14 -0700	[thread overview]
Message-ID: <20100125214113.28510.72436.stgit@bob.kio> (raw)
In-Reply-To: <20100125213221.28510.74078.stgit@bob.kio>

Now that the early _PDC evaluation path knows how to correctly
evaluate _PDC on only physically present processors, there's no
need for the processor driver to evaluate it later when it loads.

To cover the hotplug case, push _PDC evaluation down into the
hotplug paths.

Cc: x86@kernel.org
Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Tony Luck <tony.luck@intel.com>
Signed-off-by: Alex Chiang <achiang@hp.com>
---

 arch/ia64/kernel/acpi.c         |    3 +++
 arch/x86/kernel/acpi/boot.c     |    3 +++
 drivers/acpi/processor_core.c   |    7 -------
 drivers/acpi/processor_driver.c |    3 ---
 4 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 40574ae..394742a 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -44,6 +44,7 @@
 #include <linux/efi.h>
 #include <linux/mmzone.h>
 #include <linux/nodemask.h>
+#include <acpi/processor.h>
 #include <asm/io.h>
 #include <asm/iosapic.h>
 #include <asm/machvec.h>
@@ -936,6 +937,8 @@ int acpi_map_lsapic(acpi_handle handle, int *pcpu)
 	cpu_set(cpu, cpu_present_map);
 	ia64_cpu_to_sapicid[cpu] = physid;
 
+	acpi_processor_set_pdc(handle);
+
 	*pcpu = cpu;
 	return (0);
 }
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index fb1035c..baa2280 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -481,6 +481,7 @@ int acpi_register_gsi(struct device *dev, u32 gsi, int trigger, int polarity)
  *  ACPI based hotplug support for CPU
  */
 #ifdef CONFIG_ACPI_HOTPLUG_CPU
+#include <acpi/processor.h>
 
 static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu)
 {
@@ -539,6 +540,8 @@ static int __cpuinit _acpi_map_lsapic(acpi_handle handle, int *pcpu)
 		goto free_new_map;
 	}
 
+	acpi_processor_set_pdc(handle);
+
 	cpu = cpumask_first(new_map);
 
 	*pcpu = cpu;
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 05874ba..1fc06c6 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -317,8 +317,6 @@ acpi_processor_eval_pdc(acpi_handle handle, struct acpi_object_list *pdc_in)
 	return status;
 }
 
-static int early_pdc_done;
-
 void acpi_processor_set_pdc(acpi_handle handle)
 {
 	struct acpi_object_list *obj_list;
@@ -326,9 +324,6 @@ void acpi_processor_set_pdc(acpi_handle handle)
 	if (arch_has_acpi_pdc() == false)
 		return;
 
-	if (early_pdc_done)
-		return;
-
 	obj_list = acpi_processor_alloc_pdc();
 	if (!obj_list)
 		return;
@@ -369,6 +364,4 @@ void acpi_early_processor_set_pdc(void)
 	acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT,
 			    ACPI_UINT32_MAX,
 			    early_init_pdc, NULL, NULL, NULL);
-
-	early_pdc_done = 1;
 }
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
index 777d046..7e8e1ba 100644
--- a/drivers/acpi/processor_driver.c
+++ b/drivers/acpi/processor_driver.c
@@ -606,9 +606,6 @@ static int __cpuinit acpi_processor_add(struct acpi_device *device)
 		goto err_remove_fs;
 	}
 
-	/* _PDC call should be done before doing anything else (if reqd.). */
-	acpi_processor_set_pdc(pr->handle);
-
 #ifdef CONFIG_CPU_FREQ
 	acpi_processor_ppc_has_changed(pr, 0);
 #endif

  parent reply	other threads:[~2010-01-25 21:41 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-25 21:40 [PATCH 00/12] ACPI: processor driver vs. core Alex Chiang
2010-01-25 21:40 ` [PATCH 01/12] ACPI: processor: mv processor_core.c processor_driver.c Alex Chiang
2010-01-25 21:40 ` [PATCH 02/12] ACPI: processor: mv processor_pdc.c processor_core.c Alex Chiang
2010-01-25 21:40 ` [PATCH 03/12] ACPI: processor: export acpi_get_cpuid() Alex Chiang
2010-01-25 21:40 ` [PATCH 04/12] ACPI: processor: move acpi_get_cpuid into processor_core.c Alex Chiang
2010-01-25 21:41 ` [PATCH 05/12] ACPI: processor: add internal processor_physically_present() Alex Chiang
2010-01-25 21:41 ` [PATCH 06/12] ACPI: processor: remove early _PDC optin quirks Alex Chiang
2010-01-25 21:41 ` Alex Chiang [this message]
2010-01-25 21:41 ` [PATCH 08/12] ACPI: processor: refactor internal map_lapic_id() Alex Chiang
2010-01-25 21:41 ` [PATCH 09/12] ACPI: processor: refactor internal map_x2apic_id() Alex Chiang
2010-01-25 21:41 ` [PATCH 10/12] ACPI: processor: refactor internal map_lsapic_id() Alex Chiang
2010-01-25 22:22   ` David Rientjes
2010-01-25 22:46     ` Alex Chiang
2010-01-25 21:41 ` [PATCH 11/12] ACPI: processor: push file static MADT pointer into internal map_madt_entry() Alex Chiang
2010-01-25 21:41 ` [PATCH 12/12] ACPI: processor core: style and sparse cleanups Alex Chiang
2010-02-02 23:17 ` [PATCH 00/12] ACPI: processor driver vs. core Alex Chiang
2010-02-03  1:51   ` Pallipadi, Venkatesh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100125214113.28510.72436.stgit@bob.kio \
    --to=achiang@hp.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tony.luck@intel.com \
    --cc=venkatesh.pallipadi@intel.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.