From fbff57d1a68cb30c1831e65c467f2a91ebe93566 Mon Sep 17 00:00:00 2001 From: Sascha Wildner Date: Mon, 25 Apr 2011 09:16:30 +0200 Subject: [PATCH] kernel: Remove some i386 code from x86_64. --- sys/platform/pc64/x86_64/machdep.c | 39 --------------------------- sys/platform/pc64/x86_64/mp_machdep.c | 5 ---- sys/platform/vkernel64/x86_64/npx.c | 3 +-- sys/platform/vkernel64/x86_64/trap.c | 11 +------- 4 files changed, 2 insertions(+), 56 deletions(-) diff --git a/sys/platform/pc64/x86_64/machdep.c b/sys/platform/pc64/x86_64/machdep.c index c9e08d91e6..19cf7d6ee7 100644 --- a/sys/platform/pc64/x86_64/machdep.c +++ b/sys/platform/pc64/x86_64/machdep.c @@ -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) { diff --git a/sys/platform/pc64/x86_64/mp_machdep.c b/sys/platform/pc64/x86_64/mp_machdep.c index 201a7d99ac..d7c465de49 100644 --- a/sys/platform/pc64/x86_64/mp_machdep.c +++ b/sys/platform/pc64/x86_64/mp_machdep.c @@ -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); diff --git a/sys/platform/vkernel64/x86_64/npx.c b/sys/platform/vkernel64/x86_64/npx.c index e2fbe7079c..85bf69fff5 100644 --- a/sys/platform/vkernel64/x86_64/npx.c +++ b/sys/platform/vkernel64/x86_64/npx.c @@ -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"); diff --git a/sys/platform/vkernel64/x86_64/trap.c b/sys/platform/vkernel64/x86_64/trap.c index 874dfc553a..e481861bdd 100644 --- a/sys/platform/vkernel64/x86_64/trap.c +++ b/sys/platform/vkernel64/x86_64/trap.c @@ -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; -- 2.41.0