From nobody Mon Feb 9 20:12:31 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1767680095; cv=none; d=zohomail.com; s=zohoarc; b=ZlT14wCGT1EiMPAPbzpkL9brmS2kzIlFE5iCvPwKsam0yVN6l1YMCHq7rOR7V5oQbgXs1i+tIrmILcCe7HXy8Q7AhFjDpLzrXSvbkHySU6cpRJlz1wk20yOzJHHqy75gvT6Ayfok5MTQAlBux/xvc5TXF24BwD0sLOsZdfl1gEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767680095; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=PL3Lsfpzb7Nfe7L8cpzWm5P4jd2x2bw1QZMQyJAFuyg=; b=WKcSKOf6yfK+7obrmWepC/FFBON6mowN7oBsairk580BrhGj3/02kxGs2Z4/lqt6uhvYp5YiIuXlcQSkuACDpQxHIVsWWAfaY9SrCU8apFoXyUOuv6eeRyFCcStudgM8cpjXbsUqoJsSenOENr68oyDq/QS1DgiHx7s2xzOvnIw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17676800956426.66577099696633; Mon, 5 Jan 2026 22:14:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vd0KI-00039U-Ds; Tue, 06 Jan 2026 01:13:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vd0K9-00036X-9c for qemu-devel@nongnu.org; Tue, 06 Jan 2026 01:13:45 -0500 Received: from mgamail.intel.com ([192.198.163.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vd0K7-0007Gj-Mb for qemu-devel@nongnu.org; Tue, 06 Jan 2026 01:13:45 -0500 Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jan 2026 22:13:41 -0800 Received: from unknown (HELO gnr-sp-2s-612.sh.intel.com) ([10.112.230.229]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Jan 2026 22:13:38 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1767680023; x=1799216023; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c3dNPeXRKd7w34XyniVZftpfssXM2pJ0+E1TblNs16Q=; b=oBCMPx1lUzb3XcfXl1Cks9j11SCPNZiVtN3z3+4KvmY6HkhssTSEUcMm ul3BRnZ1ahsxgv1nRVtuekxXVKBSxN/OKjoiQ0TSac8MPIzpYZZF8CVgO 8uGaU/XOfIh1jqJ5VSLIxsybG7U1UsOwTg46yen2cOZhFKll0sj+XWHsl vbdmBLHTo22+6HWkqt8rwHu3+m0KIWzVzOmoR4fdzlT/TrRPGVql4lAq6 SNnEFRP0BUs77xENZYOjs4JEFTL2MB5fB0ZF0otqKLPuHRDGeAkJ4He2v OEfLjx4NfQ9JRFPv6jxVcIQ2CZib+ydMgPADrzvaWQ+tNyZnM2mTR70y0 w==; X-CSE-ConnectionGUID: qT2wOI/5RQ2c0rdDGjGUXA== X-CSE-MsgGUID: WJqgD/ChSm+I99h0ruTZ9g== X-IronPort-AV: E=McAfee;i="6800,10657,11662"; a="69087594" X-IronPort-AV: E=Sophos;i="6.21,204,1763452800"; d="scan'208";a="69087594" X-CSE-ConnectionGUID: xVaClvrWRAS0Yl5QZDfdfw== X-CSE-MsgGUID: rbjYEgDAQ1+mc5XbUBQSNw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,204,1763452800"; d="scan'208";a="202588748" From: Zhenzhong Duan To: qemu-devel@nongnu.org Cc: alex@shazbot.org, clg@redhat.com, eric.auger@redhat.com, mst@redhat.com, jasowang@redhat.com, peterx@redhat.com, ddutile@redhat.com, jgg@nvidia.com, nicolinc@nvidia.com, skolothumtho@nvidia.com, joao.m.martins@oracle.com, clement.mathieu--drif@eviden.com, kevin.tian@intel.com, yi.l.liu@intel.com, chao.p.peng@intel.com, Zhenzhong Duan Subject: [PATCH v10 06/19] intel_iommu: Implement get_viommu_flags() callback Date: Tue, 6 Jan 2026 01:12:48 -0500 Message-ID: <20260106061304.314546-7-zhenzhong.duan@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260106061304.314546-1-zhenzhong.duan@intel.com> References: <20260106061304.314546-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.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; Received-SPF: pass (zohomail.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; Received-SPF: pass client-ip=192.198.163.14; envelope-from=zhenzhong.duan@intel.com; helo=mgamail.intel.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1767680097664158500 Content-Type: text/plain; charset="utf-8" Implement get_viommu_flags() callback and expose a request for nesting parent HWPT for now. VFIO uses it to create nesting parent HWPT which is further used to create nested HWPT in vIOMMU. All these will be implemented in following patches. Suggested-by: Yi Liu Signed-off-by: Zhenzhong Duan Reviewed-by: Eric Auger Reviewed-by: Nicolin Chen Reviewed-by: Yi Liu --- hw/i386/intel_iommu.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 7bec53a587..9ce1bab93c 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -24,6 +24,7 @@ #include "qemu/main-loop.h" #include "qapi/error.h" #include "hw/core/sysbus.h" +#include "hw/core/iommu.h" #include "intel_iommu_internal.h" #include "hw/pci/pci.h" #include "hw/pci/pci_bus.h" @@ -4659,6 +4660,16 @@ static void vtd_dev_unset_iommu_device(PCIBus *bus, = void *opaque, int devfn) vtd_iommu_unlock(s); } =20 +static uint64_t vtd_get_viommu_flags(void *opaque) +{ + IntelIOMMUState *s =3D opaque; + uint64_t flags; + + flags =3D s->fsts ? VIOMMU_FLAG_WANT_NESTING_PARENT : 0; + + return flags; +} + /* Unmap the whole range in the notifier's scope. */ static void vtd_address_space_unmap(VTDAddressSpace *as, IOMMUNotifier *n) { @@ -5312,6 +5323,7 @@ static PCIIOMMUOps vtd_iommu_ops =3D { .pri_register_notifier =3D vtd_pri_register_notifier, .pri_unregister_notifier =3D vtd_pri_unregister_notifier, .pri_request_page =3D vtd_pri_request_page, + .get_viommu_flags =3D vtd_get_viommu_flags, }; =20 static bool vtd_decide_config(IntelIOMMUState *s, Error **errp) --=20 2.47.1