PERFORCE change 162412 for review
Peter Wemm
peter at FreeBSD.org
Wed May 20 22:56:29 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=162412
Change 162412 by peter at peter_daintree on 2009/05/20 22:55:56
%gs hacks are obe. remove stray whitespace change.
Affected files ...
.. //depot/projects/hammer/sys/amd64/amd64/exception.S#54 edit
.. //depot/projects/hammer/sys/amd64/amd64/support.S#40 edit
.. //depot/projects/hammer/sys/amd64/include/cpufunc.h#40 edit
.. //depot/projects/hammer/sys/amd64/include/md_var.h#45 edit
.. //depot/projects/hammer/sys/kern/kern_proc.c#82 edit
Differences ...
==== //depot/projects/hammer/sys/amd64/amd64/exception.S#54 (text+ko) ====
@@ -308,9 +308,6 @@
leaq doreti_iret(%rip),%rdi /* iretq trapped */
cmpq %rdi,TF_RIP(%rsp)
je 1f /* kernel but with user gsbase!! */
- leaq load_gs_load(%rip),%rdi /* load_gs() trapped */
- cmpq %rdi,TF_RIP(%rsp)
- je 1f
testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */
jz 2f /* already running with kernel GS.base */
1: swapgs
==== //depot/projects/hammer/sys/amd64/amd64/support.S#40 (text+ko) ====
@@ -665,25 +665,6 @@
lretq
END(lgdt)
-/*
- * Special handling of %gs selector.
- * This is done as an asm function so that traps can be recovered
- * from while in the intermediate gsbase state.
- * %edi
- */
-/* void load_gs(u_int sel); */
-ENTRY(load_gs)
- pushfq
- cli
- swapgs
- .globl load_gs_load
-load_gs_load:
- movl %edi,%gs
- swapgs
- mfence /* CPU errata */
- popfq
- ret
-
/*****************************************************************************/
/* setjump, longjump */
/*****************************************************************************/
==== //depot/projects/hammer/sys/amd64/include/cpufunc.h#40 (text+ko) ====
@@ -462,10 +462,7 @@
__asm __volatile("movl %0,%%fs" : : "rm" (sel));
}
-#ifdef _KERNEL
-/* In assembler so we can recover from traps */
-void load_gs(u_int sel);
-#else
+#ifndef _KERNEL /* Do not use in kernel */
static __inline void
load_gs(u_int sel)
{
==== //depot/projects/hammer/sys/amd64/include/md_var.h#45 (text+ko) ====
@@ -87,7 +87,6 @@
void gs_load_fault(void) __asm(__STRING(gs_load_fault));
void dump_add_page(vm_paddr_t);
void dump_drop_page(vm_paddr_t);
-void load_gs_load(void) __asm(__STRING(load_gs_load));
void initializecpu(void);
void fillw(int /*u_short*/ pat, void *base, size_t cnt);
void fpstate_drop(struct thread *td);
==== //depot/projects/hammer/sys/kern/kern_proc.c#82 (text+ko) ====
@@ -1509,7 +1509,6 @@
}
vput(vp);
VFS_UNLOCK_GIANT(vfslocked);
-
}
} else {
kve->kve_type = KVME_TYPE_NONE;
More information about the p4-projects
mailing list