From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 29DCD3858C74 for ; Fri, 26 Aug 2022 11:15:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 29DCD3858C74 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.93,265,1654588800"; d="diff'?scan'208,217";a="81862680" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 26 Aug 2022 03:15:32 -0800 IronPort-SDR: lJyGBGKrL+p1zCRsKDxC1Uw5mUh5JHnyaumyUtQ+St8a1F0sFfKYy7RA01p6dYsVpom4QXFuxQ MVt1tBVb/9HpTs2ZhuEC2eD2prnHgk/c0eSu8kD1kNFNg1UePt5w3U06zEbXbDdVPTLgWwZO5V drfo0QWXNp2GfPEwngyYTBgpLaEVxAY3ro3KOuh78xpZ/e5uaFmL+0+p67oWIAvFdff+zOV8Qn UqVWvPfLWcFgD0FTqhFT6Hc0KRYZ2RYDk01ld9VUeJf0x5v/Wdt2mT+UubPvzI24uZvfaet+6o ww4= Content-Type: multipart/mixed; boundary="------------LSlN3b0wZY4FFWQoK0g19A9A" Message-ID: Date: Fri, 26 Aug 2022 13:15:24 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Content-Language: en-US To: gcc-patches , Jakub Jelinek From: Tobias Burnus Subject: [Patch] libgomp: Add reverse-offload splay tree X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE, KAM_DMARC_STATUS, KAM_SHORT, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2022 11:15:38 -0000 --------------LSlN3b0wZY4FFWQoK0g19A9A Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: quoted-printable For reverse-offload data handling, we need to support: (a) device fn addr -> host fn address (b) finding already mapped host -> device vars via their device address For (a), the functions addrs, we need some extra code (cf. previous patches= ) as this information does not exist already. For (b), the variables, we have two options: (i) Do a reverse search on the existing data. That's done in oacc-mem.c's lookup_dev and obviously is O(N) as it has to check all nodes. With the assumption "This is not expected to be a common operation." is might be still okay. (ii) Using a second splay tree for the reverse lookup. The attached patch prepares for this =E2=80=93 but does not yet handle all locations and is not yet active. The 'devicep->load_image_func' call depends whether the previous [1/3] patch (cf. below) has been applied or not. (The advantage of the reverse-offload mapping is that 'nowait' is not permitted and 'target {enter,exit,} data device(anchestor:1)' is neither. Thus, all 'omp target device(ancestor:1)' mapping done in target_rev can be undone in the same function - and all others are preexisting.) OK for mainline? Tobias PS: Still to be done (for nvptx, for gcn a bit more is needed): - handle remaining var-mapping cases - gomp_target_rev - mainly: handle all of map/firstprivate. - turn on reverse-offload support (accept omp_requires) + add tons of testcases. Pending reverse-offload patches (libgomp only with abit gcc/config/{gcn,nvp= tx}): [Patch][1/3] libgomp: Prepare for reverse offload fn lookup [Patch][2/3] GCN: libgomp+mkoffload.cc: Prepare for reverse offload fn look= up [Patch][2/3] nvptx: libgomp+mkoffload.cc: Prepare for reverse offload fn lo= okup [1/3] is at: https://gcc.gnu.org/pipermail/gcc-patches/2022-August/600333.h= tml [Patch] libgomp/nvptx: Prepare for reverse-offload callback handling https://gcc.gnu.org/pipermail/gcc-patches/2022-August/600381.html ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------LSlN3b0wZY4FFWQoK0g19A9A Content-Type: text/x-patch; charset="UTF-8"; name="libgomp-splay-rev.diff" Content-Disposition: attachment; filename="libgomp-splay-rev.diff" Content-Transfer-Encoding: base64 bGliZ29tcDogQWRkIHJldmVyc2Utb2ZmbG9hZCBzcGxheSB0cmVlCgpBZGRzIGEgc3BsYXkg dHJlZSBmb3IgcmV2ZXJzZSBvZmZsb2FkaW5nOyBlZmZlY3RpdmVseSwgaXQgaXMgbm90IHll dApmaWxsZWQgYXMgcmV2ZXJzZSBvZmZsb2FkIGlzIG5vdCBlbmFibGVkIGZvciBhbnkgZGV2 aWNlIHR5cGUuIEl0IGFsc28KZG9lcyBub3QgeWV0IHRyYWNrIHZhcmlhYmxlcyBsYXRlciBt YXBwZWQgKGFuZCB0aGVuIHVubWFwcGVkKS4gVGhvc2UKd2lsbCBiZSBhZGRlZCBpbiBmb2xs b3ctdXAgY29tbWl0cy4KCmxpYmdvbXAvQ2hhbmdlTG9nOgoKCSogbGliZ29tcC5oOiBJbmNs dWRlIHNwbGF5LXRyZWUuaCB3aXRoIHNwbGF5X3RyZWVfcHJlZml4IHNldCB0bwoJJ3JldmVy c2UnLgoJKHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MpOiBEZWNsYXJlIGF0IG9sZCBsaW5lOyBt b3ZlCglkZWZpbml0aW9uIGRvd24gYW5kIGFkZCAncmV2ZXJzZV9zcGxheV90cmVlX25vZGUg cmV2X2FycmF5JyBtZW1iZXIuCgkoc3RydWN0IHJldmVyc2Vfc3BsYXlfdHJlZV9rZXlfcywg cmV2ZXJzZV9zcGxheV9jb21wYXJlKTogTmV3LgoJKHJldmVyc2Vfc3BsYXlfdHJlZV9ub2Rl LCByZXZlcnNlX3NwbGF5X3RyZWUsIHJldmVyc2Vfc3BsYXlfdHJlZV9rZXkpOgoJTmV3IHR5 cGVkZWYuCgkoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyKTogQWRkICdyZXZlcnNlX3NwbGF5 X3RyZWVfcyBtZW1fbWFwX3JldicuCgkqIG9hY2MtaG9zdC5jIChob3N0X2Rpc3BhdGNoKTog TlVMTCBpbml0IG1lbV9tYXBfcmV2LgoJKiB0YXJnZXQuYzogSW5jbHVkZSBzcGxheS10cmVl Lmggd2l0aCBzcGxheV90cmVlX2Mgc2V0IGFuZAoJc3BsYXlfdHJlZV9wcmVmaXggc2V0IHRv ICdyZXZlcnNlJy4KCShnb21wX21hcF9sb29rdXBfcmV2KTogTmV3IGZ1bmN0aW9uIChmb3Ig bm93IGluc2lkZSAnI2lmIDAnKS4KCShnb21wX3VubWFwX3RndCk6IEZyZWUgYXJyYXlfcmV2 LgoJKGdvbXBfbG9hZF9pbWFnZV90b19kZXZpY2UpOiBGaWxsIHJldmVyc2Utb2ZmbG9hZCBz cGxheSB0cmVlIHdpdGgKCWZ1bmN0IGFuZCB2YXIgYWRkcmVzcy4KCShnb21wX3VubG9hZF9p bWFnZV9mcm9tX2RldmljZSk6IEVtcHR5IHJldmVyc2Utb2ZmbG9hZCBzcGxheSB0cmVlLgoJ KGdvbXBfdGFyZ2V0X2luaXQpOiBJbml0IG1lbV9tYXBfcmV2LgoKIGxpYmdvbXAvbGliZ29t cC5oICAgfCA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLQogbGliZ29tcC9vYWNjLWhvc3QuYyB8ICAxICsKIGxpYmdvbXAvdGFyZ2V0 LmMgICAgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9saWJnb21wL2xpYmdvbXAuaCBiL2xpYmdvbXAvbGliZ29t cC5oCmluZGV4IGMyNDNjNGQ2Y2Y0Li4xMDUxOGE4MzQ4YiAxMDA2NDQKLS0tIGEvbGliZ29t cC9saWJnb21wLmgKKysrIGIvbGliZ29tcC9saWJnb21wLmgKQEAgLTEwMzgsMjkgKzEwMzgs NyBAQCBzdHJ1Y3QgdGFyZ2V0X3Zhcl9kZXNjIHsKICAgdWludHB0cl90IGxlbmd0aDsKIH07 CiAKLXN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgewotICAvKiBSZWZlcmVuY2UgY291bnQuICAq LwotICB1aW50cHRyX3QgcmVmY291bnQ7Ci0gIC8qIEFsbCB0aGUgc3BsYXkgbm9kZXMgYWxs b2NhdGVkIHRvZ2V0aGVyLiAgKi8KLSAgc3BsYXlfdHJlZV9ub2RlIGFycmF5OwotICAvKiBT dGFydCBvZiB0aGUgdGFyZ2V0IHJlZ2lvbi4gICovCi0gIHVpbnRwdHJfdCB0Z3Rfc3RhcnQ7 Ci0gIC8qIEVuZCBvZiB0aGUgdGFyZ2VyIHJlZ2lvbi4gICovCi0gIHVpbnRwdHJfdCB0Z3Rf ZW5kOwotICAvKiBIYW5kbGUgdG8gZnJlZS4gICovCi0gIHZvaWQgKnRvX2ZyZWU7Ci0gIC8q IFByZXZpb3VzIHRhcmdldF9tZW1fZGVzYy4gICovCi0gIHN0cnVjdCB0YXJnZXRfbWVtX2Rl c2MgKnByZXY7Ci0gIC8qIE51bWJlciBvZiBpdGVtcyBpbiBmb2xsb3dpbmcgbGlzdC4gICov Ci0gIHNpemVfdCBsaXN0X2NvdW50OwotCi0gIC8qIENvcnJlc3BvbmRpbmcgdGFyZ2V0IGRl dmljZSBkZXNjcmlwdG9yLiAgKi8KLSAgc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZp Y2VfZGVzY3I7Ci0KLSAgLyogTGlzdCBvZiB0YXJnZXQgaXRlbXMgdG8gcmVtb3ZlIChvciBk ZWNyZWFzZSByZWZjb3VudCkKLSAgICAgYXQgdGhlIGVuZCBvZiByZWdpb24uICAqLwotICBz dHJ1Y3QgdGFyZ2V0X3Zhcl9kZXNjIGxpc3RbXTsKLX07CitzdHJ1Y3QgdGFyZ2V0X21lbV9k ZXNjOwogCiAvKiBTcGVjaWFsIHZhbHVlIGZvciByZWZjb3VudCAtIG1hc2sgdG8gaW5kaWNh dGUgZXhpc3RlbmNlIG9mIHNwZWNpYWwKICAgIHZhbHVlcy4gUmlnaHQgbm93IHdlIGFsbG9j YXRlIDMgYml0cy4gICovCkBAIC0xMTU0LDYgKzExMzIsNjQgQEAgc3BsYXlfY29tcGFyZSAo c3BsYXlfdHJlZV9rZXkgeCwgc3BsYXlfdHJlZV9rZXkgeSkKIAogI2luY2x1ZGUgInNwbGF5 LXRyZWUuaCIKIAorLyogUmV2ZXJzZSBvZmZsb2FkIHNwbGF5LXRyZWUgaGFuZGxpbmcuICov CisKK3N0cnVjdCByZXZlcnNlX3NwbGF5X3RyZWVfa2V5X3MgeworICAvKiBBZGRyZXNzIG9m IHRoZSBkZXZpY2Ugb2JqZWN0LiAgKi8KKyAgdWludHB0cl90IGRldl9zdGFydDsKKyAgLyog QWRkcmVzcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgZGV2aWNlIG9iamVjdC4gICovCisgIHVp bnRwdHJfdCBkZXZfZW5kOworCisgIHNwbGF5X3RyZWVfa2V5IGs7Cit9OworCit0eXBlZGVm IHN0cnVjdCByZXZlcnNlX3NwbGF5X3RyZWVfbm9kZV9zICpyZXZlcnNlX3NwbGF5X3RyZWVf bm9kZTsKK3R5cGVkZWYgc3RydWN0IHJldmVyc2Vfc3BsYXlfdHJlZV9zICpyZXZlcnNlX3Nw bGF5X3RyZWU7Cit0eXBlZGVmIHN0cnVjdCByZXZlcnNlX3NwbGF5X3RyZWVfa2V5X3MgKnJl dmVyc2Vfc3BsYXlfdHJlZV9rZXk7CisKK3N0YXRpYyBpbmxpbmUgaW50CityZXZlcnNlX3Nw bGF5X2NvbXBhcmUgKHJldmVyc2Vfc3BsYXlfdHJlZV9rZXkgeCwgcmV2ZXJzZV9zcGxheV90 cmVlX2tleSB5KQoreworICBpZiAoeC0+ZGV2X3N0YXJ0ID09IHgtPmRldl9lbmQKKyAgICAg ICYmIHktPmRldl9zdGFydCA9PSB5LT5kZXZfZW5kKQorICAgIHJldHVybiAwOworICBpZiAo eC0+ZGV2X2VuZCA8PSB5LT5kZXZfc3RhcnQpCisgICAgcmV0dXJuIC0xOworICBpZiAoeC0+ ZGV2X3N0YXJ0ID49IHktPmRldl9lbmQpCisgICAgcmV0dXJuIDE7CisgIHJldHVybiAwOwor fQorCisjZGVmaW5lIHNwbGF5X3RyZWVfcHJlZml4IHJldmVyc2UKKyNpbmNsdWRlICJzcGxh eS10cmVlLmgiCisKK3N0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgeworICAvKiBSZWZlcmVuY2Ug Y291bnQuICAqLworICB1aW50cHRyX3QgcmVmY291bnQ7CisgIC8qIEFsbCB0aGUgc3BsYXkg bm9kZXMgYWxsb2NhdGVkIHRvZ2V0aGVyLiAgKi8KKyAgc3BsYXlfdHJlZV9ub2RlIGFycmF5 OworICAvKiBMaWtldmVyc2UgZm9yIHRoZSByZXZlcnNlIGxvb2t1cCBkZXZpY2UtPmhvc3Qg Zm9yIHJldmVyc2Ugb2ZmbG9hZC4gKi8KKyAgcmV2ZXJzZV9zcGxheV90cmVlX25vZGUgcmV2 X2FycmF5OworICAvKiBTdGFydCBvZiB0aGUgdGFyZ2V0IHJlZ2lvbi4gICovCisgIHVpbnRw dHJfdCB0Z3Rfc3RhcnQ7CisgIC8qIEVuZCBvZiB0aGUgdGFyZ2VyIHJlZ2lvbi4gICovCisg IHVpbnRwdHJfdCB0Z3RfZW5kOworICAvKiBIYW5kbGUgdG8gZnJlZS4gICovCisgIHZvaWQg KnRvX2ZyZWU7CisgIC8qIFByZXZpb3VzIHRhcmdldF9tZW1fZGVzYy4gICovCisgIHN0cnVj dCB0YXJnZXRfbWVtX2Rlc2MgKnByZXY7CisgIC8qIE51bWJlciBvZiBpdGVtcyBpbiBmb2xs b3dpbmcgbGlzdC4gICovCisgIHNpemVfdCBsaXN0X2NvdW50OworCisgIC8qIENvcnJlc3Bv bmRpbmcgdGFyZ2V0IGRldmljZSBkZXNjcmlwdG9yLiAgKi8KKyAgc3RydWN0IGdvbXBfZGV2 aWNlX2Rlc2NyICpkZXZpY2VfZGVzY3I7CisKKyAgLyogTGlzdCBvZiB0YXJnZXQgaXRlbXMg dG8gcmVtb3ZlIChvciBkZWNyZWFzZSByZWZjb3VudCkKKyAgICAgYXQgdGhlIGVuZCBvZiBy ZWdpb24uICAqLworICBzdHJ1Y3QgdGFyZ2V0X3Zhcl9kZXNjIGxpc3RbXTsKK307CisKKwog dHlwZWRlZiBzdHJ1Y3QgYWNjX2Rpc3BhdGNoX3QKIHsKICAgLyogRXhlY3V0ZS4gICovCkBA IC0xMjQ4LDYgKzEyODQsNyBAQCBzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IKIAogICAvKiBT cGxheSB0cmVlIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgbWFwcGVkIG1lbW9yeSBy ZWdpb25zLiAgKi8KICAgc3RydWN0IHNwbGF5X3RyZWVfcyBtZW1fbWFwOworICBzdHJ1Y3Qg cmV2ZXJzZV9zcGxheV90cmVlX3MgbWVtX21hcF9yZXY7CiAKICAgLyogTXV0ZXggZm9yIHRo ZSBtdXRhYmxlIGRhdGEuICAqLwogICBnb21wX211dGV4X3QgbG9jazsKZGlmZiAtLWdpdCBh L2xpYmdvbXAvb2FjYy1ob3N0LmMgYi9saWJnb21wL29hY2MtaG9zdC5jCmluZGV4IGViMTFi OWNmMTZhLi44OWExNWE0ZDgwZiAxMDA2NDQKLS0tIGEvbGliZ29tcC9vYWNjLWhvc3QuYwor KysgYi9saWJnb21wL29hY2MtaG9zdC5jCkBAIC0yODMsNiArMjgzLDcgQEAgc3RhdGljIHN0 cnVjdCBnb21wX2RldmljZV9kZXNjciBob3N0X2Rpc3BhdGNoID0KICAgICAucnVuX2Z1bmMg PSBob3N0X3J1biwKIAogICAgIC5tZW1fbWFwID0geyBOVUxMIH0sCisgICAgLm1lbV9tYXBf cmV2ID0geyBOVUxMIH0sCiAgICAgLyogLmxvY2sgaW5pdGlhbGl6ZWQgaW4gZ29hY2NfaG9z dF9pbml0LiAgKi8KICAgICAuc3RhdGUgPSBHT01QX0RFVklDRV9VTklOSVRJQUxJWkVELAog CmRpZmYgLS1naXQgYS9saWJnb21wL3RhcmdldC5jIGIvbGliZ29tcC90YXJnZXQuYwppbmRl eCAxMzVkYjFkODhhYi4uYjIyNjc4ZjY4N2YgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGFyZ2V0 LmMKKysrIGIvbGliZ29tcC90YXJnZXQuYwpAQCAtNDUsNiArNDUsMTEgQEAKICNpbmNsdWRl ICJwbHVnaW4tc3VmZml4LmgiCiAjZW5kaWYKIAorLyogRGVmaW5lIGFub3RoZXIgc3BsYXkg dHJlZSBpbnN0YW50aWF0aW9uIC0gZm9yIHJldmVyc2Ugb2ZmbG9hZC4gICovCisjZGVmaW5l IHNwbGF5X3RyZWVfcHJlZml4IHJldmVyc2UKKyNkZWZpbmUgc3BsYXlfdHJlZV9jCisjaW5j bHVkZSAic3BsYXktdHJlZS5oIgorCiB0eXBlZGVmIHVpbnRwdHJfdCAqaGFzaF9lbnRyeV90 eXBlOwogc3RhdGljIGlubGluZSB2b2lkICogaHRhYl9hbGxvYyAoc2l6ZV90IHNpemUpIHsg cmV0dXJuIGdvbXBfbWFsbG9jIChzaXplKTsgfQogc3RhdGljIGlubGluZSB2b2lkIGh0YWJf ZnJlZSAodm9pZCAqcHRyKSB7IGZyZWUgKHB0cik7IH0KQEAgLTIwMCw2ICsyMDUsMjcgQEAg Z29tcF9tYXBfbG9va3VwIChzcGxheV90cmVlIG1lbV9tYXAsIHNwbGF5X3RyZWVfa2V5IGtl eSkKICAgcmV0dXJuIHNwbGF5X3RyZWVfbG9va3VwIChtZW1fbWFwLCBrZXkpOwogfQogCisj aWYgMAorc3RhdGljIGlubGluZSByZXZlcnNlX3NwbGF5X3RyZWVfa2V5Citnb21wX21hcF9s b29rdXBfcmV2IChyZXZlcnNlX3NwbGF5X3RyZWUgbWVtX21hcF9yZXYsIHJldmVyc2Vfc3Bs YXlfdHJlZV9rZXkga2V5KQoreworICBpZiAoa2V5LT5kZXZfc3RhcnQgIT0ga2V5LT5kZXZf ZW5kKQorICAgIHJldHVybiByZXZlcnNlX3NwbGF5X3RyZWVfbG9va3VwIChtZW1fbWFwX3Jl diwga2V5KTsKKworICBrZXktPmRldl9lbmQrKzsKKyAgcmV2ZXJzZV9zcGxheV90cmVlX2tl eSBuID0gcmV2ZXJzZV9zcGxheV90cmVlX2xvb2t1cCAobWVtX21hcF9yZXYsIGtleSk7Cisg IGtleS0+ZGV2X2VuZC0tOworICBpZiAobikKKyAgICByZXR1cm4gbjsKKyAga2V5LT5kZXZf c3RhcnQtLTsKKyAgbiA9IHJldmVyc2Vfc3BsYXlfdHJlZV9sb29rdXAgKG1lbV9tYXBfcmV2 LCBrZXkpOworICBrZXktPmRldl9zdGFydCsrOworICBpZiAobikKKyAgICByZXR1cm4gbjsK KyAgcmV0dXJuIHJldmVyc2Vfc3BsYXlfdHJlZV9sb29rdXAgKG1lbV9tYXBfcmV2LCBrZXkp OworfQorI2VuZGlmCisKIHN0YXRpYyBpbmxpbmUgc3BsYXlfdHJlZV9rZXkKIGdvbXBfbWFw XzBsZW5fbG9va3VwIChzcGxheV90cmVlIG1lbV9tYXAsIHNwbGF5X3RyZWVfa2V5IGtleSkK IHsKQEAgLTE4MTEsNiArMTgzNyw3IEBAIGdvbXBfdW5tYXBfdGd0IChzdHJ1Y3QgdGFyZ2V0 X21lbV9kZXNjICp0Z3QpCiAgIGlmICh0Z3QtPnRndF9lbmQpCiAgICAgZ29tcF9mcmVlX2Rl dmljZV9tZW1vcnkgKHRndC0+ZGV2aWNlX2Rlc2NyLCB0Z3QtPnRvX2ZyZWUpOwogCisgIGZy ZWUgKHRndC0+cmV2X2FycmF5KTsKICAgZnJlZSAodGd0LT5hcnJheSk7CiAgIGZyZWUgKHRn dCk7CiB9CkBAIC0yMTMzLDExICsyMTYwLDE2IEBAIGdvbXBfbG9hZF9pbWFnZV90b19kZXZp Y2UgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwgdW5zaWduZWQgdmVyc2lv biwKIAogICAvKiBMb2FkIGltYWdlIHRvIGRldmljZSBhbmQgZ2V0IHRhcmdldCBhZGRyZXNz ZXMgZm9yIHRoZSBpbWFnZS4gICovCiAgIHN0cnVjdCBhZGRyX3BhaXIgKnRhcmdldF90YWJs ZSA9IE5VTEw7CisgIHVpbnQ2NF90ICpyZXZfdGFyZ2V0X2ZuX3RhYmxlID0gTlVMTDsKICAg aW50IGksIG51bV90YXJnZXRfZW50cmllczsKIAorICAvKiBXaXRoIHJldmVyc2Ugb2ZmbG9h ZCwgaW5zZXJ0IGFsc28gdGFyZ2V0LWhvc3QgYWRkcmVzc2VzLiAqLworICBib29sIHJldl9s b29rdXAgPSBvbXBfcmVxdWlyZXNfbWFzayAmIEdPTVBfUkVRVUlSRVNfUkVWRVJTRV9PRkZM T0FEOworCiAgIG51bV90YXJnZXRfZW50cmllcwogICAgID0gZGV2aWNlcC0+bG9hZF9pbWFn ZV9mdW5jIChkZXZpY2VwLT50YXJnZXRfaWQsIHZlcnNpb24sCi0JCQkJdGFyZ2V0X2RhdGEs ICZ0YXJnZXRfdGFibGUpOworCQkJCXRhcmdldF9kYXRhLCAmdGFyZ2V0X3RhYmxlIC8qICwK KwkJCQlyZXZfbG9va3VwID8gJnJldl90YXJnZXRfZm5fdGFibGUgOiBOVUxMICovKTsKIAog ICBpZiAobnVtX3RhcmdldF9lbnRyaWVzICE9IG51bV9mdW5jcyArIG51bV92YXJzCiAgICAg ICAvKiBPdGhlcnMgKGRldmljZV9udW0pIGFyZSBpbmNsdWRlZCBhcyB0cmFpbGluZyBlbnRy aWVzIGluIHBhaXIgbGlzdC4gICovCkBAIC0yMTU0LDYgKzIxODYsMTUgQEAgZ29tcF9sb2Fk X2ltYWdlX3RvX2RldmljZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCB1 bnNpZ25lZCB2ZXJzaW9uLAogICAvKiBJbnNlcnQgaG9zdC10YXJnZXQgYWRkcmVzcyBtYXBw aW5nIGludG8gc3BsYXkgdHJlZS4gICovCiAgIHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnRn dCA9IGdvbXBfbWFsbG9jIChzaXplb2YgKCp0Z3QpKTsKICAgdGd0LT5hcnJheSA9IGdvbXBf bWFsbG9jICgobnVtX2Z1bmNzICsgbnVtX3ZhcnMpICogc2l6ZW9mICgqdGd0LT5hcnJheSkp OworICBpZiAocmV2X2xvb2t1cCkKKyAgICB7CisgICAgICBzaXplX3QgbiA9IG51bV92YXJz OworICAgICAgaWYgKHJldl90YXJnZXRfZm5fdGFibGUpCisJbiArPSBudW1fZnVuY3M7Cisg ICAgICB0Z3QtPnJldl9hcnJheSA9IGdvbXBfbWFsbG9jIChuICogc2l6ZW9mICgqdGd0LT5y ZXZfYXJyYXkpKTsKKyAgICB9CisgIGVsc2UKKyAgICB0Z3QtPnJldl9hcnJheSA9IE5VTEw7 CiAgIHRndC0+cmVmY291bnQgPSBSRUZDT1VOVF9JTkZJTklUWTsKICAgdGd0LT50Z3Rfc3Rh cnQgPSAwOwogICB0Z3QtPnRndF9lbmQgPSAwOwpAQCAtMjE2Miw2ICsyMjAzLDcgQEAgZ29t cF9sb2FkX2ltYWdlX3RvX2RldmljZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZp Y2VwLCB1bnNpZ25lZCB2ZXJzaW9uLAogICB0Z3QtPmxpc3RfY291bnQgPSAwOwogICB0Z3Qt PmRldmljZV9kZXNjciA9IGRldmljZXA7CiAgIHNwbGF5X3RyZWVfbm9kZSBhcnJheSA9IHRn dC0+YXJyYXk7CisgIHJldmVyc2Vfc3BsYXlfdHJlZV9ub2RlIHJldl9hcnJheSA9IHRndC0+ cmV2X2FycmF5OwogCiAgIGZvciAoaSA9IDA7IGkgPCBudW1fZnVuY3M7IGkrKykKICAgICB7 CkBAIC0yMTc2LDYgKzIyMTgsMTggQEAgZ29tcF9sb2FkX2ltYWdlX3RvX2RldmljZSAoc3Ry dWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCB1bnNpZ25lZCB2ZXJzaW9uLAogICAg ICAgYXJyYXktPmxlZnQgPSBOVUxMOwogICAgICAgYXJyYXktPnJpZ2h0ID0gTlVMTDsKICAg ICAgIHNwbGF5X3RyZWVfaW5zZXJ0ICgmZGV2aWNlcC0+bWVtX21hcCwgYXJyYXkpOworICAg ICAgaWYgKHJldl90YXJnZXRfZm5fdGFibGUpCisJeworCSAgcmV2ZXJzZV9zcGxheV90cmVl X2tleSBrMiA9ICZyZXZfYXJyYXktPmtleTsKKwkgIGsyLT5kZXZfc3RhcnQgPSByZXZfdGFy Z2V0X2ZuX3RhYmxlW2ldOworCSAgazItPmRldl9lbmQgPSByZXZfdGFyZ2V0X2ZuX3RhYmxl W2ldICsgMTsKKwkgIGsyLT5rID0gazsKKwkgIHJldl9hcnJheS0+bGVmdCA9IE5VTEw7CisJ ICByZXZfYXJyYXktPnJpZ2h0ID0gTlVMTDsKKwkgIGlmIChrMi0+ZGV2X3N0YXJ0ICE9IDAp CisJICAgIHJldmVyc2Vfc3BsYXlfdHJlZV9pbnNlcnQgKCZkZXZpY2VwLT5tZW1fbWFwX3Jl diwgcmV2X2FycmF5KTsKKwkgIHJldl9hcnJheSsrOworCX0KICAgICAgIGFycmF5Kys7CiAg ICAgfQogCkBAIC0yMjEwLDYgKzIyNjQsMTcgQEAgZ29tcF9sb2FkX2ltYWdlX3RvX2Rldmlj ZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCB1bnNpZ25lZCB2ZXJzaW9u LAogICAgICAgYXJyYXktPmxlZnQgPSBOVUxMOwogICAgICAgYXJyYXktPnJpZ2h0ID0gTlVM TDsKICAgICAgIHNwbGF5X3RyZWVfaW5zZXJ0ICgmZGV2aWNlcC0+bWVtX21hcCwgYXJyYXkp OworICAgICAgaWYgKHJldl9sb29rdXApCisJeworCSAgcmV2ZXJzZV9zcGxheV90cmVlX2tl eSBrMiA9ICZyZXZfYXJyYXktPmtleTsKKwkgIGsyLT5kZXZfc3RhcnQgPSB0YXJnZXRfdGFi bGVbbnVtX2Z1bmNzICsgaV0uc3RhcnQ7CisJICBrMi0+ZGV2X2VuZCA9IGsyLT5kZXZfc3Rh cnQgKyBrLT5ob3N0X2VuZCAtIGstPmhvc3Rfc3RhcnQ7CisJICBrMi0+ayA9IGs7CisJICBy ZXZfYXJyYXktPmxlZnQgPSBOVUxMOworCSAgcmV2X2FycmF5LT5yaWdodCA9IE5VTEw7CisJ ICByZXZlcnNlX3NwbGF5X3RyZWVfaW5zZXJ0ICgmZGV2aWNlcC0+bWVtX21hcF9yZXYsIHJl dl9hcnJheSk7CisJICByZXZfYXJyYXkrKzsKKwl9CiAgICAgICBhcnJheSsrOwogICAgIH0K IApAQCAtMjI0MiwxMSArMjMwNywxNiBAQCBnb21wX2xvYWRfaW1hZ2VfdG9fZGV2aWNlIChz dHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAsIHVuc2lnbmVkIHZlcnNpb24sCiAJ fQogICAgIH0KIAorICBpZiAocmV2X3RhcmdldF9mbl90YWJsZSkKKyAgICBmcmVlIChyZXZf dGFyZ2V0X2ZuX3RhYmxlKTsKICAgZnJlZSAodGFyZ2V0X3RhYmxlKTsKIH0KIAogLyogVW5s b2FkIHRoZSBtYXBwaW5ncyBkZXNjcmliZWQgYnkgdGFyZ2V0X2RhdGEgZnJvbSBkZXZpY2Ug REVWSUNFX1AuCi0gICBUaGUgZGV2aWNlIG11c3QgYmUgbG9ja2VkLiAgICovCisgICBUaGUg ZGV2aWNlIG11c3QgYmUgbG9ja2VkLgorICAgTm90ZTogRm9yIHJldmVyc2Ugb2ZmbG9hZCwg dGhlIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSBzcGxheSB0cmVlIGlzCisgICBubyBsb25nZXIg bmVlZGVkIGFuZCBhbGwgaW1hZ2VzIGZvciB0aGlzIGRldmljZSBhcmUgZGVsZXRlZC4KKyAg IChUaGlzIGlzIHRoZSBjYXNlIGZvciBhbGwgY3VycmVudCBjYWxsZXJzLikgKi8KIAogc3Rh dGljIHZvaWQKIGdvbXBfdW5sb2FkX2ltYWdlX2Zyb21fZGV2aWNlIChzdHJ1Y3QgZ29tcF9k ZXZpY2VfZGVzY3IgKmRldmljZXAsCkBAIC0yMjY2LDYgKzIzMzYsOSBAQCBnb21wX3VubG9h ZF9pbWFnZV9mcm9tX2RldmljZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2Vw LAogICBzdHJ1Y3Qgc3BsYXlfdHJlZV9rZXlfcyBrOwogICBzcGxheV90cmVlX2tleSBub2Rl ID0gTlVMTDsKIAorICAvKiBSZW1vdmUgc3BsYXkgdHJlZSBhY2Nlc3M7IHRoZSBtZW1vcnkg aXMgZnJlZWQgaW4gZ29tcF91bm1hcF90Z3QuICAqLworICBkZXZpY2VwLT5tZW1fbWFwX3Jl di5yb290ID0gTlVMTDsKKwogICAvKiBGaW5kIG1hcHBpbmcgYXQgc3RhcnQgb2Ygbm9kZSBh cnJheSAqLwogICBpZiAobnVtX2Z1bmNzIHx8IG51bV92YXJzKQogICAgIHsKQEAgLTQyMzMs NiArNDMwNiw3IEBAIGdvbXBfdGFyZ2V0X2luaXQgKHZvaWQpCiAJCS8qIGN1cnJlbnRfZGV2 aWNlLmNhcGFiaWxpdGllcyBoYXMgYWxyZWFkeSBiZWVuIHNldC4gICovCiAJCWN1cnJlbnRf ZGV2aWNlLnR5cGUgPSBjdXJyZW50X2RldmljZS5nZXRfdHlwZV9mdW5jICgpOwogCQljdXJy ZW50X2RldmljZS5tZW1fbWFwLnJvb3QgPSBOVUxMOworCQljdXJyZW50X2RldmljZS5tZW1f bWFwX3Jldi5yb290ID0gTlVMTDsKIAkJY3VycmVudF9kZXZpY2Uuc3RhdGUgPSBHT01QX0RF VklDRV9VTklOSVRJQUxJWkVEOwogCQlmb3IgKGkgPSAwOyBpIDwgbmV3X251bV9kZXZzOyBp KyspCiAJCSAgewo= --------------LSlN3b0wZY4FFWQoK0g19A9A-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 29DCD3858C74 for ; Fri, 26 Aug 2022 11:15:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 29DCD3858C74 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.93,265,1654588800"; d="diff'?scan'208,217";a="81862680" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 26 Aug 2022 03:15:32 -0800 IronPort-SDR: lJyGBGKrL+p1zCRsKDxC1Uw5mUh5JHnyaumyUtQ+St8a1F0sFfKYy7RA01p6dYsVpom4QXFuxQ MVt1tBVb/9HpTs2ZhuEC2eD2prnHgk/c0eSu8kD1kNFNg1UePt5w3U06zEbXbDdVPTLgWwZO5V drfo0QWXNp2GfPEwngyYTBgpLaEVxAY3ro3KOuh78xpZ/e5uaFmL+0+p67oWIAvFdff+zOV8Qn UqVWvPfLWcFgD0FTqhFT6Hc0KRYZ2RYDk01ld9VUeJf0x5v/Wdt2mT+UubPvzI24uZvfaet+6o ww4= Content-Type: multipart/mixed; boundary="------------LSlN3b0wZY4FFWQoK0g19A9A" Message-ID: Date: Fri, 26 Aug 2022 13:15:24 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Content-Language: en-US To: gcc-patches , Jakub Jelinek From: Tobias Burnus Subject: [Patch] libgomp: Add reverse-offload splay tree X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Message-ID: <20220826111524.71HVPmjn3U0xUQX_fQHhlxqLQw8GiLYF9Fog3VF9NFg@z> --------------LSlN3b0wZY4FFWQoK0g19A9A Content-Type: multipart/alternative; boundary="------------MaboInclt310sP1Yif02AuDn" --------------MaboInclt310sP1Yif02AuDn Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: quoted-printable For reverse-offload data handling, we need to support: (a) device fn addr -> host fn address (b) finding already mapped host -> device vars via their device address For (a), the functions addrs, we need some extra code (cf. previous patches) as this information does not exist already. For (b), the variables, we have two options: (i) Do a reverse search on the existing data. That's done in oacc-mem.c's lookup_dev and obviously is O(N) as it has to check all nodes. With the assumption "This is not expected to be a common operation." is might be still okay. (ii) Using a second splay tree for the reverse lookup. The attached patch prepares for this =E2=80=93 but does not yet handle all locations and is not yet active. The 'devicep->load_image_func' call depends whether the previous [1/3] patch (cf. below) has been applied or not. (The advantage of the reverse-offload mapping is that 'nowait' is not permitted and 'target {enter,exit,} data device(anchestor:1)' is neither. Thus, all 'omp target device(ancestor:1)' mapping done in target_rev can be undone in the same function - and all others are preexisting.) OK for mainline? Tobias PS: Still to be done (for nvptx, for gcn a bit more is needed): - handle remaining var-mapping cases - gomp_target_rev - mainly: handle all of map/firstprivate. - turn on reverse-offload support (accept omp_requires) + add tons of testcases. Pending reverse-offload patches (libgomp only with abit gcc/config/{gcn,nvp= tx}): [Patch][1/3] libgomp: Prepare for reverse offload fn lookup [Patch][2/3] GCN: libgomp+mkoffload.cc: Prepare for reverse offload fn look= up [Patch][2/3] nvptx: libgomp+mkoffload.cc: Prepare for reverse offload fn lo= okup [1/3] is at: https://gcc.gnu.org/pipermail/gcc-patches/2022-August/600333.h= tml [Patch] libgomp/nvptx: Prepare for reverse-offload callback handling https://gcc.gnu.org/pipermail/gcc-patches/2022-August/600381.html ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------MaboInclt310sP1Yif02AuDn-- --------------LSlN3b0wZY4FFWQoK0g19A9A Content-Type: text/x-patch; charset="UTF-8"; name="libgomp-splay-rev.diff" Content-Disposition: attachment; filename="libgomp-splay-rev.diff" Content-Transfer-Encoding: base64 bGliZ29tcDogQWRkIHJldmVyc2Utb2ZmbG9hZCBzcGxheSB0cmVlCgpBZGRz IGEgc3BsYXkgdHJlZSBmb3IgcmV2ZXJzZSBvZmZsb2FkaW5nOyBlZmZlY3Rp dmVseSwgaXQgaXMgbm90IHlldApmaWxsZWQgYXMgcmV2ZXJzZSBvZmZsb2Fk IGlzIG5vdCBlbmFibGVkIGZvciBhbnkgZGV2aWNlIHR5cGUuIEl0IGFsc28K ZG9lcyBub3QgeWV0IHRyYWNrIHZhcmlhYmxlcyBsYXRlciBtYXBwZWQgKGFu ZCB0aGVuIHVubWFwcGVkKS4gVGhvc2UKd2lsbCBiZSBhZGRlZCBpbiBmb2xs b3ctdXAgY29tbWl0cy4KCmxpYmdvbXAvQ2hhbmdlTG9nOgoKCSogbGliZ29t cC5oOiBJbmNsdWRlIHNwbGF5LXRyZWUuaCB3aXRoIHNwbGF5X3RyZWVfcHJl Zml4IHNldCB0bwoJJ3JldmVyc2UnLgoJKHN0cnVjdCB0YXJnZXRfbWVtX2Rl c2MpOiBEZWNsYXJlIGF0IG9sZCBsaW5lOyBtb3ZlCglkZWZpbml0aW9uIGRv d24gYW5kIGFkZCAncmV2ZXJzZV9zcGxheV90cmVlX25vZGUgcmV2X2FycmF5 JyBtZW1iZXIuCgkoc3RydWN0IHJldmVyc2Vfc3BsYXlfdHJlZV9rZXlfcywg cmV2ZXJzZV9zcGxheV9jb21wYXJlKTogTmV3LgoJKHJldmVyc2Vfc3BsYXlf dHJlZV9ub2RlLCByZXZlcnNlX3NwbGF5X3RyZWUsIHJldmVyc2Vfc3BsYXlf dHJlZV9rZXkpOgoJTmV3IHR5cGVkZWYuCgkoc3RydWN0IGdvbXBfZGV2aWNl X2Rlc2NyKTogQWRkICdyZXZlcnNlX3NwbGF5X3RyZWVfcyBtZW1fbWFwX3Jl dicuCgkqIG9hY2MtaG9zdC5jIChob3N0X2Rpc3BhdGNoKTogTlVMTCBpbml0 IG1lbV9tYXBfcmV2LgoJKiB0YXJnZXQuYzogSW5jbHVkZSBzcGxheS10cmVl Lmggd2l0aCBzcGxheV90cmVlX2Mgc2V0IGFuZAoJc3BsYXlfdHJlZV9wcmVm aXggc2V0IHRvICdyZXZlcnNlJy4KCShnb21wX21hcF9sb29rdXBfcmV2KTog TmV3IGZ1bmN0aW9uIChmb3Igbm93IGluc2lkZSAnI2lmIDAnKS4KCShnb21w X3VubWFwX3RndCk6IEZyZWUgYXJyYXlfcmV2LgoJKGdvbXBfbG9hZF9pbWFn ZV90b19kZXZpY2UpOiBGaWxsIHJldmVyc2Utb2ZmbG9hZCBzcGxheSB0cmVl IHdpdGgKCWZ1bmN0IGFuZCB2YXIgYWRkcmVzcy4KCShnb21wX3VubG9hZF9p bWFnZV9mcm9tX2RldmljZSk6IEVtcHR5IHJldmVyc2Utb2ZmbG9hZCBzcGxh eSB0cmVlLgoJKGdvbXBfdGFyZ2V0X2luaXQpOiBJbml0IG1lbV9tYXBfcmV2 LgoKIGxpYmdvbXAvbGliZ29tcC5oICAgfCA4MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogbGliZ29t cC9vYWNjLWhvc3QuYyB8ICAxICsKIGxpYmdvbXAvdGFyZ2V0LmMgICAgfCA3 OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCAy NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWJnb21wL2xpYmdvbXAu aCBiL2xpYmdvbXAvbGliZ29tcC5oCmluZGV4IGMyNDNjNGQ2Y2Y0Li4xMDUx OGE4MzQ4YiAxMDA2NDQKLS0tIGEvbGliZ29tcC9saWJnb21wLmgKKysrIGIv bGliZ29tcC9saWJnb21wLmgKQEAgLTEwMzgsMjkgKzEwMzgsNyBAQCBzdHJ1 Y3QgdGFyZ2V0X3Zhcl9kZXNjIHsKICAgdWludHB0cl90IGxlbmd0aDsKIH07 CiAKLXN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgewotICAvKiBSZWZlcmVuY2Ug Y291bnQuICAqLwotICB1aW50cHRyX3QgcmVmY291bnQ7Ci0gIC8qIEFsbCB0 aGUgc3BsYXkgbm9kZXMgYWxsb2NhdGVkIHRvZ2V0aGVyLiAgKi8KLSAgc3Bs YXlfdHJlZV9ub2RlIGFycmF5OwotICAvKiBTdGFydCBvZiB0aGUgdGFyZ2V0 IHJlZ2lvbi4gICovCi0gIHVpbnRwdHJfdCB0Z3Rfc3RhcnQ7Ci0gIC8qIEVu ZCBvZiB0aGUgdGFyZ2VyIHJlZ2lvbi4gICovCi0gIHVpbnRwdHJfdCB0Z3Rf ZW5kOwotICAvKiBIYW5kbGUgdG8gZnJlZS4gICovCi0gIHZvaWQgKnRvX2Zy ZWU7Ci0gIC8qIFByZXZpb3VzIHRhcmdldF9tZW1fZGVzYy4gICovCi0gIHN0 cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnByZXY7Ci0gIC8qIE51bWJlciBvZiBp dGVtcyBpbiBmb2xsb3dpbmcgbGlzdC4gICovCi0gIHNpemVfdCBsaXN0X2Nv dW50OwotCi0gIC8qIENvcnJlc3BvbmRpbmcgdGFyZ2V0IGRldmljZSBkZXNj cmlwdG9yLiAgKi8KLSAgc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZp Y2VfZGVzY3I7Ci0KLSAgLyogTGlzdCBvZiB0YXJnZXQgaXRlbXMgdG8gcmVt b3ZlIChvciBkZWNyZWFzZSByZWZjb3VudCkKLSAgICAgYXQgdGhlIGVuZCBv ZiByZWdpb24uICAqLwotICBzdHJ1Y3QgdGFyZ2V0X3Zhcl9kZXNjIGxpc3Rb XTsKLX07CitzdHJ1Y3QgdGFyZ2V0X21lbV9kZXNjOwogCiAvKiBTcGVjaWFs IHZhbHVlIGZvciByZWZjb3VudCAtIG1hc2sgdG8gaW5kaWNhdGUgZXhpc3Rl bmNlIG9mIHNwZWNpYWwKICAgIHZhbHVlcy4gUmlnaHQgbm93IHdlIGFsbG9j YXRlIDMgYml0cy4gICovCkBAIC0xMTU0LDYgKzExMzIsNjQgQEAgc3BsYXlf Y29tcGFyZSAoc3BsYXlfdHJlZV9rZXkgeCwgc3BsYXlfdHJlZV9rZXkgeSkK IAogI2luY2x1ZGUgInNwbGF5LXRyZWUuaCIKIAorLyogUmV2ZXJzZSBvZmZs b2FkIHNwbGF5LXRyZWUgaGFuZGxpbmcuICovCisKK3N0cnVjdCByZXZlcnNl X3NwbGF5X3RyZWVfa2V5X3MgeworICAvKiBBZGRyZXNzIG9mIHRoZSBkZXZp Y2Ugb2JqZWN0LiAgKi8KKyAgdWludHB0cl90IGRldl9zdGFydDsKKyAgLyog QWRkcmVzcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgZGV2aWNlIG9iamVjdC4g ICovCisgIHVpbnRwdHJfdCBkZXZfZW5kOworCisgIHNwbGF5X3RyZWVfa2V5 IGs7Cit9OworCit0eXBlZGVmIHN0cnVjdCByZXZlcnNlX3NwbGF5X3RyZWVf bm9kZV9zICpyZXZlcnNlX3NwbGF5X3RyZWVfbm9kZTsKK3R5cGVkZWYgc3Ry dWN0IHJldmVyc2Vfc3BsYXlfdHJlZV9zICpyZXZlcnNlX3NwbGF5X3RyZWU7 Cit0eXBlZGVmIHN0cnVjdCByZXZlcnNlX3NwbGF5X3RyZWVfa2V5X3MgKnJl dmVyc2Vfc3BsYXlfdHJlZV9rZXk7CisKK3N0YXRpYyBpbmxpbmUgaW50City ZXZlcnNlX3NwbGF5X2NvbXBhcmUgKHJldmVyc2Vfc3BsYXlfdHJlZV9rZXkg eCwgcmV2ZXJzZV9zcGxheV90cmVlX2tleSB5KQoreworICBpZiAoeC0+ZGV2 X3N0YXJ0ID09IHgtPmRldl9lbmQKKyAgICAgICYmIHktPmRldl9zdGFydCA9 PSB5LT5kZXZfZW5kKQorICAgIHJldHVybiAwOworICBpZiAoeC0+ZGV2X2Vu ZCA8PSB5LT5kZXZfc3RhcnQpCisgICAgcmV0dXJuIC0xOworICBpZiAoeC0+ ZGV2X3N0YXJ0ID49IHktPmRldl9lbmQpCisgICAgcmV0dXJuIDE7CisgIHJl dHVybiAwOworfQorCisjZGVmaW5lIHNwbGF5X3RyZWVfcHJlZml4IHJldmVy c2UKKyNpbmNsdWRlICJzcGxheS10cmVlLmgiCisKK3N0cnVjdCB0YXJnZXRf bWVtX2Rlc2MgeworICAvKiBSZWZlcmVuY2UgY291bnQuICAqLworICB1aW50 cHRyX3QgcmVmY291bnQ7CisgIC8qIEFsbCB0aGUgc3BsYXkgbm9kZXMgYWxs b2NhdGVkIHRvZ2V0aGVyLiAgKi8KKyAgc3BsYXlfdHJlZV9ub2RlIGFycmF5 OworICAvKiBMaWtldmVyc2UgZm9yIHRoZSByZXZlcnNlIGxvb2t1cCBkZXZp Y2UtPmhvc3QgZm9yIHJldmVyc2Ugb2ZmbG9hZC4gKi8KKyAgcmV2ZXJzZV9z cGxheV90cmVlX25vZGUgcmV2X2FycmF5OworICAvKiBTdGFydCBvZiB0aGUg dGFyZ2V0IHJlZ2lvbi4gICovCisgIHVpbnRwdHJfdCB0Z3Rfc3RhcnQ7Cisg IC8qIEVuZCBvZiB0aGUgdGFyZ2VyIHJlZ2lvbi4gICovCisgIHVpbnRwdHJf dCB0Z3RfZW5kOworICAvKiBIYW5kbGUgdG8gZnJlZS4gICovCisgIHZvaWQg KnRvX2ZyZWU7CisgIC8qIFByZXZpb3VzIHRhcmdldF9tZW1fZGVzYy4gICov CisgIHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnByZXY7CisgIC8qIE51bWJl ciBvZiBpdGVtcyBpbiBmb2xsb3dpbmcgbGlzdC4gICovCisgIHNpemVfdCBs aXN0X2NvdW50OworCisgIC8qIENvcnJlc3BvbmRpbmcgdGFyZ2V0IGRldmlj ZSBkZXNjcmlwdG9yLiAgKi8KKyAgc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2Ny ICpkZXZpY2VfZGVzY3I7CisKKyAgLyogTGlzdCBvZiB0YXJnZXQgaXRlbXMg dG8gcmVtb3ZlIChvciBkZWNyZWFzZSByZWZjb3VudCkKKyAgICAgYXQgdGhl IGVuZCBvZiByZWdpb24uICAqLworICBzdHJ1Y3QgdGFyZ2V0X3Zhcl9kZXNj IGxpc3RbXTsKK307CisKKwogdHlwZWRlZiBzdHJ1Y3QgYWNjX2Rpc3BhdGNo X3QKIHsKICAgLyogRXhlY3V0ZS4gICovCkBAIC0xMjQ4LDYgKzEyODQsNyBA QCBzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IKIAogICAvKiBTcGxheSB0cmVl IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgbWFwcGVkIG1lbW9yeSBy ZWdpb25zLiAgKi8KICAgc3RydWN0IHNwbGF5X3RyZWVfcyBtZW1fbWFwOwor ICBzdHJ1Y3QgcmV2ZXJzZV9zcGxheV90cmVlX3MgbWVtX21hcF9yZXY7CiAK ICAgLyogTXV0ZXggZm9yIHRoZSBtdXRhYmxlIGRhdGEuICAqLwogICBnb21w X211dGV4X3QgbG9jazsKZGlmZiAtLWdpdCBhL2xpYmdvbXAvb2FjYy1ob3N0 LmMgYi9saWJnb21wL29hY2MtaG9zdC5jCmluZGV4IGViMTFiOWNmMTZhLi44 OWExNWE0ZDgwZiAxMDA2NDQKLS0tIGEvbGliZ29tcC9vYWNjLWhvc3QuYwor KysgYi9saWJnb21wL29hY2MtaG9zdC5jCkBAIC0yODMsNiArMjgzLDcgQEAg c3RhdGljIHN0cnVjdCBnb21wX2RldmljZV9kZXNjciBob3N0X2Rpc3BhdGNo ID0KICAgICAucnVuX2Z1bmMgPSBob3N0X3J1biwKIAogICAgIC5tZW1fbWFw ID0geyBOVUxMIH0sCisgICAgLm1lbV9tYXBfcmV2ID0geyBOVUxMIH0sCiAg ICAgLyogLmxvY2sgaW5pdGlhbGl6ZWQgaW4gZ29hY2NfaG9zdF9pbml0LiAg Ki8KICAgICAuc3RhdGUgPSBHT01QX0RFVklDRV9VTklOSVRJQUxJWkVELAog CmRpZmYgLS1naXQgYS9saWJnb21wL3RhcmdldC5jIGIvbGliZ29tcC90YXJn ZXQuYwppbmRleCAxMzVkYjFkODhhYi4uYjIyNjc4ZjY4N2YgMTAwNjQ0Ci0t LSBhL2xpYmdvbXAvdGFyZ2V0LmMKKysrIGIvbGliZ29tcC90YXJnZXQuYwpA QCAtNDUsNiArNDUsMTEgQEAKICNpbmNsdWRlICJwbHVnaW4tc3VmZml4Lmgi CiAjZW5kaWYKIAorLyogRGVmaW5lIGFub3RoZXIgc3BsYXkgdHJlZSBpbnN0 YW50aWF0aW9uIC0gZm9yIHJldmVyc2Ugb2ZmbG9hZC4gICovCisjZGVmaW5l IHNwbGF5X3RyZWVfcHJlZml4IHJldmVyc2UKKyNkZWZpbmUgc3BsYXlfdHJl ZV9jCisjaW5jbHVkZSAic3BsYXktdHJlZS5oIgorCiB0eXBlZGVmIHVpbnRw dHJfdCAqaGFzaF9lbnRyeV90eXBlOwogc3RhdGljIGlubGluZSB2b2lkICog aHRhYl9hbGxvYyAoc2l6ZV90IHNpemUpIHsgcmV0dXJuIGdvbXBfbWFsbG9j IChzaXplKTsgfQogc3RhdGljIGlubGluZSB2b2lkIGh0YWJfZnJlZSAodm9p ZCAqcHRyKSB7IGZyZWUgKHB0cik7IH0KQEAgLTIwMCw2ICsyMDUsMjcgQEAg Z29tcF9tYXBfbG9va3VwIChzcGxheV90cmVlIG1lbV9tYXAsIHNwbGF5X3Ry ZWVfa2V5IGtleSkKICAgcmV0dXJuIHNwbGF5X3RyZWVfbG9va3VwIChtZW1f bWFwLCBrZXkpOwogfQogCisjaWYgMAorc3RhdGljIGlubGluZSByZXZlcnNl X3NwbGF5X3RyZWVfa2V5Citnb21wX21hcF9sb29rdXBfcmV2IChyZXZlcnNl X3NwbGF5X3RyZWUgbWVtX21hcF9yZXYsIHJldmVyc2Vfc3BsYXlfdHJlZV9r ZXkga2V5KQoreworICBpZiAoa2V5LT5kZXZfc3RhcnQgIT0ga2V5LT5kZXZf ZW5kKQorICAgIHJldHVybiByZXZlcnNlX3NwbGF5X3RyZWVfbG9va3VwICht ZW1fbWFwX3Jldiwga2V5KTsKKworICBrZXktPmRldl9lbmQrKzsKKyAgcmV2 ZXJzZV9zcGxheV90cmVlX2tleSBuID0gcmV2ZXJzZV9zcGxheV90cmVlX2xv b2t1cCAobWVtX21hcF9yZXYsIGtleSk7CisgIGtleS0+ZGV2X2VuZC0tOwor ICBpZiAobikKKyAgICByZXR1cm4gbjsKKyAga2V5LT5kZXZfc3RhcnQtLTsK KyAgbiA9IHJldmVyc2Vfc3BsYXlfdHJlZV9sb29rdXAgKG1lbV9tYXBfcmV2 LCBrZXkpOworICBrZXktPmRldl9zdGFydCsrOworICBpZiAobikKKyAgICBy ZXR1cm4gbjsKKyAgcmV0dXJuIHJldmVyc2Vfc3BsYXlfdHJlZV9sb29rdXAg KG1lbV9tYXBfcmV2LCBrZXkpOworfQorI2VuZGlmCisKIHN0YXRpYyBpbmxp bmUgc3BsYXlfdHJlZV9rZXkKIGdvbXBfbWFwXzBsZW5fbG9va3VwIChzcGxh eV90cmVlIG1lbV9tYXAsIHNwbGF5X3RyZWVfa2V5IGtleSkKIHsKQEAgLTE4 MTEsNiArMTgzNyw3IEBAIGdvbXBfdW5tYXBfdGd0IChzdHJ1Y3QgdGFyZ2V0 X21lbV9kZXNjICp0Z3QpCiAgIGlmICh0Z3QtPnRndF9lbmQpCiAgICAgZ29t cF9mcmVlX2RldmljZV9tZW1vcnkgKHRndC0+ZGV2aWNlX2Rlc2NyLCB0Z3Qt PnRvX2ZyZWUpOwogCisgIGZyZWUgKHRndC0+cmV2X2FycmF5KTsKICAgZnJl ZSAodGd0LT5hcnJheSk7CiAgIGZyZWUgKHRndCk7CiB9CkBAIC0yMTMzLDEx ICsyMTYwLDE2IEBAIGdvbXBfbG9hZF9pbWFnZV90b19kZXZpY2UgKHN0cnVj dCBnb21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwgdW5zaWduZWQgdmVyc2lv biwKIAogICAvKiBMb2FkIGltYWdlIHRvIGRldmljZSBhbmQgZ2V0IHRhcmdl dCBhZGRyZXNzZXMgZm9yIHRoZSBpbWFnZS4gICovCiAgIHN0cnVjdCBhZGRy X3BhaXIgKnRhcmdldF90YWJsZSA9IE5VTEw7CisgIHVpbnQ2NF90ICpyZXZf dGFyZ2V0X2ZuX3RhYmxlID0gTlVMTDsKICAgaW50IGksIG51bV90YXJnZXRf ZW50cmllczsKIAorICAvKiBXaXRoIHJldmVyc2Ugb2ZmbG9hZCwgaW5zZXJ0 IGFsc28gdGFyZ2V0LWhvc3QgYWRkcmVzc2VzLiAqLworICBib29sIHJldl9s b29rdXAgPSBvbXBfcmVxdWlyZXNfbWFzayAmIEdPTVBfUkVRVUlSRVNfUkVW RVJTRV9PRkZMT0FEOworCiAgIG51bV90YXJnZXRfZW50cmllcwogICAgID0g ZGV2aWNlcC0+bG9hZF9pbWFnZV9mdW5jIChkZXZpY2VwLT50YXJnZXRfaWQs IHZlcnNpb24sCi0JCQkJdGFyZ2V0X2RhdGEsICZ0YXJnZXRfdGFibGUpOwor CQkJCXRhcmdldF9kYXRhLCAmdGFyZ2V0X3RhYmxlIC8qICwKKwkJCQlyZXZf bG9va3VwID8gJnJldl90YXJnZXRfZm5fdGFibGUgOiBOVUxMICovKTsKIAog ICBpZiAobnVtX3RhcmdldF9lbnRyaWVzICE9IG51bV9mdW5jcyArIG51bV92 YXJzCiAgICAgICAvKiBPdGhlcnMgKGRldmljZV9udW0pIGFyZSBpbmNsdWRl ZCBhcyB0cmFpbGluZyBlbnRyaWVzIGluIHBhaXIgbGlzdC4gICovCkBAIC0y MTU0LDYgKzIxODYsMTUgQEAgZ29tcF9sb2FkX2ltYWdlX3RvX2RldmljZSAo c3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCB1bnNpZ25lZCB2 ZXJzaW9uLAogICAvKiBJbnNlcnQgaG9zdC10YXJnZXQgYWRkcmVzcyBtYXBw aW5nIGludG8gc3BsYXkgdHJlZS4gICovCiAgIHN0cnVjdCB0YXJnZXRfbWVt X2Rlc2MgKnRndCA9IGdvbXBfbWFsbG9jIChzaXplb2YgKCp0Z3QpKTsKICAg dGd0LT5hcnJheSA9IGdvbXBfbWFsbG9jICgobnVtX2Z1bmNzICsgbnVtX3Zh cnMpICogc2l6ZW9mICgqdGd0LT5hcnJheSkpOworICBpZiAocmV2X2xvb2t1 cCkKKyAgICB7CisgICAgICBzaXplX3QgbiA9IG51bV92YXJzOworICAgICAg aWYgKHJldl90YXJnZXRfZm5fdGFibGUpCisJbiArPSBudW1fZnVuY3M7Cisg ICAgICB0Z3QtPnJldl9hcnJheSA9IGdvbXBfbWFsbG9jIChuICogc2l6ZW9m ICgqdGd0LT5yZXZfYXJyYXkpKTsKKyAgICB9CisgIGVsc2UKKyAgICB0Z3Qt PnJldl9hcnJheSA9IE5VTEw7CiAgIHRndC0+cmVmY291bnQgPSBSRUZDT1VO VF9JTkZJTklUWTsKICAgdGd0LT50Z3Rfc3RhcnQgPSAwOwogICB0Z3QtPnRn dF9lbmQgPSAwOwpAQCAtMjE2Miw2ICsyMjAzLDcgQEAgZ29tcF9sb2FkX2lt YWdlX3RvX2RldmljZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZp Y2VwLCB1bnNpZ25lZCB2ZXJzaW9uLAogICB0Z3QtPmxpc3RfY291bnQgPSAw OwogICB0Z3QtPmRldmljZV9kZXNjciA9IGRldmljZXA7CiAgIHNwbGF5X3Ry ZWVfbm9kZSBhcnJheSA9IHRndC0+YXJyYXk7CisgIHJldmVyc2Vfc3BsYXlf dHJlZV9ub2RlIHJldl9hcnJheSA9IHRndC0+cmV2X2FycmF5OwogCiAgIGZv ciAoaSA9IDA7IGkgPCBudW1fZnVuY3M7IGkrKykKICAgICB7CkBAIC0yMTc2 LDYgKzIyMTgsMTggQEAgZ29tcF9sb2FkX2ltYWdlX3RvX2RldmljZSAoc3Ry dWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCB1bnNpZ25lZCB2ZXJz aW9uLAogICAgICAgYXJyYXktPmxlZnQgPSBOVUxMOwogICAgICAgYXJyYXkt PnJpZ2h0ID0gTlVMTDsKICAgICAgIHNwbGF5X3RyZWVfaW5zZXJ0ICgmZGV2 aWNlcC0+bWVtX21hcCwgYXJyYXkpOworICAgICAgaWYgKHJldl90YXJnZXRf Zm5fdGFibGUpCisJeworCSAgcmV2ZXJzZV9zcGxheV90cmVlX2tleSBrMiA9 ICZyZXZfYXJyYXktPmtleTsKKwkgIGsyLT5kZXZfc3RhcnQgPSByZXZfdGFy Z2V0X2ZuX3RhYmxlW2ldOworCSAgazItPmRldl9lbmQgPSByZXZfdGFyZ2V0 X2ZuX3RhYmxlW2ldICsgMTsKKwkgIGsyLT5rID0gazsKKwkgIHJldl9hcnJh eS0+bGVmdCA9IE5VTEw7CisJICByZXZfYXJyYXktPnJpZ2h0ID0gTlVMTDsK KwkgIGlmIChrMi0+ZGV2X3N0YXJ0ICE9IDApCisJICAgIHJldmVyc2Vfc3Bs YXlfdHJlZV9pbnNlcnQgKCZkZXZpY2VwLT5tZW1fbWFwX3JldiwgcmV2X2Fy cmF5KTsKKwkgIHJldl9hcnJheSsrOworCX0KICAgICAgIGFycmF5Kys7CiAg ICAgfQogCkBAIC0yMjEwLDYgKzIyNjQsMTcgQEAgZ29tcF9sb2FkX2ltYWdl X3RvX2RldmljZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2Vw LCB1bnNpZ25lZCB2ZXJzaW9uLAogICAgICAgYXJyYXktPmxlZnQgPSBOVUxM OwogICAgICAgYXJyYXktPnJpZ2h0ID0gTlVMTDsKICAgICAgIHNwbGF5X3Ry ZWVfaW5zZXJ0ICgmZGV2aWNlcC0+bWVtX21hcCwgYXJyYXkpOworICAgICAg aWYgKHJldl9sb29rdXApCisJeworCSAgcmV2ZXJzZV9zcGxheV90cmVlX2tl eSBrMiA9ICZyZXZfYXJyYXktPmtleTsKKwkgIGsyLT5kZXZfc3RhcnQgPSB0 YXJnZXRfdGFibGVbbnVtX2Z1bmNzICsgaV0uc3RhcnQ7CisJICBrMi0+ZGV2 X2VuZCA9IGsyLT5kZXZfc3RhcnQgKyBrLT5ob3N0X2VuZCAtIGstPmhvc3Rf c3RhcnQ7CisJICBrMi0+ayA9IGs7CisJICByZXZfYXJyYXktPmxlZnQgPSBO VUxMOworCSAgcmV2X2FycmF5LT5yaWdodCA9IE5VTEw7CisJICByZXZlcnNl X3NwbGF5X3RyZWVfaW5zZXJ0ICgmZGV2aWNlcC0+bWVtX21hcF9yZXYsIHJl dl9hcnJheSk7CisJICByZXZfYXJyYXkrKzsKKwl9CiAgICAgICBhcnJheSsr OwogICAgIH0KIApAQCAtMjI0MiwxMSArMjMwNywxNiBAQCBnb21wX2xvYWRf aW1hZ2VfdG9fZGV2aWNlIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRl dmljZXAsIHVuc2lnbmVkIHZlcnNpb24sCiAJfQogICAgIH0KIAorICBpZiAo cmV2X3RhcmdldF9mbl90YWJsZSkKKyAgICBmcmVlIChyZXZfdGFyZ2V0X2Zu X3RhYmxlKTsKICAgZnJlZSAodGFyZ2V0X3RhYmxlKTsKIH0KIAogLyogVW5s b2FkIHRoZSBtYXBwaW5ncyBkZXNjcmliZWQgYnkgdGFyZ2V0X2RhdGEgZnJv bSBkZXZpY2UgREVWSUNFX1AuCi0gICBUaGUgZGV2aWNlIG11c3QgYmUgbG9j a2VkLiAgICovCisgICBUaGUgZGV2aWNlIG11c3QgYmUgbG9ja2VkLgorICAg Tm90ZTogRm9yIHJldmVyc2Ugb2ZmbG9hZCwgdGhlIGNvZGUgYXNzdW1lcyB0 aGF0IHRoZSBzcGxheSB0cmVlIGlzCisgICBubyBsb25nZXIgbmVlZGVkIGFu ZCBhbGwgaW1hZ2VzIGZvciB0aGlzIGRldmljZSBhcmUgZGVsZXRlZC4KKyAg IChUaGlzIGlzIHRoZSBjYXNlIGZvciBhbGwgY3VycmVudCBjYWxsZXJzLikg Ki8KIAogc3RhdGljIHZvaWQKIGdvbXBfdW5sb2FkX2ltYWdlX2Zyb21fZGV2 aWNlIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAsCkBAIC0y MjY2LDYgKzIzMzYsOSBAQCBnb21wX3VubG9hZF9pbWFnZV9mcm9tX2Rldmlj ZSAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLAogICBzdHJ1 Y3Qgc3BsYXlfdHJlZV9rZXlfcyBrOwogICBzcGxheV90cmVlX2tleSBub2Rl ID0gTlVMTDsKIAorICAvKiBSZW1vdmUgc3BsYXkgdHJlZSBhY2Nlc3M7IHRo ZSBtZW1vcnkgaXMgZnJlZWQgaW4gZ29tcF91bm1hcF90Z3QuICAqLworICBk ZXZpY2VwLT5tZW1fbWFwX3Jldi5yb290ID0gTlVMTDsKKwogICAvKiBGaW5k IG1hcHBpbmcgYXQgc3RhcnQgb2Ygbm9kZSBhcnJheSAqLwogICBpZiAobnVt X2Z1bmNzIHx8IG51bV92YXJzKQogICAgIHsKQEAgLTQyMzMsNiArNDMwNiw3 IEBAIGdvbXBfdGFyZ2V0X2luaXQgKHZvaWQpCiAJCS8qIGN1cnJlbnRfZGV2 aWNlLmNhcGFiaWxpdGllcyBoYXMgYWxyZWFkeSBiZWVuIHNldC4gICovCiAJ CWN1cnJlbnRfZGV2aWNlLnR5cGUgPSBjdXJyZW50X2RldmljZS5nZXRfdHlw ZV9mdW5jICgpOwogCQljdXJyZW50X2RldmljZS5tZW1fbWFwLnJvb3QgPSBO VUxMOworCQljdXJyZW50X2RldmljZS5tZW1fbWFwX3Jldi5yb290ID0gTlVM TDsKIAkJY3VycmVudF9kZXZpY2Uuc3RhdGUgPSBHT01QX0RFVklDRV9VTklO SVRJQUxJWkVEOwogCQlmb3IgKGkgPSAwOyBpIDwgbmV3X251bV9kZXZzOyBp KyspCiAJCSAgewo= --------------LSlN3b0wZY4FFWQoK0g19A9A--