vserver 1.9.3
[linux-2.6.git] / arch / i386 / kernel / vm86.c
index 4484e47..483e9b2 100644 (file)
@@ -121,7 +121,7 @@ struct pt_regs * fastcall save_v86_state(struct kernel_vm86_regs * regs)
                do_exit(SIGSEGV);
        }
 
-       tss = init_tss + get_cpu();
+       tss = &per_cpu(init_tss, get_cpu());
        current->thread.esp0 = current->thread.saved_esp0;
        current->thread.sysenter_cs = __KERNEL_CS;
        load_esp0(tss, &current->thread);
@@ -303,7 +303,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
        asm volatile("movl %%fs,%0":"=m" (tsk->thread.saved_fs));
        asm volatile("movl %%gs,%0":"=m" (tsk->thread.saved_gs));
 
-       tss = init_tss + get_cpu();
+       tss = &per_cpu(init_tss, get_cpu());
        tsk->thread.esp0 = (unsigned long) &info->VM86_TSS_ESP0;
        if (cpu_has_sep)
                tsk->thread.sysenter_cs = 0;