get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "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"
    ]
}