--- linux-2.6.18.i686/arch/i386/kernel/vm86.c.foonly 2007-10-01 16:40:35.000000000 -0400 +++ linux-2.6.18.i686/arch/i386/kernel/vm86.c 2007-10-01 16:27:50.000000000 -0400 @@ -318,12 +318,11 @@ tsk->thread.screen_bitmap = info->screen_bitmap; if (info->flags & VM86_SCREEN_BITMAP) mark_screen_rdonly(tsk->mm); - __asm__ __volatile__("xorl %eax,%eax; movl %eax,%fs; movl %eax,%gs\n\t"); - __asm__ __volatile__("movl %%eax, %0\n" :"=r"(eax)); + __asm__ __volatile__("mov %0, %%fs; mov %0, %%gs" : : "r" (0)); /*call audit_syscall_exit since we do not exit via the normal paths */ if (unlikely(current->audit_context)) - audit_syscall_exit(AUDITSC_RESULT(eax), eax); + audit_syscall_exit(AUDITSC_RESULT(0), 0); __asm__ __volatile__( "movl %0,%%esp\n\t"