aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c10
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S6
-rw-r--r--arch/x86/vdso/vdso.S10
3 files changed, 19 insertions, 7 deletions
diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
index e2d870de837c..8db8f73503b3 100644
--- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -339,6 +339,7 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
339{ 339{
340 struct acpi_cpufreq_data *data = per_cpu(drv_data, cpu); 340 struct acpi_cpufreq_data *data = per_cpu(drv_data, cpu);
341 unsigned int freq; 341 unsigned int freq;
342 unsigned int cached_freq;
342 343
343 dprintk("get_cur_freq_on_cpu (%d)\n", cpu); 344 dprintk("get_cur_freq_on_cpu (%d)\n", cpu);
344 345
@@ -347,7 +348,16 @@ static unsigned int get_cur_freq_on_cpu(unsigned int cpu)
347 return 0; 348 return 0;
348 } 349 }
349 350
351 cached_freq = data->freq_table[data->acpi_data->state].frequency;
350 freq = extract_freq(get_cur_val(&cpumask_of_cpu(cpu)), data); 352 freq = extract_freq(get_cur_val(&cpumask_of_cpu(cpu)), data);
353 if (freq != cached_freq) {
354 /*
355 * The dreaded BIOS frequency change behind our back.
356 * Force set the frequency on next target call.
357 */
358 data->resume = 1;
359 }
360
351 dprintk("cur freq = %u\n", freq); 361 dprintk("cur freq = %u\n", freq);
352 362
353 return freq; 363 return freq;
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index b7ab3c335fae..fad3674b06a5 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -209,12 +209,6 @@ SECTIONS
209 EXIT_DATA 209 EXIT_DATA
210 } 210 }
211 211
212/* vdso blob that is mapped into user space */
213 vdso_start = . ;
214 .vdso : AT(ADDR(.vdso) - LOAD_OFFSET) { *(.vdso) }
215 . = ALIGN(PAGE_SIZE);
216 vdso_end = .;
217
218#ifdef CONFIG_BLK_DEV_INITRD 212#ifdef CONFIG_BLK_DEV_INITRD
219 . = ALIGN(PAGE_SIZE); 213 . = ALIGN(PAGE_SIZE);
220 __initramfs_start = .; 214 __initramfs_start = .;
diff --git a/arch/x86/vdso/vdso.S b/arch/x86/vdso/vdso.S
index 4b1620a1529e..1d3aa6b87181 100644
--- a/arch/x86/vdso/vdso.S
+++ b/arch/x86/vdso/vdso.S
@@ -1,2 +1,10 @@
1 .section ".vdso","a" 1#include <linux/init.h>
2
3__INITDATA
4
5 .globl vdso_start, vdso_end
6vdso_start:
2 .incbin "arch/x86/vdso/vdso.so" 7 .incbin "arch/x86/vdso/vdso.so"
8vdso_end:
9
10__FINIT