diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2007-05-02 13:27:14 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2007-05-02 13:27:14 -0400 |
commit | 42c24fa22e86365055fc931d833f26165e687c19 (patch) | |
tree | c74861202966ccb80afaae8469843cf2617fea65 /arch/i386/kernel/entry.S | |
parent | d582203578a1f3d408e27bb9042e8635954cd320 (diff) |
[PATCH] i386: PARAVIRT: Fix patch site clobbers to include return register
Fix a few clobbers to include the return register. The clobbers set
is the set of all registers modified (or may be modified) by the code
snippet, regardless of whether it was deliberate or accidental.
Also, make sure that callsites which are used in contexts which don't
allow clobbers actually save and restore all clobberable registers.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Zachary Amsden <zach@vmware.com>
Diffstat (limited to 'arch/i386/kernel/entry.S')
-rw-r--r-- | arch/i386/kernel/entry.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index e901952dff37..e07473c0d3e7 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S | |||
@@ -338,7 +338,7 @@ sysenter_past_esp: | |||
338 | jae syscall_badsys | 338 | jae syscall_badsys |
339 | call *sys_call_table(,%eax,4) | 339 | call *sys_call_table(,%eax,4) |
340 | movl %eax,PT_EAX(%esp) | 340 | movl %eax,PT_EAX(%esp) |
341 | DISABLE_INTERRUPTS(CLBR_ECX|CLBR_EDX) | 341 | DISABLE_INTERRUPTS(CLBR_ANY) |
342 | TRACE_IRQS_OFF | 342 | TRACE_IRQS_OFF |
343 | movl TI_flags(%ebp), %ecx | 343 | movl TI_flags(%ebp), %ecx |
344 | testw $_TIF_ALLWORK_MASK, %cx | 344 | testw $_TIF_ALLWORK_MASK, %cx |