]> xenbits.xensource.com Git - people/dariof/xen.git/commitdiff
xen: move do_nmi_op and make it x86 only
authorWei Liu <wei.liu2@citrix.com>
Mon, 26 Jun 2017 14:20:35 +0000 (15:20 +0100)
committerWei Liu <wei.liu2@citrix.com>
Wed, 28 Jun 2017 10:56:52 +0000 (11:56 +0100)
Since ARM doesn't need {compat,do}_nmi_op, move the hypercall handlers
from common/kernel.c to pv/callback.c. Drop the stubs in ARM. Delete
the common and ARM nmi.h and adjust header inclusions in various
files.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/x86/nmi.c
xen/arch/x86/oprofile/nmi_int.c
xen/arch/x86/pv/callback.c
xen/arch/x86/traps.c
xen/arch/x86/x86_64/traps.c
xen/common/compat/kernel.c
xen/common/kernel.c
xen/include/asm-arm/nmi.h [deleted file]
xen/include/xen/nmi.h [deleted file]

index 410cfa1f945f013604f9b5dc5ef3f3c18037d0c0..ced61fd17e5f5423b4c58571202132b40d865e7b 100644 (file)
@@ -17,7 +17,6 @@
 #include <xen/lib.h>
 #include <xen/mm.h>
 #include <xen/irq.h>
-#include <xen/nmi.h>
 #include <xen/delay.h>
 #include <xen/time.h>
 #include <xen/sched.h>
@@ -29,6 +28,7 @@
 #include <asm/mc146818rtc.h>
 #include <asm/msr.h>
 #include <asm/mpspec.h>
+#include <asm/nmi.h>
 #include <asm/debugger.h>
 #include <asm/div64.h>
 #include <asm/apic.h>
index 13534d4914054291f9cc53a0dbd7c33540dd25a4..126f7a8d9f9aaf41c3d0b57c3db532086d69f1d6 100644 (file)
@@ -15,7 +15,6 @@
 #include <xen/types.h>
 #include <xen/errno.h>
 #include <xen/init.h>
-#include <xen/nmi.h>
 #include <xen/string.h>
 #include <xen/delay.h>
 #include <xen/xenoprof.h>
@@ -24,6 +23,7 @@
 #include <asm/apic.h>
 #include <asm/regs.h>
 #include <asm/current.h>
+#include <asm/nmi.h>
 
 #include "op_counter.h"
 #include "op_x86_model.h"
index b9dd39bf0eaf7d5620b1a24d89d7696aee5d5020..5317ae8f050850b14397f3235ace82cbcb4b31af 100644 (file)
@@ -22,6 +22,7 @@
 #include <xen/lib.h>
 #include <xen/sched.h>
 #include <compat/callback.h>
+#include <compat/nmi.h>
 
 #include <asm/current.h>
 #include <asm/nmi.h>
@@ -411,6 +412,54 @@ int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps)
     return rc;
 }
 
+long do_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    struct xennmi_callback cb;
+    long rc = 0;
+
+    switch ( cmd )
+    {
+    case XENNMI_register_callback:
+        rc = -EFAULT;
+        if ( copy_from_guest(&cb, arg, 1) )
+            break;
+        rc = register_guest_nmi_callback(cb.handler_address);
+        break;
+    case XENNMI_unregister_callback:
+        rc = unregister_guest_nmi_callback();
+        break;
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    return rc;
+}
+
+int compat_nmi_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+{
+    struct compat_nmi_callback cb;
+    int rc = 0;
+
+    switch ( cmd )
+    {
+    case XENNMI_register_callback:
+        rc = -EFAULT;
+        if ( copy_from_guest(&cb, arg, 1) )
+            break;
+        rc = register_guest_nmi_callback(cb.handler_address);
+        break;
+    case XENNMI_unregister_callback:
+        rc = unregister_guest_nmi_callback();
+        break;
+    default:
+        rc = -ENOSYS;
+        break;
+    }
+
+    return rc;
+}
+
 /*
  * Local variables:
  * mode: C
index 69e1f4bc9a50f657f0f0cc8fe69e376bfbc737af..0b7cf68c4dc0d73c8e85b7b4c5d1bae7984024db 100644 (file)
@@ -43,7 +43,6 @@
 #include <xen/domain_page.h>
 #include <xen/symbols.h>
 #include <xen/iocap.h>
-#include <xen/nmi.h>
 #include <xen/version.h>
 #include <xen/kexec.h>
 #include <xen/trace.h>
@@ -64,6 +63,7 @@
 #include <asm/xstate.h>
 #include <asm/debugger.h>
 #include <asm/msr.h>
+#include <asm/nmi.h>
 #include <asm/shared.h>
 #include <asm/x86_emulate.h>
 #include <asm/traps.h>
index a15231ca0cb4c78b0376d962de86d7592d91a2b8..41ec78f8fc705e6347dc2393f37e3cdcfaa8a211 100644 (file)
@@ -10,7 +10,6 @@
 #include <xen/console.h>
 #include <xen/sched.h>
 #include <xen/shutdown.h>
-#include <xen/nmi.h>
 #include <xen/guest_access.h>
 #include <xen/watchdog.h>
 #include <xen/hypercall.h>
@@ -18,6 +17,7 @@
 #include <asm/flushtlb.h>
 #include <asm/traps.h>
 #include <asm/event.h>
+#include <asm/nmi.h>
 #include <asm/msr.h>
 #include <asm/page.h>
 #include <asm/shared.h>
index df93fdd89c15a5af55bbcea4a4491ce2d54541a2..64232669d28fd28412e8a8b0693f64fc2b2324e0 100644 (file)
@@ -9,11 +9,9 @@ asm(".file \"" __FILE__ "\"");
 #include <xen/errno.h>
 #include <xen/version.h>
 #include <xen/sched.h>
-#include <xen/nmi.h>
 #include <xen/guest_access.h>
 #include <asm/current.h>
 #include <compat/xen.h>
-#include <compat/nmi.h>
 #include <compat/version.h>
 
 extern xen_commandline_t saved_cmdline;
@@ -39,9 +37,6 @@ CHECK_TYPE(capabilities_info);
 
 CHECK_TYPE(domain_handle);
 
-#define xennmi_callback compat_nmi_callback
-#define xennmi_callback_t compat_nmi_callback_t
-
 #ifdef COMPAT_VM_ASSIST_VALID
 #undef VM_ASSIST_VALID
 #define VM_ASSIST_VALID COMPAT_VM_ASSIST_VALID
index e1ebb0b412bb4abd7a52ec8fb9e8d31b10c73d0b..ce7cb8adb5b57bb5d161169d72644ee681f31614 100644 (file)
 #include <xen/version.h>
 #include <xen/sched.h>
 #include <xen/paging.h>
-#include <xen/nmi.h>
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xsm/xsm.h>
 #include <asm/current.h>
-#include <public/nmi.h>
 #include <public/version.h>
 
 #ifndef COMPAT
@@ -431,30 +429,6 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
     return -ENOSYS;
 }
 
-DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
-{
-    struct xennmi_callback cb;
-    long rc = 0;
-
-    switch ( cmd )
-    {
-    case XENNMI_register_callback:
-        rc = -EFAULT;
-        if ( copy_from_guest(&cb, arg, 1) )
-            break;
-        rc = register_guest_nmi_callback(cb.handler_address);
-        break;
-    case XENNMI_unregister_callback:
-        rc = unregister_guest_nmi_callback();
-        break;
-    default:
-        rc = -ENOSYS;
-        break;
-    }
-
-    return rc;
-}
-
 #ifdef VM_ASSIST_VALID
 DO(vm_assist)(unsigned int cmd, unsigned int type)
 {
diff --git a/xen/include/asm-arm/nmi.h b/xen/include/asm-arm/nmi.h
deleted file mode 100644 (file)
index a60587e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef ASM_NMI_H
-#define ASM_NMI_H
-
-#define register_guest_nmi_callback(a)  (-ENOSYS)
-#define unregister_guest_nmi_callback() (-ENOSYS)
-
-#endif /* ASM_NMI_H */
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/xen/include/xen/nmi.h b/xen/include/xen/nmi.h
deleted file mode 100644 (file)
index e526b6a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/******************************************************************************
- * nmi.h
- *
- * Register and unregister NMI callbacks.
- *
- * Copyright (c) 2006, Ian Campbell <ian.campbell@xensource.com>
- */
-
-#ifndef __XEN_NMI_H__
-#define __XEN_NMI_H__
-
-#include <asm/nmi.h>
-
-#endif /* __XEN_NMI_H__ */