diff options
Diffstat (limited to 'arch/x86/include/asm/switch_to.h')
-rw-r--r-- | arch/x86/include/asm/switch_to.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h index 751bf4b7bf11..8f321a1b03a1 100644 --- a/arch/x86/include/asm/switch_to.h +++ b/arch/x86/include/asm/switch_to.h | |||
@@ -39,8 +39,7 @@ do { \ | |||
39 | */ \ | 39 | */ \ |
40 | unsigned long ebx, ecx, edx, esi, edi; \ | 40 | unsigned long ebx, ecx, edx, esi, edi; \ |
41 | \ | 41 | \ |
42 | asm volatile("pushfl\n\t" /* save flags */ \ | 42 | asm volatile("pushl %%ebp\n\t" /* save EBP */ \ |
43 | "pushl %%ebp\n\t" /* save EBP */ \ | ||
44 | "movl %%esp,%[prev_sp]\n\t" /* save ESP */ \ | 43 | "movl %%esp,%[prev_sp]\n\t" /* save ESP */ \ |
45 | "movl %[next_sp],%%esp\n\t" /* restore ESP */ \ | 44 | "movl %[next_sp],%%esp\n\t" /* restore ESP */ \ |
46 | "movl $1f,%[prev_ip]\n\t" /* save EIP */ \ | 45 | "movl $1f,%[prev_ip]\n\t" /* save EIP */ \ |
@@ -49,7 +48,6 @@ do { \ | |||
49 | "jmp __switch_to\n" /* regparm call */ \ | 48 | "jmp __switch_to\n" /* regparm call */ \ |
50 | "1:\t" \ | 49 | "1:\t" \ |
51 | "popl %%ebp\n\t" /* restore EBP */ \ | 50 | "popl %%ebp\n\t" /* restore EBP */ \ |
52 | "popfl\n" /* restore flags */ \ | ||
53 | \ | 51 | \ |
54 | /* output parameters */ \ | 52 | /* output parameters */ \ |
55 | : [prev_sp] "=m" (prev->thread.sp), \ | 53 | : [prev_sp] "=m" (prev->thread.sp), \ |