From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 236F4CD4851 for ; Sun, 17 May 2026 00:04:23 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 87E9410E63F; Sun, 17 May 2026 00:04:22 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="MCOPG9Uw"; dkim-atps=neutral Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9EA9B10E63F for ; Sun, 17 May 2026 00:04:21 +0000 (UTC) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 123BA60211; Sun, 17 May 2026 00:04:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 65D6CC2BCC7; Sun, 17 May 2026 00:04:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778976260; bh=9me7LyGDF1H/NmHy1fACGvVLaM9iJhsqFDFW0u0Hg3A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MCOPG9Uw0oyo9f21rTN7DOHSuUUxtI5pz3Qkt3TB6DQMGFBHB5rypBPflqoHA/+mk u4Cahuryzpt2aITL5vybiCC2cnv1Xkh8jLx3IovGSPIIBC3wwSMk0o40VuGi5G98YI o5kAfZhD2COfcb9wxk5xWbRqcawd0U1QmClFeGDY5NFxQgP6C3GZIxt1CT5/DEUkuS DJBUBEkfVlfWPwqqRqWpyTqr6qyAtgqWXRofUhTrXCmGZivwkyhmqn0qzL32+dtApj RnieohlEPEJ11U5C/VLHf7GZFxKVR4zxv2Pnvw6R0CDA9UVnLlhKso1apJS0+eyqhk OhhlaisY9Q0zw== From: Danilo Krummrich To: gregkh@linuxfoundation.org, rafael@kernel.org, acourbot@nvidia.com, aliceryhl@google.com, david.m.ertman@intel.com, ira.weiny@intel.com, leon@kernel.org, viresh.kumar@linaro.org, m.wilczynski@samsung.com, ukleinek@kernel.org, bhelgaas@google.com, kwilczynski@kernel.org, abdiel.janulgue@gmail.com, robin.murphy@arm.com, markus.probst@posteo.de, ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, tmgross@umich.edu, igor.korotin@linux.dev, daniel.almeida@collabora.com, pcolberg@redhat.com Cc: driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, linux-pm@vger.kernel.org, linux-pwm@vger.kernel.org, linux-pci@vger.kernel.org, rust-for-linux@vger.kernel.org, Danilo Krummrich Subject: [PATCH v3 20/27] rust: io: make IoMem and ExclusiveIoMem lifetime-parameterized Date: Sun, 17 May 2026 02:01:08 +0200 Message-ID: <20260517000149.3226762-21-dakr@kernel.org> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260517000149.3226762-1-dakr@kernel.org> References: <20260517000149.3226762-1-dakr@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QWRkIGEgbGlmZXRpbWUgcGFyYW1ldGVyIHRvIElvTWVtPCdib3VuZCwgU0laRT4gYW5kCkV4Y2x1 c2l2ZUlvTWVtPCdib3VuZCwgU0laRT4sIHN0b3JpbmcgYSAmJ2JvdW5kIERldmljZTxCb3VuZD4g cmVmZXJlbmNlCnRvIHRpZSB0aGUgbWFwcGluZyB0byB0aGUgZGV2aWNlJ3MgbGlmZXRpbWUuCgpU aGlzIG1pcnJvcnMgdGhlIHBjaTo6QmFyPCdib3VuZCwgU0laRT4gZGVzaWduIGFuZCBlbmFibGVz IGRyaXZlcnMgdG8KaG9sZCBJL08gbWVtb3J5IG1hcHBpbmdzIGRpcmVjdGx5IGluIHRoZWlyIEhS VCBwcml2YXRlIGRhdGEsIHRpZWQgdG8gdGhlCmRldmljZSBsaWZldGltZS4KCklvUmVxdWVzdDo6 aW9tYXBfKiBtZXRob2RzIG5vdyByZXR1cm4gdGhlIG1hcHBpbmcgZGlyZWN0bHkgaW5zdGVhZCBv Zgp3cmFwcGluZyBpdCBpbiBEZXZyZXMuIENhbGxlcnMgdGhhdCBuZWVkIGRldmljZS1tYW5hZ2Vk IHJldm9jYXRpb24gY2FuCmNhbGwgdGhlIG5ldyBpbnRvX2RldnJlcygpIG1ldGhvZC4KCkFja2Vk LWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dWtsZWluZWtAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1i eTogRGFuaWxvIEtydW1tcmljaCA8ZGFrckBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS90eXIvZHJpdmVyLnJzIHwgICA0ICstCiBkcml2ZXJzL3B3bS9wd21fdGgxNTIwLnJzICAgICB8 ICAgNCArLQogcnVzdC9rZXJuZWwvaW8vbWVtLnJzICAgICAgICAgfCAxMTUgKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCsp LCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHlyL2RyaXZl ci5ycyBiL2RyaXZlcnMvZ3B1L2RybS90eXIvZHJpdmVyLnJzCmluZGV4IDNhYzNiOTk3OTI2NC4u OGM5MTY5MTNlOTc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHlyL2RyaXZlci5ycwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdHlyL2RyaXZlci5ycwpAQCAtMzcsNyArMzcsNyBAQAogICAg IHJlZ3MsIC8vCiB9OwogCi1wdWIoY3JhdGUpIHR5cGUgSW9NZW0gPSBrZXJuZWw6OmlvOjptZW06 OklvTWVtPFNaXzJNPjsKK3B1YihjcmF0ZSkgdHlwZSBJb01lbSA9IGtlcm5lbDo6aW86Om1lbTo6 SW9NZW08J3N0YXRpYywgU1pfMk0+OwogCiBwdWIoY3JhdGUpIHN0cnVjdCBUeXJEcm1Ecml2ZXI7 CiAKQEAgLTExMCw3ICsxMTAsNyBAQCBmbiBwcm9iZTwnYm91bmQ+KAogICAgICAgICBsZXQgc3Jh bV9yZWd1bGF0b3IgPSBSZWd1bGF0b3I6OjxyZWd1bGF0b3I6OkVuYWJsZWQ+OjpnZXQocGRldi5h c19yZWYoKSwgYyJzcmFtIik/OwogCiAgICAgICAgIGxldCByZXF1ZXN0ID0gcGRldi5pb19yZXF1 ZXN0X2J5X2luZGV4KDApLm9rX29yKEVOT0RFVik/OwotICAgICAgICBsZXQgaW9tZW0gPSBBcmM6 OnBpbl9pbml0KHJlcXVlc3QuaW9tYXBfc2l6ZWQ6OjxTWl8yTT4oKSwgR0ZQX0tFUk5FTCk/Owor ICAgICAgICBsZXQgaW9tZW0gPSBBcmM6Om5ldyhyZXF1ZXN0LmlvbWFwX3NpemVkOjo8U1pfMk0+ KCk/LmludG9fZGV2cmVzKCk/LCBHRlBfS0VSTkVMKT87CiAKICAgICAgICAgaXNzdWVfc29mdF9y ZXNldChwZGV2LmFzX3JlZigpLCAmaW9tZW0pPzsKICAgICAgICAgZ3B1OjpsMl9wb3dlcl9vbihw ZGV2LmFzX3JlZigpLCAmaW9tZW0pPzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcHdtL3B3bV90aDE1 MjAucnMgYi9kcml2ZXJzL3B3bS9wd21fdGgxNTIwLnJzCmluZGV4IDFhYmY1ODA2NTNmYS4uYzg0 MzIxYTRkOTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3B3bS9wd21fdGgxNTIwLnJzCisrKyBiL2Ry aXZlcnMvcHdtL3B3bV90aDE1MjAucnMKQEAgLTkyLDcgKzkyLDcgQEAgc3RydWN0IFRoMTUyMFdm SHcgewogI1twaW5fZGF0YShQaW5uZWREcm9wKV0KIHN0cnVjdCBUaDE1MjBQd21Ecml2ZXJEYXRh IHsKICAgICAjW3Bpbl0KLSAgICBpb21lbTogZGV2cmVzOjpEZXZyZXM8SW9NZW08VEgxNTIwX1BX TV9SRUdfU0laRT4+LAorICAgIGlvbWVtOiBkZXZyZXM6OkRldnJlczxJb01lbTwnc3RhdGljLCBU SDE1MjBfUFdNX1JFR19TSVpFPj4sCiAgICAgY2xrOiBDbGssCiB9CiAKQEAgLTM1Miw3ICszNTIs NyBAQCBmbiBwcm9iZTwnYm91bmQ+KAogICAgICAgICAgICAgZGV2LAogICAgICAgICAgICAgVEgx NTIwX01BWF9QV01fTlVNLAogICAgICAgICAgICAgdHJ5X3Bpbl9pbml0IShUaDE1MjBQd21Ecml2 ZXJEYXRhIHsKLSAgICAgICAgICAgICAgICBpb21lbSA8LSByZXF1ZXN0LmlvbWFwX3NpemVkOjo8 VEgxNTIwX1BXTV9SRUdfU0laRT4oKSwKKyAgICAgICAgICAgICAgICBpb21lbSA8LSByZXF1ZXN0 LmlvbWFwX3NpemVkOjo8VEgxNTIwX1BXTV9SRUdfU0laRT4oKT8uaW50b19kZXZyZXMoKSwKICAg ICAgICAgICAgICAgICBjbGsgPC0gY2xrLAogICAgICAgICAgICAgfSksCiAgICAgICAgICk/Owpk aWZmIC0tZ2l0IGEvcnVzdC9rZXJuZWwvaW8vbWVtLnJzIGIvcnVzdC9rZXJuZWwvaW8vbWVtLnJz CmluZGV4IDFiMzRmN2ViZDkyOS4uYjUwMTVkMDIwZWZhIDEwMDY0NAotLS0gYS9ydXN0L2tlcm5l bC9pby9tZW0ucnMKKysrIGIvcnVzdC9rZXJuZWwvaW8vbWVtLnJzCkBAIC0yMywxOSArMjMsMTkg QEAKIH07CiAKIC8vLyBBbiBJTyByZXF1ZXN0IGZvciBhIHNwZWNpZmljIGRldmljZSBhbmQgcmVz b3VyY2UuCi1wdWIgc3RydWN0IElvUmVxdWVzdDwnYT4gewotICAgIGRldmljZTogJidhIERldmlj ZTxCb3VuZD4sCi0gICAgcmVzb3VyY2U6ICYnYSBSZXNvdXJjZSwKK3B1YiBzdHJ1Y3QgSW9SZXF1 ZXN0PCdib3VuZD4geworICAgIGRldmljZTogJidib3VuZCBEZXZpY2U8Qm91bmQ+LAorICAgIHJl c291cmNlOiAmJ2JvdW5kIFJlc291cmNlLAogfQogCi1pbXBsPCdhPiBJb1JlcXVlc3Q8J2E+IHsK K2ltcGw8J2JvdW5kPiBJb1JlcXVlc3Q8J2JvdW5kPiB7CiAgICAgLy8vIENyZWF0ZXMgYSBuZXcg W2BJb1JlcXVlc3RgXSBpbnN0YW5jZS4KICAgICAvLy8KICAgICAvLy8gIyBTYWZldHkKICAgICAv Ly8KICAgICAvLy8gQ2FsbGVycyBtdXN0IGVuc3VyZSB0aGF0IGByZXNvdXJjZWAgaXMgdmFsaWQg Zm9yIGBkZXZpY2VgIGR1cmluZyB0aGUKLSAgICAvLy8gbGlmZXRpbWUgYCdhYC4KLSAgICBwdWIo Y3JhdGUpIHVuc2FmZSBmbiBuZXcoZGV2aWNlOiAmJ2EgRGV2aWNlPEJvdW5kPiwgcmVzb3VyY2U6 ICYnYSBSZXNvdXJjZSkgLT4gU2VsZiB7CisgICAgLy8vIGxpZmV0aW1lIGAnYm91bmRgLgorICAg IHB1YihjcmF0ZSkgdW5zYWZlIGZuIG5ldyhkZXZpY2U6ICYnYm91bmQgRGV2aWNlPEJvdW5kPiwg cmVzb3VyY2U6ICYnYm91bmQgUmVzb3VyY2UpIC0+IFNlbGYgewogICAgICAgICBJb1JlcXVlc3Qg eyBkZXZpY2UsIHJlc291cmNlIH0KICAgICB9CiAKQEAgLTc0LDIyICs3NCwxOSBAQCBwdWIoY3Jh dGUpIHVuc2FmZSBmbiBuZXcoZGV2aWNlOiAmJ2EgRGV2aWNlPEJvdW5kPiwgcmVzb3VyY2U6ICYn YSBSZXNvdXJjZSkgLT4gUwogICAgIC8vLyAgICAgICAvLwogICAgIC8vLyAgICAgICAvLyBObyBy dW50aW1lIGNoZWNrcyB3aWxsIGFwcGx5IHdoZW4gcmVhZGluZyBhbmQgd3JpdGluZy4KICAgICAv Ly8gICAgICAgbGV0IHJlcXVlc3QgPSBwZGV2LmlvX3JlcXVlc3RfYnlfaW5kZXgoMCkub2tfb3Io RU5PREVWKT87Ci0gICAgLy8vICAgICAgIGxldCBpb21lbSA9IHJlcXVlc3QuaW9tYXBfc2l6ZWQ6 Ojw0Mj4oKTsKLSAgICAvLy8gICAgICAgbGV0IGlvbWVtID0gS0JveDo6cGluX2luaXQoaW9tZW0s IEdGUF9LRVJORUwpPzsKLSAgICAvLy8KLSAgICAvLy8gICAgICAgbGV0IGlvID0gaW9tZW0uYWNj ZXNzKHBkZXYuYXNfcmVmKCkpPzsKKyAgICAvLy8gICAgICAgbGV0IGlvbWVtID0gcmVxdWVzdC5p b21hcF9zaXplZDo6PDQyPigpPzsKICAgICAvLy8KICAgICAvLy8gICAgICAgLy8gUmVhZCBhbmQg d3JpdGUgYSAzMi1iaXQgdmFsdWUgYXQgYG9mZnNldGAuCi0gICAgLy8vICAgICAgIGxldCBkYXRh ID0gaW8ucmVhZDMyKG9mZnNldCk7CisgICAgLy8vICAgICAgIGxldCBkYXRhID0gaW9tZW0ucmVh ZDMyKG9mZnNldCk7CiAgICAgLy8vCi0gICAgLy8vICAgICAgIGlvLndyaXRlMzIoZGF0YSwgb2Zm c2V0KTsKKyAgICAvLy8gICAgICAgaW9tZW0ud3JpdGUzMihkYXRhLCBvZmZzZXQpOwogICAgIC8v LwogICAgIC8vLyAgICAgICAjIE9rKFNhbXBsZURyaXZlcikKICAgICAvLy8gICAgIH0KICAgICAv Ly8gfQogICAgIC8vLyBgYGAKLSAgICBwdWIgZm4gaW9tYXBfc2l6ZWQ8Y29uc3QgU0laRTogdXNp emU+KHNlbGYpIC0+IGltcGwgUGluSW5pdDxEZXZyZXM8SW9NZW08U0laRT4+LCBFcnJvcj4gKyAn YSB7Ci0gICAgICAgIElvTWVtOjpuZXcoc2VsZikKKyAgICBwdWIgZm4gaW9tYXBfc2l6ZWQ8Y29u c3QgU0laRTogdXNpemU+KHNlbGYpIC0+IFJlc3VsdDxJb01lbTwnYm91bmQsIFNJWkU+PiB7Cisg ICAgICAgIElvTWVtOjppb3JlbWFwKHNlbGYuZGV2aWNlLCBzZWxmLnJlc291cmNlKQogICAgIH0K IAogICAgIC8vLyBTYW1lIGFzIFtgU2VsZjo6aW9tYXBfc2l6ZWRgXSBidXQgd2l0aCBleGNsdXNp dmUgYWNjZXNzIHRvIHRoZQpAQCAtOTgsMTAgKzk1LDggQEAgcHViIGZuIGlvbWFwX3NpemVkPGNv bnN0IFNJWkU6IHVzaXplPihzZWxmKSAtPiBpbXBsIFBpbkluaXQ8RGV2cmVzPElvTWVtPFNJWkU+ PiwKICAgICAvLy8gVGhpcyB1c2VzIHRoZSBbYGlvcmVtYXAoKWBdIEMgQVBJLgogICAgIC8vLwog ICAgIC8vLyBbYGlvcmVtYXAoKWBdOiBodHRwczovL2RvY3Mua2VybmVsLm9yZy9kcml2ZXItYXBp L2RldmljZS1pby5odG1sI2dldHRpbmctYWNjZXNzLXRvLXRoZS1kZXZpY2UKLSAgICBwdWIgZm4g aW9tYXBfZXhjbHVzaXZlX3NpemVkPGNvbnN0IFNJWkU6IHVzaXplPigKLSAgICAgICAgc2VsZiwK LSAgICApIC0+IGltcGwgUGluSW5pdDxEZXZyZXM8RXhjbHVzaXZlSW9NZW08U0laRT4+LCBFcnJv cj4gKyAnYSB7Ci0gICAgICAgIEV4Y2x1c2l2ZUlvTWVtOjpuZXcoc2VsZikKKyAgICBwdWIgZm4g aW9tYXBfZXhjbHVzaXZlX3NpemVkPGNvbnN0IFNJWkU6IHVzaXplPihzZWxmKSAtPiBSZXN1bHQ8 RXhjbHVzaXZlSW9NZW08J2JvdW5kLCBTSVpFPj4geworICAgICAgICBFeGNsdXNpdmVJb01lbTo6 aW9yZW1hcChzZWxmLmRldmljZSwgc2VsZi5yZXNvdXJjZSkKICAgICB9CiAKICAgICAvLy8gTWFw cyBhbiBbYElvUmVxdWVzdGBdIHdoZXJlIHRoZSBzaXplIGlzIG5vdCBrbm93biBhdCBjb21waWxl IHRpbWUsCkBAIC0xNDAsMjcgKzEzNSwyNCBAQCBwdWIgZm4gaW9tYXBfZXhjbHVzaXZlX3NpemVk PGNvbnN0IFNJWkU6IHVzaXplPigKICAgICAvLy8gICAgICAgLy8gZmFtaWx5IG9mIGZ1bmN0aW9u cyBzaG91bGQgYmUgdXNlZCwgbGVhZGluZyB0byBydW50aW1lIGNoZWNrcyBvbiBldmVyeQogICAg IC8vLyAgICAgICAvLyBhY2Nlc3MuCiAgICAgLy8vICAgICAgIGxldCByZXF1ZXN0ID0gcGRldi5p b19yZXF1ZXN0X2J5X2luZGV4KDApLm9rX29yKEVOT0RFVik/OwotICAgIC8vLyAgICAgICBsZXQg aW9tZW0gPSByZXF1ZXN0LmlvbWFwKCk7Ci0gICAgLy8vICAgICAgIGxldCBpb21lbSA9IEtCb3g6 OnBpbl9pbml0KGlvbWVtLCBHRlBfS0VSTkVMKT87Ci0gICAgLy8vCi0gICAgLy8vICAgICAgIGxl dCBpbyA9IGlvbWVtLmFjY2VzcyhwZGV2LmFzX3JlZigpKT87CisgICAgLy8vICAgICAgIGxldCBp b21lbSA9IHJlcXVlc3QuaW9tYXAoKT87CiAgICAgLy8vCi0gICAgLy8vICAgICAgIGxldCBkYXRh ID0gaW8udHJ5X3JlYWQzMihvZmZzZXQpPzsKKyAgICAvLy8gICAgICAgbGV0IGRhdGEgPSBpb21l bS50cnlfcmVhZDMyKG9mZnNldCk/OwogICAgIC8vLwotICAgIC8vLyAgICAgICBpby50cnlfd3Jp dGUzMihkYXRhLCBvZmZzZXQpPzsKKyAgICAvLy8gICAgICAgaW9tZW0udHJ5X3dyaXRlMzIoZGF0 YSwgb2Zmc2V0KT87CiAgICAgLy8vCiAgICAgLy8vICAgICAgICMgT2soU2FtcGxlRHJpdmVyKQog ICAgIC8vLyAgICAgfQogICAgIC8vLyB9CiAgICAgLy8vIGBgYAotICAgIHB1YiBmbiBpb21hcChz ZWxmKSAtPiBpbXBsIFBpbkluaXQ8RGV2cmVzPElvTWVtPDA+PiwgRXJyb3I+ICsgJ2EgewotICAg ICAgICBTZWxmOjppb21hcF9zaXplZDo6PDA+KHNlbGYpCisgICAgcHViIGZuIGlvbWFwKHNlbGYp IC0+IFJlc3VsdDxJb01lbTwnYm91bmQ+PiB7CisgICAgICAgIHNlbGYuaW9tYXBfc2l6ZWQ6Ojww PigpCiAgICAgfQogCiAgICAgLy8vIFNhbWUgYXMgW2BTZWxmOjppb21hcGBdIGJ1dCB3aXRoIGV4 Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcKICAgICAvLy8gcmVnaW9uLgotICAgIHB1 YiBmbiBpb21hcF9leGNsdXNpdmUoc2VsZikgLT4gaW1wbCBQaW5Jbml0PERldnJlczxFeGNsdXNp dmVJb01lbTwwPj4sIEVycm9yPiArICdhIHsKLSAgICAgICAgU2VsZjo6aW9tYXBfZXhjbHVzaXZl X3NpemVkOjo8MD4oc2VsZikKKyAgICBwdWIgZm4gaW9tYXBfZXhjbHVzaXZlKHNlbGYpIC0+IFJl c3VsdDxFeGNsdXNpdmVJb01lbTwnYm91bmQsIDA+PiB7CisgICAgICAgIHNlbGYuaW9tYXBfZXhj bHVzaXZlX3NpemVkOjo8MD4oKQogICAgIH0KIH0KIApAQCAtMTY5LDkgKzE2MSw5IEBAIHB1YiBm biBpb21hcF9leGNsdXNpdmUoc2VsZikgLT4gaW1wbCBQaW5Jbml0PERldnJlczxFeGNsdXNpdmVJ b01lbTwwPj4sIEVycm9yPiArCiAvLy8gIyBJbnZhcmlhbnRzCiAvLy8KIC8vLyAtIFtgRXhjbHVz aXZlSW9NZW1gXSBoYXMgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBbYElvTWVt YF0uCi1wdWIgc3RydWN0IEV4Y2x1c2l2ZUlvTWVtPGNvbnN0IFNJWkU6IHVzaXplPiB7CitwdWIg c3RydWN0IEV4Y2x1c2l2ZUlvTWVtPCdib3VuZCwgY29uc3QgU0laRTogdXNpemU+IHsKICAgICAv Ly8gVGhlIHVuZGVybHlpbmcgYElvTWVtYCBpbnN0YW5jZS4KLSAgICBpb21lbTogSW9NZW08U0la RT4sCisgICAgaW9tZW06IElvTWVtPCdib3VuZCwgU0laRT4sCiAKICAgICAvLy8gVGhlIHJlZ2lv biBhYnN0cmFjdGlvbi4gVGhpcyByZXByZXNlbnRzIGV4Y2x1c2l2ZSBhY2Nlc3MgdG8gdGhlCiAg ICAgLy8vIHJhbmdlIHJlcHJlc2VudGVkIGJ5IHRoZSB1bmRlcmx5aW5nIGBpb21lbWAuCkBAIC0x ODAsOSArMTcyLDkgQEAgcHViIHN0cnVjdCBFeGNsdXNpdmVJb01lbTxjb25zdCBTSVpFOiB1c2l6 ZT4gewogICAgIF9yZWdpb246IFJlZ2lvbiwKIH0KIAotaW1wbDxjb25zdCBTSVpFOiB1c2l6ZT4g RXhjbHVzaXZlSW9NZW08U0laRT4geworaW1wbDwnYm91bmQsIGNvbnN0IFNJWkU6IHVzaXplPiBF eGNsdXNpdmVJb01lbTwnYm91bmQsIFNJWkU+IHsKICAgICAvLy8gQ3JlYXRlcyBhIG5ldyBgRXhj bHVzaXZlSW9NZW1gIGluc3RhbmNlLgotICAgIGZuIGlvcmVtYXAocmVzb3VyY2U6ICZSZXNvdXJj ZSkgLT4gUmVzdWx0PFNlbGY+IHsKKyAgICBmbiBpb3JlbWFwKGRldjogJidib3VuZCBEZXZpY2U8 Qm91bmQ+LCByZXNvdXJjZTogJlJlc291cmNlKSAtPiBSZXN1bHQ8U2VsZj4gewogICAgICAgICBs ZXQgc3RhcnQgPSByZXNvdXJjZS5zdGFydCgpOwogICAgICAgICBsZXQgc2l6ZSA9IHJlc291cmNl LnNpemUoKTsKICAgICAgICAgbGV0IG5hbWUgPSByZXNvdXJjZS5uYW1lKCkudW53cmFwX29yX2Rl ZmF1bHQoKTsKQEAgLTE5NiwyNiArMTg4LDI5IEBAIGZuIGlvcmVtYXAocmVzb3VyY2U6ICZSZXNv dXJjZSkgLT4gUmVzdWx0PFNlbGY+IHsKICAgICAgICAgICAgICkKICAgICAgICAgICAgIC5va19v cihFQlVTWSk/OwogCi0gICAgICAgIGxldCBpb21lbSA9IElvTWVtOjppb3JlbWFwKHJlc291cmNl KT87CisgICAgICAgIGxldCBpb21lbSA9IElvTWVtOjppb3JlbWFwKGRldiwgcmVzb3VyY2UpPzsK IAotICAgICAgICBsZXQgaW9tZW0gPSBFeGNsdXNpdmVJb01lbSB7CisgICAgICAgIE9rKEV4Y2x1 c2l2ZUlvTWVtIHsKICAgICAgICAgICAgIGlvbWVtLAogICAgICAgICAgICAgX3JlZ2lvbjogcmVn aW9uLAotICAgICAgICB9OwotCi0gICAgICAgIE9rKGlvbWVtKQorICAgICAgICB9KQogICAgIH0K IAotICAgIC8vLyBDcmVhdGVzIGEgbmV3IGBFeGNsdXNpdmVJb01lbWAgaW5zdGFuY2UgZnJvbSBh IHByZXZpb3VzbHkgYWNxdWlyZWQgW2BJb1JlcXVlc3RgXS4KLSAgICBwdWIgZm4gbmV3PCdhPihp b19yZXF1ZXN0OiBJb1JlcXVlc3Q8J2E+KSAtPiBpbXBsIFBpbkluaXQ8RGV2cmVzPFNlbGY+LCBF cnJvcj4gKyAnYSB7Ci0gICAgICAgIGxldCBkZXYgPSBpb19yZXF1ZXN0LmRldmljZTsKLSAgICAg ICAgbGV0IHJlcyA9IGlvX3JlcXVlc3QucmVzb3VyY2U7Ci0KLSAgICAgICAgRGV2cmVzOjpuZXco ZGV2LCBTZWxmOjppb3JlbWFwKHJlcykpCisgICAgLy8vIENvbnN1bWUgdGhlIGBFeGNsdXNpdmVJ b01lbWAgYW5kIHJlZ2lzdGVyIGl0IGFzIGEgZGV2aWNlLW1hbmFnZWQgcmVzb3VyY2UuCisgICAg Ly8vCisgICAgLy8vIFRoZSByZXR1cm5lZCBgRGV2cmVzPEV4Y2x1c2l2ZUlvTWVtPCdzdGF0aWMs IFNJWkU+PmAgY2FuIG91dGxpdmUgdGhlIG9yaWdpbmFsIGxpZmV0aW1lCisgICAgLy8vIGAnYm91 bmRgLiBBY2Nlc3MgdG8gdGhlIEkvTyBtZW1vcnkgaXMgcmV2b2tlZCB3aGVuIHRoZSBkZXZpY2Ug aXMgdW5ib3VuZC4KKyAgICBwdWIgZm4gaW50b19kZXZyZXMoc2VsZikgLT4gUmVzdWx0PERldnJl czxFeGNsdXNpdmVJb01lbTwnc3RhdGljLCBTSVpFPj4+IHsKKyAgICAgICAgLy8gU0FGRVRZOiBD YXN0aW5nIHRvIGAnc3RhdGljYCBpcyBzb3VuZCBiZWNhdXNlIGBEZXZyZXNgIGd1YXJhbnRlZXMg dGhlCisgICAgICAgIC8vIGBFeGNsdXNpdmVJb01lbWAgZG9lcyBub3QgYWN0dWFsbHkgb3V0bGl2 ZSB0aGUgZGV2aWNlIC0tIGFjY2VzcyBpcyByZXZva2VkIGFuZCB0aGUKKyAgICAgICAgLy8gcmVz b3VyY2UgaXMgcmVsZWFzZWQgd2hlbiB0aGUgZGV2aWNlIGlzIHVuYm91bmQuCisgICAgICAgIGxl dCBpb21lbTogRXhjbHVzaXZlSW9NZW08J3N0YXRpYywgU0laRT4gPSB1bnNhZmUgeyBjb3JlOjpt ZW06OnRyYW5zbXV0ZShzZWxmKSB9OworICAgICAgICBsZXQgZGV2ID0gaW9tZW0uaW9tZW0uZGV2 OworICAgICAgICBEZXZyZXM6Om5ldyhkZXYsIGlvbWVtKQogICAgIH0KIH0KIAotaW1wbDxjb25z dCBTSVpFOiB1c2l6ZT4gRGVyZWYgZm9yIEV4Y2x1c2l2ZUlvTWVtPFNJWkU+IHsKK2ltcGw8Y29u c3QgU0laRTogdXNpemU+IERlcmVmIGZvciBFeGNsdXNpdmVJb01lbTwnXywgU0laRT4gewogICAg IHR5cGUgVGFyZ2V0ID0gTW1pbzxTSVpFPjsKIAogICAgIGZuIGRlcmVmKCZzZWxmKSAtPiAmU2Vs Zjo6VGFyZ2V0IHsKQEAgLTIzMiwxMiArMjI3LDEzIEBAIGZuIGRlcmVmKCZzZWxmKSAtPiAmU2Vs Zjo6VGFyZ2V0IHsKIC8vLwogLy8vIFtgSW9NZW1gXSBhbHdheXMgaG9sZHMgYW4gW2BNbWlvUmF3 YF0gaW5zdGFuY2UgdGhhdCBob2xkcyBhIHZhbGlkIHBvaW50ZXIgdG8gdGhlCiAvLy8gc3RhcnQg b2YgdGhlIEkvTyBtZW1vcnkgbWFwcGVkIHJlZ2lvbi4KLXB1YiBzdHJ1Y3QgSW9NZW08Y29uc3Qg U0laRTogdXNpemUgPSAwPiB7CitwdWIgc3RydWN0IElvTWVtPCdib3VuZCwgY29uc3QgU0laRTog dXNpemUgPSAwPiB7CisgICAgZGV2OiAmJ2JvdW5kIERldmljZTxCb3VuZD4sCiAgICAgaW86IE1t aW9SYXc8U0laRT4sCiB9CiAKLWltcGw8Y29uc3QgU0laRTogdXNpemU+IElvTWVtPFNJWkU+IHsK LSAgICBmbiBpb3JlbWFwKHJlc291cmNlOiAmUmVzb3VyY2UpIC0+IFJlc3VsdDxTZWxmPiB7Citp bXBsPCdib3VuZCwgY29uc3QgU0laRTogdXNpemU+IElvTWVtPCdib3VuZCwgU0laRT4geworICAg IGZuIGlvcmVtYXAoZGV2OiAmJ2JvdW5kIERldmljZTxCb3VuZD4sIHJlc291cmNlOiAmUmVzb3Vy Y2UpIC0+IFJlc3VsdDxTZWxmPiB7CiAgICAgICAgIC8vIE5vdGU6IFNvbWUgaW9yZW1hcCgpIGlt cGxlbWVudGF0aW9ucyB1c2UgdHlwZXMgdGhhdCBkZXBlbmQgb24gdGhlIENQVQogICAgICAgICAv LyB3b3JkIHdpZHRoIHJhdGhlciB0aGFuIHRoZSBidXMgYWRkcmVzcyB3aWR0aC4KICAgICAgICAg Ly8KQEAgLTI2OSwyOCArMjY1LDMzIEBAIGZuIGlvcmVtYXAocmVzb3VyY2U6ICZSZXNvdXJjZSkg LT4gUmVzdWx0PFNlbGY+IHsKICAgICAgICAgfQogCiAgICAgICAgIGxldCBpbyA9IE1taW9SYXc6 Om5ldyhhZGRyIGFzIHVzaXplLCBzaXplKT87Ci0gICAgICAgIGxldCBpbyA9IElvTWVtIHsgaW8g fTsKIAotICAgICAgICBPayhpbykKKyAgICAgICAgT2soSW9NZW0geyBkZXYsIGlvIH0pCiAgICAg fQogCi0gICAgLy8vIENyZWF0ZXMgYSBuZXcgYElvTWVtYCBpbnN0YW5jZSBmcm9tIGEgcHJldmlv dXNseSBhY3F1aXJlZCBbYElvUmVxdWVzdGBdLgotICAgIHB1YiBmbiBuZXc8J2E+KGlvX3JlcXVl c3Q6IElvUmVxdWVzdDwnYT4pIC0+IGltcGwgUGluSW5pdDxEZXZyZXM8U2VsZj4sIEVycm9yPiAr ICdhIHsKLSAgICAgICAgbGV0IGRldiA9IGlvX3JlcXVlc3QuZGV2aWNlOwotICAgICAgICBsZXQg cmVzID0gaW9fcmVxdWVzdC5yZXNvdXJjZTsKLQotICAgICAgICBEZXZyZXM6Om5ldyhkZXYsIFNl bGY6OmlvcmVtYXAocmVzKSkKKyAgICAvLy8gQ29uc3VtZSB0aGUgYElvTWVtYCBhbmQgcmVnaXN0 ZXIgaXQgYXMgYSBkZXZpY2UtbWFuYWdlZCByZXNvdXJjZS4KKyAgICAvLy8KKyAgICAvLy8gVGhl IHJldHVybmVkIGBEZXZyZXM8SW9NZW08J3N0YXRpYywgU0laRT4+YCBjYW4gb3V0bGl2ZSB0aGUg b3JpZ2luYWwKKyAgICAvLy8gbGlmZXRpbWUgYCdib3VuZGAuIEFjY2VzcyB0byB0aGUgSS9PIG1l bW9yeSBpcyByZXZva2VkIHdoZW4gdGhlIGRldmljZQorICAgIC8vLyBpcyB1bmJvdW5kLgorICAg IHB1YiBmbiBpbnRvX2RldnJlcyhzZWxmKSAtPiBSZXN1bHQ8RGV2cmVzPElvTWVtPCdzdGF0aWMs IFNJWkU+Pj4geworICAgICAgICAvLyBTQUZFVFk6IENhc3RpbmcgdG8gYCdzdGF0aWNgIGlzIHNv dW5kIGJlY2F1c2UgYERldnJlc2AgZ3VhcmFudGVlcyB0aGUgYElvTWVtYCBkb2VzIG5vdAorICAg ICAgICAvLyBhY3R1YWxseSBvdXRsaXZlIHRoZSBkZXZpY2UgLS0gYWNjZXNzIGlzIHJldm9rZWQg YW5kIHRoZSByZXNvdXJjZSBpcyByZWxlYXNlZCB3aGVuIHRoZQorICAgICAgICAvLyBkZXZpY2Ug aXMgdW5ib3VuZC4KKyAgICAgICAgbGV0IGlvbWVtOiBJb01lbTwnc3RhdGljLCBTSVpFPiA9IHVu c2FmZSB7IGNvcmU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpIH07CisgICAgICAgIGxldCBkZXYgPSBp b21lbS5kZXY7CisgICAgICAgIERldnJlczo6bmV3KGRldiwgaW9tZW0pCiAgICAgfQogfQogCi1p bXBsPGNvbnN0IFNJWkU6IHVzaXplPiBEcm9wIGZvciBJb01lbTxTSVpFPiB7CitpbXBsPGNvbnN0 IFNJWkU6IHVzaXplPiBEcm9wIGZvciBJb01lbTwnXywgU0laRT4gewogICAgIGZuIGRyb3AoJm11 dCBzZWxmKSB7CiAgICAgICAgIC8vIFNBRkVUWTogU2FmZSBhcyBieSB0aGUgaW52YXJpYW50IG9m IGBJb2AuCiAgICAgICAgIHVuc2FmZSB7IGJpbmRpbmdzOjppb3VubWFwKHNlbGYuaW8uYWRkcigp IGFzICptdXQgY192b2lkKSB9CiAgICAgfQogfQogCi1pbXBsPGNvbnN0IFNJWkU6IHVzaXplPiBE ZXJlZiBmb3IgSW9NZW08U0laRT4geworaW1wbDxjb25zdCBTSVpFOiB1c2l6ZT4gRGVyZWYgZm9y IElvTWVtPCdfLCBTSVpFPiB7CiAgICAgdHlwZSBUYXJnZXQgPSBNbWlvPFNJWkU+OwogCiAgICAg Zm4gZGVyZWYoJnNlbGYpIC0+ICZTZWxmOjpUYXJnZXQgewotLSAKMi41NC4wCgo=