x86/paravirt: Use normal calling sequences for irq enable/disable
authorJeremy Fitzhardinge <jeremy@goop.org>
Mon, 12 Oct 2009 23:32:43 +0000 (16:32 -0700)
committerIngo Molnar <mingo@elte.hu>
Tue, 13 Oct 2009 07:22:01 +0000 (09:22 +0200)
commit71999d9862e667f1fd14f8fbfa0cce6d855bad3f
treeb228a66c29154a446dc3adaf6f0dae8ee4b908d3
parentd1705c558c95418378b11a0be963fe1b3e2fa381
x86/paravirt: Use normal calling sequences for irq enable/disable

Bastian Blank reported a boot crash with stackprotector enabled,
and debugged it back to edx register corruption.

For historical reasons irq enable/disable/save/restore had special
calling sequences to make them more efficient.  With the more
recent introduction of higher-level and more general optimisations
this is no longer necessary so we can just use the normal PVOP_
macros.

This fixes some residual bugs in the old implementations which left
edx liable to inadvertent clobbering. Also, fix some bugs in
__PVOP_VCALLEESAVE which were revealed by actual use.

Reported-by: Bastian Blank <bastian@waldi.eu.org>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Stable Kernel <stable@kernel.org>
Cc: Xen-devel <xen-devel@lists.xensource.com>
LKML-Reference: <4AD3BC9B.7040501@goop.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/paravirt_types.h