From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v2 3/5] x86: Make set_nmi_callback return the old nmi callback Date: Thu, 29 May 2014 08:01:24 +0100 Message-ID: <5386DB44.3070909@citrix.com> References: <1401341669-5237-1-git-send-email-feng.wu@intel.com> <1401341669-5237-4-git-send-email-feng.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1401341669-5237-4-git-send-email-feng.wu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Feng Wu , xen-devel@lists.xen.org Cc: tim@xen.org, keir.xen@gmail.com, stefano.stabellini@citrix.com, ian.campbell@citrix.com, JBeulich@suse.com List-Id: xen-devel@lists.xenproject.org On 29/05/2014 06:34, Feng Wu wrote: > 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 > --- > xen/arch/x86/traps.c | 4 +++- > xen/include/asm-x86/nmi.h | 4 ++-- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c > index 1722912..171cff0 100644 > --- a/xen/arch/x86/traps.c > +++ b/xen/arch/x86/traps.c > @@ -3322,9 +3322,11 @@ 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 98b5e04..58cd9a1 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