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 3C213388EC1B for ; Mon, 19 Oct 2020 17:58:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3C213388EC1B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Kwok_Yeung@mentor.com IronPort-SDR: lnfHiWiZbJ0CxwQib4L6b/rXBtyzN9Kz8QPaznLKflVL5+5LTSLsQNExj2UA97/L8DeUpAkxn7 xUZf6h0Nm4890cbbYKzU3noFhardBJPIg+7DhtRyVl0O4Dkpb1aTK/rruO6xk1gGdk79cHy/bW USMYqng2ZJITiEzikGrSuvhlYhM7upjB7xV58C1HNuiZ9LHUX1CgNKJkQqSwDhnDoHjY/gKOGk d2hNFsaCjGwD/qhDRS22s4zn35HLE+nFOq50GnYMcUe1e9r5WsbzoFbRm2An6fa/ghufb7SiBj +Zk= X-IronPort-AV: E=Sophos;i="5.77,395,1596528000"; d="scan'208";a="54108620" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 19 Oct 2020 09:57:59 -0800 IronPort-SDR: 7zqNVMaT2Iwu5hmmkExcAl3i3pWQZRy2c9R3xCogjqEFmx4/euUFvwMXNIVWObmUUZQf6EJ+uB G78CQfxMBfY+2mgpDSRyFmlC4PtZDo3w07TbK6hyoINUOcrS3V3q6Dcktmeu9JMEc0B3F4d1L7 wr8lymW29/yzbN2c/NcsgEJY22zdfSrqgqqWf1Z+OkDcl2FCSinEVK3iP1A2eUTC5+jVvL4Lfn XxX0lI8ALoCkXYuk7hKQigy6lfADJtVHmfz12VEYaYBmydRZX57njSei21ppgWmntc51Vilxys bF8= Subject: Re: [PATCH] openmp: Implement support for OMP_TARGET_OFFLOAD To: Jakub Jelinek , GCC Patches References: <04045d90-625a-9214-31d4-0d00dbaf6ad7@codesourcery.com> <20201015105018.GZ2176@tucnak> <20201015110229.GA2176@tucnak> From: Kwok Cheung Yeung Message-ID: <1cea58e5-a32b-0f7d-03b8-d443c280186f@codesourcery.com> Date: Mon, 19 Oct 2020 18:57:49 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.3.3 MIME-Version: 1.0 In-Reply-To: <20201015110229.GA2176@tucnak> Content-Type: multipart/mixed; boundary="------------9538B3890AB48F8AD295CE2E" Content-Language: en-GB X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-02.mgc.mentorg.com (139.181.222.2) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, NICE_REPLY_A, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org 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: Mon, 19 Oct 2020 17:58:02 -0000 --------------9538B3890AB48F8AD295CE2E Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit On 15/10/2020 12:02 pm, Jakub Jelinek wrote: > On Thu, Oct 15, 2020 at 12:50:18PM +0200, Jakub Jelinek via Gcc-patches wrote: > Ok, the first response indicates that both if (false) and > omp_get_initial_device () are valid. > Therefore, I think until omp_get_initial_device () value is changed, we > want in resolve_device: > if (device_id < 0 || device_id >= gomp_get_num_devices ()) > { > if (device_id != GOMP_DEVICE_HOST_FALLBACK) > gomp_fatal (...); > return NULL; > } > and do gomp_fatal also for further return NULLs in the function. > And then in > if (devicep == NULL > || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) > /* All shared memory devices should use the GOMP_target_ext function. */ > || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM > || !(fn_addr = gomp_get_target_fn_addr (devicep, fn))) > return gomp_target_fallback (fn, hostaddrs); > and similar do gomp_fatal before the gomp_target_fallback call > if target-offload-var ICV is mandatory and devicep != NULL. > Instead of doing a gomp_fatal before every call to gomp_target_fallback/gomp_target_data_fallback, I think it would be tidier to pass devicep into the fallback instead and keep the gomp_fatals in the fallback functions? Although it is kind of odd to pass the device to the fallback function to be used if the device in question does not work, but at least the fallback functions are static to target.c. Is this version okay for trunk? Thanks Kwok --------------9538B3890AB48F8AD295CE2E Content-Type: text/plain; charset="UTF-8"; name="omp_target_offload.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="omp_target_offload.patch" Y29tbWl0IDgyNTU1ZjUwZDI5MzBmOTczYWIyMDc4MmViY2I4MzZiNzE5YmNlOTYKQXV0aG9y OiBLd29rIENoZXVuZyBZZXVuZyA8a2N5QGNvZGVzb3VyY2VyeS5jb20+CkRhdGU6ICAgTW9u IE9jdCAxOSAxMDo0Nzo0MiAyMDIwIC0wNzAwCgogICAgb3Blbm1wOiBJbXBsZW1lbnQgc3Vw cG9ydCBmb3IgT01QX1RBUkdFVF9PRkZMT0FEIGVudmlyb25tZW50IHZhcmlhYmxlCiAgICAK ICAgIFRoaXMgaW1wbGVtZW50cyBzdXBwb3J0IGZvciB0aGUgT01QX1RBUkdFVF9PRkZMT0FE IGVudmlyb25tZW50IHZhcmlhYmxlCiAgICBpbnRyb2R1Y2VkIGluIHRoZSBPcGVuTVAgNS4w IHN0YW5kYXJkLCB3aGljaCBjb250cm9scyBob3cgb2ZmbG9hZGluZwogICAgaXMgaGFuZGxl ZC4gIEl0IG1heSBiZSBzZXQgdG8gTUFOREFUT1JZIChhYm9ydCBpZiBvZmZsb2FkaW5nIGNh bm5vdCBiZQogICAgcGVyZm9ybWVkKSwgRElTQUJMRUQgKG5vIG9mZmxvYWRpbmcgdG8gZGV2 aWNlcykgb3IgREVGQVVMVCAob2ZmbG9hZCB0bwogICAgZGV2aWNlIGlmIHBvc3NpYmxlLCBm YWxsIGJhY2sgdG8gaG9zdCBpZiBub3QpLgogICAgCiAgICAyMDIwLTEwLTE5ICBLd29rIENo ZXVuZyBZZXVuZyAgPGtjeUBjb2Rlc291cmNlcnkuY29tPgogICAgCiAgICAJbGliZ29tcC8K ICAgIAkqIGVudi5jIChnb21wX3RhcmdldF9vZmZsb2FkX3Zhcik6IE5ldy4KICAgIAkocGFy c2VfdGFyZ2V0X29mZmxvYWQpOiBOZXcuCiAgICAJKGhhbmRsZV9vbXBfZGlzcGxheV9lbnYp OiBQcmludCB2YWx1ZSBvZiBPTVBfVEFSR0VUX09GRkxPQUQuCiAgICAJKGluaXRpYWxpemVf ZW52KTogUGFyc2UgT01QX1RBUkdFVF9PRkZMT0FELgogICAgCSogbGliZ29tcC5oIChnb21w X3RhcmdldF9vZmZsb2FkX3QpOiBOZXcuCiAgICAJKGdvbXBfdGFyZ2V0X29mZmxvYWRfdmFy KTogTmV3LgogICAgCSogbGliZ29tcC50ZXhpIChPTVBfVEFSR0VUX09GRkxPQUQpOiBOZXcg c2VjdGlvbi4KICAgIAkqIHRhcmdldC5jIChyZXNvbHZlX2RldmljZSk6IEdlbmVyYXRlIGVy cm9yIGlmIGRldmljZSBub3QgZm91bmQgYW5kCiAgICAJb2ZmbG9hZGluZyBpcyBtYW5kYXRv cnkuCiAgICAJKGdvbXBfdGFyZ2V0X2ZhbGxiYWNrKTogR2VuZXJhdGUgZXJyb3IgaWYgb2Zm bG9hZGluZyBpcyBtYW5kYXRvcnkuCiAgICAJKEdPTVBfdGFyZ2V0KTogQWRkIGFyZ3VtZW50 IGluIGNhbGwgdG8gZ29tcF90YXJnZXRfZmFsbGJhY2suCiAgICAJKEdPTVBfdGFyZ2V0X2V4 dCk6IExpa2V3aXNlLgogICAgCShnb21wX3RhcmdldF9kYXRhX2ZhbGxiYWNrKTogR2VuZXJh dGUgZXJyb3IgaWYgb2ZmbG9hZGluZyBpcyBtYW5kYXRvcnkuCiAgICAJKEdPTVBfdGFyZ2V0 X2RhdGEpOiBBZGQgYXJndW1lbnQgaW4gY2FsbCB0byBnb21wX3RhcmdldF9kYXRhX2ZhbGxi YWNrLgogICAgCShHT01QX3RhcmdldF9kYXRhX2V4dCk6IExpa2V3aXNlLgogICAgCShnb21w X3RhcmdldF90YXNrX2ZuKTogQWRkIGFyZ3VtZW50IGluIGNhbGwgdG8gZ29tcF90YXJnZXRf ZmFsbGJhY2suCiAgICAJKGdvbXBfdGFyZ2V0X2luaXQpOiBSZXR1cm4gZWFybHkgaWYgb2Zm bG9hZGluZyBpcyBkaXNhYmxlZC4KCmRpZmYgLS1naXQgYS9saWJnb21wL2Vudi5jIGIvbGli Z29tcC9lbnYuYwppbmRleCBkNzMwYzQ4Li5kMGVhZThkIDEwMDY0NAotLS0gYS9saWJnb21w L2Vudi5jCisrKyBiL2xpYmdvbXAvZW52LmMKQEAgLTc1LDYgKzc1LDcgQEAgc3RydWN0IGdv bXBfdGFza19pY3YgZ29tcF9nbG9iYWxfaWN2ID0gewogCiB1bnNpZ25lZCBsb25nIGdvbXBf bWF4X2FjdGl2ZV9sZXZlbHNfdmFyID0gZ29tcF9zdXBwb3J0ZWRfYWN0aXZlX2xldmVsczsK IGJvb2wgZ29tcF9jYW5jZWxfdmFyID0gZmFsc2U7CitlbnVtIGdvbXBfdGFyZ2V0X29mZmxv YWRfdCBnb21wX3RhcmdldF9vZmZsb2FkX3ZhciA9IEdPTVBfVEFSR0VUX09GRkxPQURfREVG QVVMVDsKIGludCBnb21wX21heF90YXNrX3ByaW9yaXR5X3ZhciA9IDA7CiAjaWZuZGVmIEhB VkVfU1lOQ19CVUlMVElOUwogZ29tcF9tdXRleF90IGdvbXBfbWFuYWdlZF90aHJlYWRzX2xv Y2s7CkBAIC0zNzQsNiArMzc1LDQ4IEBAIHBhcnNlX3Vuc2lnbmVkX2xvbmdfbGlzdCAoY29u c3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyAqcDFzdHZhbHVlLAogICByZXR1cm4gZmFs c2U7CiB9CiAKK3N0YXRpYyB2b2lkCitwYXJzZV90YXJnZXRfb2ZmbG9hZCAoY29uc3QgY2hh ciAqbmFtZSwgZW51bSBnb21wX3RhcmdldF9vZmZsb2FkX3QgKm9mZmxvYWQpCit7CisgIGNv bnN0IGNoYXIgKmVudjsKKyAgYm9vbCBmb3VuZCA9IGZhbHNlOworICBlbnVtIGdvbXBfdGFy Z2V0X29mZmxvYWRfdCBuZXdfb2ZmbG9hZDsKKworICBlbnYgPSBnZXRlbnYgKG5hbWUpOwor ICBpZiAoZW52ID09IE5VTEwpCisgICAgcmV0dXJuOworCisgIHdoaWxlIChpc3NwYWNlICgo dW5zaWduZWQgY2hhcikgKmVudikpCisgICAgKytlbnY7CisgIGlmIChzdHJuY2FzZWNtcCAo ZW52LCAiZGVmYXVsdCIsIDcpID09IDApCisgICAgeworICAgICAgZW52ICs9IDc7CisgICAg ICBmb3VuZCA9IHRydWU7CisgICAgICBuZXdfb2ZmbG9hZCA9IEdPTVBfVEFSR0VUX09GRkxP QURfREVGQVVMVDsKKyAgICB9CisgIGVsc2UgaWYgKHN0cm5jYXNlY21wIChlbnYsICJtYW5k YXRvcnkiLCA5KSA9PSAwKQorICAgIHsKKyAgICAgIGVudiArPSA5OworICAgICAgZm91bmQg PSB0cnVlOworICAgICAgbmV3X29mZmxvYWQgPSBHT01QX1RBUkdFVF9PRkZMT0FEX01BTkRB VE9SWTsKKyAgICB9CisgIGVsc2UgaWYgKHN0cm5jYXNlY21wIChlbnYsICJkaXNhYmxlZCIs IDgpID09IDApCisgICAgeworICAgICAgZW52ICs9IDg7CisgICAgICBmb3VuZCA9IHRydWU7 CisgICAgICBuZXdfb2ZmbG9hZCA9IEdPTVBfVEFSR0VUX09GRkxPQURfRElTQUJMRUQ7Cisg ICAgfQorICB3aGlsZSAoaXNzcGFjZSAoKHVuc2lnbmVkIGNoYXIpICplbnYpKQorICAgICsr ZW52OworICBpZiAoZm91bmQgJiYgKmVudiA9PSAnXDAnKQorICAgIHsKKyAgICAgICpvZmZs b2FkID0gbmV3X29mZmxvYWQ7CisgICAgICByZXR1cm47CisgICAgfQorCisgIGdvbXBfZXJy b3IgKCJJbnZhbGlkIHZhbHVlIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZSBPTVBfVEFSR0VU X09GRkxPQUQiKTsKK30KKwogLyogUGFyc2UgZW52aXJvbm1lbnQgdmFyaWFibGUgc2V0IHRv IGEgYm9vbGVhbiBvciBsaXN0IG9mIG9tcF9wcm9jX2JpbmRfdAogICAgZW51bSB2YWx1ZXMu ICBSZXR1cm4gdHJ1ZSBpZiBvbmUgd2FzIHByZXNlbnQgYW5kIGl0IHdhcyBzdWNjZXNzZnVs bHkKICAgIHBhcnNlZC4gICovCkBAIC0xMzM0LDYgKzEzNzcsMjEgQEAgaGFuZGxlX29tcF9k aXNwbGF5X2VudiAodW5zaWduZWQgbG9uZyBzdGFja3NpemUsIGludCB3YWl0X3BvbGljeSkK ICAgICB9CiAgIGZwdXRzICgiJ1xuIiwgc3RkZXJyKTsKIAorICBmcHV0cyAoIiAgT01QX1RB UkdFVF9PRkZMT0FEID0gJyIsIHN0ZGVycik7CisgIHN3aXRjaCAoZ29tcF90YXJnZXRfb2Zm bG9hZF92YXIpCisgICAgeworICAgIGNhc2UgR09NUF9UQVJHRVRfT0ZGTE9BRF9ERUZBVUxU OgorICAgICAgZnB1dHMgKCJERUZBVUxUIiwgc3RkZXJyKTsKKyAgICAgIGJyZWFrOworICAg IGNhc2UgR09NUF9UQVJHRVRfT0ZGTE9BRF9NQU5EQVRPUlk6CisgICAgICBmcHV0cyAoIk1B TkRBVE9SWSIsIHN0ZGVycik7CisgICAgICBicmVhazsKKyAgICBjYXNlIEdPTVBfVEFSR0VU X09GRkxPQURfRElTQUJMRUQ6CisgICAgICBmcHV0cyAoIkRJU0FCTEVEIiwgc3RkZXJyKTsK KyAgICAgIGJyZWFrOworICAgIH0KKyAgZnB1dHMgKCInXG4iLCBzdGRlcnIpOworCiAgIGlm ICh2ZXJib3NlKQogICAgIHsKICAgICAgIGZwdXRzICgiICBHT01QX0NQVV9BRkZJTklUWSA9 ICcnXG4iLCBzdGRlcnIpOwpAQCAtMTM2Niw2ICsxNDI0LDcgQEAgaW5pdGlhbGl6ZV9lbnYg KHZvaWQpCiAgIHBhcnNlX2Jvb2xlYW4gKCJPTVBfQ0FOQ0VMTEFUSU9OIiwgJmdvbXBfY2Fu Y2VsX3Zhcik7CiAgIHBhcnNlX2Jvb2xlYW4gKCJPTVBfRElTUExBWV9BRkZJTklUWSIsICZn b21wX2Rpc3BsYXlfYWZmaW5pdHlfdmFyKTsKICAgcGFyc2VfaW50ICgiT01QX0RFRkFVTFRf REVWSUNFIiwgJmdvbXBfZ2xvYmFsX2ljdi5kZWZhdWx0X2RldmljZV92YXIsIHRydWUpOwor ICBwYXJzZV90YXJnZXRfb2ZmbG9hZCAoIk9NUF9UQVJHRVRfT0ZGTE9BRCIsICZnb21wX3Rh cmdldF9vZmZsb2FkX3Zhcik7CiAgIHBhcnNlX2ludCAoIk9NUF9NQVhfVEFTS19QUklPUklU WSIsICZnb21wX21heF90YXNrX3ByaW9yaXR5X3ZhciwgdHJ1ZSk7CiAgIHBhcnNlX3Vuc2ln bmVkX2xvbmcgKCJPTVBfTUFYX0FDVElWRV9MRVZFTFMiLCAmZ29tcF9tYXhfYWN0aXZlX2xl dmVsc192YXIsCiAJCSAgICAgICB0cnVlKTsKZGlmZiAtLWdpdCBhL2xpYmdvbXAvbGliZ29t cC5oIGIvbGliZ29tcC9saWJnb21wLmgKaW5kZXggOWQyNmRlMi4uZGE3YWMwMyAxMDA2NDQK LS0tIGEvbGliZ29tcC9saWJnb21wLmgKKysrIGIvbGliZ29tcC9saWJnb21wLmgKQEAgLTQz NCw2ICs0MzQsMTMgQEAgc3RydWN0IGdvbXBfdGFza19pY3YKICAgc3RydWN0IHRhcmdldF9t ZW1fZGVzYyAqdGFyZ2V0X2RhdGE7CiB9OwogCitlbnVtIGdvbXBfdGFyZ2V0X29mZmxvYWRf dAoreworICBHT01QX1RBUkdFVF9PRkZMT0FEX0RFRkFVTFQsCisgIEdPTVBfVEFSR0VUX09G RkxPQURfTUFOREFUT1JZLAorICBHT01QX1RBUkdFVF9PRkZMT0FEX0RJU0FCTEVECit9Owor CiAjZGVmaW5lIGdvbXBfc3VwcG9ydGVkX2FjdGl2ZV9sZXZlbHMgSU5UX01BWAogCiBleHRl cm4gc3RydWN0IGdvbXBfdGFza19pY3YgZ29tcF9nbG9iYWxfaWN2OwpAQCAtNDQyLDYgKzQ0 OSw3IEBAIGV4dGVybiBnb21wX211dGV4X3QgZ29tcF9tYW5hZ2VkX3RocmVhZHNfbG9jazsK ICNlbmRpZgogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZ29tcF9tYXhfYWN0aXZlX2xldmVsc192 YXI7CiBleHRlcm4gYm9vbCBnb21wX2NhbmNlbF92YXI7CitleHRlcm4gZW51bSBnb21wX3Rh cmdldF9vZmZsb2FkX3QgZ29tcF90YXJnZXRfb2ZmbG9hZF92YXI7CiBleHRlcm4gaW50IGdv bXBfbWF4X3Rhc2tfcHJpb3JpdHlfdmFyOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBn b21wX3NwaW5fY291bnRfdmFyLCBnb21wX3Rocm90dGxlZF9zcGluX2NvdW50X3ZhcjsKIGV4 dGVybiB1bnNpZ25lZCBsb25nIGdvbXBfYXZhaWxhYmxlX2NwdXMsIGdvbXBfbWFuYWdlZF90 aHJlYWRzOwpkaWZmIC0tZ2l0IGEvbGliZ29tcC9saWJnb21wLnRleGkgYi9saWJnb21wL2xp YmdvbXAudGV4aQppbmRleCBhODg4NjEzLi43YzZkNWZkIDEwMDY0NAotLS0gYS9saWJnb21w L2xpYmdvbXAudGV4aQorKysgYi9saWJnb21wL2xpYmdvbXAudGV4aQpAQCAtMTM4MSw2ICsx MzgxLDcgQEAgYmVnaW5uaW5nIHdpdGggQGVudntHT01QX30gYXJlIEdOVSBleHRlbnNpb25z LgogKiBPTVBfUExBQ0VTOjogICAgICAgICAgICAgIFNwZWNpZmllcyBvbiB3aGljaCBDUFVz IHRoZSB0aGVhZHMgc2hvdWxkIGJlIHBsYWNlZAogKiBPTVBfU1RBQ0tTSVpFOjogICAgICAg ICAgIFNldCBkZWZhdWx0IHRocmVhZCBzdGFjayBzaXplCiAqIE9NUF9TQ0hFRFVMRTo6ICAg ICAgICAgICAgSG93IHRocmVhZHMgYXJlIHNjaGVkdWxlZAorKiBPTVBfVEFSR0VUX09GRkxP QUQ6OiAgICAgIENvbnRyb2xzIG9mZmxvYWRpbmcgYmVoYXZpb3VyCiAqIE9NUF9USFJFQURf TElNSVQ6OiAgICAgICAgU2V0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB0aHJlYWRzCiAqIE9N UF9XQUlUX1BPTElDWTo6ICAgICAgICAgSG93IHdhaXRpbmcgdGhyZWFkcyBhcmUgaGFuZGxl ZAogKiBHT01QX0NQVV9BRkZJTklUWTo6ICAgICAgIEJpbmQgdGhyZWFkcyB0byBzcGVjaWZp YyBDUFVzCkBAIC0xNjU0LDYgKzE2NTUsMzAgQEAgZHluYW1pYyBzY2hlZHVsaW5nIGFuZCBh IGNodW5rIHNpemUgb2YgMSBpcyB1c2VkLgogCiAKIAorQG5vZGUgT01QX1RBUkdFVF9PRkZM T0FECitAc2VjdGlvbiBAZW52e09NUF9UQVJHRVRfT0ZGTE9BRH0gLS0gQ29udHJvbHMgb2Zm bG9hZGluZyBiZWhhdmlvdXIKK0BjaW5kZXggRW52aXJvbm1lbnQgVmFyaWFibGUKK0BjaW5k ZXggSW1wbGVtZW50YXRpb24gc3BlY2lmaWMgc2V0dGluZworQHRhYmxlIEBhc2lzCitAaXRl bSBAZW1waHtEZXNjcmlwdGlvbn06CitTcGVjaWZpZXMgdGhlIGJlaGF2aW91ciB3aXRoIHJl Z2FyZCB0byBvZmZsb2FkaW5nIGNvZGUgdG8gYSBkZXZpY2UuICBUaGlzCit2YXJpYWJsZSBj YW4gYmUgc2V0IHRvIG9uZSBvZiB0aHJlZSB2YWx1ZXMgLSBAY29kZXtNQU5EQVRPUll9LCBA Y29kZXtESVNBQkxFRH0KK29yIEBjb2Rle0RFRkFVTFR9LgorCitJZiBzZXQgdG8gQGNvZGV7 TUFOREFUT1JZfSwgdGhlIHByb2dyYW0gd2lsbCB0ZXJtaW5hdGUgd2l0aCBhbiBlcnJvciBp ZgordGhlIG9mZmxvYWQgZGV2aWNlIGlzIG5vdCBwcmVzZW50IG9yIGlzIG5vdCBzdXBwb3J0 ZWQuICBJZiBzZXQgdG8KK0Bjb2Rle0RJU0FCTEVEfSwgdGhlbiBvZmZsb2FkaW5nIGlzIGRp c2FibGVkIGFuZCBhbGwgY29kZSB3aWxsIHJ1biBvbiB0aGUKK2hvc3QuIElmIHNldCB0byBA Y29kZXtERUZBVUxUfSwgdGhlIHByb2dyYW0gd2lsbCB0cnkgb2ZmbG9hZGluZyB0byB0aGUK K2RldmljZSBmaXJzdCwgdGhlbiBmYWxsIGJhY2sgdG8gcnVubmluZyBjb2RlIG9uIHRoZSBo b3N0IGlmIGl0IGNhbm5vdC4KKworSWYgdW5kZWZpbmVkLCB0aGVuIHRoZSBwcm9ncmFtIHdp bGwgYmVoYXZlIGFzIGlmIEBjb2Rle0RFRkFVTFR9IHdhcyBzZXQuCisKK0BpdGVtIEBlbXBo e1JlZmVyZW5jZX06CitAdXJlZntodHRwczovL3d3dy5vcGVubXAub3JnLCBPcGVuTVAgc3Bl Y2lmaWNhdGlvbiB2NS4wfSwgU2VjdGlvbiA2LjE3CitAZW5kIHRhYmxlCisKKworCiBAbm9k ZSBPTVBfVEhSRUFEX0xJTUlUCiBAc2VjdGlvbiBAZW52e09NUF9USFJFQURfTElNSVR9IC0t IFNldCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGhyZWFkcwogQGNpbmRleCBFbnZpcm9ubWVu dCBWYXJpYWJsZQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90YXJnZXQuYyBiL2xpYmdvbXAvdGFy Z2V0LmMKaW5kZXggYWI3YWM5Yi4uYzU2ODY3MCAxMDA2NDQKLS0tIGEvbGliZ29tcC90YXJn ZXQuYworKysgYi9saWJnb21wL3RhcmdldC5jCkBAIC0xMTYsNyArMTE2LDEzIEBAIHJlc29s dmVfZGV2aWNlIChpbnQgZGV2aWNlX2lkKQogICAgIH0KIAogICBpZiAoZGV2aWNlX2lkIDwg MCB8fCBkZXZpY2VfaWQgPj0gZ29tcF9nZXRfbnVtX2RldmljZXMgKCkpCi0gICAgcmV0dXJu IE5VTEw7CisgICAgeworICAgICAgaWYgKGdvbXBfdGFyZ2V0X29mZmxvYWRfdmFyID09IEdP TVBfVEFSR0VUX09GRkxPQURfTUFOREFUT1JZCisJICAmJiBkZXZpY2VfaWQgIT0gR09NUF9E RVZJQ0VfSE9TVF9GQUxMQkFDSykKKwlnb21wX2ZhdGFsICgiT01QX1RBUkdFVF9PRkZMT0FE IGlzIHNldCB0byBNQU5EQVRPUlksIGJ1dCBkZXZpY2Ugbm90IGZvdW5kLiIpOworCisgICAg ICByZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgZ29tcF9tdXRleF9sb2NrICgmZGV2aWNlc1tk ZXZpY2VfaWRdLmxvY2spOwogICBpZiAoZGV2aWNlc1tkZXZpY2VfaWRdLnN0YXRlID09IEdP TVBfREVWSUNFX1VOSU5JVElBTElaRUQpCkBAIC0xMjQsNiArMTMwLDExIEBAIHJlc29sdmVf ZGV2aWNlIChpbnQgZGV2aWNlX2lkKQogICBlbHNlIGlmIChkZXZpY2VzW2RldmljZV9pZF0u c3RhdGUgPT0gR09NUF9ERVZJQ0VfRklOQUxJWkVEKQogICAgIHsKICAgICAgIGdvbXBfbXV0 ZXhfdW5sb2NrICgmZGV2aWNlc1tkZXZpY2VfaWRdLmxvY2spOworCisgICAgICBpZiAoZ29t cF90YXJnZXRfb2ZmbG9hZF92YXIgPT0gR09NUF9UQVJHRVRfT0ZGTE9BRF9NQU5EQVRPUlkK KwkgICYmIGRldmljZV9pZCAhPSBHT01QX0RFVklDRV9IT1NUX0ZBTExCQUNLKQorCWdvbXBf ZmF0YWwgKCJPTVBfVEFSR0VUX09GRkxPQUQgaXMgc2V0IHRvIE1BTkRBVE9SWSwgYnV0IGRl dmljZSBpcyBmaW5hbGl6ZWQuIik7CisKICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAg Z29tcF9tdXRleF91bmxvY2sgKCZkZXZpY2VzW2RldmljZV9pZF0ubG9jayk7CkBAIC0xOTk3 LDkgKzIwMDgsMTYgQEAgZ29tcF91bmxvYWRfZGV2aWNlIChzdHJ1Y3QgZ29tcF9kZXZpY2Vf ZGVzY3IgKmRldmljZXApCiAvKiBIb3N0IGZhbGxiYWNrIGZvciBHT01QX3RhcmdldHssX2V4 dH0gcm91dGluZXMuICAqLwogCiBzdGF0aWMgdm9pZAotZ29tcF90YXJnZXRfZmFsbGJhY2sg KHZvaWQgKCpmbikgKHZvaWQgKiksIHZvaWQgKipob3N0YWRkcnMpCitnb21wX3RhcmdldF9m YWxsYmFjayAodm9pZCAoKmZuKSAodm9pZCAqKSwgdm9pZCAqKmhvc3RhZGRycywKKwkJICAg ICAgc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwKQogewogICBzdHJ1Y3QgZ29t cF90aHJlYWQgb2xkX3RociwgKnRociA9IGdvbXBfdGhyZWFkICgpOworCisgIGlmIChnb21w X3RhcmdldF9vZmZsb2FkX3ZhciA9PSBHT01QX1RBUkdFVF9PRkZMT0FEX01BTkRBVE9SWQor ICAgICAgJiYgZGV2aWNlcCAhPSBOVUxMKQorICAgIGdvbXBfZmF0YWwgKCJPTVBfVEFSR0VU X09GRkxPQUQgaXMgc2V0IHRvIE1BTkRBVE9SWSwgYnV0IGRldmljZSBjYW5ub3QgIgorCQki YmUgdXNlZCBmb3Igb2ZmbG9hZGluZy4iKTsKKwogICBvbGRfdGhyID0gKnRocjsKICAgbWVt c2V0ICh0aHIsICdcMCcsIHNpemVvZiAoKnRocikpOwogICBpZiAoZ29tcF9wbGFjZXNfbGlz dCkKQEAgLTIxMDcsNyArMjEyNSw3IEBAIEdPTVBfdGFyZ2V0IChpbnQgZGV2aWNlLCB2b2lk ICgqZm4pICh2b2lkICopLCBjb25zdCB2b2lkICp1bnVzZWQsCiAgICAgICAvKiBBbGwgc2hh cmVkIG1lbW9yeSBkZXZpY2VzIHNob3VsZCB1c2UgdGhlIEdPTVBfdGFyZ2V0X2V4dCBmdW5j dGlvbi4gICovCiAgICAgICB8fCBkZXZpY2VwLT5jYXBhYmlsaXRpZXMgJiBHT01QX09GRkxP QURfQ0FQX1NIQVJFRF9NRU0KICAgICAgIHx8ICEoZm5fYWRkciA9IGdvbXBfZ2V0X3Rhcmdl dF9mbl9hZGRyIChkZXZpY2VwLCBmbikpKQotICAgIHJldHVybiBnb21wX3RhcmdldF9mYWxs YmFjayAoZm4sIGhvc3RhZGRycyk7CisgICAgcmV0dXJuIGdvbXBfdGFyZ2V0X2ZhbGxiYWNr IChmbiwgaG9zdGFkZHJzLCBkZXZpY2VwKTsKIAogICBzdHJ1Y3QgdGFyZ2V0X21lbV9kZXNj ICp0Z3RfdmFycwogICAgID0gZ29tcF9tYXBfdmFycyAoZGV2aWNlcCwgbWFwbnVtLCBob3N0 YWRkcnMsIE5VTEwsIHNpemVzLCBraW5kcywgZmFsc2UsCkBAIC0yMjQzLDcgKzIyNjEsNyBA QCBHT01QX3RhcmdldF9leHQgKGludCBkZXZpY2UsIHZvaWQgKCpmbikgKHZvaWQgKiksIHNp emVfdCBtYXBudW0sCiAJCQkJICAgICAgdGd0X2FsaWduLCB0Z3Rfc2l6ZSk7CiAJICAgIH0K IAl9Ci0gICAgICBnb21wX3RhcmdldF9mYWxsYmFjayAoZm4sIGhvc3RhZGRycyk7CisgICAg ICBnb21wX3RhcmdldF9mYWxsYmFjayAoZm4sIGhvc3RhZGRycywgZGV2aWNlcCk7CiAgICAg ICByZXR1cm47CiAgICAgfQogCkBAIC0yMjc2LDkgKzIyOTQsMTUgQEAgR09NUF90YXJnZXRf ZXh0IChpbnQgZGV2aWNlLCB2b2lkICgqZm4pICh2b2lkICopLCBzaXplX3QgbWFwbnVtLAog LyogSG9zdCBmYWxsYmFjayBmb3IgR09NUF90YXJnZXRfZGF0YXssX2V4dH0gcm91dGluZXMu ICAqLwogCiBzdGF0aWMgdm9pZAotZ29tcF90YXJnZXRfZGF0YV9mYWxsYmFjayAodm9pZCkK K2dvbXBfdGFyZ2V0X2RhdGFfZmFsbGJhY2sgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAq ZGV2aWNlcCkKIHsKICAgc3RydWN0IGdvbXBfdGFza19pY3YgKmljdiA9IGdvbXBfaWN2IChm YWxzZSk7CisKKyAgaWYgKGdvbXBfdGFyZ2V0X29mZmxvYWRfdmFyID09IEdPTVBfVEFSR0VU X09GRkxPQURfTUFOREFUT1JZCisgICAgICAmJiBkZXZpY2VwICE9IE5VTEwpCisgICAgZ29t cF9mYXRhbCAoIk9NUF9UQVJHRVRfT0ZGTE9BRCBpcyBzZXQgdG8gTUFOREFUT1JZLCBidXQg ZGV2aWNlIGNhbm5vdCAiCisJCSJiZSB1c2VkIGZvciBvZmZsb2FkaW5nLiIpOworCiAgIGlm IChpY3YtPnRhcmdldF9kYXRhKQogICAgIHsKICAgICAgIC8qIEV2ZW4gd2hlbiBkb2luZyBh IGhvc3QgZmFsbGJhY2ssIGlmIHRoZXJlIGFyZSBhbnkgYWN0aXZlCkBAIC0yMzAyLDcgKzIz MjYsNyBAQCBHT01QX3RhcmdldF9kYXRhIChpbnQgZGV2aWNlLCBjb25zdCB2b2lkICp1bnVz ZWQsIHNpemVfdCBtYXBudW0sCiAgIGlmIChkZXZpY2VwID09IE5VTEwKICAgICAgIHx8ICEo ZGV2aWNlcC0+Y2FwYWJpbGl0aWVzICYgR09NUF9PRkZMT0FEX0NBUF9PUEVOTVBfNDAwKQog ICAgICAgfHwgKGRldmljZXAtPmNhcGFiaWxpdGllcyAmIEdPTVBfT0ZGTE9BRF9DQVBfU0hB UkVEX01FTSkpCi0gICAgcmV0dXJuIGdvbXBfdGFyZ2V0X2RhdGFfZmFsbGJhY2sgKCk7Cisg ICAgcmV0dXJuIGdvbXBfdGFyZ2V0X2RhdGFfZmFsbGJhY2sgKGRldmljZXApOwogCiAgIHN0 cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnRndAogICAgID0gZ29tcF9tYXBfdmFycyAoZGV2aWNl cCwgbWFwbnVtLCBob3N0YWRkcnMsIE5VTEwsIHNpemVzLCBraW5kcywgZmFsc2UsCkBAIC0y MzIxLDcgKzIzNDUsNyBAQCBHT01QX3RhcmdldF9kYXRhX2V4dCAoaW50IGRldmljZSwgc2l6 ZV90IG1hcG51bSwgdm9pZCAqKmhvc3RhZGRycywKICAgaWYgKGRldmljZXAgPT0gTlVMTAog ICAgICAgfHwgIShkZXZpY2VwLT5jYXBhYmlsaXRpZXMgJiBHT01QX09GRkxPQURfQ0FQX09Q RU5NUF80MDApCiAgICAgICB8fCBkZXZpY2VwLT5jYXBhYmlsaXRpZXMgJiBHT01QX09GRkxP QURfQ0FQX1NIQVJFRF9NRU0pCi0gICAgcmV0dXJuIGdvbXBfdGFyZ2V0X2RhdGFfZmFsbGJh Y2sgKCk7CisgICAgcmV0dXJuIGdvbXBfdGFyZ2V0X2RhdGFfZmFsbGJhY2sgKGRldmljZXAp OwogCiAgIHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnRndAogICAgID0gZ29tcF9tYXBfdmFy cyAoZGV2aWNlcCwgbWFwbnVtLCBob3N0YWRkcnMsIE5VTEwsIHNpemVzLCBraW5kcywgdHJ1 ZSwKQEAgLTI2MTcsNyArMjY0MSw3IEBAIGdvbXBfdGFyZ2V0X3Rhc2tfZm4gKHZvaWQgKmRh dGEpCiAJICB8fCAoZGV2aWNlcC0+Y2FuX3J1bl9mdW5jICYmICFkZXZpY2VwLT5jYW5fcnVu X2Z1bmMgKGZuX2FkZHIpKSkKIAl7CiAJICB0dGFzay0+c3RhdGUgPSBHT01QX1RBUkdFVF9U QVNLX0ZBTExCQUNLOwotCSAgZ29tcF90YXJnZXRfZmFsbGJhY2sgKHR0YXNrLT5mbiwgdHRh c2stPmhvc3RhZGRycyk7CisJICBnb21wX3RhcmdldF9mYWxsYmFjayAodHRhc2stPmZuLCB0 dGFzay0+aG9zdGFkZHJzLCBkZXZpY2VwKTsKIAkgIHJldHVybiBmYWxzZTsKIAl9CiAKQEAg LTMyNTgsNiArMzI4Miw5IEBAIGdvbXBfdGFyZ2V0X2luaXQgKHZvaWQpCiAgIG51bV9kZXZp Y2VzID0gMDsKICAgZGV2aWNlcyA9IE5VTEw7CiAKKyAgaWYgKGdvbXBfdGFyZ2V0X29mZmxv YWRfdmFyID09IEdPTVBfVEFSR0VUX09GRkxPQURfRElTQUJMRUQpCisgICAgcmV0dXJuOwor CiAgIGN1ciA9IE9GRkxPQURfUExVR0lOUzsKICAgaWYgKCpjdXIpCiAgICAgZG8K --------------9538B3890AB48F8AD295CE2E--