[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen staging] xen/evtchn: Pass max_evtchn_port into evtchn_init()
commit 4cdb6bfde2300c75725b3e267469bd6c9eeee55e Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Fri Mar 16 18:27:24 2018 +0000 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Wed Aug 15 19:40:28 2018 +0100 xen/evtchn: Pass max_evtchn_port into evtchn_init() ... rather than setting it up once 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> Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: 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 7d40a8466b..45f3841105 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -691,7 +691,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 7c86b9a3e1..727dad4dc3 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -681,6 +681,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 749722bcb2..171d25ed4b 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -362,7 +362,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 3a68fc91cf..0ef554acd6 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -540,9 +540,6 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) break; } - d->max_evtchn_port = min_t(unsigned int, - op->u.createdomain.max_evtchn_port, INT_MAX); - ret = 0; op->domain = d->domain_id; copyback = 1; diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index c62046590b..41cbbae1ab 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 3c35473742..51ceebe6cc 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -134,7 +134,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); void evtchn_destroy(struct domain *d); /* from domain_kill */ void evtchn_destroy_final(struct domain *d); /* from complete_domain_destroy */ -- generated by git-patchbot for /home/xen/git/xen.git#staging _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |