From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cyrill Gorcunov Subject: Re: [patch 2/2] kvm tools: mptable -- Fix up srcbusirq assignment for PCI devices Date: Sat, 07 May 2011 18:59:28 +0400 Message-ID: <4DC55E50.4070504@gmail.com> References: <20110507145514.476517775@gmail.com> <20110507145636.384301162@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Cyrill Gorcunov , mingo@elte.hu, levinsasha928@gmail.com, asias.hejun@gmail.com, prasadjoshi124@gmail.com, kvm@vger.kernel.org To: penberg@kernel.org Return-path: Received: from mail-ew0-f46.google.com ([209.85.215.46]:34926 "EHLO mail-ew0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755340Ab1EGO7d (ORCPT ); Sat, 7 May 2011 10:59:33 -0400 Received: by ewy4 with SMTP id 4so1214005ewy.19 for ; Sat, 07 May 2011 07:59:32 -0700 (PDT) In-Reply-To: <20110507145636.384301162@gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: On 05/07/2011 06:55 PM, Cyrill Gorcunov wrote: > The kernel expects srcbusirq follows MP specification and consists > a tuple of PCI device number with pin encoded. Make it so, otherwise > the kernel reports kind of "buggy MP table" found. > > Signed-off-by: Cyrill Gorcunov > --- > tools/kvm/mptable.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > Index: linux-2.6.git/tools/kvm/mptable.c > ===================================================================== > --- linux-2.6.git.orig/tools/kvm/mptable.c > +++ linux-2.6.git/tools/kvm/mptable.c > @@ -191,12 +191,16 @@ void mptable_setup(struct kvm *kvm, unsi > > for (pci_tree = irq__get_pci_tree(); pci_tree; pci_tree = rb_next(pci_tree)) { > struct pci_dev *dev = rb_entry(pci_tree, struct pci_dev, node); > - struct irq_line *tmp; > + struct irq_line *irq_line; > + > + list_for_each_entry(irq_line, &dev->lines, node) { > + unsigned char srcbusirq; > + > + srcbusirq = (dev->id << 2) | (dev->pin - 1); > > - list_for_each_entry(tmp, &dev->lines, node) { > mpc_intsrc = last_addr; > > - mptable_add_irq_src(mpc_intsrc, pcibusid, dev->pin, ioapicid, tmp->line); > + mptable_add_irq_src(mpc_intsrc, pcibusid, dev->pin, ioapicid, irq_line->line); > last_addr = (void *)&mpc_intsrc[1]; > nentries++; > } > Crap, forgot to update quilt. Pekka drop this series please. -- Thanks, Cyrill