From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122554 invoked by alias); 25 Sep 2018 13:11:40 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 122533 invoked by uid 89); 25 Sep 2018 13:11:38 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.9 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=10017, 4826, 2799, bias X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 25 Sep 2018 13:11:32 +0000 Received: from svr-orw-mbx-02.mgc.mentorg.com ([147.34.90.202]) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1g4n7i-0004JY-Bx from ChungLin_Tang@mentor.com ; Tue, 25 Sep 2018 06:11:30 -0700 Received: from [0.0.0.0] (147.34.91.1) by svr-orw-mbx-02.mgc.mentorg.com (147.34.90.202) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Tue, 25 Sep 2018 06:11:27 -0700 Reply-To: From: Chung-Lin Tang Subject: [PATCH 4/6, OpenACC, libgomp] Async re-work, libgomp/target.c changes To: , Jakub Jelinek Message-ID: Date: Tue, 25 Sep 2018 13:11:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------B7B4EEBD7FD1D2D7D135D1C6" X-SW-Source: 2018-09/txt/msg01429.txt.bz2 --------------B7B4EEBD7FD1D2D7D135D1C6 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1378 Hi Jakub, This part has changes to 'struct goacc_asyncqueue*' arguments to various memory copying/mapping functions. To lessen the amount of code changes new 'gomp_map/unmap_vars_async' functions names are used (with the non-async original names defined with the asyncqueue==NULL). Inside gomp_target_fini, a 'gomp_fini_device' named function has been (re?)introduced, since there's also asyncqueue destructing now need before the ->fini_device_func() call. Thanks, Chung-Lin * target.c (goacc_device_copy_async): New function. (gomp_copy_host2dev): Remove 'static', add goacc_asyncqueue parameter, add goacc_device_copy_async case. (gomp_copy_dev2host): Likewise. (gomp_map_vars_existing): Add goacc_asyncqueue parameter, adjust code. (gomp_map_pointer): Likewise. (gomp_map_fields_existing): Likewise. (gomp_map_vars): Add function for compatiblity. (gomp_map_vars_async): Adapt from gomp_map_vars, add goacc_asyncqueue parameter. (gomp_unmap_tgt): Remove statis, add attribute_hidden. (gomp_unmap_vars): Add function for compatiblity. (gomp_unmap_vars_async): Adapt from gomp_unmap_vars, add goacc_asyncqueue parameter. (gomp_fini_device): New function. (gomp_exit_data): Adjust gomp_copy_dev2host call. (gomp_load_plugin_for_device): Remove old interface, adjust to load new async interface. (gomp_target_fini): Adjust code to call gomp_fini_device. --------------B7B4EEBD7FD1D2D7D135D1C6 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="async-04.libgomp-target.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="async-04.libgomp-target.patch" Content-length: 22375 ZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGFyZ2V0LmMgYi9saWJnb21wL3Rhcmdl dC5jCmluZGV4IGRkYTA0MWMuLmZmNWIxMTQgMTAwNjQ0Ci0tLSBhL2xpYmdv bXAvdGFyZ2V0LmMKKysrIGIvbGliZ29tcC90YXJnZXQuYwpAQCAtMTc3LDYg KzE3NywyMiBAQCBnb21wX2RldmljZV9jb3B5IChzdHJ1Y3QgZ29tcF9kZXZp Y2VfZGVzY3IgKmRldmljZXAsCiAgICAgfQogfQogCitzdGF0aWMgaW5saW5l IHZvaWQKK2dvYWNjX2RldmljZV9jb3B5X2FzeW5jIChzdHJ1Y3QgZ29tcF9k ZXZpY2VfZGVzY3IgKmRldmljZXAsCisJCQkgYm9vbCAoKmNvcHlfZnVuYykg KGludCwgdm9pZCAqLCBjb25zdCB2b2lkICosIHNpemVfdCwKKwkJCQkJICAg IHN0cnVjdCBnb2FjY19hc3luY3F1ZXVlICopLAorCQkJIGNvbnN0IGNoYXIg KmRzdCwgdm9pZCAqZHN0YWRkciwKKwkJCSBjb25zdCBjaGFyICpzcmMsIGNv bnN0IHZvaWQgKnNyY2FkZHIsCisJCQkgc2l6ZV90IHNpemUsIHN0cnVjdCBn b2FjY19hc3luY3F1ZXVlICphcSkKK3sKKyAgaWYgKCFjb3B5X2Z1bmMgKGRl dmljZXAtPnRhcmdldF9pZCwgZHN0YWRkciwgc3JjYWRkciwgc2l6ZSwgYXEp KQorICAgIHsKKyAgICAgIGdvbXBfbXV0ZXhfdW5sb2NrICgmZGV2aWNlcC0+ bG9jayk7CisgICAgICBnb21wX2ZhdGFsICgiQ29weWluZyBvZiAlcyBvYmpl Y3QgWyVwLi4lcCkgdG8gJXMgb2JqZWN0IFslcC4uJXApIGZhaWxlZCIsCisJ CSAgc3JjLCBzcmNhZGRyLCBzcmNhZGRyICsgc2l6ZSwgZHN0LCBkc3RhZGRy LCBkc3RhZGRyICsgc2l6ZSk7CisgICAgfQorfQorCiAvKiBJbmZyYXN0cnVj dHVyZSBmb3IgY29hbGVzY2luZyBhZGphY2VudCBvciBuZWFybHkgYWRqYWNl bnQgKGluIGRldmljZSBhZGRyZXNzZXMpCiAgICBob3N0IHRvIGRldmljZSBt ZW1vcnkgdHJhbnNmZXJzLiAgKi8KIApAQCAtMjYzLDggKzI3OSw5IEBAIGdv bXBfdG9fZGV2aWNlX2tpbmRfcCAoaW50IGtpbmQpCiAgICAgfQogfQogCi1z dGF0aWMgdm9pZAorYXR0cmlidXRlX2hpZGRlbiB2b2lkCiBnb21wX2NvcHlf aG9zdDJkZXYgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwK KwkJICAgIHN0cnVjdCBnb2FjY19hc3luY3F1ZXVlICphcSwKIAkJICAgIHZv aWQgKmQsIGNvbnN0IHZvaWQgKmgsIHNpemVfdCBzeiwKIAkJICAgIHN0cnVj dCBnb21wX2NvYWxlc2NlX2J1ZiAqY2J1ZikKIHsKQEAgLTI5MywxNCArMzEw LDIzIEBAIGdvbXBfY29weV9ob3N0MmRldiAoc3RydWN0IGdvbXBfZGV2aWNl X2Rlc2NyICpkZXZpY2VwLAogCSAgICB9CiAJfQogICAgIH0KLSAgZ29tcF9k ZXZpY2VfY29weSAoZGV2aWNlcCwgZGV2aWNlcC0+aG9zdDJkZXZfZnVuYywg ImRldiIsIGQsICJob3N0IiwgaCwgc3opOworICBpZiAoYXEpCisgICAgZ29h Y2NfZGV2aWNlX2NvcHlfYXN5bmMgKGRldmljZXAsIGRldmljZXAtPm9wZW5h Y2MuYXN5bmMuaG9zdDJkZXZfZnVuYywKKwkJCSAgICAgImRldiIsIGQsICJo b3N0IiwgaCwgc3osIGFxKTsKKyAgZWxzZQorICAgIGdvbXBfZGV2aWNlX2Nv cHkgKGRldmljZXAsIGRldmljZXAtPmhvc3QyZGV2X2Z1bmMsICJkZXYiLCBk LCAiaG9zdCIsIGgsIHN6KTsKIH0KIAotc3RhdGljIHZvaWQKK2F0dHJpYnV0 ZV9oaWRkZW4gdm9pZAogZ29tcF9jb3B5X2RldjJob3N0IChzdHJ1Y3QgZ29t cF9kZXZpY2VfZGVzY3IgKmRldmljZXAsCisJCSAgICBzdHJ1Y3QgZ29hY2Nf YXN5bmNxdWV1ZSAqYXEsCiAJCSAgICB2b2lkICpoLCBjb25zdCB2b2lkICpk LCBzaXplX3Qgc3opCiB7Ci0gIGdvbXBfZGV2aWNlX2NvcHkgKGRldmljZXAs IGRldmljZXAtPmRldjJob3N0X2Z1bmMsICJob3N0IiwgaCwgImRldiIsIGQs IHN6KTsKKyAgaWYgKGFxKQorICAgIGdvYWNjX2RldmljZV9jb3B5X2FzeW5j IChkZXZpY2VwLCBkZXZpY2VwLT5vcGVuYWNjLmFzeW5jLmRldjJob3N0X2Z1 bmMsCisJCQkgICAgICJob3N0IiwgaCwgImRldiIsIGQsIHN6LCBhcSk7Cisg IGVsc2UKKyAgICBnb21wX2RldmljZV9jb3B5IChkZXZpY2VwLCBkZXZpY2Vw LT5kZXYyaG9zdF9mdW5jLCAiaG9zdCIsIGgsICJkZXYiLCBkLCBzeik7CiB9 CiAKIHN0YXRpYyB2b2lkCkBAIC0zMTgsNyArMzQ0LDggQEAgZ29tcF9mcmVl X2RldmljZV9tZW1vcnkgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2 aWNlcCwgdm9pZCAqZGV2cHRyKQogICAgSGVscGVyIGZ1bmN0aW9uIG9mIGdv bXBfbWFwX3ZhcnMuICAqLwogCiBzdGF0aWMgaW5saW5lIHZvaWQKLWdvbXBf bWFwX3ZhcnNfZXhpc3RpbmcgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAq ZGV2aWNlcCwgc3BsYXlfdHJlZV9rZXkgb2xkbiwKK2dvbXBfbWFwX3ZhcnNf ZXhpc3RpbmcgKHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwK KwkJCXN0cnVjdCBnb2FjY19hc3luY3F1ZXVlICphcSwgc3BsYXlfdHJlZV9r ZXkgb2xkbiwKIAkJCXNwbGF5X3RyZWVfa2V5IG5ld24sIHN0cnVjdCB0YXJn ZXRfdmFyX2Rlc2MgKnRndF92YXIsCiAJCQl1bnNpZ25lZCBjaGFyIGtpbmQs IHN0cnVjdCBnb21wX2NvYWxlc2NlX2J1ZiAqY2J1ZikKIHsKQEAgLTM0MCw3 ICszNjcsNyBAQCBnb21wX21hcF92YXJzX2V4aXN0aW5nIChzdHJ1Y3QgZ29t cF9kZXZpY2VfZGVzY3IgKmRldmljZXAsIHNwbGF5X3RyZWVfa2V5IG9sZG4s CiAgICAgfQogCiAgIGlmIChHT01QX01BUF9BTFdBWVNfVE9fUCAoa2luZCkp Ci0gICAgZ29tcF9jb3B5X2hvc3QyZGV2IChkZXZpY2VwLAorICAgIGdvbXBf Y29weV9ob3N0MmRldiAoZGV2aWNlcCwgYXEsCiAJCQkodm9pZCAqKSAob2xk bi0+dGd0LT50Z3Rfc3RhcnQgKyBvbGRuLT50Z3Rfb2Zmc2V0CiAJCQkJICAr IG5ld24tPmhvc3Rfc3RhcnQgLSBvbGRuLT5ob3N0X3N0YXJ0KSwKIAkJCSh2 b2lkICopIG5ld24tPmhvc3Rfc3RhcnQsCkBAIC0zNTgsOCArMzg1LDggQEAg Z2V0X2tpbmQgKGJvb2wgc2hvcnRfbWFwa2luZCwgdm9pZCAqa2luZHMsIGlu dCBpZHgpCiB9CiAKIHN0YXRpYyB2b2lkCi1nb21wX21hcF9wb2ludGVyIChz dHJ1Y3QgdGFyZ2V0X21lbV9kZXNjICp0Z3QsIHVpbnRwdHJfdCBob3N0X3B0 ciwKLQkJICB1aW50cHRyX3QgdGFyZ2V0X29mZnNldCwgdWludHB0cl90IGJp YXMsCitnb21wX21hcF9wb2ludGVyIChzdHJ1Y3QgdGFyZ2V0X21lbV9kZXNj ICp0Z3QsIHN0cnVjdCBnb2FjY19hc3luY3F1ZXVlICphcSwKKwkJICB1aW50 cHRyX3QgaG9zdF9wdHIsIHVpbnRwdHJfdCB0YXJnZXRfb2Zmc2V0LCB1aW50 cHRyX3QgYmlhcywKIAkJICBzdHJ1Y3QgZ29tcF9jb2FsZXNjZV9idWYgKmNi dWYpCiB7CiAgIHN0cnVjdCBnb21wX2RldmljZV9kZXNjciAqZGV2aWNlcCA9 IHRndC0+ZGV2aWNlX2Rlc2NyOwpAQCAtMzcwLDcgKzM5Nyw3IEBAIGdvbXBf bWFwX3BvaW50ZXIgKHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnRndCwgdWlu dHB0cl90IGhvc3RfcHRyLAogICBpZiAoY3VyX25vZGUuaG9zdF9zdGFydCA9 PSAodWludHB0cl90KSBOVUxMKQogICAgIHsKICAgICAgIGN1cl9ub2RlLnRn dF9vZmZzZXQgPSAodWludHB0cl90KSBOVUxMOwotICAgICAgZ29tcF9jb3B5 X2hvc3QyZGV2IChkZXZpY2VwLAorICAgICAgZ29tcF9jb3B5X2hvc3QyZGV2 IChkZXZpY2VwLCBhcSwKIAkJCSAgKHZvaWQgKikgKHRndC0+dGd0X3N0YXJ0 ICsgdGFyZ2V0X29mZnNldCksCiAJCQkgICh2b2lkICopICZjdXJfbm9kZS50 Z3Rfb2Zmc2V0LAogCQkJICBzaXplb2YgKHZvaWQgKiksIGNidWYpOwpAQCAt MzkyLDEyICs0MTksMTMgQEAgZ29tcF9tYXBfcG9pbnRlciAoc3RydWN0IHRh cmdldF9tZW1fZGVzYyAqdGd0LCB1aW50cHRyX3QgaG9zdF9wdHIsCiAgICAg IGFycmF5IHNlY3Rpb24uICBOb3cgc3VidHJhY3QgYmlhcyB0byBnZXQgd2hh dCB3ZSB3YW50CiAgICAgIHRvIGluaXRpYWxpemUgdGhlIHBvaW50ZXIgd2l0 aC4gICovCiAgIGN1cl9ub2RlLnRndF9vZmZzZXQgLT0gYmlhczsKLSAgZ29t cF9jb3B5X2hvc3QyZGV2IChkZXZpY2VwLCAodm9pZCAqKSAodGd0LT50Z3Rf c3RhcnQgKyB0YXJnZXRfb2Zmc2V0KSwKKyAgZ29tcF9jb3B5X2hvc3QyZGV2 IChkZXZpY2VwLCBhcSwgKHZvaWQgKikgKHRndC0+dGd0X3N0YXJ0ICsgdGFy Z2V0X29mZnNldCksCiAJCSAgICAgICh2b2lkICopICZjdXJfbm9kZS50Z3Rf b2Zmc2V0LCBzaXplb2YgKHZvaWQgKiksIGNidWYpOwogfQogCiBzdGF0aWMg dm9pZAotZ29tcF9tYXBfZmllbGRzX2V4aXN0aW5nIChzdHJ1Y3QgdGFyZ2V0 X21lbV9kZXNjICp0Z3QsIHNwbGF5X3RyZWVfa2V5IG4sCitnb21wX21hcF9m aWVsZHNfZXhpc3RpbmcgKHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnRndCwK KwkJCSAgc3RydWN0IGdvYWNjX2FzeW5jcXVldWUgKmFxLCBzcGxheV90cmVl X2tleSBuLAogCQkJICBzaXplX3QgZmlyc3QsIHNpemVfdCBpLCB2b2lkICoq aG9zdGFkZHJzLAogCQkJICBzaXplX3QgKnNpemVzLCB2b2lkICpraW5kcywK IAkJCSAgc3RydWN0IGdvbXBfY29hbGVzY2VfYnVmICpjYnVmKQpAQCAtNDE3 LDcgKzQ0NSw3IEBAIGdvbXBfbWFwX2ZpZWxkc19leGlzdGluZyAoc3RydWN0 IHRhcmdldF9tZW1fZGVzYyAqdGd0LCBzcGxheV90cmVlX2tleSBuLAogICAg ICAgJiYgbjItPnRndCA9PSBuLT50Z3QKICAgICAgICYmIG4yLT5ob3N0X3N0 YXJ0IC0gbi0+aG9zdF9zdGFydCA9PSBuMi0+dGd0X29mZnNldCAtIG4tPnRn dF9vZmZzZXQpCiAgICAgewotICAgICAgZ29tcF9tYXBfdmFyc19leGlzdGlu ZyAoZGV2aWNlcCwgbjIsICZjdXJfbm9kZSwKKyAgICAgIGdvbXBfbWFwX3Zh cnNfZXhpc3RpbmcgKGRldmljZXAsIGFxLCBuMiwgJmN1cl9ub2RlLAogCQkJ ICAgICAgJnRndC0+bGlzdFtpXSwga2luZCAmIHR5cGVtYXNrLCBjYnVmKTsK ICAgICAgIHJldHVybjsKICAgICB9CkBAIC00MzMsOCArNDYxLDggQEAgZ29t cF9tYXBfZmllbGRzX2V4aXN0aW5nIChzdHJ1Y3QgdGFyZ2V0X21lbV9kZXNj ICp0Z3QsIHNwbGF5X3RyZWVfa2V5IG4sCiAJICAgICAgJiYgbjItPmhvc3Rf c3RhcnQgLSBuLT5ob3N0X3N0YXJ0CiAJCSA9PSBuMi0+dGd0X29mZnNldCAt IG4tPnRndF9vZmZzZXQpCiAJICAgIHsKLQkgICAgICBnb21wX21hcF92YXJz X2V4aXN0aW5nIChkZXZpY2VwLCBuMiwgJmN1cl9ub2RlLCAmdGd0LT5saXN0 W2ldLAotCQkJCSAgICAgIGtpbmQgJiB0eXBlbWFzaywgY2J1Zik7CisJICAg ICAgZ29tcF9tYXBfdmFyc19leGlzdGluZyAoZGV2aWNlcCwgYXEsIG4yLCAm Y3VyX25vZGUsCisJCQkJICAgICAgJnRndC0+bGlzdFtpXSwga2luZCAmIHR5 cGVtYXNrLCBjYnVmKTsKIAkgICAgICByZXR1cm47CiAJICAgIH0KIAl9CkBA IC00NDUsNyArNDczLDcgQEAgZ29tcF9tYXBfZmllbGRzX2V4aXN0aW5nIChz dHJ1Y3QgdGFyZ2V0X21lbV9kZXNjICp0Z3QsIHNwbGF5X3RyZWVfa2V5IG4s CiAJICAmJiBuMi0+dGd0ID09IG4tPnRndAogCSAgJiYgbjItPmhvc3Rfc3Rh cnQgLSBuLT5ob3N0X3N0YXJ0ID09IG4yLT50Z3Rfb2Zmc2V0IC0gbi0+dGd0 X29mZnNldCkKIAl7Ci0JICBnb21wX21hcF92YXJzX2V4aXN0aW5nIChkZXZp Y2VwLCBuMiwgJmN1cl9ub2RlLCAmdGd0LT5saXN0W2ldLAorCSAgZ29tcF9t YXBfdmFyc19leGlzdGluZyAoZGV2aWNlcCwgYXEsIG4yLCAmY3VyX25vZGUs ICZ0Z3QtPmxpc3RbaV0sCiAJCQkJICBraW5kICYgdHlwZW1hc2ssIGNidWYp OwogCSAgcmV0dXJuOwogCX0KQEAgLTQ4Miw2ICs1MTAsMTggQEAgZ29tcF9t YXBfdmFycyAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCBz aXplX3QgbWFwbnVtLAogCSAgICAgICB2b2lkICoqaG9zdGFkZHJzLCB2b2lk ICoqZGV2YWRkcnMsIHNpemVfdCAqc2l6ZXMsIHZvaWQgKmtpbmRzLAogCSAg ICAgICBib29sIHNob3J0X21hcGtpbmQsIGVudW0gZ29tcF9tYXBfdmFyc19r aW5kIHByYWdtYV9raW5kKQogeworICBzdHJ1Y3QgdGFyZ2V0X21lbV9kZXNj ICp0Z3Q7CisgIHRndCA9IGdvbXBfbWFwX3ZhcnNfYXN5bmMgKGRldmljZXAs IE5VTEwsIG1hcG51bSwgaG9zdGFkZHJzLCBkZXZhZGRycywKKwkJCSAgICAg c2l6ZXMsIGtpbmRzLCBzaG9ydF9tYXBraW5kLCBwcmFnbWFfa2luZCk7Cisg IHJldHVybiB0Z3Q7Cit9CisKK2F0dHJpYnV0ZV9oaWRkZW4gc3RydWN0IHRh cmdldF9tZW1fZGVzYyAqCitnb21wX21hcF92YXJzX2FzeW5jIChzdHJ1Y3Qg Z29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAsCisJCSAgICAgc3RydWN0IGdv YWNjX2FzeW5jcXVldWUgKmFxLCBzaXplX3QgbWFwbnVtLAorCQkgICAgIHZv aWQgKipob3N0YWRkcnMsIHZvaWQgKipkZXZhZGRycywgc2l6ZV90ICpzaXpl cywgdm9pZCAqa2luZHMsCisJCSAgICAgYm9vbCBzaG9ydF9tYXBraW5kLCBl bnVtIGdvbXBfbWFwX3ZhcnNfa2luZCBwcmFnbWFfa2luZCkKK3sKICAgc2l6 ZV90IGksIHRndF9hbGlnbiwgdGd0X3NpemUsIG5vdF9mb3VuZF9jbnQgPSAw OwogICBib29sIGhhc19maXJzdHByaXZhdGUgPSBmYWxzZTsKICAgY29uc3Qg aW50IHJzaGlmdCA9IHNob3J0X21hcGtpbmQgPyA4IDogMzsKQEAgLTU5NCw3 ICs2MzQsNyBAQCBnb21wX21hcF92YXJzIChzdHJ1Y3QgZ29tcF9kZXZpY2Vf ZGVzY3IgKmRldmljZXAsIHNpemVfdCBtYXBudW0sCiAJICAgICAgY29udGlu dWU7CiAJICAgIH0KIAkgIGZvciAoaSA9IGZpcnN0OyBpIDw9IGxhc3Q7IGkr KykKLQkgICAgZ29tcF9tYXBfZmllbGRzX2V4aXN0aW5nICh0Z3QsIG4sIGZp cnN0LCBpLCBob3N0YWRkcnMsCisJICAgIGdvbXBfbWFwX2ZpZWxkc19leGlz dGluZyAodGd0LCBhcSwgbiwgZmlyc3QsIGksIGhvc3RhZGRycywKIAkJCQkg ICAgICBzaXplcywga2luZHMsIE5VTEwpOwogCSAgaS0tOwogCSAgY29udGlu dWU7CkBAIC02MzksNyArNjc5LDcgQEAgZ29tcF9tYXBfdmFycyAoc3RydWN0 IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCBzaXplX3QgbWFwbnVtLAog ICAgICAgZWxzZQogCW4gPSBzcGxheV90cmVlX2xvb2t1cCAobWVtX21hcCwg JmN1cl9ub2RlKTsKICAgICAgIGlmIChuICYmIG4tPnJlZmNvdW50ICE9IFJF RkNPVU5UX0xJTkspCi0JZ29tcF9tYXBfdmFyc19leGlzdGluZyAoZGV2aWNl cCwgbiwgJmN1cl9ub2RlLCAmdGd0LT5saXN0W2ldLAorCWdvbXBfbWFwX3Zh cnNfZXhpc3RpbmcgKGRldmljZXAsIGFxLCBuLCAmY3VyX25vZGUsICZ0Z3Qt Pmxpc3RbaV0sCiAJCQkJa2luZCAmIHR5cGVtYXNrLCBOVUxMKTsKICAgICAg IGVsc2UKIAl7CkBAIC03NTAsNyArNzkwLDcgQEAgZ29tcF9tYXBfdmFycyAo c3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCBzaXplX3QgbWFw bnVtLAogCQl0Z3Rfc2l6ZSA9ICh0Z3Rfc2l6ZSArIGFsaWduIC0gMSkgJiB+ KGFsaWduIC0gMSk7CiAJCXRndC0+bGlzdFtpXS5vZmZzZXQgPSB0Z3Rfc2l6 ZTsKIAkJbGVuID0gc2l6ZXNbaV07Ci0JCWdvbXBfY29weV9ob3N0MmRldiAo ZGV2aWNlcCwKKwkJZ29tcF9jb3B5X2hvc3QyZGV2IChkZXZpY2VwLCBhcSwK IAkJCQkgICAgKHZvaWQgKikgKHRndC0+dGd0X3N0YXJ0ICsgdGd0X3NpemUp LAogCQkJCSAgICAodm9pZCAqKSBob3N0YWRkcnNbaV0sIGxlbiwgY2J1ZnAp OwogCQl0Z3Rfc2l6ZSArPSBsZW47CkBAIC03ODQsNyArODI0LDcgQEAgZ29t cF9tYXBfdmFycyAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2Vw LCBzaXplX3QgbWFwbnVtLAogCQkgICAgY29udGludWU7CiAJCSAgfQogCQlm b3IgKGkgPSBmaXJzdDsgaSA8PSBsYXN0OyBpKyspCi0JCSAgZ29tcF9tYXBf ZmllbGRzX2V4aXN0aW5nICh0Z3QsIG4sIGZpcnN0LCBpLCBob3N0YWRkcnMs CisJCSAgZ29tcF9tYXBfZmllbGRzX2V4aXN0aW5nICh0Z3QsIGFxLCBuLCBm aXJzdCwgaSwgaG9zdGFkZHJzLAogCQkJCQkgICAgc2l6ZXMsIGtpbmRzLCBj YnVmcCk7CiAJCWktLTsKIAkJY29udGludWU7CkBAIC04MDQsNyArODQ0LDcg QEAgZ29tcF9tYXBfdmFycyAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpk ZXZpY2VwLCBzaXplX3QgbWFwbnVtLAogCQkgIGN1cl9ub2RlLnRndF9vZmZz ZXQgPSBnb21wX21hcF92YWwgKHRndCwgaG9zdGFkZHJzLCBpIC0gMSk7CiAJ CWlmIChjdXJfbm9kZS50Z3Rfb2Zmc2V0KQogCQkgIGN1cl9ub2RlLnRndF9v ZmZzZXQgLT0gc2l6ZXNbaV07Ci0JCWdvbXBfY29weV9ob3N0MmRldiAoZGV2 aWNlcCwKKwkJZ29tcF9jb3B5X2hvc3QyZGV2IChkZXZpY2VwLCBhcSwKIAkJ CQkgICAgKHZvaWQgKikgKG4tPnRndC0+dGd0X3N0YXJ0CiAJCQkJCSAgICAg ICsgbi0+dGd0X29mZnNldAogCQkJCQkgICAgICArIGN1cl9ub2RlLmhvc3Rf c3RhcnQKQEAgLTgyNSw3ICs4NjUsNyBAQCBnb21wX21hcF92YXJzIChzdHJ1 Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAsIHNpemVfdCBtYXBudW0s CiAJICAgICAgay0+aG9zdF9lbmQgPSBrLT5ob3N0X3N0YXJ0ICsgc2l6ZW9m ICh2b2lkICopOwogCSAgICBzcGxheV90cmVlX2tleSBuID0gc3BsYXlfdHJl ZV9sb29rdXAgKG1lbV9tYXAsIGspOwogCSAgICBpZiAobiAmJiBuLT5yZWZj b3VudCAhPSBSRUZDT1VOVF9MSU5LKQotCSAgICAgIGdvbXBfbWFwX3ZhcnNf ZXhpc3RpbmcgKGRldmljZXAsIG4sIGssICZ0Z3QtPmxpc3RbaV0sCisJICAg ICAgZ29tcF9tYXBfdmFyc19leGlzdGluZyAoZGV2aWNlcCwgYXEsIG4sIGss ICZ0Z3QtPmxpc3RbaV0sCiAJCQkJICAgICAga2luZCAmIHR5cGVtYXNrLCBj YnVmcCk7CiAJICAgIGVsc2UKIAkgICAgICB7CkBAIC04NzgsMTggKzkxOCwx OSBAQCBnb21wX21hcF92YXJzIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3Ig KmRldmljZXAsIHNpemVfdCBtYXBudW0sCiAJCSAgY2FzZSBHT01QX01BUF9G T1JDRV9UT0ZST006CiAJCSAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE86CiAJ CSAgY2FzZSBHT01QX01BUF9BTFdBWVNfVE9GUk9NOgotCQkgICAgZ29tcF9j b3B5X2hvc3QyZGV2IChkZXZpY2VwLAorCQkgICAgZ29tcF9jb3B5X2hvc3Qy ZGV2IChkZXZpY2VwLCBhcSwKIAkJCQkJKHZvaWQgKikgKHRndC0+dGd0X3N0 YXJ0CiAJCQkJCQkgICsgay0+dGd0X29mZnNldCksCiAJCQkJCSh2b2lkICop IGstPmhvc3Rfc3RhcnQsCiAJCQkJCWstPmhvc3RfZW5kIC0gay0+aG9zdF9z dGFydCwgY2J1ZnApOwogCQkgICAgYnJlYWs7CiAJCSAgY2FzZSBHT01QX01B UF9QT0lOVEVSOgotCQkgICAgZ29tcF9tYXBfcG9pbnRlciAodGd0LCAodWlu dHB0cl90KSAqKHZvaWQgKiopIGstPmhvc3Rfc3RhcnQsCisJCSAgICBnb21w X21hcF9wb2ludGVyICh0Z3QsIGFxLAorCQkJCSAgICAgICh1aW50cHRyX3Qp ICoodm9pZCAqKikgay0+aG9zdF9zdGFydCwKIAkJCQkgICAgICBrLT50Z3Rf b2Zmc2V0LCBzaXplc1tpXSwgY2J1ZnApOwogCQkgICAgYnJlYWs7CiAJCSAg Y2FzZSBHT01QX01BUF9UT19QU0VUOgotCQkgICAgZ29tcF9jb3B5X2hvc3Qy ZGV2IChkZXZpY2VwLAorCQkgICAgZ29tcF9jb3B5X2hvc3QyZGV2IChkZXZp Y2VwLCBhcSwKIAkJCQkJKHZvaWQgKikgKHRndC0+dGd0X3N0YXJ0CiAJCQkJ CQkgICsgay0+dGd0X29mZnNldCksCiAJCQkJCSh2b2lkICopIGstPmhvc3Rf c3RhcnQsCkBAIC05MTEsNyArOTUyLDcgQEAgZ29tcF9tYXBfdmFycyAoc3Ry dWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCBzaXplX3QgbWFwbnVt LAogCQkJICB0Z3QtPmxpc3Rbal0uYWx3YXlzX2NvcHlfZnJvbSA9IGZhbHNl OwogCQkJICBpZiAoay0+cmVmY291bnQgIT0gUkVGQ09VTlRfSU5GSU5JVFkp CiAJCQkgICAgay0+cmVmY291bnQrKzsKLQkJCSAgZ29tcF9tYXBfcG9pbnRl ciAodGd0LAorCQkJICBnb21wX21hcF9wb2ludGVyICh0Z3QsIGFxLAogCQkJ CQkgICAgKHVpbnRwdHJfdCkgKih2b2lkICoqKSBob3N0YWRkcnNbal0sCiAJ CQkJCSAgICBrLT50Z3Rfb2Zmc2V0CiAJCQkJCSAgICArICgodWludHB0cl90 KSBob3N0YWRkcnNbal0KQEAgLTk0MCw3ICs5ODEsNyBAQCBnb21wX21hcF92 YXJzIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAsIHNpemVf dCBtYXBudW0sCiAJCSAgICBicmVhazsKIAkJICBjYXNlIEdPTVBfTUFQX0ZP UkNFX0RFVklDRVBUUjoKIAkJICAgIGFzc2VydCAoay0+aG9zdF9lbmQgLSBr LT5ob3N0X3N0YXJ0ID09IHNpemVvZiAodm9pZCAqKSk7Ci0JCSAgICBnb21w X2NvcHlfaG9zdDJkZXYgKGRldmljZXAsCisJCSAgICBnb21wX2NvcHlfaG9z dDJkZXYgKGRldmljZXAsIGFxLAogCQkJCQkodm9pZCAqKSAodGd0LT50Z3Rf c3RhcnQKIAkJCQkJCSAgKyBrLT50Z3Rfb2Zmc2V0KSwKIAkJCQkJKHZvaWQg Kikgay0+aG9zdF9zdGFydCwKQEAgLTk1Nyw5ICs5OTgsOCBAQCBnb21wX21h cF92YXJzIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAsIHNp emVfdCBtYXBudW0sCiAJCSAgICAvKiBTZXQgbGluayBwb2ludGVyIG9uIHRh cmdldCB0byB0aGUgZGV2aWNlIGFkZHJlc3Mgb2YgdGhlCiAJCSAgICAgICBt YXBwZWQgb2JqZWN0LiAgKi8KIAkJICAgIHZvaWQgKnRndF9hZGRyID0gKHZv aWQgKikgKHRndC0+dGd0X3N0YXJ0ICsgay0+dGd0X29mZnNldCk7Ci0JCSAg ICBkZXZpY2VwLT5ob3N0MmRldl9mdW5jIChkZXZpY2VwLT50YXJnZXRfaWQs Ci0JCQkJCSAgICAodm9pZCAqKSBuLT50Z3Rfb2Zmc2V0LAotCQkJCQkgICAg JnRndF9hZGRyLCBzaXplb2YgKHZvaWQgKikpOworCQkgICAgZ29tcF9jb3B5 X2hvc3QyZGV2IChkZXZpY2VwLCBhcSwgKHZvaWQgKikgbi0+dGd0X29mZnNl dCwKKwkJCQkJJnRndF9hZGRyLCBzaXplb2YgKHZvaWQgKiksIGNidWZwKTsK IAkJICB9CiAJCWFycmF5Kys7CiAJICAgICAgfQpAQCAtOTcxLDcgKzEwMTEs NyBAQCBnb21wX21hcF92YXJzIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3Ig KmRldmljZXAsIHNpemVfdCBtYXBudW0sCiAgICAgICBmb3IgKGkgPSAwOyBp IDwgbWFwbnVtOyBpKyspCiAJewogCSAgY3VyX25vZGUudGd0X29mZnNldCA9 IGdvbXBfbWFwX3ZhbCAodGd0LCBob3N0YWRkcnMsIGkpOwotCSAgZ29tcF9j b3B5X2hvc3QyZGV2IChkZXZpY2VwLAorCSAgZ29tcF9jb3B5X2hvc3QyZGV2 IChkZXZpY2VwLCBhcSwKIAkJCSAgICAgICh2b2lkICopICh0Z3QtPnRndF9z dGFydCArIGkgKiBzaXplb2YgKHZvaWQgKikpLAogCQkJICAgICAgKHZvaWQg KikgJmN1cl9ub2RlLnRndF9vZmZzZXQsIHNpemVvZiAodm9pZCAqKSwKIAkJ CSAgICAgIGNidWZwKTsKQEAgLTk4Miw3ICsxMDIyLDggQEAgZ29tcF9tYXBf dmFycyAoc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCBzaXpl X3QgbWFwbnVtLAogICAgIHsKICAgICAgIGxvbmcgYyA9IDA7CiAgICAgICBm b3IgKGMgPSAwOyBjIDwgY2J1Zi5jaHVua19jbnQ7ICsrYykKLQlnb21wX2Nv cHlfaG9zdDJkZXYgKGRldmljZXAsICh2b2lkICopICh0Z3QtPnRndF9zdGFy dCArIGNidWYuY2h1bmtzWzIgKiBjXSksCisJZ29tcF9jb3B5X2hvc3QyZGV2 IChkZXZpY2VwLCBhcSwKKwkJCSAgICAodm9pZCAqKSAodGd0LT50Z3Rfc3Rh cnQgKyBjYnVmLmNodW5rc1syICogY10pLAogCQkJICAgIChjaGFyICopIGNi dWYuYnVmICsgKGNidWYuY2h1bmtzWzIgKiBjXSAtIGNidWYuY2h1bmtzWzBd KSwKIAkJCSAgICBjYnVmLmNodW5rc1syICogYyArIDFdIC0gY2J1Zi5jaHVu a3NbMiAqIGNdLCBOVUxMKTsKICAgICAgIGZyZWUgKGNidWYuYnVmKTsKQEAg LTEwMDEsNyArMTA0Miw3IEBAIGdvbXBfbWFwX3ZhcnMgKHN0cnVjdCBnb21w X2RldmljZV9kZXNjciAqZGV2aWNlcCwgc2l6ZV90IG1hcG51bSwKICAgcmV0 dXJuIHRndDsKIH0KIAotc3RhdGljIHZvaWQKK2F0dHJpYnV0ZV9oaWRkZW4g dm9pZAogZ29tcF91bm1hcF90Z3QgKHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2Mg KnRndCkKIHsKICAgLyogRGVhbGxvY2F0ZSBvbiB0YXJnZXQgdGhlIHRndC0+ dGd0X3N0YXJ0IC4uIHRndC0+dGd0X2VuZCByZWdpb24uICAqLwpAQCAtMTAz Niw2ICsxMDc3LDEzIEBAIGdvbXBfcmVtb3ZlX3ZhciAoc3RydWN0IGdvbXBf ZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCBzcGxheV90cmVlX2tleSBrKQogYXR0 cmlidXRlX2hpZGRlbiB2b2lkCiBnb21wX3VubWFwX3ZhcnMgKHN0cnVjdCB0 YXJnZXRfbWVtX2Rlc2MgKnRndCwgYm9vbCBkb19jb3B5ZnJvbSkKIHsKKyAg Z29tcF91bm1hcF92YXJzX2FzeW5jICh0Z3QsIGRvX2NvcHlmcm9tLCBOVUxM KTsKK30KKworYXR0cmlidXRlX2hpZGRlbiB2b2lkCitnb21wX3VubWFwX3Zh cnNfYXN5bmMgKHN0cnVjdCB0YXJnZXRfbWVtX2Rlc2MgKnRndCwgYm9vbCBk b19jb3B5ZnJvbSwKKwkJICAgICAgIHN0cnVjdCBnb2FjY19hc3luY3F1ZXVl ICphcSkKK3sKICAgc3RydWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2Vw ID0gdGd0LT5kZXZpY2VfZGVzY3I7CiAKICAgaWYgKHRndC0+bGlzdF9jb3Vu dCA9PSAwKQpAQCAtMTA3MSw3ICsxMTE5LDcgQEAgZ29tcF91bm1hcF92YXJz IChzdHJ1Y3QgdGFyZ2V0X21lbV9kZXNjICp0Z3QsIGJvb2wgZG9fY29weWZy b20pCiAKICAgICAgIGlmICgoZG9fdW5tYXAgJiYgZG9fY29weWZyb20gJiYg dGd0LT5saXN0W2ldLmNvcHlfZnJvbSkKIAkgIHx8IHRndC0+bGlzdFtpXS5h bHdheXNfY29weV9mcm9tKQotCWdvbXBfY29weV9kZXYyaG9zdCAoZGV2aWNl cCwKKwlnb21wX2NvcHlfZGV2Mmhvc3QgKGRldmljZXAsIGFxLAogCQkJICAg ICh2b2lkICopIChrLT5ob3N0X3N0YXJ0ICsgdGd0LT5saXN0W2ldLm9mZnNl dCksCiAJCQkgICAgKHZvaWQgKikgKGstPnRndC0+dGd0X3N0YXJ0ICsgay0+ dGd0X29mZnNldAogCQkJCSAgICAgICsgdGd0LT5saXN0W2ldLm9mZnNldCks CkBAIC0xMTM3LDkgKzExODUsMTAgQEAgZ29tcF91cGRhdGUgKHN0cnVjdCBn b21wX2RldmljZV9kZXNjciAqZGV2aWNlcCwgc2l6ZV90IG1hcG51bSwgdm9p ZCAqKmhvc3RhZGRycywKIAkgICAgc2l6ZV90IHNpemUgPSBjdXJfbm9kZS5o b3N0X2VuZCAtIGN1cl9ub2RlLmhvc3Rfc3RhcnQ7CiAKIAkgICAgaWYgKEdP TVBfTUFQX0NPUFlfVE9fUCAoa2luZCAmIHR5cGVtYXNrKSkKLQkgICAgICBn b21wX2NvcHlfaG9zdDJkZXYgKGRldmljZXAsIGRldmFkZHIsIGhvc3RhZGRy LCBzaXplLCBOVUxMKTsKKwkgICAgICBnb21wX2NvcHlfaG9zdDJkZXYgKGRl dmljZXAsIE5VTEwsIGRldmFkZHIsIGhvc3RhZGRyLCBzaXplLAorCQkJCSAg TlVMTCk7CiAJICAgIGlmIChHT01QX01BUF9DT1BZX0ZST01fUCAoa2luZCAm IHR5cGVtYXNrKSkKLQkgICAgICBnb21wX2NvcHlfZGV2Mmhvc3QgKGRldmlj ZXAsIGhvc3RhZGRyLCBkZXZhZGRyLCBzaXplKTsKKwkgICAgICBnb21wX2Nv cHlfZGV2Mmhvc3QgKGRldmljZXAsIE5VTEwsIGhvc3RhZGRyLCBkZXZhZGRy LCBzaXplKTsKIAkgIH0KICAgICAgIH0KICAgZ29tcF9tdXRleF91bmxvY2sg KCZkZXZpY2VwLT5sb2NrKTsKQEAgLTE0MzIsOSArMTQ4MSwyMSBAQCBnb21w X2luaXRfZGV2aWNlIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmlj ZXApCiAJCQkJICAgZmFsc2UpOwogICAgIH0KIAorICAvKiBJbml0aWFsaXpl IE9wZW5BQ0MgYXN5bmNocm9ub3VzIHF1ZXVlcy4gICovCisgIGdvYWNjX2lu aXRfYXN5bmNxdWV1ZXMgKGRldmljZXApOworCiAgIGRldmljZXAtPnN0YXRl ID0gR09NUF9ERVZJQ0VfSU5JVElBTElaRUQ7CiB9CiAKK2F0dHJpYnV0ZV9o aWRkZW4gYm9vbAorZ29tcF9maW5pX2RldmljZSAoc3RydWN0IGdvbXBfZGV2 aWNlX2Rlc2NyICpkZXZpY2VwKQoreworICBib29sIHJldCA9IGdvYWNjX2Zp bmlfYXN5bmNxdWV1ZXMgKGRldmljZXApOworICByZXQgJj0gZGV2aWNlcC0+ ZmluaV9kZXZpY2VfZnVuYyAoZGV2aWNlcC0+dGFyZ2V0X2lkKTsKKyAgZGV2 aWNlcC0+c3RhdGUgPSBHT01QX0RFVklDRV9GSU5BTElaRUQ7CisgIHJldHVy biByZXQ7Cit9CisKIGF0dHJpYnV0ZV9oaWRkZW4gdm9pZAogZ29tcF91bmxv YWRfZGV2aWNlIChzdHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAp CiB7CkBAIC0xOTI0LDcgKzE5ODUsNyBAQCBnb21wX2V4aXRfZGF0YSAoc3Ry dWN0IGdvbXBfZGV2aWNlX2Rlc2NyICpkZXZpY2VwLCBzaXplX3QgbWFwbnVt LAogCiAJICBpZiAoKGtpbmQgPT0gR09NUF9NQVBfRlJPTSAmJiBrLT5yZWZj b3VudCA9PSAwKQogCSAgICAgIHx8IGtpbmQgPT0gR09NUF9NQVBfQUxXQVlT X0ZST00pCi0JICAgIGdvbXBfY29weV9kZXYyaG9zdCAoZGV2aWNlcCwgKHZv aWQgKikgY3VyX25vZGUuaG9zdF9zdGFydCwKKwkgICAgZ29tcF9jb3B5X2Rl djJob3N0IChkZXZpY2VwLCBOVUxMLCAodm9pZCAqKSBjdXJfbm9kZS5ob3N0 X3N0YXJ0LAogCQkJCSh2b2lkICopIChrLT50Z3QtPnRndF9zdGFydCArIGst PnRndF9vZmZzZXQKIAkJCQkJICArIGN1cl9ub2RlLmhvc3Rfc3RhcnQKIAkJ CQkJICAtIGstPmhvc3Rfc3RhcnQpLApAQCAtMjU1NywyMCArMjYxOCwyMCBA QCBnb21wX2xvYWRfcGx1Z2luX2Zvcl9kZXZpY2UgKHN0cnVjdCBnb21wX2Rl dmljZV9kZXNjciAqZGV2aWNlLAogICBpZiAoZGV2aWNlLT5jYXBhYmlsaXRp ZXMgJiBHT01QX09GRkxPQURfQ0FQX09QRU5BQ0NfMjAwKQogICAgIHsKICAg ICAgIGlmICghRExTWU1fT1BUIChvcGVuYWNjLmV4ZWMsIG9wZW5hY2NfZXhl YykKLQkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MucmVnaXN0ZXJfYXN5bmNf Y2xlYW51cCwKLQkJCSBvcGVuYWNjX3JlZ2lzdGVyX2FzeW5jX2NsZWFudXAp Ci0JICB8fCAhRExTWU1fT1BUIChvcGVuYWNjLmFzeW5jX3Rlc3QsIG9wZW5h Y2NfYXN5bmNfdGVzdCkKLQkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5 bmNfdGVzdF9hbGwsIG9wZW5hY2NfYXN5bmNfdGVzdF9hbGwpCi0JICB8fCAh RExTWU1fT1BUIChvcGVuYWNjLmFzeW5jX3dhaXQsIG9wZW5hY2NfYXN5bmNf d2FpdCkKLQkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5bmNfd2FpdF9h c3luYywgb3BlbmFjY19hc3luY193YWl0X2FzeW5jKQotCSAgfHwgIURMU1lN X09QVCAob3BlbmFjYy5hc3luY193YWl0X2FsbCwgb3BlbmFjY19hc3luY193 YWl0X2FsbCkKLQkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5bmNfd2Fp dF9hbGxfYXN5bmMsCi0JCQkgb3BlbmFjY19hc3luY193YWl0X2FsbF9hc3lu YykKLQkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5bmNfc2V0X2FzeW5j LCBvcGVuYWNjX2FzeW5jX3NldF9hc3luYykKIAkgIHx8ICFETFNZTV9PUFQg KG9wZW5hY2MuY3JlYXRlX3RocmVhZF9kYXRhLAogCQkJIG9wZW5hY2NfY3Jl YXRlX3RocmVhZF9kYXRhKQogCSAgfHwgIURMU1lNX09QVCAob3BlbmFjYy5k ZXN0cm95X3RocmVhZF9kYXRhLAotCQkJIG9wZW5hY2NfZGVzdHJveV90aHJl YWRfZGF0YSkpCisJCQkgb3BlbmFjY19kZXN0cm95X3RocmVhZF9kYXRhKQor CSAgfHwgIURMU1lNX09QVCAob3BlbmFjYy5hc3luYy5jb25zdHJ1Y3QsIG9w ZW5hY2NfYXN5bmNfY29uc3RydWN0KQorCSAgfHwgIURMU1lNX09QVCAob3Bl bmFjYy5hc3luYy5kZXN0cnVjdCwgb3BlbmFjY19hc3luY19kZXN0cnVjdCkK KwkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5bmMudGVzdCwgb3BlbmFj Y19hc3luY190ZXN0KQorCSAgfHwgIURMU1lNX09QVCAob3BlbmFjYy5hc3lu Yy5zeW5jaHJvbml6ZSwgb3BlbmFjY19hc3luY19zeW5jaHJvbml6ZSkKKwkg IHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5bmMuc2VyaWFsaXplLCBvcGVu YWNjX2FzeW5jX3NlcmlhbGl6ZSkKKwkgIHx8ICFETFNZTV9PUFQgKG9wZW5h Y2MuYXN5bmMucXVldWVfY2FsbGJhY2ssCisJCQkgb3BlbmFjY19hc3luY19x dWV1ZV9jYWxsYmFjaykKKwkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5 bmMuZXhlYywgb3BlbmFjY19hc3luY19leGVjKQorCSAgfHwgIURMU1lNX09Q VCAob3BlbmFjYy5hc3luYy5kZXYyaG9zdCwgb3BlbmFjY19hc3luY19kZXYy aG9zdCkKKwkgIHx8ICFETFNZTV9PUFQgKG9wZW5hY2MuYXN5bmMuaG9zdDJk ZXYsIG9wZW5hY2NfYXN5bmNfaG9zdDJkZXYpKQogCXsKIAkgIC8qIFJlcXVp cmUgYWxsIHRoZSBPcGVuQUNDIGhhbmRsZXJzIGlmIHdlIGhhdmUKIAkgICAg IEdPTVBfT0ZGTE9BRF9DQVBfT1BFTkFDQ18yMDAuICAqLwpAQCAtMjYyMSwx MCArMjY4Miw3IEBAIGdvbXBfdGFyZ2V0X2ZpbmkgKHZvaWQpCiAgICAgICBz dHJ1Y3QgZ29tcF9kZXZpY2VfZGVzY3IgKmRldmljZXAgPSAmZGV2aWNlc1tp XTsKICAgICAgIGdvbXBfbXV0ZXhfbG9jayAoJmRldmljZXAtPmxvY2spOwog ICAgICAgaWYgKGRldmljZXAtPnN0YXRlID09IEdPTVBfREVWSUNFX0lOSVRJ QUxJWkVEKQotCXsKLQkgIHJldCA9IGRldmljZXAtPmZpbmlfZGV2aWNlX2Z1 bmMgKGRldmljZXAtPnRhcmdldF9pZCk7Ci0JICBkZXZpY2VwLT5zdGF0ZSA9 IEdPTVBfREVWSUNFX0ZJTkFMSVpFRDsKLQl9CisJcmV0ID0gZ29tcF9maW5p X2RldmljZSAoZGV2aWNlcCk7CiAgICAgICBnb21wX211dGV4X3VubG9jayAo JmRldmljZXAtPmxvY2spOwogICAgICAgaWYgKCFyZXQpCiAJZ29tcF9mYXRh bCAoImRldmljZSBmaW5hbGl6YXRpb24gZmFpbGVkIik7Cg== --------------B7B4EEBD7FD1D2D7D135D1C6--