From patchwork Mon Jun 27 18:19:51 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 921982 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.4) with ESMTP id p5RIKlgj001203 for ; Mon, 27 Jun 2011 18:20:48 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753324Ab1F0SUk (ORCPT ); Mon, 27 Jun 2011 14:20:40 -0400 Received: from fmmailgate03.web.de ([217.72.192.234]:45167 "EHLO fmmailgate03.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753257Ab1F0SUh (ORCPT ); Mon, 27 Jun 2011 14:20:37 -0400 Received: from smtp03.web.de ( [172.20.0.65]) by fmmailgate03.web.de (Postfix) with ESMTP id 5412A192DFE2C; Mon, 27 Jun 2011 20:20:36 +0200 (CEST) Received: from [2.204.233.154] (helo=localhost.localdomain) by smtp03.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #2) id 1QbGQF-0007wf-00; Mon, 27 Jun 2011 20:20:36 +0200 From: Jan Kiszka To: Avi Kivity , Marcelo Tosatti Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" , Alex Williamson Subject: [PATCH 08/13] pci-assign: Update legacy interrupts only if used Date: Mon, 27 Jun 2011 20:19:51 +0200 Message-Id: X-Mailer: git-send-email 1.7.1 In-Reply-To: References: In-Reply-To: References: X-Sender: jan.kiszka@web.de X-Provags-ID: V01U2FsdGVkX19PNQqiAcmAO5lnS7zGn8SW1gY3iY/cXYHuIzIg s1K2Sq1grX4nyhWZ/MUDSY2voblpl6Wwo7myPeJxNXTbPq1FYm 0buJg4Sho= Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Mon, 27 Jun 2011 18:20:48 +0000 (UTC) From: Jan Kiszka Don't mess with assign_intx on devices that are in MSI or MSI-X mode, it would corrupt their interrupt routing. Signed-off-by: Jan Kiszka --- hw/device-assignment.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/device-assignment.c b/hw/device-assignment.c index 36c0f5f..a88d4fc 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -1062,9 +1062,12 @@ void assigned_dev_update_irqs(void) dev = QLIST_FIRST(&devs); while (dev) { next = QLIST_NEXT(dev, next); - r = assign_irq(dev); - if (r < 0) - qdev_unplug(&dev->dev.qdev); + if (dev->irq_requested_type & KVM_DEV_IRQ_HOST_INTX) { + r = assign_irq(dev); + if (r < 0) { + qdev_unplug(&dev->dev.qdev); + } + } dev = next; } }