• Jeremy Fitzhardinge's avatar
    x86/paravirt: Use normal calling sequences for irq enable/disable · 71999d98
    Jeremy Fitzhardinge authored
    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: default avatarBastian Blank <bastian@waldi.eu.org>
    Signed-off-by: default avatarJeremy 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: default avatarIngo Molnar <mingo@elte.hu>
    71999d98
paravirt.h 24.8 KB