|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] make do_sched_op_compat() x86-specific
commit 6041a60e162b6e8ad9687aa8932dabc332df1897
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Tue Jun 9 15:56:03 2015 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Jun 9 15:56:03 2015 +0200
make do_sched_op_compat() x86-specific
Being a pre-3.1 compatibility hypercall handler only, it's not needed
on ARM or any future architectures Xen may get ported to.
Also the function shouldn't really be used internally - its use should
be limited to its purpose (and hence there's also no need for a
prototype).
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
xen/arch/x86/compat.c | 25 ++++++++++++++++++++++++-
xen/arch/x86/hvm/hvm.c | 2 +-
xen/arch/x86/hvm/svm/svm.c | 4 ++--
xen/arch/x86/hvm/viridian.c | 3 ++-
xen/arch/x86/hvm/vmx/vmx.c | 4 ++--
xen/common/schedule.c | 33 ---------------------------------
xen/include/xen/hypercall.h | 5 -----
7 files changed, 31 insertions(+), 45 deletions(-)
diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
index 2d05867..2d4be2e 100644
--- a/xen/arch/x86/compat.c
+++ b/xen/arch/x86/compat.c
@@ -5,9 +5,10 @@
* hypercall after doing necessary argument munging.
*/
-#include <xen/config.h>
#include <xen/guest_access.h>
#include <xen/hypercall.h>
+#include <xen/trace.h>
+#include <public/sched.h>
#ifndef COMPAT
typedef long ret_t;
@@ -26,6 +27,28 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_t)
uop)
#ifndef COMPAT
+/* Legacy hypercall (as of 0x00030101). */
+long do_sched_op_compat(int cmd, unsigned long arg)
+{
+ switch ( cmd )
+ {
+ case SCHEDOP_yield:
+ case SCHEDOP_block:
+ return do_sched_op(cmd, guest_handle_from_ptr(NULL, void));
+
+ case SCHEDOP_shutdown:
+ TRACE_3D(TRC_SCHED_SHUTDOWN,
+ current->domain->domain_id, current->vcpu_id, arg);
+ domain_shutdown(current->domain, (u8)arg);
+ break;
+
+ default:
+ return -ENOSYS;
+ }
+
+ return 0;
+}
+
/* Legacy hypercall (as of 0x00030202). */
long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
{
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index f354cb7..1c3e75a 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2705,7 +2705,7 @@ void hvm_hlt(unsigned long rflags)
if ( unlikely(!(rflags & X86_EFLAGS_IF)) )
return hvm_vcpu_down(curr);
- do_sched_op_compat(SCHEDOP_block, 0);
+ do_sched_op(SCHEDOP_block, guest_handle_from_ptr(NULL, void));
HVMTRACE_1D(HLT, /* pending = */ vcpu_runnable(curr));
}
diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c
index 6734fb6..a02f983 100644
--- a/xen/arch/x86/hvm/svm/svm.c
+++ b/xen/arch/x86/hvm/svm/svm.c
@@ -36,7 +36,7 @@
#include <asm/cpufeature.h>
#include <asm/processor.h>
#include <asm/amd.h>
-#include <asm/types.h>
+#include <asm/guest_access.h>
#include <asm/debugreg.h>
#include <asm/msr.h>
#include <asm/i387.h>
@@ -1988,7 +1988,7 @@ static void svm_vmexit_do_pause(struct cpu_user_regs
*regs)
* Do something useful, like reschedule the guest
*/
perfc_incr(pauseloop_exits);
- do_sched_op_compat(SCHEDOP_yield, 0);
+ do_sched_op(SCHEDOP_yield, guest_handle_from_ptr(NULL, void));
}
static void
diff --git a/xen/arch/x86/hvm/viridian.c b/xen/arch/x86/hvm/viridian.c
index 1e5a570..2f22783 100644
--- a/xen/arch/x86/hvm/viridian.c
+++ b/xen/arch/x86/hvm/viridian.c
@@ -9,6 +9,7 @@
#include <xen/perfc.h>
#include <xen/hypercall.h>
#include <xen/domain_page.h>
+#include <asm/guest_access.h>
#include <asm/paging.h>
#include <asm/p2m.h>
#include <asm/apic.h>
@@ -561,7 +562,7 @@ int viridian_hypercall(struct cpu_user_regs *regs)
{
case HvNotifyLongSpinWait:
perfc_incr(mshv_call_long_wait);
- do_sched_op_compat(SCHEDOP_yield, 0);
+ do_sched_op(SCHEDOP_yield, guest_handle_from_ptr(NULL, void));
status = HV_STATUS_SUCCESS;
break;
default:
diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
index af257db..0837627 100644
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -32,7 +32,7 @@
#include <asm/regs.h>
#include <asm/cpufeature.h>
#include <asm/processor.h>
-#include <asm/types.h>
+#include <asm/guest_access.h>
#include <asm/debugreg.h>
#include <asm/msr.h>
#include <asm/paging.h>
@@ -3198,7 +3198,7 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs)
case EXIT_REASON_PAUSE_INSTRUCTION:
perfc_incr(pauseloop_exits);
- do_sched_op_compat(SCHEDOP_yield, 0);
+ do_sched_op(SCHEDOP_yield, guest_handle_from_ptr(NULL, void));
break;
case EXIT_REASON_XSETBV:
diff --git a/xen/common/schedule.c b/xen/common/schedule.c
index f5a2e55..6b02f98 100644
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -882,39 +882,6 @@ void watchdog_domain_destroy(struct domain *d)
kill_timer(&d->watchdog_timer[i]);
}
-long do_sched_op_compat(int cmd, unsigned long arg)
-{
- long ret = 0;
-
- switch ( cmd )
- {
- case SCHEDOP_yield:
- {
- ret = vcpu_yield();
- break;
- }
-
- case SCHEDOP_block:
- {
- vcpu_block_enable_events();
- break;
- }
-
- case SCHEDOP_shutdown:
- {
- TRACE_3D(TRC_SCHED_SHUTDOWN,
- current->domain->domain_id, current->vcpu_id, arg);
- domain_shutdown(current->domain, (u8)arg);
- break;
- }
-
- default:
- ret = -ENOSYS;
- }
-
- return ret;
-}
-
typedef long ret_t;
#endif /* !COMPAT */
diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
index eda8a36..79fe114 100644
--- a/xen/include/xen/hypercall.h
+++ b/xen/include/xen/hypercall.h
@@ -22,11 +22,6 @@ do_ni_hypercall(
void);
extern long
-do_sched_op_compat(
- int cmd,
- unsigned long arg);
-
-extern long
do_sched_op(
int cmd,
XEN_GUEST_HANDLE_PARAM(void) arg);
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |