aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386')
-rw-r--r--arch/i386/Kconfig4
-rw-r--r--arch/i386/kernel/cpu/intel_cacheinfo.c2
-rw-r--r--arch/i386/kernel/kprobes.c21
-rw-r--r--arch/i386/kernel/smpboot.c4
-rw-r--r--arch/i386/pci/irq.c1
5 files changed, 14 insertions, 18 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index 18ec9fe6deb6..c6fe99e57a05 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -467,7 +467,7 @@ endchoice
467 467
468choice 468choice
469 depends on EXPERIMENTAL && !X86_PAE 469 depends on EXPERIMENTAL && !X86_PAE
470 prompt "Memory split" 470 prompt "Memory split" if EMBEDDED
471 default VMSPLIT_3G 471 default VMSPLIT_3G
472 help 472 help
473 Select the desired split between kernel and user memory. 473 Select the desired split between kernel and user memory.
@@ -756,7 +756,7 @@ config PHYSICAL_START
756 756
757config HOTPLUG_CPU 757config HOTPLUG_CPU
758 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" 758 bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
759 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER && !X86_PC 759 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
760 ---help--- 760 ---help---
761 Say Y here to experiment with turning CPUs off and on. CPUs 761 Say Y here to experiment with turning CPUs off and on. CPUs
762 can be controlled through /sys/devices/system/cpu. 762 can be controlled through /sys/devices/system/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
645static int __cpuinit cacheinfo_cpu_callback(struct notifier_block *nfb, 645static 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/kprobes.c b/arch/i386/kernel/kprobes.c
index 043f5292e70a..38806f427849 100644
--- a/arch/i386/kernel/kprobes.c
+++ b/arch/i386/kernel/kprobes.c
@@ -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 */
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/pci/irq.c b/arch/i386/pci/irq.c
index 73235443fda7..06dab00aaadc 100644
--- a/arch/i386/pci/irq.c
+++ b/arch/i386/pci/irq.c
@@ -591,7 +591,6 @@ static __init int via_router_probe(struct irq_router *r,
591 case PCI_DEVICE_ID_VIA_8233A: 591 case PCI_DEVICE_ID_VIA_8233A:
592 case PCI_DEVICE_ID_VIA_8235: 592 case PCI_DEVICE_ID_VIA_8235:
593 case PCI_DEVICE_ID_VIA_8237: 593 case PCI_DEVICE_ID_VIA_8237:
594 case PCI_DEVICE_ID_VIA_8237_SATA:
595 /* FIXME: add new ones for 8233/5 */ 594 /* FIXME: add new ones for 8233/5 */
596 r->name = "VIA"; 595 r->name = "VIA";
597 r->get = pirq_via_get; 596 r->get = pirq_via_get;