[patch 12/26] Xen-paravirt_ops: Fix patch site clobbers to include return register
From: Jeremy Fitzhardinge <hidden>
Date: 2007-03-01 23:59:04
Also in:
lkml, xen-devel
From: Jeremy Fitzhardinge <hidden>
Date: 2007-03-01 23:59:04
Also in:
lkml, xen-devel
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. Signed-off-by: Jeremy Fitzhardinge <redacted> Cc: Rusty Russell <redacted> Cc: Zachary Amsden <redacted> --- include/asm-i386/paravirt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) ===================================================================
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h@@ -556,7 +556,7 @@ static inline unsigned long __raw_local_ "popl %%edx; popl %%ecx") : "=a"(f): "m"(paravirt_ops.save_fl), paravirt_type(PARAVIRT_PATCH(save_fl)), - paravirt_clobber(CLBR_NONE) + paravirt_clobber(CLBR_EAX) : "memory", "cc"); return f; }
@@ -610,7 +610,7 @@ static inline unsigned long __raw_local_ "%c[paravirt_cli_type]", "%c[paravirt_clobber]") #define STI_STRING _paravirt_alt("pushl %%ecx; pushl %%edx;" \ - "call *paravirt_ops+%c[irq_enable];" \ + "call *paravirt_ops+%c[irq_enable];" \ "popl %%edx; popl %%ecx", \ "%c[paravirt_cli_type]", "%c[paravirt_clobber]")
--