summaryrefslogtreecommitdiff
path: root/drivers/cpufreq/powernow-k8.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-02-21 10:01:17 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2014-02-21 10:01:17 -0800
commit795233bfd65916a7d1d3b086f056bd7af03c50fe (patch)
tree32eee4ddc3d1bf56b3c466b7ff17c6b2f75188a3 /drivers/cpufreq/powernow-k8.c
parent7777d9348996dbe25c73fe23ebde26b6d71e2cb4 (diff)
parentfee5ae96e0bc48b13f97512aef91d5aea60240a5 (diff)
Merge tag 'pm+acpi-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull ACPI and power management fixes from Rafael Wysocki: "These include two fixes for recent regressions related to ACPI, a cpufreq fix for breakage overlooked by a previous fix commit, two intel_pstate fixes for stuff added during the 3.13 cycle that need to go into -stable, three fixes for older bugs that also are -stable candidates, ACPI video blacklist changes related to BIOSes that behave in a special way on Windows 8, several build fixes for CONFIG_PM_SLEEP unset in ACPI drivers and an ACPI driver cleanup. Specifics: - Fix for a recent probing regression in the nouveau driver introduced by an ACPI change related to the handling of _DSM from Jiang Liu. - Fix for a dock station sysfs attribute that stopped working correctly after recent changes in the ACPI core. - cpufreq fix taking care of broken code related to CPU removal and overlooked by a previous recent fix in that area. From Viresh Kumar. - Two intel_pstate fixes related to Baytrail support added during the 3.13 cycle (candidates for -stable) from Dirk Brandewie. - ACPI video fix removing duplicate brightness values from the _BCL table which makes its user space interface behave sanely. From Hans de Goede. - Fix for the powernow-k8 cpufreq driver making it initialize its per-CPU data structures correctly from Srivatsa S Bhat. - Fix for an obscure memory leak in the ACPI PCI interrupt allocation code (related to ISA) from Tomasz Nowicki. - ACPI video blacklist changes moving several systems that should use the native backlight interface instead of the ACPI one from the general ACPI _OSI blacklist the the ACPI video driver's blacklist where they belong. This consists of an ACPI video driver update from Aaron Lu and a revert of a previous commit adding systems to the ACPI _OSI blacklist requested by Takashi Iwai. - Several fixes for build issues in ACPI drivers occuring when CONFIG_PM_SLEEP is unset from Shuah Khan. - Fix for an sscanf() format string in the ACPI Smart Battery Subsystem (SBS) driver from Luis G.F" * tag 'pm+acpi-3.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: intel_pstate: Add support for Baytrail turbo P states intel_pstate: Use LFM bus ratio as min ratio/P state ACPI / nouveau: fix probing regression related to _DSM Revert "ACPI: Blacklist Win8 OSI for some HP laptop 2013 models" ACPI / video: Add systems that should favour native backlight interface ACPI / video: Filter the _BCL table for duplicate brightness values cpufreq: powernow-k8: Initialize per-cpu data-structures properly cpufreq: remove sysfs link when a cpu != policy->cpu, is removed ACPI / PCI: Fix memory leak in acpi_pci_irq_enable() ACPI / dock: Make 'docked' sysfs attribute work as documented ACPI / SBS: Fix incorrect sscanf() string ACPI / thermal: fix thermal driver compile error when CONFIG_PM_SLEEP is undefined ACPI / SBS: fix SBS driver compile error when CONFIG_PM_SLEEP is undefined ACPI / fan: fix fan driver compile error when CONFIG_PM_SLEEP is undefined ACPI / button: fix button driver compile error when CONFIG_PM_SLEEP is undefined ACPI / battery: fix battery driver compile error when CONFIG_PM_SLEEP is undefined ACPI / AC: fix AC driver compile error when CONFIG_PM_SLEEP is undefined
Diffstat (limited to 'drivers/cpufreq/powernow-k8.c')
-rw-r--r--drivers/cpufreq/powernow-k8.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
index e10b646634d7..6684e0342792 100644
--- a/drivers/cpufreq/powernow-k8.c
+++ b/drivers/cpufreq/powernow-k8.c
@@ -1076,7 +1076,7 @@ static int powernowk8_cpu_init(struct cpufreq_policy *pol)
{
struct powernow_k8_data *data;
struct init_on_cpu init_on_cpu;
- int rc;
+ int rc, cpu;
smp_call_function_single(pol->cpu, check_supported_cpu, &rc, 1);
if (rc)
@@ -1140,7 +1140,9 @@ static int powernowk8_cpu_init(struct cpufreq_policy *pol)
pr_debug("cpu_init done, current fid 0x%x, vid 0x%x\n",
data->currfid, data->currvid);
- per_cpu(powernow_data, pol->cpu) = data;
+ /* Point all the CPUs in this policy to the same data */
+ for_each_cpu(cpu, pol->cpus)
+ per_cpu(powernow_data, cpu) = data;
return 0;
@@ -1155,6 +1157,7 @@ err_out:
static int powernowk8_cpu_exit(struct cpufreq_policy *pol)
{
struct powernow_k8_data *data = per_cpu(powernow_data, pol->cpu);
+ int cpu;
if (!data)
return -EINVAL;
@@ -1165,7 +1168,8 @@ static int powernowk8_cpu_exit(struct cpufreq_policy *pol)
kfree(data->powernow_table);
kfree(data);
- per_cpu(powernow_data, pol->cpu) = NULL;
+ for_each_cpu(cpu, pol->cpus)
+ per_cpu(powernow_data, cpu) = NULL;
return 0;
}