All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yinghai Lu <yinghai@kernel.org>
To: Dave Jones <davej@redhat.com>, Ingo Molnar <mingo@elte.hu>,
	Yinghai Lu <yinghai@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Langsdorf, Mark" <mark.langsdorf@amd.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Mike Travis <travis@sgi.com>
Subject: [PATCH] x86/powernow: dont emit warning when acpi=off
Date: Fri, 30 Jan 2009 12:41:11 -0800	[thread overview]
Message-ID: <498365E7.5010609@kernel.org> (raw)
In-Reply-To: <20090130160431.GA12130@redhat.com>



Impact: cleanup

remove some wrong warning when acpi is disabled.
and don't call exit_acpi if _PSS is not found.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 arch/x86/kernel/cpu/cpufreq/powernow-k8.c |   53 ++++++++++++++++--------------
 1 file changed, 29 insertions(+), 24 deletions(-)

Index: linux-2.6/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
+++ linux-2.6/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
@@ -1124,6 +1124,7 @@ static int powernowk8_verify(struct cpuf
 static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
 {
 	struct powernow_k8_data *data;
+	int k8_cpu_acpi_inited = 0;
 	cpumask_t oldmask;
 	int rc;
 
@@ -1142,39 +1143,41 @@ static int __cpuinit powernowk8_cpu_init
 	data->cpu = pol->cpu;
 	data->currpstate = HW_PSTATE_INVALID;
 
-	if (powernow_k8_cpu_init_acpi(data)) {
+	if (!powernow_k8_cpu_init_acpi(data)) {
+		 k8_cpu_acpi_inited = 1;
+	} else {
 		/*
 		 * Use the PSB BIOS structure. This is only availabe on
 		 * an UP version, and is deprecated by AMD.
 		 */
 		if (num_online_cpus() != 1) {
+			if (!acpi_disabled) {
 #ifndef CONFIG_ACPI_PROCESSOR
-			printk(KERN_ERR PFX "ACPI Processor support is required "
-			       "for SMP systems but is absent. Please load the "
-			       "ACPI Processor module before starting this "
-			       "driver.\n");
+				printk(KERN_ERR PFX "ACPI Processor support is required "
+				       "for SMP systems but is absent. Please load the "
+				       "ACPI Processor module before starting this "
+				       "driver.\n");
 #else
-			printk(KERN_ERR FW_BUG PFX "Your BIOS does not provide"
-			       " ACPI _PSS objects in a way that Linux "
-			       "understands. Please report this to the Linux "
-			       "ACPI maintainers and complain to your BIOS "
-			       "vendor.\n");
+				printk(KERN_ERR FW_BUG PFX "Your BIOS does not provide"
+				       " ACPI _PSS objects in a way that Linux "
+				       "understands. Please report this to the Linux "
+				       "ACPI maintainers and complain to your BIOS "
+				       "vendor.\n");
 #endif
-			kfree(data);
-			return -ENODEV;
+			}
+			goto early_out;
 		}
 		if (pol->cpu != 0) {
-			printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for "
-			       "CPU other than CPU0. Complain to your BIOS "
-			       "vendor.\n");
-			kfree(data);
-			return -ENODEV;
+			if (!acpi_disabled) {
+				printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for "
+				       "CPU other than CPU0. Complain to your BIOS "
+				       "vendor.\n");
+			}
+			goto early_out;
 		}
 		rc = find_psb_table(data);
-		if (rc) {
-			kfree(data);
-			return -ENODEV;
-		}
+		if (rc)
+			goto early_out;
 	}
 
 	/* only run on specific CPU from here on */
@@ -1220,7 +1223,8 @@ static int __cpuinit powernowk8_cpu_init
 	/* min/max the cpu is capable of */
 	if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) {
 		printk(KERN_ERR FW_BUG PFX "invalid powernow_table\n");
-		powernow_k8_cpu_exit_acpi(data);
+		if (k8_cpu_acpi_inited)
+			powernow_k8_cpu_exit_acpi(data);
 		kfree(data->powernow_table);
 		kfree(data);
 		return -EINVAL;
@@ -1240,8 +1244,9 @@ static int __cpuinit powernowk8_cpu_init
 
 err_out:
 	set_cpus_allowed_ptr(current, &oldmask);
-	powernow_k8_cpu_exit_acpi(data);
-
+	if (k8_cpu_acpi_inited)
+		powernow_k8_cpu_exit_acpi(data);
+early_out:
 	kfree(data);
 	return -ENODEV;
 }

      reply	other threads:[~2009-01-30 20:44 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-29  4:56 [PATCH] x86/powernow: fix cpus_allowed brokage when acpi=off Yinghai Lu
2009-01-30  1:40 ` Rusty Russell
2009-01-30  1:44   ` Yinghai Lu
2009-01-30 15:17   ` Ingo Molnar
2009-01-30 16:04     ` Dave Jones
2009-01-30 20:41       ` Yinghai Lu [this message]

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=498365E7.5010609@kernel.org \
    --to=yinghai@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=davej@redhat.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.langsdorf@amd.com \
    --cc=mingo@elte.hu \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    --cc=travis@sgi.com \
    /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.