These are canonical source of data used to set various other flags. If they are available directly in struct domain then the other flags are no longer needed.
This patch simply copies the flags into a new 'createflags' field in struct domain. Subsequent patches will do the related clean-up work. Signed-off-by: Paul Durrant <[email protected]> --- Cc: Andrew Cooper <[email protected]> Cc: George Dunlap <[email protected]> Cc: Ian Jackson <[email protected]> Cc: Jan Beulich <[email protected]> Cc: Julien Grall <[email protected]> Cc: Konrad Rzeszutek Wilk <[email protected]> Cc: Stefano Stabellini <[email protected]> Cc: Tim Deegan <[email protected]> Cc: Wei Liu <[email protected]> --- xen/common/domain.c | 6 ++++-- xen/include/xen/sched.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/common/domain.c b/xen/common/domain.c index 55aa759b75..d559c8898e 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -333,6 +333,8 @@ struct domain *domain_create(domid_t domid, if ( (d = alloc_domain_struct()) == NULL ) return ERR_PTR(-ENOMEM); + d->createflags = config ? config->flags : 0; + /* Sort out our idea of is_system_domain(). */ d->domain_id = domid; @@ -354,7 +356,7 @@ struct domain *domain_create(domid_t domid, } /* Sort out our idea of is_{pv,hvm}_domain(). All system domains are PV. */ - d->guest_type = ((config && (config->flags & XEN_DOMCTL_CDF_hvm_guest)) + d->guest_type = ((d->createflags & XEN_DOMCTL_CDF_hvm_guest) ? guest_type_hvm : guest_type_pv); TRACE_1D(TRC_DOM0_DOM_ADD, d->domain_id); @@ -431,7 +433,7 @@ struct domain *domain_create(domid_t domid, watchdog_domain_init(d); init_status |= INIT_watchdog; - if ( config->flags & XEN_DOMCTL_CDF_xs_domain ) + if ( d->createflags & XEN_DOMCTL_CDF_xs_domain ) { d->is_xenstore = 1; d->disable_migrate = 1; diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index b40c8fd138..edae372c2b 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -308,6 +308,7 @@ enum guest_type { struct domain { + unsigned int createflags; domid_t domain_id; unsigned int max_vcpus; -- 2.20.1.2.gb21ebb671 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
