[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 13/20] xen/evtchn: Pass max_evtchn_port into evtchn_init()
... rather than setting it up domain_create() has completed. This involves constructing a default value for dom0. No practical change in functionality. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien.grall@xxxxxxx> --- xen/arch/arm/setup.c | 4 +++- xen/arch/x86/setup.c | 1 + xen/common/domain.c | 2 +- xen/common/domctl.c | 3 --- xen/common/event_channel.c | 4 ++-- xen/include/xen/sched.h | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index e6f8e23..f07c826 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -693,7 +693,9 @@ void __init start_xen(unsigned long boot_phys_offset, const char *cmdline; struct bootmodule *xen_bootmodule; struct domain *dom0; - struct xen_domctl_createdomain dom0_cfg = {}; + struct xen_domctl_createdomain dom0_cfg = { + .max_evtchn_port = -1, + }; dcache_line_bytes = read_dcache_line_bytes(); diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index fa77bae..a82e3a1 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -673,6 +673,7 @@ void __init noreturn __start_xen(unsigned long mbi_p) }; struct xen_domctl_createdomain dom0_cfg = { .flags = XEN_DOMCTL_CDF_s3_integrity, + .max_evtchn_port = -1, }; /* Critical region without IDT or TSS. Any fault is deadly! */ diff --git a/xen/common/domain.c b/xen/common/domain.c index b00cc1f..946d0e1 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -360,7 +360,7 @@ struct domain *domain_create(domid_t domid, radix_tree_init(&d->pirq_tree); - if ( (err = evtchn_init(d)) != 0 ) + if ( (err = evtchn_init(d, config->max_evtchn_port)) != 0 ) goto fail; init_status |= INIT_evtchn; diff --git a/xen/common/domctl.c b/xen/common/domctl.c index 0326e43..d59fa9e 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -547,9 +547,6 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) op->domain = d->domain_id; copyback = true; - d->max_evtchn_port = - min_t(unsigned int, op->u.createdomain.max_evtchn_port, INT_MAX); - ret = grant_table_set_limits(d, op->u.createdomain.max_grant_frames, op->u.createdomain.max_maptrack_frames); if ( !ret ) diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index c620465..41cbbae 100644 --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -1284,10 +1284,10 @@ void evtchn_check_pollers(struct domain *d, unsigned int port) } } -int evtchn_init(struct domain *d) +int evtchn_init(struct domain *d, unsigned int max_port) { evtchn_2l_init(d); - d->max_evtchn_port = INT_MAX; + d->max_evtchn_port = min_t(unsigned int, max_port, INT_MAX); d->evtchn = alloc_evtchn_bucket(d, 0); if ( !d->evtchn ) diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index f89896e..7e8a79c 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -133,7 +133,7 @@ struct evtchn #endif } __attribute__((aligned(64))); -int evtchn_init(struct domain *d); /* from domain_create */ +int evtchn_init(struct domain *d, unsigned int max_port); /* from domain_create */ void evtchn_destroy(struct domain *d); /* from domain_kill */ void evtchn_destroy_final(struct domain *d); /* from complete_domain_destroy */ -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |