get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2218445/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2218445,
    "url": "http://patchwork.ozlabs.org/api/patches/2218445/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260401084133.56266-1-skolothumtho@nvidia.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260401084133.56266-1-skolothumtho@nvidia.com>",
    "list_archive_url": null,
    "date": "2026-04-01T08:41:33",
    "name": "hw/vfio/iommufd: Control dirty tracking for nesting parent HWPT",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "b92cb1130809f331a7c60d87f93e370a0cd1547d",
    "submitter": {
        "id": 91580,
        "url": "http://patchwork.ozlabs.org/api/people/91580/?format=api",
        "name": "Shameer Kolothum",
        "email": "skolothumtho@nvidia.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260401084133.56266-1-skolothumtho@nvidia.com/mbox/",
    "series": [
        {
            "id": 498295,
            "url": "http://patchwork.ozlabs.org/api/series/498295/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=498295",
            "date": "2026-04-01T08:41:33",
            "name": "hw/vfio/iommufd: Control dirty tracking for nesting parent HWPT",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498295/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2218445/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218445/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=GNSliASP;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4flz7q37RBz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 01 Apr 2026 19:44:55 +1100 (AEDT)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1w7rBU-0005h8-Pd; Wed, 01 Apr 2026 04:44:21 -0400",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <skolothumtho@nvidia.com>)\n id 1w7rBP-0005gZ-Ks; Wed, 01 Apr 2026 04:44:15 -0400",
            "from mail-westcentralusazlp170130007.outbound.protection.outlook.com\n ([2a01:111:f403:c112::7] helo=CY3PR05CU001.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <skolothumtho@nvidia.com>)\n id 1w7rBL-0000Q9-Sp; Wed, 01 Apr 2026 04:44:14 -0400",
            "from CH2PR03CA0015.namprd03.prod.outlook.com (2603:10b6:610:59::25)\n by LV3PR12MB9260.namprd12.prod.outlook.com (2603:10b6:408:1b4::21)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr\n 2026 08:44:03 +0000",
            "from CH1PEPF0000AD80.namprd04.prod.outlook.com\n (2603:10b6:610:59:cafe::b5) by CH2PR03CA0015.outlook.office365.com\n (2603:10b6:610:59::25) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Wed,\n 1 Apr 2026 08:44:03 +0000",
            "from mail.nvidia.com (216.228.117.160) by\n CH1PEPF0000AD80.mail.protection.outlook.com (10.167.244.90) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 08:44:02 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr\n 2026 01:43:49 -0700",
            "from NV-2Y5XW94.nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr\n 2026 01:43:46 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=CQ78UKi14UOL5CWDpLsmPkOqbFVBldQLGqQzaLfpYwo+NJC2mTXk4NZnsQkU/Z7+OeAL4JqGezCQeAR3jUnKubYL9DwIlMZPkruDIHuCNFVA1iR88/5VLg0uu5V1Em0rHYvQ/CemzygYjgkDYHAoA4Kd0E0fK1y+HPRis2pmUiF7kxp0HzKA7L9y07Xht9tlLRDu1LG4/GX5D2DXMADqYRRXZ7ZMRnywCNgoX2/WAway6EQQspzriY3aX6nsWwSYDZw9g81eJCRRgFNdzLHee6BmMkYzhTiOZuUJ0EcsL6/uP7AbY3ULFcGQG6LcJ/8qsm7tYXo+U52mJzBaEfRNfg==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=flW4oCEo2tGJkCiCyD3gLyYSkze2ET9BfrihRrrUKn0=;\n b=lUMu0v1jxdPaBG9nV+1L4jFsDkqS3RgC/TvhBv0tl29vS6u/yVi4TcnVilD8eKN1Ccq2xIUihWDNmqg+iDeMmUbSlP0JSloLpYmHpTnSgaNhZFzn1ZzbWHV84JjsnYJX8PXSREKu0Q9Ftb6FLIcvyNwS2CGcSQGC12LKy8lc4KimduVraKiK5QAHyXiqh+4OgQFsrfdFUwbHCANsFPwgrg2c7kEaigYvniGnrUV2hTYTNT6sx7WBFPlbV8IYFeMakStbIa1fS42H72CZ+clgFTDPKzs+DiZ75Di//YbhQNcdKJl6+WBakA462PhkwYFmjOwxxukMvG0cXWBM/loq7g==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=flW4oCEo2tGJkCiCyD3gLyYSkze2ET9BfrihRrrUKn0=;\n b=GNSliASPfZywq7SHck4R5ejqXhurJj69B2OAt4nidktUdsBQAZeEUQOxGY2RSMRfii7MsxKKHaB6ZydlybLsw/mPHOTIw6AtJ/B/GEMWCSfvQtCm6aN7xEV1cknplf/ZtbUnR07583oYkR/5vr8hSqDY9wLAZ6A813pjv9dlF56pJo3PUOWb3stoz2LMCLPaoiWx33u/r+oZmrOhGRFDQZaM7+ky8WVdcdT8xE7++qdklNs2QXpFSaAzyQCjYW+jRCidXxOpFbJh2z/f6RUoJ8ei+Kt1Ait8uu3DMaWhAxzIRf4WMhxsU4PgEic5qTl7iBFZIVTZp67IZntTFmYB4w==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": [
            "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C",
            "permerror client-ip=2a01:111:f403:c112::7;\n envelope-from=skolothumtho@nvidia.com;\n helo=CY3PR05CU001.outbound.protection.outlook.com"
        ],
        "From": "Shameer Kolothum <skolothumtho@nvidia.com>",
        "To": "<qemu-arm@nongnu.org>, <qemu-devel@nongnu.org>",
        "CC": "<eric.auger@redhat.com>, <peter.maydell@linaro.org>, <clg@redhat.com>,\n <nicolinc@nvidia.com>, <nathanc@nvidia.com>, <mochs@nvidia.com>,\n <jan@nvidia.com>, <jgg@nvidia.com>, <zhangfei.gao@linaro.org>,\n <zhenzhong.duan@intel.com>, <yi.l.liu@intel.com>, <skolothumtho@nvidia.com>",
        "Subject": "[PATCH] hw/vfio/iommufd: Control dirty tracking for nesting parent\n HWPT",
        "Date": "Wed, 1 Apr 2026 09:41:33 +0100",
        "Message-ID": "<20260401084133.56266-1-skolothumtho@nvidia.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.230.35]",
        "X-ClientProxiedBy": "rnnvmail202.nvidia.com (10.129.68.7) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "CH1PEPF0000AD80:EE_|LV3PR12MB9260:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "a5fd5bbb-e470-4958-81f6-08de8fcad376",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|36860700016|376014|82310400026|1800799024|18002099003|56012099003;",
        "X-Microsoft-Antispam-Message-Info": "\n nvpn0+kSTah/ktHc8eY2U7cRpA/kcsMKQhQ4vYsGqc1C/mv83UYhUowc4imkuTb//o7fiz5kBEBke2465TTkYX8o1LFnnIFTIVDcdj+ix5YJxmBq7vsoSTwfzuqogClGUr/Mm26sgRQ8KZpiuFXTBQCB9uZInBhEhzC4xbPl6WbVWeSs2yU/XGGfRRueBGwePbzZQtzuVSed16ueV2LFj6gcxTRENnWjBfrFY5rcTZb8O6KJhUeC6ifI0tEwK2UcMysZWXJl9FOfQUyYvrLsOKRaokFxstKoK8d14fPYGrufYnztb5beyzMK/C3uIGrhBObIL5XDvJMsVIZwYdOUcq0P0aOHbJ69Qznt4j8UFEMjxXcl8Ol05/VFQ9/zXuOAiXo4ffQNU5D7hP6gqSnHvuXJ1rwIDVwzsSXggaUvsWnwXmxf9AAXFzxkzC3L1VQASvNXusTqnEZQEvYrDR81Z4TOkCFhyJ4jhpIdS+J8FlKdFMRuR4fkRJUIdrBILLtULLOw5jo03hskF+YZuQRuqg4YCnooL0hzj6+4x2751WJF9EqgeyAdCC/h9Q3gdc9Dy22SWTaCpuNT922HqEWszgtCmKjFbBT9oc+oYMlJAxKAvdLu1fWeptJ4Y1vXgKrFecXZ/reYV9Mn+HqF8oBnPqObIERse1pEKzygR7BpTboG6FqBt/99lK5Z3N54qWUyc61O4gW/06l6DhsmW2+dHHtzKpMj9bUJ6IIzf6a5Krq2h/JGsiKdYa2sjY6AzPb9zlzLXJmbIBQG6kdEWxZ8yA==",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE;\n SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n ZjbEVr0n9nmx9yjCojIC7spf9gJP1zOOQNjg4bOaMt2HHGqDpyJ4cQB+XCrKJxJgT75UhNUHp1qa3tiPQHyPGMtJp3K97kHzqnXZi1QLhgGILfJO68LHuPBJMBHtLfiuYUoYVcvhk0TIJirKE6i3rlmAWX9vp5KtyHm4mDAVnCEUi2uZQVjdJBK8AQXOTUPXPbybUbus7YFyM8+reZ6Zf7hbR0U54VURIWuyDSjhhUFCDA0t6dNQjd/j6aTvzti855JR7uRRJVQG7ONzRuEcwJpcr6Gi2P8IagVhaaSkPiQkgmCKvQH3NzOXlwhvz+z090Ql8WybNnpZBiejF8EszOG1t6ENbPOi5p8LlYYBRFc9qO4B4+i+2lqg7d76fYO9jjHJ/nATuXFM9MeWfXXGKWMlJeUmPcS894Aj7y2sK27A1rc7ZnmiqWaxifH98KLn",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "01 Apr 2026 08:44:02.5447 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n a5fd5bbb-e470-4958-81f6-08de8fcad376",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CH1PEPF0000AD80.namprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "LV3PR12MB9260",
        "X-Spam_score_int": "-15",
        "X-Spam_score": "-1.6",
        "X-Spam_bar": "-",
        "X-Spam_report": "(-1.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001,\n SPF_NONE=0.001 autolearn=no autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "QEMU smmuv3 accel does not support live migration yet, so dirty\ntracking for the nesting parent HWPT is not useful.\n\nAlso, nested vIOMMU use cases can break on some platforms. For\nexample, SMMUv3 with HTTU may advertise dirty tracking capability,\nbut the kernel supports it only for stage-1. Requesting dirty\ntracking for a nesting parent HWPT (stage-2) can fail.\n\nAdd a vIOMMU flag to explicitly request dirty tracking for the\nnesting parent HWPT. For nested cases, dirty tracking is enabled\nonly when requested by the vIOMMU.\n\nNon-nested cases and Intel vIOMMU keep the existing behavior.\n\nFixes: fc6dafb98cec (\"hw/arm/smmuv3: Implement get_viommu_cap() callback\")\nSigned-off-by: Shameer Kolothum <skolothumtho@nvidia.com>\n---\n include/hw/core/iommu.h       |  2 ++\n include/hw/vfio/vfio-device.h |  1 +\n hw/i386/intel_iommu.c         |  7 +++++--\n hw/vfio/device.c              | 11 +++++++++++\n hw/vfio/iommufd.c             | 11 +++++++++--\n 5 files changed, 28 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/include/hw/core/iommu.h b/include/hw/core/iommu.h\nindex 86af315c15..cd59a367ce 100644\n--- a/include/hw/core/iommu.h\n+++ b/include/hw/core/iommu.h\n@@ -21,6 +21,8 @@ enum viommu_flags {\n     /* vIOMMU needs nesting parent HWPT to create nested HWPT */\n     VIOMMU_FLAG_WANT_NESTING_PARENT = BIT_ULL(0),\n     VIOMMU_FLAG_PASID_SUPPORTED = BIT_ULL(1),\n+    /* vIOMMU needs dirty tracking on the nesting parent HWPT for nested use */\n+    VIOMMU_FLAG_WANT_NESTING_DIRTY_TRACKING = BIT_ULL(2),\n };\n \n /* Host IOMMU quirks. Extracted from host IOMMU capabilities */\ndiff --git a/include/hw/vfio/vfio-device.h b/include/hw/vfio/vfio-device.h\nindex 828a31c006..a95c5bf503 100644\n--- a/include/hw/vfio/vfio-device.h\n+++ b/include/hw/vfio/vfio-device.h\n@@ -268,6 +268,7 @@ void vfio_device_prepare(VFIODevice *vbasedev, VFIOContainer *bcontainer,\n void vfio_device_unprepare(VFIODevice *vbasedev);\n \n bool vfio_device_get_viommu_flags_want_nesting(VFIODevice *vbasedev);\n+bool vfio_device_get_viommu_flags_want_nesting_dirty(VFIODevice *vbasedev);\n bool vfio_device_get_host_iommu_quirk_bypass_ro(VFIODevice *vbasedev,\n                                                 uint32_t type, void *caps,\n                                                 uint32_t size);\ndiff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c\nindex 4924aa4375..5ec5ed82d7 100644\n--- a/hw/i386/intel_iommu.c\n+++ b/hw/i386/intel_iommu.c\n@@ -4831,9 +4831,12 @@ static void vtd_dev_unset_iommu_device(PCIBus *bus, void *opaque, int devfn)\n static uint64_t vtd_get_viommu_flags(void *opaque)\n {\n     IntelIOMMUState *s = opaque;\n-    uint64_t flags;\n+    uint64_t flags = 0;\n \n-    flags = s->fsts ? VIOMMU_FLAG_WANT_NESTING_PARENT : 0;\n+    if (s->fsts) {\n+        flags = VIOMMU_FLAG_WANT_NESTING_PARENT |\n+                VIOMMU_FLAG_WANT_NESTING_DIRTY_TRACKING;\n+    }\n \n     return flags;\n }\ndiff --git a/hw/vfio/device.c b/hw/vfio/device.c\nindex 973fc35b59..8f7ae919a5 100644\n--- a/hw/vfio/device.c\n+++ b/hw/vfio/device.c\n@@ -522,6 +522,17 @@ void vfio_device_unprepare(VFIODevice *vbasedev)\n     vbasedev->bcontainer = NULL;\n }\n \n+bool vfio_device_get_viommu_flags_want_nesting_dirty(VFIODevice *vbasedev)\n+{\n+    VFIOPCIDevice *vdev = vfio_pci_from_vfio_device(vbasedev);\n+\n+    if (vdev) {\n+        return !!(pci_device_get_viommu_flags(PCI_DEVICE(vdev)) &\n+                  VIOMMU_FLAG_WANT_NESTING_DIRTY_TRACKING);\n+    }\n+    return false;\n+}\n+\n bool vfio_device_get_viommu_flags_want_nesting(VFIODevice *vbasedev)\n {\n     VFIOPCIDevice *vdev = vfio_pci_from_vfio_device(vbasedev);\ndiff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c\nindex 131612eb83..231635cdc7 100644\n--- a/hw/vfio/iommufd.c\n+++ b/hw/vfio/iommufd.c\n@@ -349,6 +349,7 @@ static bool iommufd_cdev_autodomains_get(VFIODevice *vbasedev,\n     ERRP_GUARD();\n     IOMMUFDBackend *iommufd = vbasedev->iommufd;\n     VFIOContainer *bcontainer = VFIO_IOMMU(container);\n+    bool viommu_nesting, viommu_nesting_dirty;\n     uint32_t type, flags = 0;\n     uint64_t hw_caps;\n     VendorCaps caps;\n@@ -402,8 +403,14 @@ static bool iommufd_cdev_autodomains_get(VFIODevice *vbasedev,\n         return false;\n     }\n \n+    viommu_nesting = vfio_device_get_viommu_flags_want_nesting(vbasedev);\n+    viommu_nesting_dirty =\n+        vfio_device_get_viommu_flags_want_nesting_dirty(vbasedev);\n+\n     if (hw_caps & IOMMU_HW_CAP_DIRTY_TRACKING) {\n-        flags = IOMMU_HWPT_ALLOC_DIRTY_TRACKING;\n+        if (!viommu_nesting || viommu_nesting_dirty) {\n+            flags |= IOMMU_HWPT_ALLOC_DIRTY_TRACKING;\n+        }\n     }\n \n     /*\n@@ -411,7 +418,7 @@ static bool iommufd_cdev_autodomains_get(VFIODevice *vbasedev,\n      * force to create it so that it could be reused by vIOMMU to create\n      * nested HWPT.\n      */\n-    if (vfio_device_get_viommu_flags_want_nesting(vbasedev)) {\n+    if (viommu_nesting) {\n         flags |= IOMMU_HWPT_ALLOC_NEST_PARENT;\n \n         if (vfio_device_get_host_iommu_quirk_bypass_ro(vbasedev, type,\n",
    "prefixes": []
}