From nobody Fri Nov 7 09:09:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1547474986709816.3022492696053; Mon, 14 Jan 2019 06:09:46 -0800 (PST) Received: from localhost ([127.0.0.1]:34758 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gj2vx-00068b-B3 for importer@patchew.org; Mon, 14 Jan 2019 09:09:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gj2j5-0004hh-So for qemu-devel@nongnu.org; Mon, 14 Jan 2019 08:56:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gj2es-0002Nv-Ch for qemu-devel@nongnu.org; Mon, 14 Jan 2019 08:52:07 -0500 Received: from smtp03.citrix.com ([162.221.156.55]:65429) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gj2es-0002N4-5F for qemu-devel@nongnu.org; Mon, 14 Jan 2019 08:52:06 -0500 X-IronPort-AV: E=Sophos;i="5.56,477,1539648000"; d="scan'208";a="75506433" From: Anthony PERARD To: Date: Mon, 14 Jan 2019 13:51:31 +0000 Message-ID: <20190114135154.16826-3-anthony.perard@citrix.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190114135154.16826-1-anthony.perard@citrix.com> References: <20190114135154.16826-1-anthony.perard@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 162.221.156.55 Subject: [Qemu-devel] [PULL 02/25] xen/pt: allow passthrough of devices with bogus interrupt pin X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anthony PERARD , xen-devel@lists.xenproject.org, Peter Maydell Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" From: Zhao Yan For some pci device, even its PCI_INTERRUPT_PIN is not 0, it actually doesn't support INTx mode, so its machine irq read from host sysfs is 0. In that case, report PCI_INTERRUPT_PIN as 0 to guest and let passthrough continue. Reviewed-by: Roger Pau Monn=C3=A9 Signed-off-by: Zhao Yan Acked-by: Anthony PERARD Signed-off-by: Anthony PERARD --- hw/xen/xen_pt.c | 6 ++++++ hw/xen/xen_pt_config_init.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index f1f3a3727c..815dc46ba7 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -847,6 +847,12 @@ static void xen_pt_realize(PCIDevice *d, Error **errp) } =20 machine_irq =3D s->real_device.irq; + if (machine_irq =3D=3D 0) { + XEN_PT_LOG(d, "machine irq is 0\n"); + cmd |=3D PCI_COMMAND_INTX_DISABLE; + goto out; + } + rc =3D xc_physdev_map_pirq(xen_xc, xen_domid, machine_irq, &pirq); if (rc < 0) { error_setg_errno(errp, errno, "Mapping machine irq %u to" diff --git a/hw/xen/xen_pt_config_init.c b/hw/xen/xen_pt_config_init.c index 47f9010c75..9fd953a689 100644 --- a/hw/xen/xen_pt_config_init.c +++ b/hw/xen/xen_pt_config_init.c @@ -300,7 +300,9 @@ static int xen_pt_irqpin_reg_init(XenPCIPassthroughStat= e *s, XenPTRegInfo *reg, uint32_t real_offset, uint32_t *data) { - *data =3D xen_pt_pci_read_intx(s); + if (s->real_device.irq) { + *data =3D xen_pt_pci_read_intx(s); + } return 0; } =20 --=20 Anthony PERARD