From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id EB5EC3858C50 for ; Tue, 27 Sep 2022 13:16:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EB5EC3858C50 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,349,1654588800"; d="diff'?scan'208,217";a="83771096" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 27 Sep 2022 05:16:35 -0800 IronPort-SDR: cl6W2vFNfq4x0TRHp+0/Gz8BJlBkgaEwAHu+DEjg5C/YXAVlk/QgF0ON+unrQhTyZUKTVo+wpX bxuv1Qso7Pi3zN5K0g010zUjaZBe0NXN4NwwK3SZ35uKT/Fo3UOUe9SG+Ncv+p5yo8IW7omcXI BfPYdpUqU844sJ2jmTO3o1mGXBlGzIhUVrEbPT/CNUzi7oHxhqD3qnehjgi3rPgLjxcGQr3LIZ DG61RO4C2UFSzCUVJDLXN9CE9hn8EYjpLk93wBJedk6iO1c7FUTMS0dUAxNbHv7ShY0B7rFtCd VM8= Content-Type: multipart/mixed; boundary="------------aasAdehMudO0TiCptUmVGSjN" Message-ID: <55dacdd3-4a82-8087-fdba-824d9910e186@codesourcery.com> Date: Tue, 27 Sep 2022 15:16:29 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Subject: Re: [Patch] libgomp/gcn: Prepare for reverse-offload callback handling Content-Language: en-US From: Tobias Burnus To: gcc-patches , Andrew Stubbs CC: Jakub Jelinek References: In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-09.mgc.mentorg.com (139.181.222.9) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,NICE_REPLY_A,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP 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: --------------aasAdehMudO0TiCptUmVGSjN Content-Type: multipart/alternative; boundary="------------XQ8v5misU0fMO2ooF0134ynw" --------------XQ8v5misU0fMO2ooF0134ynw Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: quoted-printable For those without a working crystal ball, I have now also included the patc= h. On 27.09.22 15:15, Tobias Burnus wrote: This patch adds support to handle reverse offload to libgomp's plugin-gcn.c= and to AMD GCN's libgomp target.c. In theory, that's all whats needed for GCN =E2=80=93 in practice there a kn= own issue with private stack variables which has to be addressed independently. Once this = and the target.c generic code is committed, omp requires reverse-offload support can be claimed for the device (=E2=86=92 GOMP_OFFLOAD_get_num_devic= es). Note: Contrary to nvptx, the code to handle reverse offload is already enab= led if there is 'omp requires reverse_offload' (+ target functions) in the code; for nvptx, an actual reverse-offload-target region has to exist in the code. This probably does not matter that much in practice. The '#if 1' code block inside plugin-gcn.c has to be replaced by the target.c/libgomp-plugins.h/libgomp.h/libgomp.map patch that is part of the patch: https://gcc.gnu.org/pipermail/gcc-patches/2022-September/6023= 21.html "[Patch] libgomp/nvptx: Prepare for reverse-offload callback handling" Andrew did suggest a while back to piggyback on the console_output handling, avoiding another atomic access. - If this is still wanted, I like to have s= ome guidance regarding how to actually implement it. Comments, suggestions? If not, OK for mainline?* Tobias *Without the '#if 1' code and once the non-nvptx bits of the other patch have been approved and committed. ----------------- 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 --------------XQ8v5misU0fMO2ooF0134ynw-- --------------aasAdehMudO0TiCptUmVGSjN Content-Type: text/x-patch; charset="UTF-8"; name="rev-offload-run-gcn.diff" Content-Disposition: attachment; filename="rev-offload-run-gcn.diff" Content-Transfer-Encoding: base64 bGliZ29tcC9nY246IFByZXBhcmUgZm9yIHJldmVyc2Utb2ZmbG9hZCBjYWxs YmFjayBoYW5kbGluZwoKbGliZ29tcC9DaGFuZ2VMb2c6CgoJKiBjb25maWcv Z2NuL2xpYmdvbXAtZ2NuLmg6IE5ldyBmaWxlLgoJKiBjb25maWcvZ2NuL3Rh cmdldC5jOiBJbmNsdWRlIGl0LgoJKEdPTVBfQURESVRJT05BTF9JQ1ZTKTog RGVjbGFyZSBhcyBleHRlcm4gdmFyLgoJKEdPTVBfdGFyZ2V0X2V4dCk6IEhh bmRsZSByZXZlcnNlIG9mZmxvYWQuCgkqIHBsdWdpbi9wbHVnaW4tZ2NuLmMg KHN0cnVjdCBrZXJuYXJncyk6IEFkZCAnaW50NjRfdCByZXZfcHRyJyBhcwoJ NnRoIGFyZ3VtZW50IGFuZCAnc3RydWN0IHJldl9vZmZsb2FkIHJldl9kYXRh Jy4KCShzdHJ1Y3QgYWdlbnRfaW5mbyk6IEFkZCBoYXNfcmV2ZXJzZV9vZmZs b2FkOyBtb3ZlIHByb2dfZmluYWxpemVkCgl1cCB0byByZWR1Y2UgcGFkZGlu Zy4KCShjcmVhdGVfa2VybmVsX2Rpc3BhdGNoKTogSW5pdCBrZXJuYXJncycg cmV2X3B0ciBhbmQgcmV2X2RhdGEuCgkocmV2ZXJzZV9vZmZsb2FkKTogTmV3 LgoJKHJ1bl9rZXJuZWwpOiBDYWxsIGl0LgoJKEdPTVBfT0ZGTE9BRF9pbml0 X2RldmljZSwgR09NUF9PRkZMT0FEX2xvYWRfaW1hZ2UpOiBTZXQKCWhhc19y ZXZlcnNlX29mZmxvYWQuCgogbGliZ29tcC9jb25maWcvZ2NuL2xpYmdvbXAt Z2NuLmggfCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBsaWJnb21wL2NvbmZpZy9nY24vdGFyZ2V0LmMgICAgICB8IDM1ICsr KysrKysrKysrKysrKysrKysrLS0tLS0tCiBsaWJnb21wL3BsdWdpbi9wbHVn aW4tZ2NuLmMgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmdvbXAv Y29uZmlnL2djbi9saWJnb21wLWdjbi5oIGIvbGliZ29tcC9jb25maWcvZ2Nu L2xpYmdvbXAtZ2NuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjg4NGYwMDk0ZDA1Ci0tLSAvZGV2L251bGwKKysrIGIvbGli Z29tcC9jb25maWcvZ2NuL2xpYmdvbXAtZ2NuLmgKQEAgLTAsMCArMSw1MCBA QAorLyogQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorICAgQ29udHJpYnV0ZWQgYnkgVG9iaWFzIEJ1cm51cyA8 dG9iaWFzQGNvZGVzb3VyY2VyeS5jb20+LgorCisgICBUaGlzIGZpbGUgaXMg cGFydCBvZiB0aGUgR05VIE9mZmxvYWRpbmcgYW5kIE11bHRpIFByb2Nlc3Np bmcgTGlicmFyeQorICAgKGxpYmdvbXApLgorCisgICBMaWJnb21wIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkgaXQKKyAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAo YXQgeW91ciBvcHRpb24pCisgICBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg TGliZ29tcCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkKKyAgIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MKKyAgIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisg ICBtb3JlIGRldGFpbHMuCisKKyAgIFVuZGVyIFNlY3Rpb24gNyBvZiBHUEwg dmVyc2lvbiAzLCB5b3UgYXJlIGdyYW50ZWQgYWRkaXRpb25hbAorICAgcGVy bWlzc2lvbnMgZGVzY3JpYmVkIGluIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5 IEV4Y2VwdGlvbiwgdmVyc2lvbgorICAgMy4xLCBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYW5kCisgICBhIGNvcHkgb2YgdGhlIEdDQyBSdW50aW1l IExpYnJhcnkgRXhjZXB0aW9uIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOwor ICAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1F IHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBUaGlzIGZpbGUgY29udGFp bnMgZGVmaW5lcyBhbmQgdHlwZSBkZWZpbml0aW9ucyBzaGFyZWQgYmV0d2Vl biB0aGUKKyAgIG52cHR4IHRhcmdldCdzIGxpYmdvbXAuYSBhbmQgdGhlIHBs dWdpbi1udnB0eC5jLCBidXQgdGhhdCBpcyBvbmx5CisgICBuZWVkZWYgZm9y IHRoaXMgdGFyZ2V0LiAgKi8KKworI2lmbmRlZiBMSUJHT01QX0dDTl9ICisj ZGVmaW5lIExJQkdPTVBfR0NOX0ggMQorCisKK3N0cnVjdCByZXZfb2ZmbG9h ZCB7CisgIHVpbnQ2NF90IGZuOworICB1aW50NjRfdCBtYXBudW07CisgIHVp bnQ2NF90IGFkZHJzOworICB1aW50NjRfdCBzaXplczsKKyAgdWludDY0X3Qg a2luZHM7CisgIGludDMyX3QgZGV2X251bTsKKyAgdWludDMyX3QgbG9jazsK K307CisKKyNpZiAoX19TSVpFT0ZfU0hPUlRfXyAhPSAyIFwKKyAgICAgfHwg X19TSVpFT0ZfU0laRV9UX18gIT0gOCBcCisgICAgIHx8IF9fU0laRU9GX1BP SU5URVJfXyAhPSA4KQorI2Vycm9yICJEYXRhLXR5cGUgY29udmVyc2lvbiBy ZXF1aXJlZCBmb3IgcmV2X29mZmxvYWQiCisjZW5kaWYKKworI2VuZGlmICAv KiBMSUJHT01QX0dDTl9IICovCmRpZmYgLS1naXQgYS9saWJnb21wL2NvbmZp Zy9nY24vdGFyZ2V0LmMgYi9saWJnb21wL2NvbmZpZy9nY24vdGFyZ2V0LmMK aW5kZXggYzg0ODRmYTE4ZDkuLmVjYmYzZjMzN2QwIDEwMDY0NAotLS0gYS9s aWJnb21wL2NvbmZpZy9nY24vdGFyZ2V0LmMKKysrIGIvbGliZ29tcC9jb25m aWcvZ2NuL3RhcmdldC5jCkBAIC0yNCw4ICsyNCwxMSBAQAogICAgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KIAogI2luY2x1ZGUgImxp YmdvbXAuaCIKKyNpbmNsdWRlICJsaWJnb21wLWdjbi5oIgogI2luY2x1ZGUg PGxpbWl0cy5oPgogCitleHRlcm4gdm9sYXRpbGUgc3RydWN0IGdvbXBfb2Zm bG9hZF9pY3ZzIEdPTVBfQURESVRJT05BTF9JQ1ZTOworCiBib29sCiBHT01Q X3RlYW1zNCAodW5zaWduZWQgaW50IG51bV90ZWFtc19sb3dlciwgdW5zaWdu ZWQgaW50IG51bV90ZWFtc191cHBlciwKIAkgICAgIHVuc2lnbmVkIGludCB0 aHJlYWRfbGltaXQsIGJvb2wgZmlyc3QpCkBAIC03NSwxNiArNzgsMzQgQEAg R09NUF90YXJnZXRfZXh0IChpbnQgZGV2aWNlLCB2b2lkICgqZm4pICh2b2lk ICopLCBzaXplX3QgbWFwbnVtLAogCQkgdm9pZCAqKmhvc3RhZGRycywgc2l6 ZV90ICpzaXplcywgdW5zaWduZWQgc2hvcnQgKmtpbmRzLAogCQkgdW5zaWdu ZWQgaW50IGZsYWdzLCB2b2lkICoqZGVwZW5kLCB2b2lkICoqYXJncykKIHsK LSAgKHZvaWQpIGRldmljZTsKLSAgKHZvaWQpIGZuOwotICAodm9pZCkgbWFw bnVtOwotICAodm9pZCkgaG9zdGFkZHJzOwotICAodm9pZCkgc2l6ZXM7Ci0g ICh2b2lkKSBraW5kczsKKyAgc3RydWN0IHJldl9vZmZsb2FkICpyZXY7CisK ICAgKHZvaWQpIGZsYWdzOwogICAodm9pZCkgZGVwZW5kOwogICAodm9pZCkg YXJnczsKLSAgX19idWlsdGluX3VucmVhY2hhYmxlICgpOworCisgIGlmIChk ZXZpY2UgIT0gR09NUF9ERVZJQ0VfSE9TVF9GQUxMQkFDSyB8fCBmbiA9PSBO VUxMKQorICAgIHJldHVybjsKKworICByZWdpc3RlciB2b2lkICoqa2VybmFy Z3MgYXNtICgiczgiKTsKKyAgcmV2ID0gKHN0cnVjdCByZXZfb2ZmbG9hZCAq KSBrZXJuYXJnc1s1XTsKKworICB3aGlsZSAoX19zeW5jX2xvY2tfdGVzdF9h bmRfc2V0ICgmcmV2LT5sb2NrLCAodWludDhfdCkgMSkpCisgICAgLyogc3Bp biAqLyA7CisKKyAgcmV2LT5tYXBudW0gPSBtYXBudW07CisgIHJldi0+YWRk cnMgPSBob3N0YWRkcnM7CisgIHJldi0+c2l6ZXMgPSBzaXplczsKKyAgcmV2 LT5raW5kcyA9IGtpbmRzOworICByZXYtPmRldl9udW0gPSBHT01QX0FERElU SU9OQUxfSUNWUy5kZXZpY2VfbnVtOworCisgIC8qICdmbicgbXVzdCBiZSBs YXN0LiAgKi8KKyAgX19hdG9taWNfc3RvcmVfbiAoJnJldi0+Zm4sIGZuLCBf X0FUT01JQ19SRUxFQVNFKTsKKworICAvKiBQcm9jZXNzZWQgb24gdGhlIGhv c3QgLSB3aGVuIGRvbmUsIGZuIGlzIHNldCB0byBOVUxMLiAgKi8KKyAgd2hp bGUgKF9fYXRvbWljX2xvYWRfbiAoJnJldi0+Zm4sIF9fQVRPTUlDX0FDUVVJ UkUpICE9IDApCisgICAgLyogc3BpbiAqLyA7CisgIF9fc3luY19sb2NrX3Jl bGVhc2UgKCZyZXYtPmxvY2spOwogfQogCiB2b2lkCmRpZmYgLS1naXQgYS9s aWJnb21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMgYi9saWJnb21wL3BsdWdpbi9w bHVnaW4tZ2NuLmMKaW5kZXggMDRiMTIyZjJhMDkuLmViYzlhNTVlYjEzIDEw MDY0NAotLS0gYS9saWJnb21wL3BsdWdpbi9wbHVnaW4tZ2NuLmMKKysrIGIv bGliZ29tcC9wbHVnaW4vcGx1Z2luLWdjbi5jCkBAIC00Miw2ICs0Miw3IEBA CiAjaW5jbHVkZSA8ZGxmY24uaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KICNp bmNsdWRlICJsaWJnb21wLXBsdWdpbi5oIgorI2luY2x1ZGUgImNvbmZpZy9n Y24vbGliZ29tcC1nY24uaCIKICNpbmNsdWRlICJnb21wLWNvbnN0YW50cy5o IgogI2luY2x1ZGUgPGVsZi5oPgogI2luY2x1ZGUgIm9hY2MtcGx1Z2luLmgi CkBAIC0yNTEsNiArMjUyLDkgQEAgc3RydWN0IGtlcm5hcmdzIHsKICAgICBP bmx5IG5lZWRlZCBmb3IgT3Blbk1QLiAgKi8KICAgaW50NjRfdCBhcmVuYV9w dHI7CiAKKyAgLyogQSBwb2ludGVyIHRvIHJldmVyc2Utb2ZmbG9hZC4gKi8K KyAgaW50NjRfdCByZXZfcHRyOworCiAgIC8qIE91dHB1dCBkYXRhLiAgKi8K ICAgc3RydWN0IG91dHB1dCB7CiAgICAgaW50IHJldHVybl92YWx1ZTsKQEAg LTI2Nyw2ICsyNzEsOCBAQCBzdHJ1Y3Qga2VybmFyZ3MgewogICAgIH0gcXVl dWVbMTAyNF07CiAgICAgdW5zaWduZWQgaW50IGNvbnN1bWVkOwogICB9IG91 dHB1dF9kYXRhOworCisgIHN0cnVjdCByZXZfb2ZmbG9hZCByZXZfZGF0YTsK IH07CiAKIC8qIEEgcXVldWUgZW50cnkgZm9yIGEgZnV0dXJlIGFzeW5jaHJv bm91cyBsYXVuY2guICAqLwpAQCAtNDIyLDYgKzQyOCwxMiBAQCBzdHJ1Y3Qg YWdlbnRfaW5mbwogICAgICBpZiBpdCBoYXMgYmVlbi4gICovCiAgIGJvb2wg aW5pdGlhbGl6ZWQ7CiAKKyAgLyogRmxhZyB3aGV0aGVyIHRoZSBIU0EgcHJv Z3JhbSB0aGF0IGNvbnNpc3RzIG9mIGFsbCB0aGUgbW9kdWxlcyBoYXMgYmVl bgorICAgICBmaW5hbGl6ZWQuICAqLworICBib29sIHByb2dfZmluYWxpemVk OworICAvKiBGbGFnIHdoZXRoZXIgdGhlIEhTQSBPcGVuTVAncyByZXF1aXJl c19yZXZlcnNlX29mZmxvYWQgaGFzIGJlZW4gdXNlZC4gICovCisgIGJvb2wg aGFzX3JldmVyc2Vfb2ZmbG9hZDsKKwogICAvKiBUaGUgaW5zdHJ1Y3Rpb24g c2V0IGFyY2hpdGVjdHVyZSBvZiB0aGUgZGV2aWNlLiAqLwogICBnY25faXNh IGRldmljZV9pc2E7CiAgIC8qIE5hbWUgb2YgdGhlIGFnZW50LiAqLwpAQCAt NDU2LDkgKzQ2OCw2IEBAIHN0cnVjdCBhZ2VudF9pbmZvCiAgICAgIHRocmVh ZCBzaG91bGQgaGF2ZSBsb2NrZWQgYWdlbnQtPm1vZHVsZV9yd2xvY2sgZm9y IHJlYWRpbmcgYmVmb3JlCiAgICAgIGFjcXVpcmluZyBpdC4gICovCiAgIHB0 aHJlYWRfbXV0ZXhfdCBwcm9nX211dGV4OwotICAvKiBGbGFnIHdoZXRoZXIg dGhlIEhTQSBwcm9ncmFtIHRoYXQgY29uc2lzdHMgb2YgYWxsIHRoZSBtb2R1 bGVzIGhhcyBiZWVuCi0gICAgIGZpbmFsaXplZC4gICovCi0gIGJvb2wgcHJv Z19maW5hbGl6ZWQ7CiAgIC8qIEhTQSBleGVjdXRhYmxlIC0gdGhlIGZpbmFs aXplZCBwcm9ncmFtIHRoYXQgaXMgdXNlZCB0byBsb2NhdGUga2VybmVscy4g ICovCiAgIGhzYV9leGVjdXRhYmxlX3QgZXhlY3V0YWJsZTsKIH07CkBAIC0x OTE1LDYgKzE5MjQsOSBAQCBjcmVhdGVfa2VybmVsX2Rpc3BhdGNoIChzdHJ1 Y3Qga2VybmVsX2luZm8gKmtlcm5lbCwgaW50IG51bV90ZWFtcykKICAgICAg ICBpKyspCiAgICAga2VybmFyZ3MtPm91dHB1dF9kYXRhLnF1ZXVlW2ldLndy aXR0ZW4gPSAwOwogICBrZXJuYXJncy0+b3V0cHV0X2RhdGEuY29uc3VtZWQg PSAwOworICBrZXJuYXJncy0+cmV2X3B0ciA9IChpbnQ2NF90KSAma2VybmFy Z3MtPnJldl9kYXRhOworICBrZXJuYXJncy0+cmV2X2RhdGEubG9jayA9IDA7 CisgIGtlcm5hcmdzLT5yZXZfZGF0YS5mbiA9IDA7CiAKICAgLyogUGFzcyBp biB0aGUgaGVhcCBsb2NhdGlvbi4gICovCiAgIGtlcm5hcmdzLT5oZWFwX3B0 ciA9IChpbnQ2NF90KWtlcm5lbC0+bW9kdWxlLT5oZWFwOwpAQCAtMTkzMSw2 ICsxOTQzLDM2IEBAIGNyZWF0ZV9rZXJuZWxfZGlzcGF0Y2ggKHN0cnVjdCBr ZXJuZWxfaW5mbyAqa2VybmVsLCBpbnQgbnVtX3RlYW1zKQogICByZXR1cm4g c2hhZG93OwogfQogCisjaWYgMQorLyogVGhpcyBpcyBwYXJ0IG9mIHRoZSBw YXRjaDoKKyAgICJsaWJnb21wL252cHR4OiBQcmVwYXJlIGZvciByZXZlcnNl LW9mZmxvYWQgY2FsbGJhY2sgaGFuZGxpbmciICovCitzdGF0aWMgdm9pZCBH T01QX1BMVUdJTl90YXJnZXRfcmV2ICh1aW50NjRfdCwgdWludDY0X3QsIHVp bnQ2NF90LCB1aW50NjRfdCwKKwkJCQkgICAgdWludDY0X3QsIGludCwKKwkJ CQkgICAgdm9pZCAoKikgKHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3Qs CisJCQkJCSAgICAgIHZvaWQgKiksCisJCQkJICAgIHZvaWQgKCopICh2b2lk ICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LAorCQkJCQkgICAgICB2b2lkICop LCB2b2lkICopCit7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQKK3JldmVy c2Vfb2ZmbG9hZCAoc3RydWN0IGtlcm5hcmdzICprZXJuYXJncykKK3sKKyAg dWludDY0X3QgZm5fcHRyID0gX19hdG9taWNfbG9hZF9uICgma2VybmFyZ3Mt PnJldl9kYXRhLmZuLCBfX0FUT01JQ19BQ1FVSVJFKTsKKyAgaWYgKGZuX3B0 ciA9PSAwKQorICAgIHJldHVybjsKKworICB1aW50NjRfdCBtYXBudW0gPSBr ZXJuYXJncy0+cmV2X2RhdGEubWFwbnVtOworICB1aW50NjRfdCBhZGRyX3B0 ciA9IGtlcm5hcmdzLT5yZXZfZGF0YS5hZGRyczsKKyAgdWludDY0X3Qgc2l6 ZXNfcHRyID0ga2VybmFyZ3MtPnJldl9kYXRhLnNpemVzOworICB1aW50NjRf dCBraW5kc19wdHIgPSBrZXJuYXJncy0+cmV2X2RhdGEua2luZHM7CisgIGlu dCBkZXZfbnVtID0gKGludCkga2VybmFyZ3MtPnJldl9kYXRhLmRldl9udW07 CisgIEdPTVBfUExVR0lOX3RhcmdldF9yZXYgKGZuX3B0ciwgbWFwbnVtLCBh ZGRyX3B0ciwgc2l6ZXNfcHRyLCBraW5kc19wdHIsCisJCQkgIGRldl9udW0s IE5VTEwsIE5VTEwpOworICBfX2F0b21pY19zdG9yZV9uICgma2VybmFyZ3Mt PnJldl9kYXRhLmZuLCAwLCBfX0FUT01JQ19SRUxFQVNFKTsKK30KKwogLyog T3V0cHV0IGFueSBkYXRhIHdyaXR0ZW4gdG8gY29uc29sZSBvdXRwdXQgZnJv bSB0aGUga2VybmVsLiAgSXQgaXMgZXhwZWN0ZWQKICAgIHRoYXQgdGhpcyBm dW5jdGlvbiBpcyBwb2xsZWQgZHVyaW5nIGtlcm5lbCBleGVjdXRpb24uCiAK QEAgLTIyNjMsMTEgKzIzMDUsMTUgQEAgcnVuX2tlcm5lbCAoc3RydWN0IGtl cm5lbF9pbmZvICprZXJuZWwsIHZvaWQgKnZhcnMsCiAKICAgR0NOX0RFQlVH ICgiS2VybmVsIGRpc3BhdGNoZWQsIHdhaXRpbmcgZm9yIGNvbXBsZXRpb25c biIpOwogCisgIGJvb2wgaGFzX3JldmVyc2Vfb2ZmbG9hZCA9IGtlcm5lbC0+ YWdlbnQtPmhhc19yZXZlcnNlX29mZmxvYWQ7CisKICAgLyogUm9vdCBzaWdu YWwgd2FpdHMgd2l0aCAxbXMgdGltZW91dC4gICovCiAgIHdoaWxlIChoc2Ff Zm5zLmhzYV9zaWduYWxfd2FpdF9hY3F1aXJlX2ZuIChzLCBIU0FfU0lHTkFM X0NPTkRJVElPTl9MVCwgMSwKIAkJCQkJICAgICAxMDAwICogMTAwMCwKIAkJ CQkJICAgICBIU0FfV0FJVF9TVEFURV9CTE9DS0VEKSAhPSAwKQogICAgIHsK KyAgICAgIGlmIChoYXNfcmV2ZXJzZV9vZmZsb2FkKQorCXJldmVyc2Vfb2Zm bG9hZCAoc2hhZG93LT5rZXJuYXJnX2FkZHJlc3MpOwogICAgICAgY29uc29s ZV9vdXRwdXQgKGtlcm5lbCwgc2hhZG93LT5rZXJuYXJnX2FkZHJlc3MsIGZh bHNlKTsKICAgICB9CiAgIGNvbnNvbGVfb3V0cHV0IChrZXJuZWwsIHNoYWRv dy0+a2VybmFyZ19hZGRyZXNzLCB0cnVlKTsKQEAgLTMzNDAsNiArMzM4Niw3 IEBAIEdPTVBfT0ZGTE9BRF9pbml0X2RldmljZSAoaW50IG4pCiAKICAgR0NO X0RFQlVHICgiR0NOIGFnZW50ICVkIGluaXRpYWxpemVkXG4iLCBuKTsKIAor ICBhZ2VudC0+aGFzX3JldmVyc2Vfb2ZmbG9hZCA9IGZhbHNlOwogICBhZ2Vu dC0+aW5pdGlhbGl6ZWQgPSB0cnVlOwogICByZXR1cm4gdHJ1ZTsKIH0KQEAg LTM1NDcsNiArMzU5NCw3IEBAIEdPTVBfT0ZGTE9BRF9sb2FkX2ltYWdlIChp bnQgb3JkLCB1bnNpZ25lZCB2ZXJzaW9uLCBjb25zdCB2b2lkICp0YXJnZXRf ZGF0YSwKICAgICAgIEdPTVBfT0ZGTE9BRF9kZXYyaG9zdCAoYWdlbnQtPmRl dmljZV9pZCwgKnJldl9mbl90YWJsZSwKIAkJCSAgICAgKHZvaWQqKSBmbl90 YWJsZV9hZGRyLAogCQkJICAgICBrZXJuZWxfY291bnQgKiBzaXplb2YgKHVp bnQ2NF90KSk7CisgICAgICBhZ2VudC0+aGFzX3JldmVyc2Vfb2ZmbG9hZCA9 IHRydWU7CiAgICAgfQogCiAgIHJldHVybiBrZXJuZWxfY291bnQgKyB2YXJf Y291bnQgKyBvdGhlcl9jb3VudDsK --------------aasAdehMudO0TiCptUmVGSjN--