Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/818962/?format=api
{ "id": 818962, "url": "http://patchwork.ozlabs.org/api/patches/818962/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1506494000-31982-5-git-send-email-Bharat.Bhushan@nxp.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": "<1506494000-31982-5-git-send-email-Bharat.Bhushan@nxp.com>", "list_archive_url": null, "date": "2017-09-27T06:33:19", "name": "[v4,4/5] virtio-iommu: add iommu replay", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "37c1181566a2ba574234be358e9e11efea79101d", "submitter": { "id": 70741, "url": "http://patchwork.ozlabs.org/api/people/70741/?format=api", "name": "Bharat Bhushan", "email": "bharat.bhushan@nxp.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1506494000-31982-5-git-send-email-Bharat.Bhushan@nxp.com/mbox/", "series": [ { "id": 5292, "url": "http://patchwork.ozlabs.org/api/series/5292/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=5292", "date": "2017-09-27T06:33:15", "name": "virtio-iommu: VFIO integration", "version": 4, "mbox": "http://patchwork.ozlabs.org/series/5292/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/818962/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/818962/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@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "spf=fail (sender IP is 192.88.168.50)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y27Vg4l6Hz9t1G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 27 Sep 2017 16:40:27 +1000 (AEST)", "from localhost ([::1]:52429 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dx61B-0003yi-Nx\n\tfor incoming@patchwork.ozlabs.org; Wed, 27 Sep 2017 02:40:25 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:35669)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <Bharat.Bhushan@nxp.com>) id 1dx5xb-0001Fc-N1\n\tfor qemu-devel@nongnu.org; Wed, 27 Sep 2017 02:36:44 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <Bharat.Bhushan@nxp.com>) id 1dx5xa-0008Ks-QH\n\tfor qemu-devel@nongnu.org; Wed, 27 Sep 2017 02:36:43 -0400", "from mail-by2nam01on0056.outbound.protection.outlook.com\n\t([104.47.34.56]:30835\n\thelo=NAM01-BY2-obe.outbound.protection.outlook.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <Bharat.Bhushan@nxp.com>)\n\tid 1dx5xU-0008GH-CF; Wed, 27 Sep 2017 02:36:36 -0400", "from BN6PR03CA0009.namprd03.prod.outlook.com (10.168.230.147) by\n\tMWHPR03MB2703.namprd03.prod.outlook.com (10.168.207.137) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.77.7; Wed, 27 Sep 2017 06:36:34 +0000", "from BY2FFO11FD036.protection.gbl (2a01:111:f400:7c0c::151) by\n\tBN6PR03CA0009.outlook.office365.com (2603:10b6:404:23::19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9 via\n\tFrontend Transport; Wed, 27 Sep 2017 06:36:34 +0000", "from tx30smr01.am.freescale.net (192.88.168.50) by\n\tBY2FFO11FD036.mail.protection.outlook.com (10.1.14.221) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.56.11\n\tvia Frontend Transport; Wed, 27 Sep 2017 06:36:33 +0000", "from localhost.localdomain.ap.freescale.net ([10.232.14.21])\n\tby tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv8R6a2NC027330; Tue, 26 Sep 2017 23:36:27 -0700" ], "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.168.50 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;", "From": "Bharat Bhushan <Bharat.Bhushan@nxp.com>", "To": "<eric.auger@redhat.com>, <eric.auger.pro@gmail.com>,\n\t<peter.maydell@linaro.org>, <alex.williamson@redhat.com>,\n\t<mst@redhat.com>, <qemu-arm@nongnu.org>, <qemu-devel@nongnu.org>", "Date": "Wed, 27 Sep 2017 12:03:19 +0530", "Message-ID": "<1506494000-31982-5-git-send-email-Bharat.Bhushan@nxp.com>", "X-Mailer": "git-send-email 1.9.3", "In-Reply-To": "<1506494000-31982-1-git-send-email-Bharat.Bhushan@nxp.com>", "References": "<1506494000-31982-1-git-send-email-Bharat.Bhushan@nxp.com>", "X-EOPAttributedMessage": "0", "X-Matching-Connectors": "131509677940022535;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()", "X-Forefront-Antispam-Report": "CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(39860400002)(346002)(39380400002)(376002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(77096006)(6666003)(81166006)(68736007)(5660300001)(104016004)(85426001)(4326008)(2906002)(81156014)(189998001)(2201001)(8936002)(86362001)(8656003)(39060400002)(305945005)(97736004)(50986999)(50466002)(5003940100001)(106466001)(76176999)(47776003)(105606002)(316002)(53936002)(50226002)(8676002)(36756003)(110136005)(16586007)(498600001)(2950100002)(48376002)(54906003)(72206003)(356003)(7416002)(2101003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR03MB2703;\n\tH:tx30smr01.am.freescale.net; FPR:; SPF:Fail;\n\tPTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; ", "X-Microsoft-Exchange-Diagnostics": [ "1; BY2FFO11FD036;\n\t1:QG8jFoOZ6J6LRM7hoxgC217e8iI2gDsJFIKMvIDfnpLQ9ltwYH3LSb3AQuNPhJBgWQa3NAnHbVLIXTyo6TLg4EceQgqPIKJhlKUq6d1DguIbRtCE4MZC2829ZGeectCZ", "1; MWHPR03MB2703;\n\t3:vDAsXj/tWpTZg/jl+B0HqcTyRsN8VB2gkd8DLXScZzUjVslklyVMAMyZXLwbt/X49MFO27rfoDaof/fQwi8jWV3LkRgk0a7I8gmgIl1fG/9vWNMFXFqN/4CCuE943u9LYovpDX2r0W6t9UCUC0KCTNVZ5cZ0CAPAEFxiW2CmkQdmsIdVN5YweExnTXnKirpSjFF1kUIUMeLcqRQQ1kgou0ebWSaz910wfVVo2HLLKFfkfDnfxtF0y2xabAqP1g2dnEuL0l5Pp31DLCNY9M+8NdVLave+Lr8GnafPcHGX/Ahb51/MLIc1mZQF37AG05mWpN6RsOsV2+yiiZuyaDXfoJslLJ2myDwDwTnOeFF8HJI=;\n\t25:jT5R2uqylQuUKqL+GBI8965EgH8xXPbpsUFH4As8i9dz24rV/WhyRHu4kUhfI70K4x4HzO1esIXSgvvU9DPPZYs3fS2L0QoKD3WowC4HVO50ElE6WnHkQeWcgvxBIVItbUbFH7y2h1Fq8Fafr4MgQkcd5O10c5R9vxe3Vm3EK5mPXyiNT9xZyJCk5p74R1d2My21fR2DBZt8qtw2oXKYmYqnbyT7OatNKKD6m67nygWnB2mj25pRiigCnGnVYtntNM+SaQM+PnK0jZtUox/SoHW8C/aZSWjhPN0ZGsNcScqFk1bDfKvQODd1uuReLzbgj2h9GOzQufzgF9R9u2X6jQ==", "1; MWHPR03MB2703;\n\t31:XQvDtbXpNB6ByzDXrWyQ8gjjP0HN4kCNQWs4Y3+ymaa15OoD20o87VVbhGsHab8vF941pJSkD2NuADRZr53pUv2a8/0rGRBhTFSSiJOF5KTXOIy4WwbGGJBJcby4KBNyIXbWT3pmDcZvpkGVnscjijPb8Xxeea27+SWQaNyEfq8NcyITXBWQ7HZaDA9pbDJFnFy86ICuOljeyqXio+M+1gCiXDB+nz9I1uz597bxlkc=;\n\t4:50foa+R1vi5XW2xwv1qLIjkoNLEYrTOyzf2zfTIA1A8n9P9beniCR04l6d33POf/7mnaKCd2hS5Ih5uPACfEn7fAp/U61QFcv9wVxQB8ZrjFdnvbhVpWYfuzxhqZKekQW17GPJN47OiwaNTQMK6kTgF9VtjRBD9/HZzGPfwHX/oVKSCYvuAKdpf2UC84YGa2funi2YffJiOYkURVlN9OuSEvJphcMUcskSmYmezwRaEkIxrzCLaC/dCgmdtMWPdHdKefvI4q0OfALPstuxwdC6xMDnM/GfRyKVAkAw+T7tQ=", "=?us-ascii?Q?1; MWHPR03MB2703;\n\t23:M1VGQxEKcy4ndODc3FTDyeh2bsCIXGwVintJhMUbv?=\n\tMkeH4/J3A+xc8i4xML7rxj9tUz9UUnVzYop+71Do74WT9ODoxDt1NvRPRfgWNJ8AFwMqiCjgd2gLs6XK89vsOhIN9Xs81oSVS0idt1x4a37Jeuxemt4jxmXHO40nNQTJgKcjwQuxY9522RtDuDGo/GdtStJ6/GPsFbhGrXRmP2RNlapPEJVE/wDld67ttGwqYzJjKWH2w11TAqCSh75X8+XGuNyPytWlLOg8GShNGJeVWjmjHHGYYsNqZNAyvymxSu4Ynn7tDoYNNOivWF2gU+sArVwiKMzFrU2G5j7Yql2U9Ck/Yuvq2e3r1sd9dKLPlZ3Mtk2hb/VfAilKk6U+62BwqbVB7Whcfx3aEcBWJun70MJewVIeeO68eiH0lGgQSy5LVm4+wLPHOeZTV+mwOb46pk2hxRBqccav1eCc48noHBUP83oXbq7qBpvYwe+InD52D630NnMxkO92blC6VaPcdskctmpdYchtX9PxJCGzewrckq5ALUpmpXwGj77yC8k2CpGqpc3GmB3WX0tieJ47tIBGzJLUuCxI83TjKD/uxJeABreGCqHeBXaFJ7kp6el+k2KUditJUgRA+hp5Lp45J6Qjk/bG0s+DZa59vBg5OsM4Bk2Ads8EvqVkRiXsJPE2fNnKChqSXzTqGNIRkvBiofczRHdlzWtueXo+8mUiqT6k/Q+UBk4q6FcGIM6lQZZ4Th+ZWQya0/nHQ4nwvqQsIij/HgS42qN0WuUlSR/tCmpXLow9KBBiGCPl4VWdvrJS6jGBnG7DFjLme/ZJ9n5/qfgPUWOAEQm7p/wCHX1LuMHxvhiWfKmK/+IFHp0QU9E6aRfPsWh8ziMMndhTfcnNQZ3C3w/5BSmRF1sRZrIFrKvCI49V1GTqGxqDWEg/tkwV0ZXNTg8UalVinWXWQ6Ol79VfSQePI9+lIS2hmEZMavS9eE+2pUnGEpfgDFaEjt7o3w2xD7IBLjcIuFrYhnh6VTOVKgEff50MPSWaMIPzfjGBCdYvr3K61W6UL/TNvij+XLzqFGNW0/7jrisaFu1GNC/Ba3AEY5y4pbEkQxNW38uy2DPosBiNicL1y2ewhFy6FzIH24gGoZwomuxeq+GaVRf/JsSHv1+/+w294puu8aqsdc6y/lbOpO7nW1PhSl10wLorfYOUfhez1rDOSM+HFj8JTFn/5DZ0WLwiSc6kw==", "1; MWHPR03MB2703;\n\t6:IpPEfz6xv1G63aThzOH2R9dN0k9TN3HuNGN1wr6rUJm08bOpfuMcxAKJPziZPs3wLernljfD9Wm8iUW170oX1KaWdCf5/446xHMm83F73NNg04isRajvJ4RjqRRoJW4ke307LobKiZ9S5DgKKEGdxp/2xp/aeIba+NC0tUZ/5GzFjr1MRLuL43nILvrEhRJrKJu2NBcblpCR4zh4N7Q+rxmRB7EHx1qq1r54Ef5bww9+eI6KDyrdHHMNm6cSOlllvdPiLmAFB/PMA6RKuIGxTJud8ZDBGhUAJo5UQcmMjuXT8jtxMG1tG/VF7BlWWRxbLlyMPzgrkR06eBz2IHRCsA==;\n\t5:oScIHEfvhwY8CGy7m8SUwoJZGeXgDBCh7zbTfBPdt1WzlPfSRys4ED05zAq9m6Twyc4rc/0m6V1eQbFojoqhSMtfJnicrUxP/BLK1ZdtvzNkdfLAxo3O68QfvtFKNlJoQVRLXDQ8bAeSlozD94MwcA==;\n\t24:SmwLCiw28LM8fJik0QK7uMJyiDMnvzl8NWr05qe02/sit3HNsNFMmfYJW7f9khr+nnrZkGhMotHV0J6O+Q3gdrZvHA01FFrW1BxQCP4Hl7U=;\n\t7:Bo7Eh+FetdVeT2Tgp1UuIUEtocoUwSIslVRAZk6yFjkp/Sg5j16BdGoYzuEU9iU5Sl6RrwLJ9l0FPJMqDUhQgsxx7x4Z1A1hztpvwWSy6Cky/No3w8RL097fT0xvmpL0B9Cq2ri2y+7VdUCv7pWgJpu8mcPg4FcKiVeao6RHgLuBOSh9GEy/0an6k3OteC5D/Wjvz4elx4xWh8pQp2P2cYJ/UDp+Z7RRfIMFTFwbMg8=" ], "MIME-Version": "1.0", "Content-Type": "text/plain", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id": "8dc7eddf-bd1e-4841-120f-08d505721888", "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(2017052603199)(201703131430075)(201703131517081);\n\tSRVR:MWHPR03MB2703; ", "X-MS-TrafficTypeDiagnostic": "MWHPR03MB2703:", "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);", "X-Microsoft-Antispam-PRVS": "<MWHPR03MB27032EE1D4B61125699CD2A69A780@MWHPR03MB2703.namprd03.prod.outlook.com>", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(10201501046)(6055026)(6096035)(20161123561025)(20161123559100)(20161123556025)(20161123565025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123563025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:MWHPR03MB2703; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:MWHPR03MB2703; ", "X-Forefront-PRVS": "04433051BF", "SpamDiagnosticOutput": "1:99", "SpamDiagnosticMetadata": "NSPM", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Sep 2017 06:36:33.6902\n\t(UTC)", "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; \n\tIp=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net]", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MWHPR03MB2703", "X-detected-operating-system": "by eggs.gnu.org: Windows 7 or 8 [fuzzy]", "X-Received-From": "104.47.34.56", "Subject": "[Qemu-devel] [PATCH v4 4/5] virtio-iommu: add iommu replay", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://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\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "wei@redhat.com, kevin.tian@intel.com,\n\tBharat Bhushan <Bharat.Bhushan@nxp.com>, marc.zyngier@arm.com,\n\ttn@semihalf.com, will.deacon@arm.com, drjones@redhat.com,\n\trobin.murphy@arm.com, christoffer.dall@linaro.org,\n\tbharatb.yadav@gmail.com", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "Default replay does not work with virtio-iommu,\nso this patch provide virtio-iommu replay functionality.\n\nSigned-off-by: Bharat Bhushan <Bharat.Bhushan@nxp.com>\n---\nv3->v4:\n - Replay functionality moved in separate patch\n - No other changes\n\n hw/virtio/trace-events | 1 +\n hw/virtio/virtio-iommu.c | 38 ++++++++++++++++++++++++++++++++++++++\n 2 files changed, 39 insertions(+)", "diff": "diff --git a/hw/virtio/trace-events b/hw/virtio/trace-events\nindex 251b595..840d54f 100644\n--- a/hw/virtio/trace-events\n+++ b/hw/virtio/trace-events\n@@ -51,3 +51,4 @@ virtio_iommu_fill_none_property(uint32_t devid) \"devid=%d\"\n virtio_iommu_set_page_size_mask(const char *iommu_mr, uint64_t mask) \"mr=%s page_size_mask=0x%\"PRIx64\n virtio_iommu_notify_map(const char *name, hwaddr iova, hwaddr paddr, hwaddr map_size) \"mr=%s iova=0x%\"PRIx64\" pa=0x%\" PRIx64\" size=0x%\"PRIx64\"\"\n virtio_iommu_notify_unmap(const char *name, hwaddr iova, hwaddr map_size) \"mr=%s iova=0x%\"PRIx64\" size=0x%\"PRIx64\"\"\n+virtio_iommu_remap(hwaddr iova, hwaddr pa, hwaddr size) \"iova=0x%\"PRIx64\" pa=0x%\" PRIx64\" size=0x%\"PRIx64\"\"\ndiff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c\nindex ff91bce..d4d34cf 100644\n--- a/hw/virtio/virtio-iommu.c\n+++ b/hw/virtio/virtio-iommu.c\n@@ -906,6 +906,43 @@ static gint int_cmp(gconstpointer a, gconstpointer b, gpointer user_data)\n return (ua > ub) - (ua < ub);\n }\n \n+static gboolean virtio_iommu_remap(gpointer key, gpointer value, gpointer data)\n+{\n+ viommu_mapping *mapping = (viommu_mapping *) value;\n+ IOMMUMemoryRegion *mr = (IOMMUMemoryRegion *) data;\n+\n+ trace_virtio_iommu_remap(mapping->virt_addr, mapping->phys_addr,\n+ mapping->size);\n+ /* unmap previous entry and map again */\n+ virtio_iommu_notify_unmap(mr, mapping->virt_addr, mapping->size);\n+\n+ virtio_iommu_notify_map(mr, mapping->virt_addr, mapping->phys_addr,\n+ mapping->size);\n+ return false;\n+}\n+\n+static void virtio_iommu_replay(IOMMUMemoryRegion *mr, IOMMUNotifier *n)\n+{\n+ IOMMUDevice *sdev = container_of(mr, IOMMUDevice, iommu_mr);\n+ VirtIOIOMMU *s = sdev->viommu;\n+ uint32_t sid;\n+ viommu_dev *dev;\n+\n+ sid = virtio_iommu_get_sid(sdev);\n+\n+ qemu_mutex_lock(&s->mutex);\n+\n+ dev = g_tree_lookup(s->devices, GUINT_TO_POINTER(sid));\n+ if (!dev || !dev->as) {\n+ goto unlock;\n+ }\n+\n+ g_tree_foreach(dev->as->mappings, virtio_iommu_remap, mr);\n+\n+unlock:\n+ qemu_mutex_unlock(&s->mutex);\n+}\n+\n static void virtio_iommu_device_realize(DeviceState *dev, Error **errp)\n {\n VirtIODevice *vdev = VIRTIO_DEVICE(dev);\n@@ -1003,6 +1040,7 @@ static void virtio_iommu_memory_region_class_init(ObjectClass *klass,\n \n imrc->translate = virtio_iommu_translate;\n imrc->set_page_size_mask = virtio_iommu_set_page_size_mask;\n+ imrc->replay = virtio_iommu_replay;\n }\n \n static const TypeInfo virtio_iommu_info = {\n", "prefixes": [ "v4", "4/5" ] }