ia64/xen-unstable

changeset 1087:0960e7d04fce

bitkeeper revision 1.721 (402b88e1_US9JMWmS3HcmsEEfyqYFA)

Merge scramble.cl.cam.ac.uk:/auto/groups/xeno/BK/xeno.bk
into scramble.cl.cam.ac.uk:/local/scratch/kaf24/xeno
author kaf24@scramble.cl.cam.ac.uk
date Thu Feb 12 14:08:33 2004 +0000 (2004-02-12)
parents eefcc4592e7f c89c254c2bdb
children 3f8465dd852b
files xen/arch/i386/Rules.mk xenolinux-2.4.24-sparse/arch/xeno/kernel/process.c
line diff
     1.1 --- a/xen/arch/i386/Rules.mk	Thu Feb 12 14:02:26 2004 +0000
     1.2 +++ b/xen/arch/i386/Rules.mk	Thu Feb 12 14:08:33 2004 +0000
     1.3 @@ -9,8 +9,8 @@ MONITOR_BASE := 0xFC500000
     1.4  LOAD_BASE    := 0x00100000
     1.5  CFLAGS  := -nostdinc -fno-builtin -fno-common -fno-strict-aliasing 
     1.6  CFLAGS  += -iwithprefix include -O3 -Wall -DMONITOR_BASE=$(MONITOR_BASE)
     1.7 -#CFLAGS  += -fomit-frame-pointer -I$(BASEDIR)/include -D__KERNEL__ -DNDEBUG
     1.8 -CFLAGS  += -fomit-frame-pointer -I$(BASEDIR)/include -D__KERNEL__
     1.9 +CFLAGS  += -fomit-frame-pointer -I$(BASEDIR)/include -D__KERNEL__ -DNDEBUG
    1.10 +#CFLAGS  += -fomit-frame-pointer -I$(BASEDIR)/include -D__KERNEL__
    1.11  CFLAGS  += -Wno-pointer-arith -Wredundant-decls
    1.12  LDFLAGS := -T xeno.lds -N
    1.13  
     2.1 --- a/xenolinux-2.4.24-sparse/arch/xeno/kernel/process.c	Thu Feb 12 14:02:26 2004 +0000
     2.2 +++ b/xenolinux-2.4.24-sparse/arch/xeno/kernel/process.c	Thu Feb 12 14:08:33 2004 +0000
     2.3 @@ -371,6 +371,15 @@ void __switch_to(struct task_struct *pre
     2.4  
     2.5      __cli();
     2.6  
     2.7 +    /*
     2.8 +     * We clobber FS and GS here so that we avoid a GPF when restoring previous
     2.9 +     * task's FS/GS values in Xen when the LDT is switched. If we don't do this
    2.10 +     * then we can end up erroneously re-flushing the page-update queue when
    2.11 +     * we 'execute_multicall_list'.
    2.12 +     */
    2.13 +    __asm__ __volatile__ ( 
    2.14 +        "xorl %%eax,%%eax; movl %%eax,%%fs; movl %%eax,%%gs" : : : "eax" );
    2.15 +
    2.16      MULTICALL_flush_page_update_queue();
    2.17  
    2.18      /*