diff options
author | David Vrabel <david.vrabel@citrix.com> | 2013-10-14 10:18:24 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-10-14 10:18:24 +0200 |
commit | 48974e6ce52ee21e08d0e621611371dc05624bbc (patch) | |
tree | 16e17bfaab58a77a9b6fa55c7312c41fda977d5d /xen/common | |
parent | 611d0ecc81bf948f6f9c592afdd6c2aebcfaaadb (diff) | |
download | xen-48974e6ce52ee21e08d0e621611371dc05624bbc.tar.gz xen-48974e6ce52ee21e08d0e621611371dc05624bbc.tar.bz2 xen-48974e6ce52ee21e08d0e621611371dc05624bbc.zip |
evtchn: use a per-domain variable for the max number of event channels
Instead of the MAX_EVTCHNS(d) macro, use d->max_evtchns instead. This
avoids having to repeatedly check the ABI type.
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/common')
-rw-r--r-- | xen/common/event_2l.c | 1 | ||||
-rw-r--r-- | xen/common/event_channel.c | 4 | ||||
-rw-r--r-- | xen/common/schedule.c | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/xen/common/event_2l.c b/xen/common/event_2l.c index a9d99d3e92..5837ae8d26 100644 --- a/xen/common/event_2l.c +++ b/xen/common/event_2l.c @@ -96,6 +96,7 @@ static const struct evtchn_port_ops evtchn_port_ops_2l = void evtchn_2l_init(struct domain *d) { d->evtchn_port_ops = &evtchn_port_ops_2l; + d->max_evtchns = BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d); } /* diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c index f73c7a9afd..539a1980f5 100644 --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -134,7 +134,7 @@ static int get_free_port(struct domain *d) if ( evtchn_from_port(d, port)->state == ECS_FREE ) return port; - if ( port == MAX_EVTCHNS(d) ) + if ( port == d->max_evtchns ) return -ENOSPC; chn = xzalloc_array(struct evtchn, EVTCHNS_PER_BUCKET); @@ -1236,7 +1236,7 @@ static void domain_dump_evtchn_info(struct domain *d) spin_lock(&d->event_lock); - for ( port = 1; port < MAX_EVTCHNS(d); ++port ) + for ( port = 1; port < d->max_evtchns; ++port ) { const struct evtchn *chn; char *ssid; diff --git a/xen/common/schedule.c b/xen/common/schedule.c index b8e4cb4417..bfa6bee283 100644 --- a/xen/common/schedule.c +++ b/xen/common/schedule.c @@ -756,7 +756,7 @@ static long do_poll(struct sched_poll *sched_poll) goto out; rc = -EINVAL; - if ( port >= MAX_EVTCHNS(d) ) + if ( port >= d->max_evtchns ) goto out; rc = 0; |