From patchwork Mon Jan 25 21:41:14 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Chiang X-Patchwork-Id: 75104 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.2) with ESMTP id o0PLhEvG015226 for ; Mon, 25 Jan 2010 21:43:14 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753656Ab0AYVlX (ORCPT ); Mon, 25 Jan 2010 16:41:23 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753625Ab0AYVlW (ORCPT ); Mon, 25 Jan 2010 16:41:22 -0500 Received: from g4t0015.houston.hp.com ([15.201.24.18]:44437 "EHLO g4t0015.houston.hp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753536Ab0AYVlP (ORCPT ); Mon, 25 Jan 2010 16:41:15 -0500 Received: from g4t0018.houston.hp.com (g4t0018.houston.hp.com [16.234.32.27]) by g4t0015.houston.hp.com (Postfix) with ESMTP id AF0AB822B; Mon, 25 Jan 2010 21:41:14 +0000 (UTC) Received: from ldl (ldl.fc.hp.com [15.11.146.30]) by g4t0018.houston.hp.com (Postfix) with ESMTP id 6A9F510033; Mon, 25 Jan 2010 21:41:14 +0000 (UTC) Received: from localhost (ldl.fc.hp.com [127.0.0.1]) by ldl (Postfix) with ESMTP id 403ADCF0014; Mon, 25 Jan 2010 14:41:14 -0700 (MST) Received: from ldl ([127.0.0.1]) by localhost (ldl.fc.hp.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nKCgI2fS1nO3; Mon, 25 Jan 2010 14:41:14 -0700 (MST) Received: from eh.fc.hp.com (eh.fc.hp.com [15.11.146.105]) by ldl (Postfix) with ESMTP id 20C60CF0010; Mon, 25 Jan 2010 14:41:14 -0700 (MST) Received: from bob.kio (localhost [127.0.0.1]) by eh.fc.hp.com (Postfix) with ESMTP id 0E8FF262B3; Mon, 25 Jan 2010 14:41:14 -0700 (MST) Subject: [PATCH 07/12] ACPI: processor: driver doesn't need to evaluate _PDC To: lenb@kernel.org From: Alex Chiang Cc: Tony Luck , linux-acpi@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, Venkatesh Pallipadi Date: Mon, 25 Jan 2010 14:41:14 -0700 Message-ID: <20100125214113.28510.72436.stgit@bob.kio> In-Reply-To: <20100125213221.28510.74078.stgit@bob.kio> References: <20100125213221.28510.74078.stgit@bob.kio> User-Agent: StGit/0.15 MIME-Version: 1.0 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org 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 #include #include +#include #include #include #include @@ -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 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