[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 08/16] xen: Add limited support of VMware's hyper-call rpc
On 09/12/14 09:37, Boris Ostrovsky wrote: > On 09/11/2014 02:36 PM, Don Slutz wrote: >> @@ -6142,6 +6148,43 @@ long do_hvm_op(unsigned long op, >> XEN_GUEST_HANDLE_PARAM(void) arg) >> break; >> } >> + case HVMOP_get_vmport_guest_info: >> + case HVMOP_set_vmport_guest_info: >> + { >> + struct xen_hvm_vmport_guest_info a; >> + struct domain *d; >> + >> + if ( copy_from_guest(&a, arg, 1) ) >> + return -EFAULT; >> + >> + rc = vmport_rpc_hvmop_precheck(op, &a); >> + if ( rc ) >> + return rc; >> + >> + d = rcu_lock_domain_by_any_id(a.domid); >> + if ( d == NULL ) >> + return rc; >> + >> + rc = -EINVAL; >> + if ( !is_hvm_domain(d) ) >> + goto param_fail9; > > Do we need this check? If you are concerned about PVH then checking > explicitly for that may be better (and probably do it first thing in > the case clause) > I am not sure. This is copied from HVMOP_inject_trap; and a lot of the other cases have the same test. I do not see that PVH needs to be excluded. It is the 1st thing after d has a value. >> + >> + rc = xsm_hvm_param(XSM_TARGET, d, op); >> + if ( rc ) >> + goto param_fail9; >> + >> + rc = vmport_rpc_hvmop_do(d, op, &a); >> + if ( rc ) >> + goto param_fail9; >> + >> + if ( op == HVMOP_get_vmport_guest_info ) >> + rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0; >> + >> + param_fail9: >> + rcu_unlock_domain(d); >> + break; >> + } >> + >> default: >> { >> gdprintk(XENLOG_DEBUG, "Bad HVM op %ld.\n", op); >> diff --git a/xen/arch/x86/hvm/vmware/Makefile >> b/xen/arch/x86/hvm/vmware/Makefile >> index cd8815b..4a14124 100644 >> --- a/xen/arch/x86/hvm/vmware/Makefile >> +++ b/xen/arch/x86/hvm/vmware/Makefile >> @@ -1,2 +1,3 @@ >> obj-y += cpuid.o >> obj-y += vmport.o >> +obj-y += vmport_rpc.o >> diff --git a/xen/arch/x86/hvm/vmware/vmport.c >> b/xen/arch/x86/hvm/vmware/vmport.c >> index 26aeb37..9e308a0 100644 >> --- a/xen/arch/x86/hvm/vmware/vmport.c >> +++ b/xen/arch/x86/hvm/vmware/vmport.c >> @@ -139,6 +139,13 @@ int vmport_ioport(int dir, uint32_t port, >> uint32_t bytes, uint32_t *val) >> /* maxTimeLag */ >> regs->rcx = 0; >> break; >> + case BDOOR_CMD_MESSAGE: >> + if ( !is_pv_vcpu(current) ) >> + { >> + /* Only supported for non pv domains */ > > PV vs. HVM vs. PVH. So probably 'if(is_hvm_vcpu)'? I see no reason to exclude PVH. Will change to has_hvm_container_vcpu() -Don Slutz (rest on different thread.) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |