diff options
Diffstat (limited to 'arch/i386/kernel')
-rw-r--r-- | arch/i386/kernel/acpi/boot.c | 10 | ||||
-rw-r--r-- | arch/i386/kernel/apic.c | 4 | ||||
-rw-r--r-- | arch/i386/kernel/apm.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/cpu/amd.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 10 | ||||
-rw-r--r-- | arch/i386/kernel/cpu/intel_cacheinfo.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/cpuid.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/kprobes.c | 39 | ||||
-rw-r--r-- | arch/i386/kernel/msr.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/ptrace.c | 7 | ||||
-rw-r--r-- | arch/i386/kernel/setup.c | 4 | ||||
-rw-r--r-- | arch/i386/kernel/smpboot.c | 4 | ||||
-rw-r--r-- | arch/i386/kernel/timers/timer_tsc.c | 4 | ||||
-rw-r--r-- | arch/i386/kernel/vm86.c | 2 |
14 files changed, 48 insertions, 46 deletions
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index 030a0007a4e0..4c785a67d585 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -168,7 +168,7 @@ int __init acpi_parse_mcfg(unsigned long phys_addr, unsigned long size) | |||
168 | unsigned long i; | 168 | unsigned long i; |
169 | int config_size; | 169 | int config_size; |
170 | 170 | ||
171 | if (!phys_addr || !size || !cpu_has_apic) | 171 | if (!phys_addr || !size) |
172 | return -EINVAL; | 172 | return -EINVAL; |
173 | 173 | ||
174 | mcfg = (struct acpi_table_mcfg *)__acpi_map_table(phys_addr, size); | 174 | mcfg = (struct acpi_table_mcfg *)__acpi_map_table(phys_addr, size); |
@@ -215,7 +215,7 @@ static int __init acpi_parse_madt(unsigned long phys_addr, unsigned long size) | |||
215 | { | 215 | { |
216 | struct acpi_table_madt *madt = NULL; | 216 | struct acpi_table_madt *madt = NULL; |
217 | 217 | ||
218 | if (!phys_addr || !size || !cpu_has_apic) | 218 | if (!phys_addr || !size) |
219 | return -EINVAL; | 219 | return -EINVAL; |
220 | 220 | ||
221 | madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size); | 221 | madt = (struct acpi_table_madt *)__acpi_map_table(phys_addr, size); |
@@ -1102,6 +1102,9 @@ int __init acpi_boot_table_init(void) | |||
1102 | dmi_check_system(acpi_dmi_table); | 1102 | dmi_check_system(acpi_dmi_table); |
1103 | #endif | 1103 | #endif |
1104 | 1104 | ||
1105 | if (!cpu_has_apic) | ||
1106 | return -ENODEV; | ||
1107 | |||
1105 | /* | 1108 | /* |
1106 | * If acpi_disabled, bail out | 1109 | * If acpi_disabled, bail out |
1107 | * One exception: acpi=ht continues far enough to enumerate LAPICs | 1110 | * One exception: acpi=ht continues far enough to enumerate LAPICs |
@@ -1148,6 +1151,9 @@ int __init acpi_boot_init(void) | |||
1148 | 1151 | ||
1149 | acpi_table_parse(ACPI_BOOT, acpi_parse_sbf); | 1152 | acpi_table_parse(ACPI_BOOT, acpi_parse_sbf); |
1150 | 1153 | ||
1154 | if (!cpu_has_apic) | ||
1155 | return -ENODEV; | ||
1156 | |||
1151 | /* | 1157 | /* |
1152 | * set sci_int and PM timer address | 1158 | * set sci_int and PM timer address |
1153 | */ | 1159 | */ |
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 254cee9f0b7b..013b85df18c6 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -757,10 +757,6 @@ static int __init apic_set_verbosity(char *str) | |||
757 | apic_verbosity = APIC_DEBUG; | 757 | apic_verbosity = APIC_DEBUG; |
758 | else if (strcmp("verbose", str) == 0) | 758 | else if (strcmp("verbose", str) == 0) |
759 | apic_verbosity = APIC_VERBOSE; | 759 | apic_verbosity = APIC_VERBOSE; |
760 | else | ||
761 | printk(KERN_WARNING "APIC Verbosity level %s not recognised" | ||
762 | " use apic=verbose or apic=debug\n", str); | ||
763 | |||
764 | return 1; | 760 | return 1; |
765 | } | 761 | } |
766 | 762 | ||
diff --git a/arch/i386/kernel/apm.c b/arch/i386/kernel/apm.c index da30a374dd4e..df0e1745f189 100644 --- a/arch/i386/kernel/apm.c +++ b/arch/i386/kernel/apm.c | |||
@@ -1079,7 +1079,7 @@ static int apm_console_blank(int blank) | |||
1079 | break; | 1079 | break; |
1080 | } | 1080 | } |
1081 | 1081 | ||
1082 | if (error == APM_NOT_ENGAGED && state != APM_STATE_READY) { | 1082 | if (error == APM_NOT_ENGAGED) { |
1083 | static int tried; | 1083 | static int tried; |
1084 | int eng_error; | 1084 | int eng_error; |
1085 | if (tried++ == 0) { | 1085 | if (tried++ == 0) { |
diff --git a/arch/i386/kernel/cpu/amd.c b/arch/i386/kernel/cpu/amd.c index ff2b2154ac1b..786d1a57048b 100644 --- a/arch/i386/kernel/cpu/amd.c +++ b/arch/i386/kernel/cpu/amd.c | |||
@@ -207,6 +207,8 @@ static void __init init_amd(struct cpuinfo_x86 *c) | |||
207 | set_bit(X86_FEATURE_K7, c->x86_capability); | 207 | set_bit(X86_FEATURE_K7, c->x86_capability); |
208 | break; | 208 | break; |
209 | } | 209 | } |
210 | if (c->x86 >= 6) | ||
211 | set_bit(X86_FEATURE_FXSAVE_LEAK, c->x86_capability); | ||
210 | 212 | ||
211 | display_cacheinfo(c); | 213 | display_cacheinfo(c); |
212 | 214 | ||
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c index 7c0e160a2145..71fffa174425 100644 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -905,14 +905,17 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi | |||
905 | { | 905 | { |
906 | cpumask_t oldmask = CPU_MASK_ALL; | 906 | cpumask_t oldmask = CPU_MASK_ALL; |
907 | struct powernow_k8_data *data = powernow_data[pol->cpu]; | 907 | struct powernow_k8_data *data = powernow_data[pol->cpu]; |
908 | u32 checkfid = data->currfid; | 908 | u32 checkfid; |
909 | u32 checkvid = data->currvid; | 909 | u32 checkvid; |
910 | unsigned int newstate; | 910 | unsigned int newstate; |
911 | int ret = -EIO; | 911 | int ret = -EIO; |
912 | 912 | ||
913 | if (!data) | 913 | if (!data) |
914 | return -EINVAL; | 914 | return -EINVAL; |
915 | 915 | ||
916 | checkfid = data->currfid; | ||
917 | checkvid = data->currvid; | ||
918 | |||
916 | /* only run on specific CPU from here on */ | 919 | /* only run on specific CPU from here on */ |
917 | oldmask = current->cpus_allowed; | 920 | oldmask = current->cpus_allowed; |
918 | set_cpus_allowed(current, cpumask_of_cpu(pol->cpu)); | 921 | set_cpus_allowed(current, cpumask_of_cpu(pol->cpu)); |
@@ -1109,9 +1112,6 @@ static unsigned int powernowk8_get (unsigned int cpu) | |||
1109 | if (!data) | 1112 | if (!data) |
1110 | return -EINVAL; | 1113 | return -EINVAL; |
1111 | 1114 | ||
1112 | if (!data) | ||
1113 | return -EINVAL; | ||
1114 | |||
1115 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 1115 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); |
1116 | if (smp_processor_id() != cpu) { | 1116 | if (smp_processor_id() != cpu) { |
1117 | printk(KERN_ERR PFX "limiting to CPU %d failed in powernowk8_get\n", cpu); | 1117 | printk(KERN_ERR PFX "limiting to CPU %d failed in powernowk8_get\n", cpu); |
diff --git a/arch/i386/kernel/cpu/intel_cacheinfo.c b/arch/i386/kernel/cpu/intel_cacheinfo.c index 9df87b03612c..c8547a6fa7e6 100644 --- a/arch/i386/kernel/cpu/intel_cacheinfo.c +++ b/arch/i386/kernel/cpu/intel_cacheinfo.c | |||
@@ -642,7 +642,7 @@ static void __cpuexit cache_remove_dev(struct sys_device * sys_dev) | |||
642 | return; | 642 | return; |
643 | } | 643 | } |
644 | 644 | ||
645 | static int __cpuinit cacheinfo_cpu_callback(struct notifier_block *nfb, | 645 | static int cacheinfo_cpu_callback(struct notifier_block *nfb, |
646 | unsigned long action, void *hcpu) | 646 | unsigned long action, void *hcpu) |
647 | { | 647 | { |
648 | unsigned int cpu = (unsigned long)hcpu; | 648 | unsigned int cpu = (unsigned long)hcpu; |
diff --git a/arch/i386/kernel/cpuid.c b/arch/i386/kernel/cpuid.c index 006141d1c12a..1d9a4abcdfc7 100644 --- a/arch/i386/kernel/cpuid.c +++ b/arch/i386/kernel/cpuid.c | |||
@@ -168,7 +168,7 @@ static int cpuid_class_device_create(int i) | |||
168 | return err; | 168 | return err; |
169 | } | 169 | } |
170 | 170 | ||
171 | static int __devinit cpuid_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | 171 | static int cpuid_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) |
172 | { | 172 | { |
173 | unsigned int cpu = (unsigned long)hcpu; | 173 | unsigned int cpu = (unsigned long)hcpu; |
174 | 174 | ||
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c index f19768789e8a..38806f427849 100644 --- a/arch/i386/kernel/kprobes.c +++ b/arch/i386/kernel/kprobes.c | |||
@@ -43,7 +43,7 @@ DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; | |||
43 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); | 43 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); |
44 | 44 | ||
45 | /* insert a jmp code */ | 45 | /* insert a jmp code */ |
46 | static inline void set_jmp_op(void *from, void *to) | 46 | static __always_inline void set_jmp_op(void *from, void *to) |
47 | { | 47 | { |
48 | struct __arch_jmp_op { | 48 | struct __arch_jmp_op { |
49 | char op; | 49 | char op; |
@@ -57,7 +57,7 @@ static inline void set_jmp_op(void *from, void *to) | |||
57 | /* | 57 | /* |
58 | * returns non-zero if opcodes can be boosted. | 58 | * returns non-zero if opcodes can be boosted. |
59 | */ | 59 | */ |
60 | static inline int can_boost(kprobe_opcode_t opcode) | 60 | static __always_inline int can_boost(kprobe_opcode_t opcode) |
61 | { | 61 | { |
62 | switch (opcode & 0xf0 ) { | 62 | switch (opcode & 0xf0 ) { |
63 | case 0x70: | 63 | case 0x70: |
@@ -88,7 +88,7 @@ static inline int can_boost(kprobe_opcode_t opcode) | |||
88 | /* | 88 | /* |
89 | * returns non-zero if opcode modifies the interrupt flag. | 89 | * returns non-zero if opcode modifies the interrupt flag. |
90 | */ | 90 | */ |
91 | static inline int is_IF_modifier(kprobe_opcode_t opcode) | 91 | static int __kprobes is_IF_modifier(kprobe_opcode_t opcode) |
92 | { | 92 | { |
93 | switch (opcode) { | 93 | switch (opcode) { |
94 | case 0xfa: /* cli */ | 94 | case 0xfa: /* cli */ |
@@ -138,7 +138,7 @@ void __kprobes arch_remove_kprobe(struct kprobe *p) | |||
138 | mutex_unlock(&kprobe_mutex); | 138 | mutex_unlock(&kprobe_mutex); |
139 | } | 139 | } |
140 | 140 | ||
141 | static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) | 141 | static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) |
142 | { | 142 | { |
143 | kcb->prev_kprobe.kp = kprobe_running(); | 143 | kcb->prev_kprobe.kp = kprobe_running(); |
144 | kcb->prev_kprobe.status = kcb->kprobe_status; | 144 | kcb->prev_kprobe.status = kcb->kprobe_status; |
@@ -146,7 +146,7 @@ static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb) | |||
146 | kcb->prev_kprobe.saved_eflags = kcb->kprobe_saved_eflags; | 146 | kcb->prev_kprobe.saved_eflags = kcb->kprobe_saved_eflags; |
147 | } | 147 | } |
148 | 148 | ||
149 | static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb) | 149 | static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) |
150 | { | 150 | { |
151 | __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; | 151 | __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; |
152 | kcb->kprobe_status = kcb->prev_kprobe.status; | 152 | kcb->kprobe_status = kcb->prev_kprobe.status; |
@@ -154,7 +154,7 @@ static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb) | |||
154 | kcb->kprobe_saved_eflags = kcb->prev_kprobe.saved_eflags; | 154 | kcb->kprobe_saved_eflags = kcb->prev_kprobe.saved_eflags; |
155 | } | 155 | } |
156 | 156 | ||
157 | static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs, | 157 | static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs, |
158 | struct kprobe_ctlblk *kcb) | 158 | struct kprobe_ctlblk *kcb) |
159 | { | 159 | { |
160 | __get_cpu_var(current_kprobe) = p; | 160 | __get_cpu_var(current_kprobe) = p; |
@@ -164,7 +164,7 @@ static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs, | |||
164 | kcb->kprobe_saved_eflags &= ~IF_MASK; | 164 | kcb->kprobe_saved_eflags &= ~IF_MASK; |
165 | } | 165 | } |
166 | 166 | ||
167 | static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 167 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
168 | { | 168 | { |
169 | regs->eflags |= TF_MASK; | 169 | regs->eflags |= TF_MASK; |
170 | regs->eflags &= ~IF_MASK; | 170 | regs->eflags &= ~IF_MASK; |
@@ -242,10 +242,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) | |||
242 | kcb->kprobe_status = KPROBE_REENTER; | 242 | kcb->kprobe_status = KPROBE_REENTER; |
243 | return 1; | 243 | return 1; |
244 | } else { | 244 | } else { |
245 | if (regs->eflags & VM_MASK) { | ||
246 | /* We are in virtual-8086 mode. Return 0 */ | ||
247 | goto no_kprobe; | ||
248 | } | ||
249 | if (*addr != BREAKPOINT_INSTRUCTION) { | 245 | if (*addr != BREAKPOINT_INSTRUCTION) { |
250 | /* The breakpoint instruction was removed by | 246 | /* The breakpoint instruction was removed by |
251 | * another cpu right after we hit, no further | 247 | * another cpu right after we hit, no further |
@@ -265,11 +261,6 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) | |||
265 | 261 | ||
266 | p = get_kprobe(addr); | 262 | p = get_kprobe(addr); |
267 | if (!p) { | 263 | if (!p) { |
268 | if (regs->eflags & VM_MASK) { | ||
269 | /* We are in virtual-8086 mode. Return 0 */ | ||
270 | goto no_kprobe; | ||
271 | } | ||
272 | |||
273 | if (*addr != BREAKPOINT_INSTRUCTION) { | 264 | if (*addr != BREAKPOINT_INSTRUCTION) { |
274 | /* | 265 | /* |
275 | * The breakpoint instruction was removed right | 266 | * The breakpoint instruction was removed right |
@@ -452,10 +443,11 @@ static void __kprobes resume_execution(struct kprobe *p, | |||
452 | *tos &= ~(TF_MASK | IF_MASK); | 443 | *tos &= ~(TF_MASK | IF_MASK); |
453 | *tos |= kcb->kprobe_old_eflags; | 444 | *tos |= kcb->kprobe_old_eflags; |
454 | break; | 445 | break; |
455 | case 0xc3: /* ret/lret */ | 446 | case 0xc2: /* iret/ret/lret */ |
456 | case 0xcb: | 447 | case 0xc3: |
457 | case 0xc2: | ||
458 | case 0xca: | 448 | case 0xca: |
449 | case 0xcb: | ||
450 | case 0xcf: | ||
459 | case 0xea: /* jmp absolute -- eip is correct */ | 451 | case 0xea: /* jmp absolute -- eip is correct */ |
460 | /* eip is already adjusted, no more changes required */ | 452 | /* eip is already adjusted, no more changes required */ |
461 | p->ainsn.boostable = 1; | 453 | p->ainsn.boostable = 1; |
@@ -463,10 +455,13 @@ static void __kprobes resume_execution(struct kprobe *p, | |||
463 | case 0xe8: /* call relative - Fix return addr */ | 455 | case 0xe8: /* call relative - Fix return addr */ |
464 | *tos = orig_eip + (*tos - copy_eip); | 456 | *tos = orig_eip + (*tos - copy_eip); |
465 | break; | 457 | break; |
458 | case 0x9a: /* call absolute -- same as call absolute, indirect */ | ||
459 | *tos = orig_eip + (*tos - copy_eip); | ||
460 | goto no_change; | ||
466 | case 0xff: | 461 | case 0xff: |
467 | if ((p->ainsn.insn[1] & 0x30) == 0x10) { | 462 | if ((p->ainsn.insn[1] & 0x30) == 0x10) { |
468 | /* call absolute, indirect */ | ||
469 | /* | 463 | /* |
464 | * call absolute, indirect | ||
470 | * Fix return addr; eip is correct. | 465 | * Fix return addr; eip is correct. |
471 | * But this is not boostable | 466 | * But this is not boostable |
472 | */ | 467 | */ |
@@ -507,7 +502,7 @@ no_change: | |||
507 | * Interrupts are disabled on entry as trap1 is an interrupt gate and they | 502 | * Interrupts are disabled on entry as trap1 is an interrupt gate and they |
508 | * remain disabled thoroughout this function. | 503 | * remain disabled thoroughout this function. |
509 | */ | 504 | */ |
510 | static inline int post_kprobe_handler(struct pt_regs *regs) | 505 | static int __kprobes post_kprobe_handler(struct pt_regs *regs) |
511 | { | 506 | { |
512 | struct kprobe *cur = kprobe_running(); | 507 | struct kprobe *cur = kprobe_running(); |
513 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); | 508 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); |
@@ -543,7 +538,7 @@ out: | |||
543 | return 1; | 538 | return 1; |
544 | } | 539 | } |
545 | 540 | ||
546 | static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr) | 541 | static int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) |
547 | { | 542 | { |
548 | struct kprobe *cur = kprobe_running(); | 543 | struct kprobe *cur = kprobe_running(); |
549 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); | 544 | struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); |
diff --git a/arch/i386/kernel/msr.c b/arch/i386/kernel/msr.c index 1d0a55e68760..7a328230e540 100644 --- a/arch/i386/kernel/msr.c +++ b/arch/i386/kernel/msr.c | |||
@@ -251,7 +251,7 @@ static int msr_class_device_create(int i) | |||
251 | return err; | 251 | return err; |
252 | } | 252 | } |
253 | 253 | ||
254 | static int __devinit msr_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | 254 | static int msr_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) |
255 | { | 255 | { |
256 | unsigned int cpu = (unsigned long)hcpu; | 256 | unsigned int cpu = (unsigned long)hcpu; |
257 | 257 | ||
diff --git a/arch/i386/kernel/ptrace.c b/arch/i386/kernel/ptrace.c index 506462ef36a0..fd7eaf7866e0 100644 --- a/arch/i386/kernel/ptrace.c +++ b/arch/i386/kernel/ptrace.c | |||
@@ -671,7 +671,7 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit) | |||
671 | 671 | ||
672 | if (unlikely(current->audit_context)) { | 672 | if (unlikely(current->audit_context)) { |
673 | if (entryexit) | 673 | if (entryexit) |
674 | audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), | 674 | audit_syscall_exit(AUDITSC_RESULT(regs->eax), |
675 | regs->eax); | 675 | regs->eax); |
676 | /* Debug traps, when using PTRACE_SINGLESTEP, must be sent only | 676 | /* Debug traps, when using PTRACE_SINGLESTEP, must be sent only |
677 | * on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is | 677 | * on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is |
@@ -720,14 +720,13 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit) | |||
720 | ret = is_sysemu; | 720 | ret = is_sysemu; |
721 | out: | 721 | out: |
722 | if (unlikely(current->audit_context) && !entryexit) | 722 | if (unlikely(current->audit_context) && !entryexit) |
723 | audit_syscall_entry(current, AUDIT_ARCH_I386, regs->orig_eax, | 723 | audit_syscall_entry(AUDIT_ARCH_I386, regs->orig_eax, |
724 | regs->ebx, regs->ecx, regs->edx, regs->esi); | 724 | regs->ebx, regs->ecx, regs->edx, regs->esi); |
725 | if (ret == 0) | 725 | if (ret == 0) |
726 | return 0; | 726 | return 0; |
727 | 727 | ||
728 | regs->orig_eax = -1; /* force skip of syscall restarting */ | 728 | regs->orig_eax = -1; /* force skip of syscall restarting */ |
729 | if (unlikely(current->audit_context)) | 729 | if (unlikely(current->audit_context)) |
730 | audit_syscall_exit(current, AUDITSC_RESULT(regs->eax), | 730 | audit_syscall_exit(AUDITSC_RESULT(regs->eax), regs->eax); |
731 | regs->eax); | ||
732 | return 1; | 731 | return 1; |
733 | } | 732 | } |
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 80cb3b2d0997..d77e89ac0d54 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -970,8 +970,10 @@ efi_memory_present_wrapper(unsigned long start, unsigned long end, void *arg) | |||
970 | * not-overlapping, which is the case | 970 | * not-overlapping, which is the case |
971 | */ | 971 | */ |
972 | int __init | 972 | int __init |
973 | e820_all_mapped(unsigned long start, unsigned long end, unsigned type) | 973 | e820_all_mapped(unsigned long s, unsigned long e, unsigned type) |
974 | { | 974 | { |
975 | u64 start = s; | ||
976 | u64 end = e; | ||
975 | int i; | 977 | int i; |
976 | for (i = 0; i < e820.nr_map; i++) { | 978 | for (i = 0; i < e820.nr_map; i++) { |
977 | struct e820entry *ei = &e820.map[i]; | 979 | struct e820entry *ei = &e820.map[i]; |
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index a6969903f2d6..825b2b4ca721 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
@@ -313,7 +313,9 @@ static void __init synchronize_tsc_bp (void) | |||
313 | if (tsc_values[i] < avg) | 313 | if (tsc_values[i] < avg) |
314 | realdelta = -realdelta; | 314 | realdelta = -realdelta; |
315 | 315 | ||
316 | printk(KERN_INFO "CPU#%d had %ld usecs TSC skew, fixed it up.\n", i, realdelta); | 316 | if (realdelta > 0) |
317 | printk(KERN_INFO "CPU#%d had %ld usecs TSC " | ||
318 | "skew, fixed it up.\n", i, realdelta); | ||
317 | } | 319 | } |
318 | 320 | ||
319 | sum += delta; | 321 | sum += delta; |
diff --git a/arch/i386/kernel/timers/timer_tsc.c b/arch/i386/kernel/timers/timer_tsc.c index 5e41ee29c8cf..f1187ddb0d0f 100644 --- a/arch/i386/kernel/timers/timer_tsc.c +++ b/arch/i386/kernel/timers/timer_tsc.c | |||
@@ -279,7 +279,7 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val, | |||
279 | { | 279 | { |
280 | struct cpufreq_freqs *freq = data; | 280 | struct cpufreq_freqs *freq = data; |
281 | 281 | ||
282 | if (val != CPUFREQ_RESUMECHANGE) | 282 | if (val != CPUFREQ_RESUMECHANGE && val != CPUFREQ_SUSPENDCHANGE) |
283 | write_seqlock_irq(&xtime_lock); | 283 | write_seqlock_irq(&xtime_lock); |
284 | if (!ref_freq) { | 284 | if (!ref_freq) { |
285 | if (!freq->old){ | 285 | if (!freq->old){ |
@@ -312,7 +312,7 @@ time_cpufreq_notifier(struct notifier_block *nb, unsigned long val, | |||
312 | } | 312 | } |
313 | 313 | ||
314 | end: | 314 | end: |
315 | if (val != CPUFREQ_RESUMECHANGE) | 315 | if (val != CPUFREQ_RESUMECHANGE && val != CPUFREQ_SUSPENDCHANGE) |
316 | write_sequnlock_irq(&xtime_lock); | 316 | write_sequnlock_irq(&xtime_lock); |
317 | 317 | ||
318 | return 0; | 318 | return 0; |
diff --git a/arch/i386/kernel/vm86.c b/arch/i386/kernel/vm86.c index aee14fafd13d..00e0118e717c 100644 --- a/arch/i386/kernel/vm86.c +++ b/arch/i386/kernel/vm86.c | |||
@@ -312,7 +312,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk | |||
312 | 312 | ||
313 | /*call audit_syscall_exit since we do not exit via the normal paths */ | 313 | /*call audit_syscall_exit since we do not exit via the normal paths */ |
314 | if (unlikely(current->audit_context)) | 314 | if (unlikely(current->audit_context)) |
315 | audit_syscall_exit(current, AUDITSC_RESULT(eax), eax); | 315 | audit_syscall_exit(AUDITSC_RESULT(eax), eax); |
316 | 316 | ||
317 | __asm__ __volatile__( | 317 | __asm__ __volatile__( |
318 | "movl %0,%%esp\n\t" | 318 | "movl %0,%%esp\n\t" |