x86/paravirt: Use normal calling sequences for irq enable/disable
commit33b6563da26335fbe6834b743ddd00fa8f7ab09a
authorJeremy Fitzhardinge <jeremy@goop.org>
Mon, 12 Oct 2009 23:32:43 +0000 (12 16:32 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 22 Oct 2009 22:11:46 +0000 (22 15:11 -0700)
treef81264f9a28ff5ed1efcd3de1e5e55429b8eff74
parent9b0db64dfad6f22d1b3bd85b337f265fac06cca2
x86/paravirt: Use normal calling sequences for irq enable/disable

commit 71999d9862e667f1fd14f8fbfa0cce6d855bad3f upstream.

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: Xen-devel <xen-devel@lists.xensource.com>
LKML-Reference: <4AD3BC9B.7040501@goop.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/include/asm/paravirt.h