From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org, jejb@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
"Theodore Ts'o" <tytso@mit.edu>,
Randy Dunlap <rdunlap@xenotime.net>,
Dave Jones <davej@redhat.com>,
Chuck Wolber <chuckw@quantumlinux.com>,
Chris Wedgwood <reviews@ml.cw.f00f.org>,
Michael Krufky <mkrufky@linuxtv.org>,
Chuck Ebbert <cebbert@redhat.com>,
Domenico Andreoli <cavokz@gmail.com>, Willy Tarreau <w@1wt.eu>,
Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
Jake Edge <jake@lwn.net>, Eugene Teo <eteo@redhat.com>,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, Thomas Renninger <trenn@suse.de>,
Andi Kleen <andi@firstfloor.org>, Len Brown <lenb@kernel.org>,
Dave Jones <davej@codemonkey.org.uk>, Ingo Molnar <mingo@elte.hu>,
Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Subject: [patch 59/62] cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called already
Date: Wed, 30 Jul 2008 17:00:05 -0700 [thread overview]
Message-ID: <20080731000005.GG12896@suse.de> (raw)
In-Reply-To: <20080730234915.GA12426@suse.de>
[-- Attachment #1: cpufreq-acpi-only-call-_ppc-after-cpufreq-acpi-init-funcs-got-called-already.patch --]
[-- Type: text/plain, Size: 3693 bytes --]
2.6.26 -stable review patch. If anyone has any objections, please let
us know.
------------------
From: Thomas Renninger <trenn@suse.de>
commit a1531acd43310a7e4571d52e8846640667f4c74b upstream
Ingo Molnar provided a fix to not call _PPC at processor driver
initialization time in "[PATCH] ACPI: fix cpufreq regression" (git
commit e4233dec749a3519069d9390561b5636a75c7579)
But it can still happen that _PPC is called at processor driver
initialization time.
This patch should make sure that this is not possible anymore.
Signed-off-by: Thomas Renninger <trenn@suse.de>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Len Brown <lenb@kernel.org>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c | 6 ++++++
drivers/acpi/processor_perflib.c | 15 +++++++++++++--
drivers/cpufreq/cpufreq.c | 3 +++
include/linux/cpufreq.h | 1 +
4 files changed, 23 insertions(+), 2 deletions(-)
--- a/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
+++ b/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
@@ -96,6 +96,12 @@ static int pmi_notifier(struct notifier_
struct cpufreq_frequency_table *cbe_freqs;
u8 node;
+ /* Should this really be called for CPUFREQ_ADJUST, CPUFREQ_INCOMPATIBLE
+ * and CPUFREQ_NOTIFY policy events?)
+ */
+ if (event == CPUFREQ_START)
+ return 0;
+
cbe_freqs = cpufreq_frequency_get_table(policy->cpu);
node = cbe_cpu_to_node(policy->cpu);
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -64,7 +64,13 @@ static DEFINE_MUTEX(performance_mutex);
* policy is adjusted accordingly.
*/
-static unsigned int ignore_ppc = 0;
+/* ignore_ppc:
+ * -1 -> cpufreq low level drivers not initialized -> _PSS, etc. not called yet
+ * ignore _PPC
+ * 0 -> cpufreq low level drivers initialized -> consider _PPC values
+ * 1 -> ignore _PPC totally -> forced by user through boot param
+ */
+static unsigned int ignore_ppc = -1;
module_param(ignore_ppc, uint, 0644);
MODULE_PARM_DESC(ignore_ppc, "If the frequency of your machine gets wrongly" \
"limited by BIOS, this should help");
@@ -72,7 +78,7 @@ MODULE_PARM_DESC(ignore_ppc, "If the fre
#define PPC_REGISTERED 1
#define PPC_IN_USE 2
-static int acpi_processor_ppc_status = 0;
+static int acpi_processor_ppc_status;
static int acpi_processor_ppc_notifier(struct notifier_block *nb,
unsigned long event, void *data)
@@ -81,6 +87,11 @@ static int acpi_processor_ppc_notifier(s
struct acpi_processor *pr;
unsigned int ppc = 0;
+ if (event == CPUFREQ_START && ignore_ppc <= 0) {
+ ignore_ppc = 0;
+ return 0;
+ }
+
if (ignore_ppc)
return 0;
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -825,6 +825,9 @@ static int cpufreq_add_dev(struct sys_de
policy->user_policy.min = policy->cpuinfo.min_freq;
policy->user_policy.max = policy->cpuinfo.max_freq;
+ blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
+ CPUFREQ_START, policy);
+
#ifdef CONFIG_SMP
#ifdef CONFIG_HOTPLUG_CPU
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -109,6 +109,7 @@ struct cpufreq_policy {
#define CPUFREQ_ADJUST (0)
#define CPUFREQ_INCOMPATIBLE (1)
#define CPUFREQ_NOTIFY (2)
+#define CPUFREQ_START (3)
#define CPUFREQ_SHARED_TYPE_NONE (0) /* None */
#define CPUFREQ_SHARED_TYPE_HW (1) /* HW does needed coordination */
--
next prev parent reply other threads:[~2008-07-31 0:29 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080730233050.332789722@mini.kroah.org>
2008-07-30 23:49 ` [patch 00/62] 2.6.26-stable review Greg KH
2008-07-30 23:57 ` [patch 01/62] pxamci: trivial fix of DMA alignment register bit clearing Greg KH
2008-07-30 23:57 ` [patch 02/62] udplite: Protection against coverage value wrap-around Greg KH
2008-07-30 23:57 ` [patch 03/62] ipv6: use timer pending Greg KH
2008-07-30 23:57 ` [patch 04/62] ipv6: __KERNEL__ ifdef struct ipv6_devconf Greg KH
2008-07-30 23:57 ` [patch 05/62] hdlcdrv: Fix CRC calculation Greg KH
2008-07-30 23:57 ` [patch 06/62] quota: fix possible infinite loop in quota code Greg KH
2008-07-30 23:58 ` [patch 07/62] isofs: fix minor filesystem corruption Greg KH
2008-07-30 23:58 ` [patch 08/62] KVM: VMX: Fix a wrong usage of vmcs_config Greg KH
2008-07-30 23:58 ` [patch 09/62] KVM: SVM: fix suspend/resume support Greg KH
2008-07-30 23:58 ` [patch 10/62] KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held Greg KH
2008-07-30 23:58 ` [patch 11/62] KVM: VMX: Add ept_sync_context in flush_tlb Greg KH
2008-07-30 23:58 ` [patch 12/62] KVM: x86 emulator: Fix HLT instruction Greg KH
2008-07-30 23:58 ` [patch 13/62] KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction Greg KH
2008-07-30 23:58 ` [patch 14/62] KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts Greg KH
2008-07-30 23:58 ` [patch 15/62] Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error Greg KH
2008-07-30 23:58 ` [patch 16/62] rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall Greg KH
2008-07-30 23:58 ` [patch 17/62] Fix typos from signal_32/64.h merge Greg KH
2008-07-30 23:58 ` [patch 18/62] x86 reboot quirks: add Dell Precision WorkStation T5400 Greg KH
2008-07-30 23:58 ` [patch 19/62] USB: fix usb serial pm counter decrement for disconnected interfaces Greg KH
2008-07-30 23:58 ` [patch 20/62] x86, suspend, acpi: enter Big Real Mode Greg KH
2008-08-05 12:15 ` Pavel Machek
2008-07-30 23:58 ` [patch 21/62] markers: fix duplicate modpost entry Greg KH
2008-07-30 23:58 ` [patch 22/62] Fix build on COMPAT platforms when CONFIG_EPOLL is disabled Greg KH
2008-07-30 23:58 ` [patch 24/62] cpusets: fix wrong domain attr updates Greg KH
2008-07-30 23:58 ` [patch 25/62] x86: fix crash due to missing debugctlmsr on AMD K6-3 Greg KH
2008-07-30 23:58 ` [patch 23/62] proc: fix /proc/*/pagemap Greg KH
2008-07-30 23:58 ` [patch 26/62] ide-cd: fix oops when using growisofs Greg KH
2008-07-30 23:58 ` [patch 27/62] rtc-at91rm9200: avoid spurious irqs Greg KH
2008-07-30 23:58 ` [patch 28/62] vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section Greg KH
2008-07-30 23:58 ` [patch 29/62] ARM: fix fls() for 64-bit arguments Greg KH
2008-07-30 23:58 ` [patch 30/62] tcp: Clear probes_out more aggressively in tcp_ack() Greg KH
2008-07-30 23:58 ` [patch 31/62] sparc64: Fix lockdep issues in LDC protocol layer Greg KH
2008-07-30 23:59 ` [patch 32/62] sparc64: Fix cpufreq notifier registry Greg KH
2008-07-30 23:59 ` [patch 33/62] sparc64: Do not define BIO_VMERGE_BOUNDARY Greg KH
2008-07-30 23:59 ` [patch 34/62] iop-adma: fix platform driver hotplug/coldplug Greg KH
2008-07-30 23:59 ` [patch 35/62] myri10ge: do not forget to setup the single slice pointers Greg KH
2008-07-30 23:59 ` [patch 36/62] myri10ge: do not use mgp->max_intr_slots before loading the firmware Greg KH
2008-07-30 23:59 ` [patch 37/62] ALSA: trident - pause s/pdif output Greg KH
2008-07-30 23:59 ` [patch 38/62] V4L: cx18: Upgrade to newer firmware & update documentation Greg KH
2008-07-30 23:59 ` [patch 39/62] DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009 Greg KH
2008-07-30 23:59 ` [patch 40/62] V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing Greg KH
2008-07-30 23:59 ` [patch 41/62] V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume Greg KH
2008-07-30 23:59 ` [patch 42/62] V4L: uvcvideo: Dont free URB buffers on suspend Greg KH
2008-07-30 23:59 ` [patch 43/62] V4L: uvcvideo: Make input device support optional Greg KH
2008-07-30 23:59 ` [patch 44/62] V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated webcam Greg KH
2008-07-30 23:59 ` [patch 45/62] V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner type Greg KH
2008-07-30 23:59 ` [patch 46/62] V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1 Greg KH
2008-07-30 23:59 ` [patch 47/62] DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default Greg KH
2008-07-30 23:59 ` [patch 48/62] DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not stream Greg KH
2008-07-30 23:59 ` [patch 49/62] DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues Greg KH
2008-07-30 23:59 ` [patch 50/62] DVB: cx23885: SRAM changes for the 885 and 887 silicon parts Greg KH
2008-07-30 23:59 ` [patch 51/62] x86: fix kernel_physical_mapping_init() for large x86 systems Greg KH
2008-07-30 23:59 ` Greg KH
2008-07-30 23:59 ` [patch 52/62] eCryptfs: use page_alloc not kmalloc to get a page of memory Greg KH
2008-07-30 23:59 ` [patch 53/62] UML - Fix boot crash Greg KH
2008-07-30 23:59 ` [patch 54/62] ixgbe: remove device ID for unsupported device Greg KH
2008-07-30 23:59 ` [patch 55/62] mpc52xx_psc_spi: fix block transfer Greg KH
2008-07-30 23:59 ` [patch 56/62] tmpfs: fix kernel BUG in shmem_delete_inode Greg KH
2008-07-30 23:59 ` [patch 57/62] markers: fix markers read barrier for multiple probes Greg KH
2008-07-31 0:00 ` [patch 58/62] VFS: increase pseudo-filesystem block size to PAGE_SIZE Greg KH
2008-07-31 0:00 ` Greg KH [this message]
2008-07-31 0:00 ` [patch 60/62] b43legacy: Release mutex in error handling code Greg KH
2008-07-31 0:00 ` [patch 61/62] ath5k: dont enable MSI, we cannot handle it yet Greg KH
2008-07-31 0:00 ` [patch 62/62] Fix off-by-one error in iov_iter_advance() Greg KH
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=20080731000005.GG12896@suse.de \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=cavokz@gmail.com \
--cc=cebbert@redhat.com \
--cc=chuckw@quantumlinux.com \
--cc=davej@codemonkey.org.uk \
--cc=davej@redhat.com \
--cc=eteo@redhat.com \
--cc=jake@lwn.net \
--cc=jejb@kernel.org \
--cc=jmforbes@linuxtx.org \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mkrufky@linuxtv.org \
--cc=rbranco@la.checkpoint.com \
--cc=rdunlap@xenotime.net \
--cc=reviews@ml.cw.f00f.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=trenn@suse.de \
--cc=tytso@mit.edu \
--cc=venkatesh.pallipadi@intel.com \
--cc=w@1wt.eu \
--cc=zwane@arm.linux.org.uk \
/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.