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 106863858D38 for ; Tue, 13 Jun 2023 18:44:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 106863858D38 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="6.00,240,1681200000"; d="diff'?scan'208";a="8680220" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 13 Jun 2023 10:44:44 -0800 IronPort-SDR: QgzLl0rBi5UkzcVA9+BiU4caqqTFTRJMD2077nRWWc4jC4sbbsdsk/o2gr0QvM6O4jm7ku+nSu ZZ7SDsJji4gx7F8Q5S6VnlfsNc5UJ6YZpoTzFUXxbrfeRRxW2wCZI/68XNoLr43cJco1KqNQD0 CClVeEfLyCAMZtnN802dNnsmT9gFhmTSpjjK6kEdzxVuAcDSuIdSR5jQHeA0cLm00IxWyqY3hO lPPCqeo7EBziVEG3szPI5qZGIxwXXnGIzLZKpuksOsNGnDojgpVU7TUAy5u2rSBR+w2owLfJ1v V3c= Content-Type: multipart/mixed; boundary="------------IFDbvSK9jsQoQRLOAUDxTGYI" Message-ID: <1487d7d4-8611-0d78-6bf2-9bffdd4daa64@codesourcery.com> Date: Tue, 13 Jun 2023 20:44:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Content-Language: en-US To: gcc-patches From: Tobias Burnus Subject: [patch] OpenMP: Set default-device-var with OMP_TARGET_OFFLOAD=mandatory X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,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: --------------IFDbvSK9jsQoQRLOAUDxTGYI Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable I intent to commit this tomorrow, unless there are comments. It does as it says (see commit log): It initializes default-device-var to the value using the algorithm described in OpenMP 5.2, which depends on whether OMP_TARGET_OFFLOAD=3Dmandatory was set. NOTE: With -foffload=3Ddisable there is no binary code but still devices get found - such that default-device-var =3D=3D 0 (=3D first nonhost device). Thus, in that case, libgomp runs the code on that device but as no binary data is available, host fallback is used. (Even if there would be executable code for another device on the system.) With mandatory, this unintended host fallback is detected and an error is diagnosed. One can argue whether keeping the devices makes sense (e.g. because in a dynamic library device code will be loaded later) or not (don't list if no code is available). Note that TR11 (future OpenMP 6.0) extends OMP_DEFAULT_DEVICE and adds OMP_AVAILABLE_DEVICES which permit a finer-grained control about the device, including OMP_DEFAULT_DEVICE=3Dinitial (and 'invalid') which the current scheme does not permit. (Well, there is OMP_TARGET_OFFLOAD=3Ddisabled, but that's a too big hammer.) Tobias PS: DejaGNU testing was done without offloading configured and with remote testing on a system having an offload device, which which does not support setting environment variables. Manual testing was done with offloading enabled and depending on the testcase, running on a system with and/or without offloading hardware. ----------------- 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 --------------IFDbvSK9jsQoQRLOAUDxTGYI Content-Type: text/x-patch; charset="UTF-8"; name="omp-mandatory.diff" Content-Disposition: attachment; filename="omp-mandatory.diff" Content-Transfer-Encoding: base64 T3Blbk1QOiBTZXQgZGVmYXVsdC1kZXZpY2UtdmFyIHdpdGggT01QX1RBUkdFVF9PRkZMT0FE PW1hbmRhdG9yeQoKT01QX1RBUkdFVF9PRkZMT0FEPW1hbmRhdG9yeSBoYW5kbGluZyB3YXMg YmVmb3JlIGluY29uc2lzdGVudC4gSGVuY2UsIGluCk9wZW5NUCA1LjIgaXQgd2FzIGNsYXJp ZmllZC9leHRlbmRlZCBieSBoYXZpbmcgaW1wbGljYXRpb25zIG9uIHRoZQpkZWZhdWx0LWRl dmljZS12YXI7IGFkZGl0aW9uYWxseSwgb21wX2luaXRpYWxfZGV2aWNlIGFuZCBvbXBfaW52 YWxpZF9kZXZpY2UKZW51bSB2YWx1ZXMvUEFSQU1FVEVScyB3ZXJlIGFkZGVkOyBzdXBwb3J0 IGZvciBpdCB3YXMgYWRkZWQKaW4gcjEzLTEwNjYtZzExNThmZTQzNDA3NTY4IGluY2x1ZGlu ZyBhYm9ydGluZyBmb3Igb21wX2ludmFsaWRfZGV2aWNlIGFuZApub24tY29uZm9ybWluZyBk ZXZpY2UgbnVtYmVycy4gT25seSB0aGUgbWFuZGF0b3J5IGhhbmRsaW5nIHdhcyBtaXNzaW5n LgoKTmFtZWx5LCB3aGlsZSB0aGUgZGVmYXVsdC1kZXZpY2UtdmFyIGlzIHVzdWFsbHkgaW5p dGlhbGl6ZWQgdG8gdmFsdWUgMCwKd2l0aCAnbWFuZGF0b3J5JyBpdCBtdXN0IGhhdmUgdGhl IHZhbHVlICdvbXBfaW52YWxpZF9kZXZpY2UnIGlmIGFuZCBvbmx5IGlmCnplcm8gbm9uLWhv c3QgZGV2aWNlcyBhcmUgYXZhaWxhYmxlLiAoVGhlIE9NUF9ERUZBVUxUX0RFVklDRSBlbnYg dmFyCm92ZXJyaWRlcyB0aGlzIGFzIGl0IGNvbWVzIHNlbWFudGljYWxseSBhZnRlciB0aGUg aW5pdGlhbGl6YXRpb24uKQoKVG8gYWNoaWV2ZSB0aGlzLCBkZWZhdWx0LWRldmljZS12YXIg aXMgbm93IGluaXRpYWxpemVkIHRvIE1JTl9JTlQuIElmCnRoZXJlIGlzIG5vICdtYW5kYXRv cnknLCBpdCBpcyBzZXQgdG8gMCBkaXJlY3RseSBhZnRlciBlbnYgdmFyIHBhcnNpbmcuCk90 aGVyd2lzZSwgaXQgaXMgdXBkYXRlZCBpbiBnb21wX3RhcmdldF9pbml0IHRvIGVpdGhlciAw IG9yCm9tcF9pbnZhbGlkX2RldmljZS4gVG8gZW5zdXJlIElOVF9NSU4gaXMgbmV2ZXIgc2Vl biBieSB0aGUgdXNlciwgYm90aAp0aGUgb21wX2dldF9kZWZhdWx0X2RldmljZSBBUEkgcm91 dGluZSBhbmQgb21wX2Rpc3BsYXlfZW52ICh1c2VyIGNhbGwKYW5kIE9NUF9ESVNQTEFZX0VO ViBlbnYgdmFyKSBjYWxsIGdvbXBfaW5pdF90YXJnZXRzX29uY2UoKSBpbiB0aGF0IGNhc2Uu CgpsaWJnb21wL0NoYW5nZUxvZzoKCgkqIGVudi5jIChnb21wX2RlZmF1bHRfaWN2X3ZhbHVl cyk6IEluaXQgZGVmYXVsdF9kZXZpY2VfdmFyIHRvCglhbiBub25jb25mb3JtaW5nIHZhbHVl IC0gSU5UX01JTi4KCShpbml0aWFsaXplX2Vudik6IEFmdGVyIGVudi12YXIgcGFyc2luZywg c2V0IGRlZmF1bHRfZGV2aWNlX3ZhciB0bwoJZGV2aWNlIDAgdW5sZXNzIE9NUF9UQVJHRVRf T0ZGTE9BRD1tYW5kYXRvcnkuCgkob21wX2Rpc3BsYXlfZW52KTogSWYgZGVmYXVsdF9kZXZp Y2VfdmFyIGlzIElOVF9NSU4sIGNhbGwKCWdvbXBfaW5pdF90YXJnZXRzX29uY2UuCgkqIGlj di1kZXZpY2UuYyAob21wX2dldF9kZWZhdWx0X2RldmljZSk6IExpa2V3aXNlLgoJKiBsaWJn b21wLnRleGkgKE9NUF9ERUZBVUxUX0RFVklDRSk6IFVwZGF0ZSBpbml0IGRlc2NyaXB0aW9u LgoJKE9wZW5NUCA1LjIgSW1wbC4gU3RhdHVzKTogTWFyayBPTVBfVEFSR0VUX09GRkxPQUQ9 bWFuZGF0b3J5IGFzICdZJy4KCSogdGFyZ2V0LmMgKHJlc29sdmVfZGV2aWNlKTogSW1wcm92 ZSBlcnJvciBtZXNzYWdlIGRldmljZS1udW0gPCAwCgl3aXRoICdtYW5kYXRvcnknIGFuZCBu byBuby1ob3N0IGRldmljZXMgYXZhaWxhYmxlLgoJKGdvbXBfdGFyZ2V0X2luaXQpOiBTZXQg ZGVmYXVsdC1kZXZpY2UtdmFyIGlmIElOVF9NSU4uCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMv dGFyZ2V0LTQ4LmM6IE5ldyB0ZXN0LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC00 OS5jOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRlL2xpYmdvbXAuYy90YXJnZXQtNTAuYzogTmV3 IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmMvdGFyZ2V0LTUxLmM6IE5ldyB0ZXN0LgoJ KiB0ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01Mi5jOiBOZXcgdGVzdC4KCSogdGVzdHN1 aXRlL2xpYmdvbXAuYy90YXJnZXQtNTMuYzogTmV3IHRlc3QuCgkqIHRlc3RzdWl0ZS9saWJn b21wLmMvdGFyZ2V0LTU0LmM6IE5ldyB0ZXN0LgoKIGxpYmdvbXAvZW52LmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMyArKysrKysrKy0tCiBsaWJnb21wL2ljdi1kZXZpY2Uu YyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysrCiBsaWJnb21wL2xpYmdvbXAudGV4aSAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKystCiBsaWJnb21wL3RhcmdldC5jICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKy0KIGxpYmdvbXAvdGVzdHN1aXRlL2xp YmdvbXAuYy90YXJnZXQtNDguYyAgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKwogbGli Z29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC00OS5jICB8IDE4ICsrKysrKysrKysr KysKIGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy90YXJnZXQtNTAuYyAgfCAyNyArKysr KysrKysrKysrKysrKysrKwogbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01 MGEuYyB8IDQzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLmMvdGFyZ2V0LTUxLmMgIHwgMjQgKysrKysrKysrKysrKysrKysr CiBsaWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMvdGFyZ2V0LTUyLmMgIHwgMjUgKysrKysr KysrKysrKysrKysrKwogbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01My5j ICB8IDIyICsrKysrKysrKysrKysrKysKIGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy90 YXJnZXQtNTQuYyAgfCAyMCArKysrKysrKysrKysrKysKIDEyIGZpbGVzIGNoYW5nZWQsIDI0 MiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmdvbXAv ZW52LmMgYi9saWJnb21wL2Vudi5jCmluZGV4IGU3YTAzNWI1OTNjLi4yNWMwMjExZGRhMSAx MDA2NDQKLS0tIGEvbGliZ29tcC9lbnYuYworKysgYi9saWJnb21wL2Vudi5jCkBAIC02Miwx MyArNjIsMTQgQEAKICNpbmNsdWRlICJzZWN1cmVfZ2V0ZW52LmgiCiAjaW5jbHVkZSAiZW52 aXJvbi5oIgogCi0vKiBEZWZhdWx0IHZhbHVlcyBvZiBJQ1ZzIGFjY29yZGluZyB0byB0aGUg T3Blbk1QIHN0YW5kYXJkLiAgKi8KKy8qIERlZmF1bHQgdmFsdWVzIG9mIElDVnMgYWNjb3Jk aW5nIHRvIHRoZSBPcGVuTVAgc3RhbmRhcmQsCisgICBleGNlcHQgZm9yIGRlZmF1bHQtZGV2 aWNlLXZhci4gICovCiBjb25zdCBzdHJ1Y3QgZ29tcF9kZWZhdWx0X2ljdiBnb21wX2RlZmF1 bHRfaWN2X3ZhbHVlcyA9IHsKICAgLm50aHJlYWRzX3ZhciA9IDEsCiAgIC50aHJlYWRfbGlt aXRfdmFyID0gVUlOVF9NQVgsCiAgIC5ydW5fc2NoZWRfdmFyID0gR0ZTX0RZTkFNSUMsCiAg IC5ydW5fc2NoZWRfY2h1bmtfc2l6ZSA9IDEsCi0gIC5kZWZhdWx0X2RldmljZV92YXIgPSAw LAorICAuZGVmYXVsdF9kZXZpY2VfdmFyID0gSU5UX01JTiwKICAgLm1heF9hY3RpdmVfbGV2 ZWxzX3ZhciA9IDEsCiAgIC5iaW5kX3ZhciA9IG9tcF9wcm9jX2JpbmRfZmFsc2UsCiAgIC5u dGVhbXNfdmFyID0gMCwKQEAgLTE2MTQsNiArMTYxNSwxMCBAQCBvbXBfZGlzcGxheV9lbnYg KGludCB2ZXJib3NlKQogICBzdHJ1Y3QgZ29tcF9pY3ZfbGlzdCAqbm9uZQogICAgID0gZ29t cF9nZXRfaW5pdGlhbF9pY3ZfaXRlbSAoR09NUF9ERVZJQ0VfTlVNX0ZPUl9OT19TVUZGSVgp OwogCisgIGlmIChub25lLT5pY3ZzLmRlZmF1bHRfZGV2aWNlX3ZhciA9PSBJTlRfTUlOKQor ICAgIC8qIFRoaXMgaW1wbGllcyBPTVBfVEFSR0VUX09GRkxPQUQ9bWFuZGF0b3J5LiAgKi8K KyAgICBnb21wX2luaXRfdGFyZ2V0c19vbmNlICgpOworCiAgIGZwdXRzICgiXG5PUEVOTVAg RElTUExBWSBFTlZJUk9OTUVOVCBCRUdJTlxuIiwgc3RkZXJyKTsKIAogICBmcHV0cyAoIiAg X09QRU5NUCA9ICcyMDE1MTEnXG4iLCBzdGRlcnIpOwpAQCAtMjIxMyw2ICsyMjE4LDEwIEBA IGluaXRpYWxpemVfZW52ICh2b2lkKQogCWdvbXBfZ2xvYmFsX2ljdi5tYXhfYWN0aXZlX2xl dmVsc192YXIgPSBnb21wX3N1cHBvcnRlZF9hY3RpdmVfbGV2ZWxzOwogICAgIH0KIAorICBp ZiAoZ29tcF9nbG9iYWxfaWN2LmRlZmF1bHRfZGV2aWNlX3ZhciA9PSBJTlRfTUlOCisgICAg ICAmJiBnb21wX3RhcmdldF9vZmZsb2FkX3ZhciAhPSBHT01QX1RBUkdFVF9PRkZMT0FEX01B TkRBVE9SWSkKKyAgICBub25lLT5pY3ZzLmRlZmF1bHRfZGV2aWNlX3ZhciA9IGdvbXBfZ2xv YmFsX2ljdi5kZWZhdWx0X2RldmljZV92YXIgPSAwOworCiAgIC8qIFByb2Nlc3MgR09NUF8q IHZhcmlhYmxlcyBhbmQgZGVwZW5kZW5jaWVzIGJldHdlZW4gcGFyc2VkIElDVnMuICAqLwog ICBwYXJzZV9pbnRfc2VjdXJlICgiR09NUF9ERUJVRyIsICZnb21wX2RlYnVnX3ZhciwgdHJ1 ZSk7CiAKZGlmZiAtLWdpdCBhL2xpYmdvbXAvaWN2LWRldmljZS5jIGIvbGliZ29tcC9pY3Yt ZGV2aWNlLmMKaW5kZXggYTJiYmVkYzY3MmEuLmI0OGVhM2IwOTZjIDEwMDY0NAotLS0gYS9s aWJnb21wL2ljdi1kZXZpY2UuYworKysgYi9saWJnb21wL2ljdi1kZXZpY2UuYwpAQCAtMjcs NiArMjcsNyBAQAogICAgZXhwZWN0ZWQgdG8gcmVwbGFjZS4gICovCiAKICNpbmNsdWRlICJs aWJnb21wLmgiCisjaW5jbHVkZSA8bGltaXRzLmg+CiAKIHZvaWQKIG9tcF9zZXRfZGVmYXVs dF9kZXZpY2UgKGludCBkZXZpY2VfbnVtKQpAQCAtNDEsNiArNDIsOSBAQCBpbnQKIG9tcF9n ZXRfZGVmYXVsdF9kZXZpY2UgKHZvaWQpCiB7CiAgIHN0cnVjdCBnb21wX3Rhc2tfaWN2ICpp Y3YgPSBnb21wX2ljdiAoZmFsc2UpOworICBpZiAoaWN2LT5kZWZhdWx0X2RldmljZV92YXIg PT0gSU5UX01JTikKKyAgICAvKiBUaGlzIGltcGxpZXMgT01QX1RBUkdFVF9PRkZMT0FEPW1h bmRhdG9yeS4gICovCisgICAgZ29tcF9pbml0X3RhcmdldHNfb25jZSAoKTsKICAgcmV0dXJu IGljdi0+ZGVmYXVsdF9kZXZpY2VfdmFyOwogfQogCmRpZmYgLS1naXQgYS9saWJnb21wL2xp YmdvbXAudGV4aSBiL2xpYmdvbXAvbGliZ29tcC50ZXhpCmluZGV4IGEzZDM3MGEwZmIzLi4y MWQzNTgyYTY2NSAxMDA2NDQKLS0tIGEvbGliZ29tcC9saWJnb21wLnRleGkKKysrIGIvbGli Z29tcC9saWJnb21wLnRleGkKQEAgLTQyMyw3ICs0MjMsNyBAQCB0byBhZGRyZXNzIG9mIG1h dGNoaW5nIG1hcHBlZCBsaXN0IGl0ZW0gcGVyIDUuMSwgU2VjdC4gMi4yMS43LjIgQHRhYiBO IEB0YWIKIEBpdGVtIENvbmZvcm1pbmcgZGV2aWNlIG51bWJlcnMgYW5kIEBjb2Rle29tcF9p bml0aWFsX2RldmljZX0gYW5kCiAgICAgICBAY29kZXtvbXBfaW52YWxpZF9kZXZpY2V9IGVu dW0vUEFSQU1FVEVSIEB0YWIgWSBAdGFiCiBAaXRlbSBJbml0aWFsIHZhbHVlIG9mIEBlbXBo e2RlZmF1bHQtZGV2aWNlLXZhcn0gSUNWIHdpdGgKLSAgICAgIEBjb2Rle09NUF9UQVJHRVRf T0ZGTE9BRD1tYW5kYXRvcnl9IEB0YWIgTiBAdGFiCisgICAgICBAY29kZXtPTVBfVEFSR0VU X09GRkxPQUQ9bWFuZGF0b3J5fSBAdGFiIFkgQHRhYgogQGl0ZW0gQGVtcGh7aW50ZXJvcF90 eXBlc30gaW4gYW55IHBvc2l0aW9uIG9mIHRoZSBtb2RpZmllciBsaXN0IGZvciB0aGUgQGNv ZGV7aW5pdH0gY2xhdXNlCiAgICAgICBvZiB0aGUgQGNvZGV7aW50ZXJvcH0gY29uc3RydWN0 IEB0YWIgTiBAdGFiCiBAZW5kIG11bHRpdGFibGUKQEAgLTIwMDYsNiArMjAwNiw4IEBAIFNl dCB0byBjaG9vc2UgdGhlIGRldmljZSB3aGljaCBpcyB1c2VkIGluIGEgQGNvZGV7dGFyZ2V0 fSByZWdpb24sIHVubGVzcyB0aGUKIHZhbHVlIGlzIG92ZXJyaWRkZW4gYnkgQGNvZGV7b21w X3NldF9kZWZhdWx0X2RldmljZX0gb3IgYnkgYSBAY29kZXtkZXZpY2V9CiBjbGF1c2UuICBU aGUgdmFsdWUgc2hhbGwgYmUgdGhlIG5vbm5lZ2F0aXZlIGRldmljZSBudW1iZXIuIElmIG5v IGRldmljZSB3aXRoCiB0aGUgZ2l2ZW4gZGV2aWNlIG51bWJlciBleGlzdHMsIHRoZSBjb2Rl IGlzIGV4ZWN1dGVkIG9uIHRoZSBob3N0LiAgSWYgdW5zZXQsCitAZW52e09NUF9UQVJHRVRf T0ZGTE9BRH0gaXMgQGNvZGV7bWFuZGF0b3J5fSBhbmQgbm8gbm9uLWhvc3QgZGV2aWNlcyBh cmUKK2F2YWlsYWJsZSwgaXQgaXMgc2V0IHRvIEBjb2Rle29tcF9pbnZhbGlkX2RldmljZX0u ICBPdGhlcndpc2UsIGlmIHVuc2V0LAogZGV2aWNlIG51bWJlciAwIHdpbGwgYmUgdXNlZC4K IAogCmRpZmYgLS1naXQgYS9saWJnb21wL3RhcmdldC5jIGIvbGliZ29tcC90YXJnZXQuYwpp bmRleCBlM2M0MTIxYTA5Zi4uZjEwMjBmYWQ2MDEgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGFy Z2V0LmMKKysrIGIvbGliZ29tcC90YXJnZXQuYwpAQCAtMTUwLDcgKzE1MCwxMSBAQCByZXNv bHZlX2RldmljZSAoaW50IGRldmljZV9pZCwgYm9vbCByZW1hcHBlZCkKICAgICAgIGlmIChk ZXZpY2VfaWQgPT0gKHJlbWFwcGVkID8gR09NUF9ERVZJQ0VfSE9TVF9GQUxMQkFDSwogCQkJ CSA6IG9tcF9pbml0aWFsX2RldmljZSkpCiAJcmV0dXJuIE5VTEw7Ci0gICAgICBpZiAoZGV2 aWNlX2lkID09IG9tcF9pbnZhbGlkX2RldmljZSkKKyAgICAgIGlmIChnb21wX3RhcmdldF9v ZmZsb2FkX3ZhciA9PSBHT01QX1RBUkdFVF9PRkZMT0FEX01BTkRBVE9SWQorCSAgJiYgZ29t cF9nZXRfbnVtX2RldmljZXMgKCkgPT0gMCkKKwlnb21wX2ZhdGFsICgiT01QX1RBUkdFVF9P RkZMT0FEIGlzIHNldCB0byBNQU5EQVRPUlkgYnV0IG9ubHkgdGhlIGhvc3QgIgorCQkgICAg ImRldmljZSBpcyBhdmFpbGFibGUiKTsKKyAgICAgIGVsc2UgaWYgKGRldmljZV9pZCA9PSBv bXBfaW52YWxpZF9kZXZpY2UpCiAJZ29tcF9mYXRhbCAoIm9tcF9pbnZhbGlkX2RldmljZSBl bmNvdW50ZXJlZCIpOwogICAgICAgZWxzZSBpZiAoZ29tcF90YXJnZXRfb2ZmbG9hZF92YXIg PT0gR09NUF9UQVJHRVRfT0ZGTE9BRF9NQU5EQVRPUlkpCiAJZ29tcF9mYXRhbCAoIk9NUF9U QVJHRVRfT0ZGTE9BRCBpcyBzZXQgdG8gTUFOREFUT1JZLCAiCkBAIC01MTg0LDYgKzUxODgs MTUgQEAgZ29tcF90YXJnZXRfaW5pdCAodm9pZCkKICAgICAgIGlmIChkZXZzW2ldLmNhcGFi aWxpdGllcyAmIEdPTVBfT0ZGTE9BRF9DQVBfT1BFTkFDQ18yMDApCiAJZ29hY2NfcmVnaXN0 ZXIgKCZkZXZzW2ldKTsKICAgICB9CisgIGlmIChnb21wX2dsb2JhbF9pY3YuZGVmYXVsdF9k ZXZpY2VfdmFyID09IElOVF9NSU4pCisgICAgeworICAgICAgIC8qIFRoaXMgaW1wbGllcyBP TVBfVEFSR0VUX09GRkxPQUQ9bWFuZGF0b3J5LiAgKi8KKyAgICAgICBzdHJ1Y3QgZ29tcF9p Y3ZfbGlzdCAqbm9uZTsKKyAgICAgICBub25lID0gZ29tcF9nZXRfaW5pdGlhbF9pY3ZfaXRl bSAoR09NUF9ERVZJQ0VfTlVNX0ZPUl9OT19TVUZGSVgpOworICAgICAgIGdvbXBfZ2xvYmFs X2ljdi5kZWZhdWx0X2RldmljZV92YXIgPSAobnVtX2RldnNfb3Blbm1wCisJCQkJCSAgICAg PyAwIDogb21wX2ludmFsaWRfZGV2aWNlKTsKKyAgICAgICBub25lLT5pY3ZzLmRlZmF1bHRf ZGV2aWNlX3ZhciA9IGdvbXBfZ2xvYmFsX2ljdi5kZWZhdWx0X2RldmljZV92YXI7CisgICAg fQogCiAgIG51bV9kZXZpY2VzID0gbnVtX2RldnM7CiAgIG51bV9kZXZpY2VzX29wZW5tcCA9 IG51bV9kZXZzX29wZW5tcDsKZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAuYy90YXJnZXQtNDguYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy90YXJnZXQt NDguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGU5NWMxYzNh YzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMvdGFy Z2V0LTQ4LmMKQEAgLTAsMCArMSwzMSBAQAorLyogQ2hlY2sgT01QX1RBUkdFVF9PRkZMT0FE IG9uIHN5c3RlbXMgd2l0aCBubyBhdmFpbGFibGUgbm9uLWhvc3QgZGV2aWNlczsKKyAgIG9t cF9pbnZhbGlkX2RldmljZSA9PSAtNCB3aXRoIEdDQy4gICovCisKKy8qIHsgZGctZG8gcnVu IHsgdGFyZ2V0IHsgISBvZmZsb2FkX2RldmljZSB9IH0gfSAqLworLyogeyBkZy1zZXQtdGFy Z2V0LWVudi12YXIgT01QX1RBUkdFVF9PRkZMT0FEICJtYW5kYXRvcnkiIH0gKi8KKworLyog eyBkZy1vdXRwdXQgIi4qT01QX0RFRkFVTFRfREVWSUNFID0gJy00Jy4qT01QX1RBUkdFVF9P RkZMT0FEID0gJ01BTkRBVE9SWScuKiIgfSAqLworCisjaW5jbHVkZSA8b21wLmg+CisKK2lu dAorbWFpbiAoKQoreworICBpZiAob21wX2dldF9kZWZhdWx0X2RldmljZSAoKSAhPSBvbXBf aW52YWxpZF9kZXZpY2UpCisgICAgX19idWlsdGluX2Fib3J0ICgpOworCisgIG9tcF9zZXRf ZGVmYXVsdF9kZXZpY2UgKG9tcF9pbml0aWFsX2RldmljZSk7CisKKyAgLyogVGhlIHNwZWMg aXMgYSBiaXQgdW5jbGVhciB3aGV0aGVyIHRoZSBsaW5lIGFib3ZlIHNldHMgdGhlIGRldmlj ZSBudW1iZXIKKyAgICAgKGEpIHRvIC0xICg9IG9tcF9pbml0aWFsX2RldmljZSkgb3IKKyAg ICAgKGIpIHRvIG9tcF9nZXRfaW5pdGlhbF9kZXZpY2UoKSA9PSBvbXBfZ2V0X251bV9kZXZp Y2VzKCkuIFRoZXJlZm9yZSwKKyAgICAgd2UgYWNjZXB0IGVpdGhlciB2YWx1ZS4gICAqLwor CisgIGlmIChvbXBfZ2V0X2RlZmF1bHRfZGV2aWNlKCkgIT0gb21wX2dldF9pbml0aWFsX2Rl dmljZSgpCisgICAgICAmJiBvbXBfZ2V0X2RlZmF1bHRfZGV2aWNlKCkgIT0gb21wX2luaXRp YWxfZGV2aWNlKQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKworICBvbXBfZGlzcGxheV9l bnYgKDApOworCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3Vp dGUvbGliZ29tcC5jL3RhcmdldC00OS5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5j L3RhcmdldC00OS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45 NzBjYjkxZDUxMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdv bXAuYy90YXJnZXQtNDkuYwpAQCAtMCwwICsxLDE4IEBACisvKiBDaGVjayBPTVBfVEFSR0VU X09GRkxPQUQgb24gc3lzdGVtcyB3aXRoIG5vIGF2YWlsYWJsZSBub24taG9zdCBkZXZpY2Vz LAorICAgd2hpY2ggaXMgZW5mb3JjZWQgYnkgdXNpbmcgLWZvZmZsb2FkPWRpc2FibGUuICAq LworCisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAi LWZvZmZsb2FkPWRpc2FibGUiIH0gKi8KKy8qIHsgZGctc2V0LXRhcmdldC1lbnYtdmFyIE9N UF9UQVJHRVRfT0ZGTE9BRCAibWFuZGF0b3J5IiB9ICovCisvKiB7IGRnLXNldC10YXJnZXQt ZW52LXZhciBPTVBfRElTUExBWV9FTlYgInRydWUiIH0gKi8KKworLyogU2VlIGNvbW1lbnQg aW4gdGFyZ2V0LTUwLmMvdGFyZ2V0LTUwLmMgZm9yIHdoeSBkZWZhdWx0LWRldmljZS12YXIg Y2FuIGJlICcwJy4gICovCisKKy8qIHsgZGctb3V0cHV0ICIuKk9NUF9ERUZBVUxUX0RFVklD RSA9ICctNCcuKk9NUF9UQVJHRVRfT0ZGTE9BRCA9ICdNQU5EQVRPUlknLioiIHsgdGFyZ2V0 IHsgISBvZmZsb2FkX2RldmljZSB9IH0gfSAqLworLyogeyBkZy1vdXRwdXQgIi4qT01QX0RF RkFVTFRfREVWSUNFID0gJzAnLipPTVBfVEFSR0VUX09GRkxPQUQgPSAnTUFOREFUT1JZJy4q IiB7IHRhcmdldCBvZmZsb2FkX2RldmljZSAgfSB9ICovCisKK2ludAorbWFpbiAoKQorewor ICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Yy90YXJnZXQtNTAuYyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy90YXJnZXQtNTAu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmYxNTU2OWVlMjEK LS0tIC9kZXYvbnVsbAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMvdGFyZ2V0 LTUwLmMKQEAgLTAsMCArMSwyNyBAQAorLyogQ2hlY2sgT01QX1RBUkdFVF9PRkZMT0FEIG9u IHN5c3RlbXMgd2l0aCBubyBhdmFpbGFibGUgbm9uLWhvc3QgZGV2aWNlczsKKyAgIGhlcmUg d2l0aCB1c2luZyAtZm9mZmxvYWQ9ZGlzYWJsZS4KKyAgIEFzIGRlZmF1bHQtZGV2aWNlLXZh ciBpcyBzZXQgdG8gMCAoPSBob3N0IGluIHRoaXMgY2FzZSksIGl0IHNob3VsZCBub3QgZmFp bC4gICovCisKKy8qIE5vdGUgdGhhdCAtZm9mZmxvYWQ9ZGlzYWJsZSB3aWxsIHN0aWxsIGZp bmQgZGV2aWNlcyBvbiB0aGUgc3lzdGVtIGFuZCBvbmx5CisgICB3aGVuIHRyeWluZyB0byB1 c2UgdGhlbSwgaXQgd2lsbCBmYWlsIGFzIG5vIGJpbmFyeSBkYXRhIGhhcyBiZWVuIHByb2R1 Y2VkLgorICAgVGhlICJ0YXJnZXQgb2ZmbG9hZF9kZXZpY2UiIGNhc2UgaXMgY2hlY2tlZCBm b3IgaW4gJ3RhcmdldC01MGEuYycuICAqLworCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7 ICEgb2ZmbG9hZF9kZXZpY2UgfSB9IH0gKi8KKworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi1mb2ZmbG9hZD1kaXNhYmxlIiB9ICovCisvKiB7IGRnLXNldC10YXJnZXQtZW52LXZh ciBPTVBfVEFSR0VUX09GRkxPQUQgIm1hbmRhdG9yeSIgfSAqLworLyogeyBkZy1zZXQtdGFy Z2V0LWVudi12YXIgT01QX0RFRkFVTFRfREVWSUNFICIwIiB9ICovCisvKiB7IGRnLXNldC10 YXJnZXQtZW52LXZhciBPTVBfRElTUExBWV9FTlYgInRydWUiIH0gKi8KKworLyogeyBkZy1v dXRwdXQgIi4qT01QX0RFRkFVTFRfREVWSUNFID0gJzAnLipPTVBfVEFSR0VUX09GRkxPQUQg PSAnTUFOREFUT1JZJy4qIiB9ICovCisKK2ludAorbWFpbiAoKQoreworICBpbnQgeDsKKyAg I3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCh0b2Zyb206eCkKKyAgICB4ID0gNTsKKyAgaWYgKHgg IT0gNSkKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgIHJldHVybiAwOworfQpkaWZmIC0t Z2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01MGEuYyBiL2xpYmdv bXAvdGVzdHN1aXRlL2xpYmdvbXAuYy90YXJnZXQtNTBhLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA4MzVjYjViYWUzCi0tLSAvZGV2L251bGwKKysrIGIv bGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01MGEuYwpAQCAtMCwwICsxLDQz IEBACisvKiBDaGVjayBPTVBfVEFSR0VUX09GRkxPQUQgb24gc3lzdGVtcyB3aXRoIG5vbi1o b3N0IGRldmljZXMgYnV0IG5vIGV4ZWN1dGFibGUKKyAgIGNvZGUgZHVlIHRvIC1mb2ZmbG9h ZD1kaXNhYmxlLgorCisgICBOb3RlOiBXaGlsZSBvbmUgbWlnaHQgZXhwZWN0IHRoYXQgLWZv ZmZsb2FkPWRpc2FibGUgaW1wbGllcyBubyBub24taG9zdAorICAgZGV2aWNlcywgbGliZ29t cCBhY3R1YWxseSBkZXRlY3RzIHRoZSBkZXZpY2VzIGFuZCBvbmx5IGZhaWxzIHdoZW4gdHJ5 aW5nIHRvCisgICBydW4gYXMgbm8gZXhlY3V0YWJsZSBjb2RlIGlzIGF2YWlsYWxlIGZvciB0 aGF0IGRldmljZS4KKyAgIChXaXRob3V0IE1BTkRBVE9SWSBpdCBzaW1wbHkgdXNlcyBob3N0 IGZhbGxiYWNrLCB3aGljaCBzaG91bGQgdXN1YWxseSBiZSBmaW5lCisgICBidXQgbWlnaHQg aGF2ZSBpc3N1ZXMgaW4gY29ybmVyIGNhc2VzLikKKworICAgV2UgaGF2ZSBkZWZhdWx0LWRl dmljZS12YXIgPSAwIChkZWZhdWx0IGJ1dCBhbHNvIGV4cGxpY2l0bHkgc2V0KSwgd2hpY2gg d2lsbAorICAgZmFpbCBhdCBydW50aW1lLiBGb3IgLWZvZmZsb2FkPWRpc2FibGUgd2l0aG91 dCBub24taG9zdCBkZXZpY2VzLCBzZWUKKyAgIHRhcmdldC01MC5jIHRlc3RjYXNlLiAgKi8K KworLyogeyBkZy1kbyBydW4geyB0YXJnZXQgb2ZmbG9hZF9kZXZpY2UgfSB9ICovCisKKy8q IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZm9mZmxvYWQ9ZGlzYWJsZSIgfSAqLworLyog eyBkZy1zZXQtdGFyZ2V0LWVudi12YXIgT01QX1RBUkdFVF9PRkZMT0FEICJtYW5kYXRvcnki IH0gKi8KKy8qIHsgZGctc2V0LXRhcmdldC1lbnYtdmFyIE9NUF9ERUZBVUxUX0RFVklDRSAi MCIgfSAqLworLyogeyBkZy1zZXQtdGFyZ2V0LWVudi12YXIgT01QX0RJU1BMQVlfRU5WICJ0 cnVlIiB9ICovCisKKy8qIHsgZGctb3V0cHV0ICIuKk9NUF9ERUZBVUxUX0RFVklDRSA9ICcw Jy4qT01QX1RBUkdFVF9PRkZMT0FEID0gJ01BTkRBVE9SWScuKiIgfSAqLworCisjaW5jbHVk ZSA8b21wLmg+CisKK2ludAorbWFpbiAoKQoreworICBpbnQgeDsKKyAgLyogV2Uga25vdyB0 aGF0IHRoZXJlIGFyZSBub24taG9zdCBkZXZpY2VzLiBXaXRoIEdDQywgd2Ugc3RpbGwgZmlu ZCB0aGVtIGFzCisgICAgIGF2YWlsYWJsZSBkZXZpY2VzLCBoZW5jZSwgY2hlY2sgZm9yIGl0 LiAgKi8KKyAgaWYgKG9tcF9nZXRfbnVtX2RldmljZXMoKSA8PSAwKQorICAgIF9fYnVpbHRp bl9hYm9ydCAoKTsKKworICAvKiBCdXQgZHVlIHRvIC1mb2ZmbG9hZD1kaXNhYmxlLCB0aGVy ZSBhcmUgbm8gYmluYXJ5IGNvZGUgZm9yIChkZWZhdWx0KSBkZXZpY2UgJzAnICAqLworCisg IC8qIHsgZGctb3V0cHV0ICIuKmxpYmdvbXA6IE9NUF9UQVJHRVRfT0ZGTE9BRCBpcyBzZXQg dG8gTUFOREFUT1JZLCBidXQgZGV2aWNlIGNhbm5vdCBiZSB1c2VkIGZvciBvZmZsb2FkaW5n LioiIH0gKi8KKyAgLyogeyBkZy1zaG91bGRmYWlsICJPTVBfVEFSR0VUX09GRkxPQUQ9bWFu ZGF0b3J5IGFuZCBubyBiaW5hcnkgY29kZSBmb3IgYSBub24taG9zdCBkZXZpY2UiIH0gKi8K KyAgI3ByYWdtYSBvbXAgdGFyZ2V0IG1hcCh0b2Zyb206eCkKKyAgICB4ID0gNTsKKyAgaWYg KHggIT0gNSkKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisgIHJldHVybiAwOworfQpkaWZm IC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01MS5jIGIvbGli Z29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01MS5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ZDA5YmNlYWNkNQotLS0gL2Rldi9udWxsCisrKyBi L2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuYy90YXJnZXQtNTEuYwpAQCAtMCwwICsxLDI0 IEBACisvKiBDaGVjayBPTVBfVEFSR0VUX09GRkxPQUQgb24gc3lzdGVtcyB3aXRoIG5vIGF2 YWlsYWJsZSBub24taG9zdCBkZXZpY2VzLAorICAgd2hpY2ggaXMgZW5mb3JjZWQgYnkgdXNp bmcgLWZvZmZsb2FkPWRpc2FibGUuICAqLworCisvKiB7IGRnLWRvIHJ1biB9ICovCisvKiB7 IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZvZmZsb2FkPWRpc2FibGUiIH0gKi8KKy8qIHsg ZGctc2V0LXRhcmdldC1lbnYtdmFyIE9NUF9UQVJHRVRfT0ZGTE9BRCAibWFuZGF0b3J5IiB9 ICovCisKKy8qIHsgZGctc2hvdWxkZmFpbCAiT01QX1RBUkdFVF9PRkZMT0FEPW1hbmRhdG9y eSBhbmQgbm8gYXZhaWxhYmxlIGRldmljZSIgfSAqLworCisvKiBTZWUgY29tbWVudCBpbiB0 YXJnZXQtNTAuYy90YXJnZXQtNTAuYyBmb3Igd2h5IHRoZSBvdXRwdXQgZGlmZmVycy4gICov CisKKy8qIHsgZGctb3V0cHV0ICIuKmxpYmdvbXA6IE9NUF9UQVJHRVRfT0ZGTE9BRCBpcyBz ZXQgdG8gTUFOREFUT1JZIGJ1dCBvbmx5IHRoZSBob3N0IGRldmljZSBpcyBhdmFpbGFibGUu KiIgeyB0YXJnZXQgeyAhIG9mZmxvYWRfZGV2aWNlIH0gfSB9ICovCisvKiB7IGRnLW91dHB1 dCAiLipsaWJnb21wOiBPTVBfVEFSR0VUX09GRkxPQUQgaXMgc2V0IHRvIE1BTkRBVE9SWSBi dXQgZGV2aWNlIG5vdCBmb3VuZC4qIiB7IHRhcmdldCBvZmZsb2FkX2RldmljZSB9IH0gKi8K KworaW50CittYWluICgpCit7CisgIGludCB4OworICAjcHJhZ21hIG9tcCB0YXJnZXQgbWFw KHRvZnJvbTp4KQorICAgIHggPSA1OworICBpZiAoeCAhPSA1KQorICAgIF9fYnVpbHRpbl9h Ym9ydCAoKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0 ZS9saWJnb21wLmMvdGFyZ2V0LTUyLmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMv dGFyZ2V0LTUyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgw OTM4MGM2OTI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29t cC5jL3RhcmdldC01Mi5jCkBAIC0wLDAgKzEsMjUgQEAKKy8qIE9ubHkgcnVuIHRoaXMgd2l0 aCBhdmFpbGFibGUgbm9uLWhvc3QgZGV2aWNlczsgaW4gdGhhdCBjYXNlLCBHQ0Mgc2V0cwor ICAgdGhlIGRlZmF1bHQtZGV2aWNlLXZhciB0byAwLiAgKi8KKworLyogeyBkZy1kbyBydW4g eyB0YXJnZXQgeyBvZmZsb2FkX2RldmljZSB9IH0gfSAqLworLyogeyBkZy1zZXQtdGFyZ2V0 LWVudi12YXIgT01QX1RBUkdFVF9PRkZMT0FEICJtYW5kYXRvcnkiIH0gKi8KKy8qIHsgZGct c2V0LXRhcmdldC1lbnYtdmFyIE9NUF9ESVNQTEFZX0VOViAidHJ1ZSIgfSAqLworCisvKiB7 IGRnLW91dHB1dCAiLipPTVBfREVGQVVMVF9ERVZJQ0UgPSAnMCcuKk9NUF9UQVJHRVRfT0ZG TE9BRCA9ICdNQU5EQVRPUlknLioiIH0gKi8KKworI2luY2x1ZGUgPG9tcC5oPgorCitpbnQK K21haW4gKCkKK3sKKyAgaW50IHg7CisgICNwcmFnbWEgb21wIHRhcmdldCBtYXAodG9mcm9t OngpCisgICAgeCA9IDUgKyBvbXBfaXNfaW5pdGlhbF9kZXZpY2UgKCk7CisKKyAgaWYgKHgg IT0gNSkKKyAgICBfX2J1aWx0aW5fYWJvcnQgKCk7CisKKyAgaWYgKDAgIT0gb21wX2dldF9k ZWZhdWx0X2RldmljZSgpKQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKyAgcmV0dXJuIDA7 Cit9CmRpZmYgLS1naXQgYS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMvdGFyZ2V0LTUz LmMgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmMvdGFyZ2V0LTUzLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2NmU4OTYxYWYxCi0tLSAvZGV2L251 bGwKKysrIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01My5jCkBAIC0w LDAgKzEsMjIgQEAKKy8qIHsgZGctZG8gcnVuIH0gKi8KKy8qIHsgZGctc2V0LXRhcmdldC1l bnYtdmFyIE9NUF9UQVJHRVRfT0ZGTE9BRCAiZGlzYWJsZWQiIH0gKi8KKy8qIHsgZGctc2V0 LXRhcmdldC1lbnYtdmFyIE9NUF9ESVNQTEFZX0VOViAidHJ1ZSIgfSAqLworCisvKiB7IGRn LW91dHB1dCAiLipPTVBfREVGQVVMVF9ERVZJQ0UgPSAnXFswLTlcXSsnLipPTVBfVEFSR0VU X09GRkxPQUQgPSAnRElTQUJMRUQnLioiIH0gKi8KKworI2luY2x1ZGUgPG9tcC5oPgorCitp bnQKK21haW4gKCkKK3sKKyAgaW50IHg7CisgICNwcmFnbWEgb21wIHRhcmdldCBtYXAodG9m cm9tOngpCisgICAgeCA9IDUgKyBvbXBfaXNfaW5pdGlhbF9kZXZpY2UgKCk7CisKKyAgaWYg KHggIT0gNSsxKQorICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsKKworICBpZiAob21wX2dldF9k ZWZhdWx0X2RldmljZSgpICE9IG9tcF9nZXRfaW5pdGlhbF9kZXZpY2UoKSkKKyAgICBfX2J1 aWx0aW5fYWJvcnQgKCk7CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90 ZXN0c3VpdGUvbGliZ29tcC5jL3RhcmdldC01NC5jIGIvbGliZ29tcC90ZXN0c3VpdGUvbGli Z29tcC5jL3RhcmdldC01NC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5iYzRlNjliNTI3OAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRl L2xpYmdvbXAuYy90YXJnZXQtNTQuYwpAQCAtMCwwICsxLDIwIEBACisvKiB7IGRnLWRvIHJ1 biB9ICovCisvKiB7IGRnLXNldC10YXJnZXQtZW52LXZhciBPTVBfVEFSR0VUX09GRkxPQUQg ImRlZmF1bHQiIH0gKi8KKy8qIHsgZGctc2V0LXRhcmdldC1lbnYtdmFyIE9NUF9ESVNQTEFZ X0VOViAidHJ1ZSIgfSAqLworCisvKiB7IGRnLW91dHB1dCAiLipPTVBfREVGQVVMVF9ERVZJ Q0UgPSAnMCcuKk9NUF9UQVJHRVRfT0ZGTE9BRCA9ICdERUZBVUxUJy4qIiB9ICovCisKKyNp bmNsdWRlIDxvbXAuaD4KKworaW50CittYWluICgpCit7CisgIGludCB4OworICAjcHJhZ21h IG9tcCB0YXJnZXQgbWFwKHRvZnJvbTp4KQorICAgIHggPSA1ICsgb21wX2lzX2luaXRpYWxf ZGV2aWNlICgpOworCisgIGlmICh4ICE9IDUgKyAob21wX2dldF9kZWZhdWx0X2RldmljZSgp ID09IG9tcF9nZXRfaW5pdGlhbF9kZXZpY2UoKSkpCisgICAgX19idWlsdGluX2Fib3J0ICgp OworCisgIHJldHVybiAwOworfQo= --------------IFDbvSK9jsQoQRLOAUDxTGYI--