From: Feng Wu Date: Tue, 3 Jun 2014 09:29:38 +0000 (+0200) Subject: x86: make set_nmi_callback return the old nmi callback X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~4915 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=238faa9daf9f3dff782128302c5fd923e49f2143;p=xen.git x86: make set_nmi_callback return the old nmi callback This patch makes set_nmi_callback return the old nmi callback, so we can set it back later. Signed-off-by: Feng Wu Reviewed-by: Andrew Cooper --- diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index b82b1b345e..8161585490 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -3328,9 +3328,13 @@ void do_nmi(struct cpu_user_regs *regs) } } -void set_nmi_callback(nmi_callback_t callback) +nmi_callback_t set_nmi_callback(nmi_callback_t callback) { + nmi_callback_t old_nmi_callback = nmi_callback; + nmi_callback = callback; + + return old_nmi_callback; } void unset_nmi_callback(void) diff --git a/xen/include/asm-x86/nmi.h b/xen/include/asm-x86/nmi.h index 98b5e04341..58cd9a1b5e 100644 --- a/xen/include/asm-x86/nmi.h +++ b/xen/include/asm-x86/nmi.h @@ -15,9 +15,9 @@ typedef int (*nmi_callback_t)(struct cpu_user_regs *regs, int cpu); * set_nmi_callback * * Set a handler for an NMI. Only one handler may be - * set. Return 1 if the NMI was handled. + * set. Return the old nmi callback handler. */ -void set_nmi_callback(nmi_callback_t callback); +nmi_callback_t set_nmi_callback(nmi_callback_t callback); /** * unset_nmi_callback