kernel: Remove some i386 code from x86_64.
authorSascha Wildner <saw@online.de>
Mon, 25 Apr 2011 07:16:30 +0000 (09:16 +0200)
committerSascha Wildner <saw@online.de>
Mon, 25 Apr 2011 07:16:30 +0000 (09:16 +0200)
sys/platform/pc64/x86_64/machdep.c
sys/platform/pc64/x86_64/mp_machdep.c
sys/platform/vkernel64/x86_64/npx.c
sys/platform/vkernel64/x86_64/trap.c

index c9e08d9..19cf7d6 100644 (file)
@@ -1171,10 +1171,6 @@ union descriptor ldt[NLDT];              /* local descriptor table */
 /* table descriptors - used to load tables by cpu */
 struct region_descriptor r_gdt, r_idt;
 
-#if defined(I586_CPU) && !defined(NO_F00F_HACK)
-extern int has_f00f_bug;
-#endif
-
 /* JG proc0paddr is a virtual address */
 void *proc0paddr;
 /* JG alignment? */
@@ -1992,41 +1988,6 @@ globaldata_find(int cpu)
        return(&CPU_prvspace[cpu].mdglobaldata.mi);
 }
 
-#if defined(I586_CPU) && !defined(NO_F00F_HACK)
-static void f00f_hack(void *unused);
-SYSINIT(f00f_hack, SI_BOOT2_BIOS, SI_ORDER_ANY, f00f_hack, NULL);
-
-static void
-f00f_hack(void *unused) 
-{
-       struct gate_descriptor *new_idt;
-       vm_offset_t tmp;
-
-       if (!has_f00f_bug)
-               return;
-
-       kprintf("Intel Pentium detected, installing workaround for F00F bug\n");
-
-       r_idt.rd_limit = sizeof(idt0) - 1;
-
-       tmp = kmem_alloc(&kernel_map, PAGE_SIZE * 2);
-       if (tmp == 0)
-               panic("kmem_alloc returned 0");
-       if (((unsigned int)tmp & (PAGE_SIZE-1)) != 0)
-               panic("kmem_alloc returned non-page-aligned memory");
-       /* Put the first seven entries in the lower page */
-       new_idt = (struct gate_descriptor*)(tmp + PAGE_SIZE - (7*8));
-       bcopy(idt, new_idt, sizeof(idt0));
-       r_idt.rd_base = (int)new_idt;
-       lidt(&r_idt);
-       idt = new_idt;
-       if (vm_map_protect(&kernel_map, tmp, tmp + PAGE_SIZE,
-                          VM_PROT_READ, FALSE) != KERN_SUCCESS)
-               panic("vm_map_protect failed");
-       return;
-}
-#endif /* defined(I586_CPU) && !NO_F00F_HACK */
-
 int
 ptrace_set_pc(struct lwp *lp, unsigned long addr)
 {
index 201a7d9..d7c465d 100644 (file)
@@ -23,7 +23,6 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.115.2.15 2003/03/14 21:22:35 jhb Exp $
- * $DragonFly: src/sys/platform/pc32/i386/mp_machdep.c,v 1.60 2008/06/07 12:03:52 mneumann Exp $
  */
 
 #include "opt_cpu.h"
@@ -2791,10 +2790,6 @@ ap_init(void)
        /* BSP may have changed PTD while we're waiting for the lock */
        cpu_invltlb();
 
-#if defined(I586_CPU) && !defined(NO_F00F_HACK)
-       lidt(&r_idt);
-#endif
-
        /* Build our map of 'other' CPUs. */
        mycpu->gd_other_cpus = smp_startup_mask & ~CPUMASK(mycpu->gd_cpuid);
 
index e2fbe70..85bf69f 100644 (file)
@@ -36,7 +36,6 @@
  *
  * from: @(#)npx.c     7.2 (Berkeley) 5/12/91
  * $FreeBSD: src/sys/i386/isa/npx.c,v 1.80.2.3 2001/10/20 19:04:38 tegge Exp $
- * $DragonFly: src/sys/platform/vkernel/i386/npx.c,v 1.8 2008/01/29 19:54:56 dillon Exp $
  */
 
 #include "opt_debug_npx.h"
@@ -97,7 +96,7 @@ static struct krate badfprate = { 1 };
 static void    fpusave         (union savefpu *);
 static void    fpurstor        (union savefpu *);
 
-#if (defined(I586_CPU) || defined(I686_CPU)) && !defined(CPU_DISABLE_SSE)
+#ifndef CPU_DISABLE_SSE
 int mmxopt = 1;
 SYSCTL_INT(_kern, OID_AUTO, mmxopt, CTLFLAG_RD, &mmxopt, 0,
        "MMX/XMM optimized bcopy/copyin/copyout support");
index 874dfc5..e481861 100644 (file)
@@ -412,9 +412,6 @@ user_trap(struct trapframe *frame)
        }
 #endif
 
-#if defined(I586_CPU) && !defined(NO_F00F_HACK)
-restart:
-#endif
        type = frame->tf_trapno;
        code = frame->tf_err;
 
@@ -476,13 +473,7 @@ restart:
        case T_PAGEFLT:         /* page fault */
                MAKEMPSAFE(have_mplock);
                i = trap_pfault(frame, TRUE, eva);
-               if (i == -1)
-                       goto out;
-#if defined(I586_CPU) && !defined(NO_F00F_HACK)
-               if (i == -2)
-                       goto restart;
-#endif
-               if (i == 0)
+               if (i == -1 || i == 0)
                        goto out;
 
                ucode = T_PAGEFLT;