[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 06/14 v4] xen/arm: vpl011: Add a new domctl API to initialize vpl011
Hi Bhupinder, On 06/06/17 18:25, Bhupinder Thakur wrote: diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h index 1629f41..77425dd 100644 --- a/tools/libxc/include/xenctrl.h +++ b/tools/libxc/include/xenctrl.h @@ -884,6 +884,23 @@ int xc_vcpu_getcontext(xc_interface *xch, uint32_t domid, uint32_t vcpu, vcpu_guest_context_any_t *ctxt); Newline here please. [...] diff --git a/tools/libxl/libxl_arch.h b/tools/libxl/libxl_arch.h index 5e1fc60..d1ca9c6 100644 --- a/tools/libxl/libxl_arch.h +++ b/tools/libxl/libxl_arch.h @@ -32,6 +32,13 @@ _hidden int libxl__arch_domain_create(libxl__gc *gc, libxl_domain_config *d_config, uint32_t domid); +/* arch specific internal domain creation finish function */ +_hidden +int libxl__arch_domain_create_finish(libxl__gc *gc, + libxl_domain_build_info *info, + uint32_t domid, + libxl__domain_build_state *state); Can you explain why you need a new arch helper rather than using the current one? [...] diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index 76310ed..9e150ba 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -665,6 +665,8 @@ fail: void arch_domain_destroy(struct domain *d) { + domain_vpl011_deinit(d); Please add a comment explain where the initialization has been done (i.e via a DOMCTL). This would make easier to know what's going on. + /* IOMMU page table is shared with P2M, always call * iommu_domain_destroy() before p2m_teardown(). */ diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c index 971caec..741679b 100644 --- a/xen/arch/arm/domctl.c +++ b/xen/arch/arm/domctl.c @@ -5,13 +5,15 @@ */ #include <xen/types.h> -#include <xen/lib.h> +#include <public/domctl.h> #include <xen/errno.h> -#include <xen/sched.h> +#include <xen/guest_access.h> #include <xen/hypercall.h> #include <xen/iocap.h> +#include <xen/lib.h> +#include <xen/mm.h> +#include <xen/sched.h> #include <xsm/xsm.h> -#include <public/domctl.h> Why do you reshuffle the headers? Is it to use the alphabetical order? If so, this should really be done in a separate patch. void arch_get_domain_info(const struct domain *d, struct xen_domctl_getdomaininfo *info) @@ -119,6 +121,42 @@ long arch_do_domctl(struct xen_domctl *domctl, struct domain *d, d->disable_migrate = domctl->u.disable_migrate.disable; return 0; + case XEN_DOMCTL_vuart_op: + { + int rc; + struct xen_domctl_vuart_op *vuart_op = &domctl->u.vuart_op; + + switch(vuart_op->cmd) + { + case XEN_DOMCTL_VUART_OP_INIT_VPL011: + + if ( !d->creation_finished ) + { + struct vpl011_init_info info; + + info.console_domid = vuart_op->console_domid; + info.gfn = _gfn(vuart_op->gfn); + + rc = domain_vpl011_init(d, &info); + if ( !rc ) + { + vuart_op->evtchn = info.evtchn; + rc = __copy_to_guest(u_domctl, domctl, 1); + } + } + else + { + rc = - EPERM; + } Unecessary {}. + break; + + default: + rc = -EINVAL; + break; + } + + return rc; + } default: { int rc; Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |