From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 2 of 3] switch to dynamically allocated cpumask in domain_update_node_affinity() Date: Tue, 24 Jan 2012 11:06:08 +0100 Message-ID: <0caec9849a8c98bc3afa.1327399568@nehalem1> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5694991945195412612==" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --===============5694991945195412612== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit cpumasks should rather be allocated dynamically. Signed-off-by: juergen.gross@ts.fujitsu.com 1 file changed, 9 insertions(+), 4 deletions(-) xen/common/domain.c | 13 +++++++++---- --===============5694991945195412612== Content-Type: text/x-patch; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=xen-staging.hg-3.patch # HG changeset patch # User Juergen Gross # Date 1327399530 -3600 # Node ID 0caec9849a8c98bc3afa650199683c6f294bf101 # Parent 5589314aa984152c684bedffb4276272646314f0 switch to dynamically allocated cpumask in domain_update_node_affinity() cpumasks should rather be allocated dynamically. Signed-off-by: juergen.gross@ts.fujitsu.com diff -r 5589314aa984 -r 0caec9849a8c xen/common/domain.c --- a/xen/common/domain.c Tue Jan 24 11:03:03 2012 +0100 +++ b/xen/common/domain.c Tue Jan 24 11:05:30 2012 +0100 @@ -220,6 +220,7 @@ struct domain *domain_create( INIT_PAGE_LIST_HEAD(&d->xenpage_list); spin_lock_init(&d->node_affinity_lock); + d->node_affinity = NODE_MASK_ALL; spin_lock_init(&d->shutdown_lock); d->shutdown_code = -1; @@ -333,23 +334,27 @@ struct domain *domain_create( void domain_update_node_affinity(struct domain *d) { - cpumask_t cpumask; + cpumask_var_t cpumask; nodemask_t nodemask = NODE_MASK_NONE; struct vcpu *v; unsigned int node; - cpumask_clear(&cpumask); + if ( !zalloc_cpumask_var(&cpumask) ) + return; + spin_lock(&d->node_affinity_lock); for_each_vcpu ( d, v ) - cpumask_or(&cpumask, &cpumask, v->cpu_affinity); + cpumask_or(cpumask, cpumask, v->cpu_affinity); for_each_online_node ( node ) - if ( cpumask_intersects(&node_to_cpumask(node), &cpumask) ) + if ( cpumask_intersects(&node_to_cpumask(node), cpumask) ) node_set(node, nodemask); d->node_affinity = nodemask; spin_unlock(&d->node_affinity_lock); + + free_cpumask_var(cpumask); } --===============5694991945195412612== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============5694991945195412612==--