Message ID | alpine.DEB.2.02.1501231216580.18131@kaball.uk.xensource.com |
---|---|
State | New |
Headers | show |
On 01/23/15 07:19, Stefano Stabellini wrote: > xen_get_vmport_regs_pfn should take a xen_pfn_t argument, not an > unsigned long argument (in fact xen_pfn_t is defined as uint64_t on > ARM). > > Also use xc_hvm_param_get instead of the deprecated xc_get_hvm_param. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> > > --- > I have tested this on x86_64 with a xen that has HVM_PARAM_VMPORT_REGS_PFN defined. And the change looks good to me, so Reviewed-by: Don Slutz <dslutz@verizon.com> -Don Slutz > Changes in v2: > - properly handle return codes and set *vmport_regs_pfn before returning. > > diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h > index 519696f..38f29fb 100644 > --- a/include/hw/xen/xen_common.h > +++ b/include/hw/xen/xen_common.h > @@ -168,14 +168,19 @@ void xen_shutdown_fatal_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2); > > #ifdef HVM_PARAM_VMPORT_REGS_PFN > static inline int xen_get_vmport_regs_pfn(XenXC xc, domid_t dom, > - unsigned long *vmport_regs_pfn) > + xen_pfn_t *vmport_regs_pfn) > { > - return xc_get_hvm_param(xc, dom, HVM_PARAM_VMPORT_REGS_PFN, > - vmport_regs_pfn); > + int rc; > + uint64_t value; > + rc = xc_hvm_param_get(xc, dom, HVM_PARAM_VMPORT_REGS_PFN, &value); > + if (rc >= 0) { > + *vmport_regs_pfn = (xen_pfn_t) value; > + } > + return rc; > } > #else > static inline int xen_get_vmport_regs_pfn(XenXC xc, domid_t dom, > - unsigned long *vmport_regs_pfn) > + xen_pfn_t *vmport_regs_pfn) > { > return -ENOSYS; > } >
diff --git a/include/hw/xen/xen_common.h b/include/hw/xen/xen_common.h index 519696f..38f29fb 100644 --- a/include/hw/xen/xen_common.h +++ b/include/hw/xen/xen_common.h @@ -168,14 +168,19 @@ void xen_shutdown_fatal_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2); #ifdef HVM_PARAM_VMPORT_REGS_PFN static inline int xen_get_vmport_regs_pfn(XenXC xc, domid_t dom, - unsigned long *vmport_regs_pfn) + xen_pfn_t *vmport_regs_pfn) { - return xc_get_hvm_param(xc, dom, HVM_PARAM_VMPORT_REGS_PFN, - vmport_regs_pfn); + int rc; + uint64_t value; + rc = xc_hvm_param_get(xc, dom, HVM_PARAM_VMPORT_REGS_PFN, &value); + if (rc >= 0) { + *vmport_regs_pfn = (xen_pfn_t) value; + } + return rc; } #else static inline int xen_get_vmport_regs_pfn(XenXC xc, domid_t dom, - unsigned long *vmport_regs_pfn) + xen_pfn_t *vmport_regs_pfn) { return -ENOSYS; }
xen_get_vmport_regs_pfn should take a xen_pfn_t argument, not an unsigned long argument (in fact xen_pfn_t is defined as uint64_t on ARM). Also use xc_hvm_param_get instead of the deprecated xc_get_hvm_param. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> --- Changes in v2: - properly handle return codes and set *vmport_regs_pfn before returning.