From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sheng Yang Subject: Fix bind_irq_vector() destination Date: Thu, 26 Aug 2010 17:14:54 +0800 Message-ID: <201008261714.54218.sheng@linux.intel.com> Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_OCjdMpL1H9xERJQ" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org --Boundary-00=_OCjdMpL1H9xERJQ Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit The "mask" covered all online cpus in the "domain". It should be used as destination later, instead of using "domain" directly. Signed-off-by: Sheng Yang -- diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -86,14 +86,14 @@ cpus_and(mask, domain, cpu_online_map); if (cpus_empty(mask)) return -EINVAL; - if ((cfg->vector == vector) && cpus_equal(cfg->domain, domain)) + if ((cfg->vector == vector) && cpus_equal(cfg->domain, mask)) return 0; if (cfg->vector != IRQ_VECTOR_UNASSIGNED) return -EBUSY; for_each_cpu_mask(cpu, mask) per_cpu(vector_irq, cpu)[vector] = irq; cfg->vector = vector; - cfg->domain = domain; + cfg->domain = mask; irq_status[irq] = IRQ_USED; if (IO_APIC_IRQ(irq)) irq_vector[irq] = vector; --Boundary-00=_OCjdMpL1H9xERJQ Content-Type: text/x-patch; charset="UTF-8"; name="binding_fix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="binding_fix.patch" diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -86,14 +86,14 @@ cpus_and(mask, domain, cpu_online_map); if (cpus_empty(mask)) return -EINVAL; - if ((cfg->vector == vector) && cpus_equal(cfg->domain, domain)) + if ((cfg->vector == vector) && cpus_equal(cfg->domain, mask)) return 0; if (cfg->vector != IRQ_VECTOR_UNASSIGNED) return -EBUSY; for_each_cpu_mask(cpu, mask) per_cpu(vector_irq, cpu)[vector] = irq; cfg->vector = vector; - cfg->domain = domain; + cfg->domain = mask; irq_status[irq] = IRQ_USED; if (IO_APIC_IRQ(irq)) irq_vector[irq] = vector; --Boundary-00=_OCjdMpL1H9xERJQ 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 --Boundary-00=_OCjdMpL1H9xERJQ--