From: Matthew Auld Subject: [PATCH 01/10] x86/early-quirks: Extend Intel graphics stolen memory placement to 64bit Date: Wed, 6 Dec 2017 18:17:21 +0000 Message-ID: <20171206181730.30551-2-matthew.auld@intel.com> References: <20171206181730.30551-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id E23B38997C for ; Wed, 6 Dec 2017 18:17:35 +0000 (UTC) In-Reply-To: <20171206181730.30551-1-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: x86@kernel.org, Paulo Zanoni , linux-kernel@vger.kernel.org, "H . Peter Anvin" , Thomas Gleixner , Ingo Molnar List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgoK VG8gZ2l2ZSB1cGNvbWluZyBTS1UgQklPU2VzIG1vcmUgZmxleGliaWxpdHkgaW4gcGxhY2luZyB0 aGUgSW50ZWwKZ3JhcGhpY3Mgc3RvbGVuIG1lbW9yeSwgbWFrZSBhbGwgdmFyaWFibGVzIHN0b3Jp bmcgdGhlIHBsYWNlbWVudCBvciBzaXplCmNvbXBhdGlibGUgd2l0aCBmdWxsIDY0IGJpdCByYW5n ZS4gQWxzbyBieSBleHBvcnRpbmcgdGhlIHN0b2xlbiByZWdpb24KYXMgYSByZXNvdXJjZSwgd2Ug Y2FuIHRoZW4gbnVrZSB0aGUgZHVwbGljYXRlZCBzdG9sZW4gZGlzY292ZXJ5IGluIGk5MTUuCgp2 MjogZXhwb3J0IHRoZSBzdG9sZW4gcmVnaW9uIGFzIGEgcmVzb3VyY2UKICAgIGZpeCB1MTYgPDwg MTYgKENocmlzKQp2MzogYWN0dWFsbHkgZml4IHUxNiA8PCAxNgoKU2lnbmVkLW9mZi1ieTogSm9v bmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+CkNjOiBKb29uYXMgTGFo dGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGlu dGVsLmNvbT4KQ2M6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogSW5n byBNb2xuYXIgPG1pbmdvQGtlcm5lbC5vcmc+CkNjOiBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9y LmNvbT4KQ2M6IHg4NkBrZXJuZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3Jn ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4gI3Yx Ci0tLQogYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jIHwgODYgKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9pOTE1X2RybS5oICAgICAg ICAgfCAgMyArKwogMiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMgYi9hcmNo L3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMKaW5kZXggMWU4MmY3ODdjMTYwLi5kNzIzNmUyZjVl ZWQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYworKysgYi9hcmNo L3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgaW50ZWxfcmVtYXBwaW5nX2NoZWNrKGludCBudW0sIGludCBzbG90LCBpbnQgZnVu YykKICNkZWZpbmUgS0IoeCkJKCh4KSAqIDEwMjRVTCkKICNkZWZpbmUgTUIoeCkJKEtCIChLQiAo eCkpKQogCi1zdGF0aWMgc2l6ZV90IF9faW5pdCBpODMwX3RzZWdfc2l6ZSh2b2lkKQorc3RhdGlj IHJlc291cmNlX3NpemVfdCBfX2luaXQgaTgzMF90c2VnX3NpemUodm9pZCkKIHsKIAl1OCBlc21y YW1jID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoMCwgMCwgMCwgSTgzMF9FU01SQU1DKTsKIApAQCAt MjU2LDcgKzI1Niw3IEBAIHN0YXRpYyBzaXplX3QgX19pbml0IGk4MzBfdHNlZ19zaXplKHZvaWQp CiAJCXJldHVybiBLQig1MTIpOwogfQogCi1zdGF0aWMgc2l6ZV90IF9faW5pdCBpODQ1X3RzZWdf c2l6ZSh2b2lkKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgaTg0NV90c2VnX3NpemUo dm9pZCkKIHsKIAl1OCBlc21yYW1jID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoMCwgMCwgMCwgSTg0 NV9FU01SQU1DKTsKIAl1OCB0c2VnX3NpemUgPSBlc21yYW1jICYgSTg0NV9UU0VHX1NJWkVfTUFT SzsKQEAgLTI3Myw3ICsyNzMsNyBAQCBzdGF0aWMgc2l6ZV90IF9faW5pdCBpODQ1X3RzZWdfc2l6 ZSh2b2lkKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc2l6ZV90IF9faW5pdCBpODV4X3RzZWdf c2l6ZSh2b2lkKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgaTg1eF90c2VnX3NpemUo dm9pZCkKIHsKIAl1OCBlc21yYW1jID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoMCwgMCwgMCwgSTg1 WF9FU01SQU1DKTsKIApAQCAtMjgzLDEyICsyODMsMTIgQEAgc3RhdGljIHNpemVfdCBfX2luaXQg aTg1eF90c2VnX3NpemUodm9pZCkKIAlyZXR1cm4gTUIoMSk7CiB9CiAKLXN0YXRpYyBzaXplX3Qg X19pbml0IGk4MzBfbWVtX3NpemUodm9pZCkKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0 IGk4MzBfbWVtX3NpemUodm9pZCkKIHsKIAlyZXR1cm4gcmVhZF9wY2lfY29uZmlnX2J5dGUoMCwg MCwgMCwgSTgzMF9EUkIzKSAqIE1CKDMyKTsKIH0KIAotc3RhdGljIHNpemVfdCBfX2luaXQgaTg1 eF9tZW1fc2l6ZSh2b2lkKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgaTg1eF9tZW1f c2l6ZSh2b2lkKQogewogCXJldHVybiByZWFkX3BjaV9jb25maWdfYnl0ZSgwLCAwLCAxLCBJODVY X0RSQjMpICogTUIoMzIpOwogfQpAQCAtMjk3LDM2ICsyOTcsMzYgQEAgc3RhdGljIHNpemVfdCBf X2luaXQgaTg1eF9tZW1fc2l6ZSh2b2lkKQogICogT24gODMwLzg0NS84NXggdGhlIHN0b2xlbiBt ZW1vcnkgYmFzZSBpc24ndCBhdmFpbGFibGUgaW4gYW55CiAgKiByZWdpc3Rlci4gV2UgbmVlZCB0 byBjYWxjdWxhdGUgaXQgYXMgVE9NLVRTRUdfU0laRS1zdG9sZW5fc2l6ZS4KICAqLwotc3RhdGlj IHBoeXNfYWRkcl90IF9faW5pdCBpODMwX3N0b2xlbl9iYXNlKGludCBudW0sIGludCBzbG90LCBp bnQgZnVuYywKLQkJCQkJICAgc2l6ZV90IHN0b2xlbl9zaXplKQorc3RhdGljIHJlc291cmNlX3Np emVfdCBfX2luaXQgaTgzMF9zdG9sZW5fYmFzZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMs CisJCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc3RvbGVuX3NpemUpCiB7Ci0JcmV0dXJuIChw aHlzX2FkZHJfdClpODMwX21lbV9zaXplKCkgLSBpODMwX3RzZWdfc2l6ZSgpIC0gc3RvbGVuX3Np emU7CisJcmV0dXJuIGk4MzBfbWVtX3NpemUoKSAtIGk4MzBfdHNlZ19zaXplKCkgLSBzdG9sZW5f c2l6ZTsKIH0KIAotc3RhdGljIHBoeXNfYWRkcl90IF9faW5pdCBpODQ1X3N0b2xlbl9iYXNlKGlu dCBudW0sIGludCBzbG90LCBpbnQgZnVuYywKLQkJCQkJICAgc2l6ZV90IHN0b2xlbl9zaXplKQor c3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgaTg0NV9zdG9sZW5fYmFzZShpbnQgbnVtLCBp bnQgc2xvdCwgaW50IGZ1bmMsCisJCQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc3RvbGVuX3Np emUpCiB7Ci0JcmV0dXJuIChwaHlzX2FkZHJfdClpODMwX21lbV9zaXplKCkgLSBpODQ1X3RzZWdf c2l6ZSgpIC0gc3RvbGVuX3NpemU7CisJcmV0dXJuIGk4MzBfbWVtX3NpemUoKSAtIGk4NDVfdHNl Z19zaXplKCkgLSBzdG9sZW5fc2l6ZTsKIH0KIAotc3RhdGljIHBoeXNfYWRkcl90IF9faW5pdCBp ODV4X3N0b2xlbl9iYXNlKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywKLQkJCQkJICAgc2l6 ZV90IHN0b2xlbl9zaXplKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgaTg1eF9zdG9s ZW5fYmFzZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsCisJCQkJCSAgICAgICByZXNvdXJj ZV9zaXplX3Qgc3RvbGVuX3NpemUpCiB7Ci0JcmV0dXJuIChwaHlzX2FkZHJfdClpODV4X21lbV9z aXplKCkgLSBpODV4X3RzZWdfc2l6ZSgpIC0gc3RvbGVuX3NpemU7CisJcmV0dXJuIGk4NXhfbWVt X3NpemUoKSAtIGk4NXhfdHNlZ19zaXplKCkgLSBzdG9sZW5fc2l6ZTsKIH0KIAotc3RhdGljIHBo eXNfYWRkcl90IF9faW5pdCBpODY1X3N0b2xlbl9iYXNlKGludCBudW0sIGludCBzbG90LCBpbnQg ZnVuYywKLQkJCQkJICAgc2l6ZV90IHN0b2xlbl9zaXplKQorc3RhdGljIHJlc291cmNlX3NpemVf dCBfX2luaXQgaTg2NV9zdG9sZW5fYmFzZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsCisJ CQkJCSAgICAgICByZXNvdXJjZV9zaXplX3Qgc3RvbGVuX3NpemUpCiB7CiAJdTE2IHRvdWQgPSAw OwogCiAJdG91ZCA9IHJlYWRfcGNpX2NvbmZpZ18xNigwLCAwLCAwLCBJODY1X1RPVUQpOwogCi0J cmV0dXJuIChwaHlzX2FkZHJfdCkodG91ZCA8PCAxNikgKyBpODQ1X3RzZWdfc2l6ZSgpOworCXJl dHVybiAodG91ZCAqIEtCKDY0KSkgKyBpODQ1X3RzZWdfc2l6ZSgpOwogfQogCi1zdGF0aWMgcGh5 c19hZGRyX3QgX19pbml0IGdlbjNfc3RvbGVuX2Jhc2UoaW50IG51bSwgaW50IHNsb3QsIGludCBm dW5jLAotCQkJCQkgICBzaXplX3Qgc3RvbGVuX3NpemUpCitzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90 IF9faW5pdCBnZW4zX3N0b2xlbl9iYXNlKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywKKwkJ CQkJICAgICAgIHJlc291cmNlX3NpemVfdCBzdG9sZW5fc2l6ZSkKIHsKIAl1MzIgYnNtOwogCkBA IC0zMzcsMTAgKzMzNywxMCBAQCBzdGF0aWMgcGh5c19hZGRyX3QgX19pbml0IGdlbjNfc3RvbGVu X2Jhc2UoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jLAogCSAqLwogCWJzbSA9IHJlYWRfcGNp X2NvbmZpZyhudW0sIHNsb3QsIGZ1bmMsIElOVEVMX0JTTSk7CiAKLQlyZXR1cm4gKHBoeXNfYWRk cl90KWJzbSAmIElOVEVMX0JTTV9NQVNLOworCXJldHVybiBic20gJiBJTlRFTF9CU01fTUFTSzsK IH0KIAotc3RhdGljIHNpemVfdCBfX2luaXQgaTgzMF9zdG9sZW5fc2l6ZShpbnQgbnVtLCBpbnQg c2xvdCwgaW50IGZ1bmMpCitzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IF9faW5pdCBpODMwX3N0b2xl bl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIHsKIAl1MTYgZ21jaF9jdHJsOwog CXUxNiBnbXM7CkBAIC0zNjEsNyArMzYxLDcgQEAgc3RhdGljIHNpemVfdCBfX2luaXQgaTgzMF9z dG9sZW5fc2l6ZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBzaXplX3QgX19pbml0IGdlbjNfc3RvbGVuX3NpemUoaW50IG51bSwgaW50IHNsb3Qs IGludCBmdW5jKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgZ2VuM19zdG9sZW5fc2l6 ZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiB7CiAJdTE2IGdtY2hfY3RybDsKIAl1MTYg Z21zOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyBzaXplX3QgX19pbml0IGdlbjNfc3RvbGVu X3NpemUoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgc2l6ZV90IF9faW5pdCBnZW42X3N0b2xlbl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQg ZnVuYykKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGdlbjZfc3RvbGVuX3NpemUoaW50 IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogewogCXUxNiBnbWNoX2N0cmw7CiAJdTE2IGdtczsK QEAgLTM5OCwxMCArMzk4LDEwIEBAIHN0YXRpYyBzaXplX3QgX19pbml0IGdlbjZfc3RvbGVuX3Np emUoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogCWdtY2hfY3RybCA9IHJlYWRfcGNpX2Nv bmZpZ18xNihudW0sIHNsb3QsIGZ1bmMsIFNOQl9HTUNIX0NUUkwpOwogCWdtcyA9IChnbWNoX2N0 cmwgPj4gU05CX0dNQ0hfR01TX1NISUZUKSAmIFNOQl9HTUNIX0dNU19NQVNLOwogCi0JcmV0dXJu IChzaXplX3QpZ21zICogTUIoMzIpOworCXJldHVybiBnbXMgKiBNQigzMik7CiB9CiAKLXN0YXRp YyBzaXplX3QgX19pbml0IGdlbjhfc3RvbGVuX3NpemUoaW50IG51bSwgaW50IHNsb3QsIGludCBm dW5jKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgZ2VuOF9zdG9sZW5fc2l6ZShpbnQg bnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiB7CiAJdTE2IGdtY2hfY3RybDsKIAl1MTYgZ21zOwpA QCAtNDA5LDEwICs0MDksMTAgQEAgc3RhdGljIHNpemVfdCBfX2luaXQgZ2VuOF9zdG9sZW5fc2l6 ZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiAJZ21jaF9jdHJsID0gcmVhZF9wY2lfY29u ZmlnXzE2KG51bSwgc2xvdCwgZnVuYywgU05CX0dNQ0hfQ1RSTCk7CiAJZ21zID0gKGdtY2hfY3Ry bCA+PiBCRFdfR01DSF9HTVNfU0hJRlQpICYgQkRXX0dNQ0hfR01TX01BU0s7CiAKLQlyZXR1cm4g KHNpemVfdClnbXMgKiBNQigzMik7CisJcmV0dXJuIGdtcyAqIE1CKDMyKTsKIH0KIAotc3RhdGlj IHNpemVfdCBfX2luaXQgY2h2X3N0b2xlbl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQgZnVu YykKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGNodl9zdG9sZW5fc2l6ZShpbnQgbnVt LCBpbnQgc2xvdCwgaW50IGZ1bmMpCiB7CiAJdTE2IGdtY2hfY3RybDsKIAl1MTYgZ21zOwpAQCAt NDI2LDE0ICs0MjYsMTQgQEAgc3RhdGljIHNpemVfdCBfX2luaXQgY2h2X3N0b2xlbl9zaXplKGlu dCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIAkgKiAweDE3IHRvIDB4MWQ6IDRNQiBpbmNyZW1l bnRzIHN0YXJ0IGF0IDM2TUIKIAkgKi8KIAlpZiAoZ21zIDwgMHgxMSkKLQkJcmV0dXJuIChzaXpl X3QpZ21zICogTUIoMzIpOworCQlyZXR1cm4gZ21zICogTUIoMzIpOwogCWVsc2UgaWYgKGdtcyA8 IDB4MTcpCi0JCXJldHVybiAoc2l6ZV90KShnbXMgLSAweDExICsgMikgKiBNQig0KTsKKwkJcmV0 dXJuIChnbXMgLSAweDExICsgMikgKiBNQig0KTsKIAllbHNlCi0JCXJldHVybiAoc2l6ZV90KShn bXMgLSAweDE3ICsgOSkgKiBNQig0KTsKKwkJcmV0dXJuIChnbXMgLSAweDE3ICsgOSkgKiBNQig0 KTsKIH0KIAotc3RhdGljIHNpemVfdCBfX2luaXQgZ2VuOV9zdG9sZW5fc2l6ZShpbnQgbnVtLCBp bnQgc2xvdCwgaW50IGZ1bmMpCitzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IF9faW5pdCBnZW45X3N0 b2xlbl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIHsKIAl1MTYgZ21jaF9jdHJs OwogCXUxNiBnbXM7CkBAIC00NDQsMTQgKzQ0NCwxNSBAQCBzdGF0aWMgc2l6ZV90IF9faW5pdCBn ZW45X3N0b2xlbl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIAkvKiAweDAgIHRv IDB4ZWY6IDMyTUIgaW5jcmVtZW50cyBzdGFydGluZyBhdCAwTUIgKi8KIAkvKiAweGYwIHRvIDB4 ZmU6IDRNQiBpbmNyZW1lbnRzIHN0YXJ0aW5nIGF0IDRNQiAqLwogCWlmIChnbXMgPCAweGYwKQot CQlyZXR1cm4gKHNpemVfdClnbXMgKiBNQigzMik7CisJCXJldHVybiBnbXMgKiBNQigzMik7CiAJ ZWxzZQotCQlyZXR1cm4gKHNpemVfdCkoZ21zIC0gMHhmMCArIDEpICogTUIoNCk7CisJCXJldHVy biAoZ21zIC0gMHhmMCArIDEpICogTUIoNCk7CiB9CiAKIHN0cnVjdCBpbnRlbF9lYXJseV9vcHMg ewotCXNpemVfdCAoKnN0b2xlbl9zaXplKShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpOwot CXBoeXNfYWRkcl90ICgqc3RvbGVuX2Jhc2UpKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywg c2l6ZV90IHNpemUpOworCXJlc291cmNlX3NpemVfdCAoKnN0b2xlbl9zaXplKShpbnQgbnVtLCBp bnQgc2xvdCwgaW50IGZ1bmMpOworCXJlc291cmNlX3NpemVfdCAoKnN0b2xlbl9iYXNlKShpbnQg bnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsCisJCQkJICAgICAgIHJlc291cmNlX3NpemVfdCBzaXpl KTsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZWFybHlfb3BzIGk4MzBfZWFybHlf b3BzIF9faW5pdGNvbnN0ID0gewpAQCAtNTMxLDEyICs1MzIsMTUgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkIGludGVsX2Vhcmx5X2lkc1tdIF9faW5pdGNvbnN0ID0gewogCUlO VEVMX0NOTF9JRFMoJmdlbjlfZWFybHlfb3BzKSwKIH07CiAKK3N0cnVjdCByZXNvdXJjZSBpbnRl bF9ncmFwaGljc19zdG9sZW5fcmVzID0gREVGSU5FX1JFU19NRU0oMCwgMCk7CitFWFBPUlRfU1lN Qk9MKGludGVsX2dyYXBoaWNzX3N0b2xlbl9yZXMpOworCiBzdGF0aWMgdm9pZCBfX2luaXQKIGlu dGVsX2dyYXBoaWNzX3N0b2xlbihpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsCiAJCSAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9lYXJseV9vcHMgKmVhcmx5X29wcykKIHsKLQlwaHlzX2FkZHJf dCBiYXNlLCBlbmQ7Ci0Jc2l6ZV90IHNpemU7CisJcmVzb3VyY2Vfc2l6ZV90IGJhc2UsIHNpemU7 CisJcmVzb3VyY2Vfc2l6ZV90IGVuZDsKIAogCXNpemUgPSBlYXJseV9vcHMtPnN0b2xlbl9zaXpl KG51bSwgc2xvdCwgZnVuYyk7CiAJYmFzZSA9IGVhcmx5X29wcy0+c3RvbGVuX2Jhc2UobnVtLCBz bG90LCBmdW5jLCBzaXplKTsKQEAgLTU0NSw4ICs1NDksMTIgQEAgaW50ZWxfZ3JhcGhpY3Nfc3Rv bGVuKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywKIAkJcmV0dXJuOwogCiAJZW5kID0gYmFz ZSArIHNpemUgLSAxOwotCXByaW50ayhLRVJOX0lORk8gIlJlc2VydmluZyBJbnRlbCBncmFwaGlj cyBtZW1vcnkgYXQgJXBhLSVwYVxuIiwKLQkgICAgICAgJmJhc2UsICZlbmQpOworCisJaW50ZWxf Z3JhcGhpY3Nfc3RvbGVuX3Jlcy5zdGFydCA9IGJhc2U7CisJaW50ZWxfZ3JhcGhpY3Nfc3RvbGVu X3Jlcy5lbmQgPSBlbmQ7CisKKwlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgSW50ZWwgZ3Jh cGhpY3MgbWVtb3J5IGF0ICVwUlxuIiwKKwkgICAgICAgJmludGVsX2dyYXBoaWNzX3N0b2xlbl9y ZXMpOwogCiAJLyogTWFyayB0aGlzIHNwYWNlIGFzIHJlc2VydmVkICovCiAJZTgyMF9fcmFuZ2Vf YWRkKGJhc2UsIHNpemUsIEU4MjBfVFlQRV9SRVNFUlZFRCk7CmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaAppbmRleCA0ZTFiMjc0ZTEx NjQuLmM5ZTVhNjYyMWI5NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vaTkxNV9kcm0uaAorKysg Yi9pbmNsdWRlL2RybS9pOTE1X2RybS5oCkBAIC0zNiw2ICszNiw5IEBAIGV4dGVybiBib29sIGk5 MTVfZ3B1X2xvd2VyKHZvaWQpOwogZXh0ZXJuIGJvb2wgaTkxNV9ncHVfYnVzeSh2b2lkKTsKIGV4 dGVybiBib29sIGk5MTVfZ3B1X3R1cmJvX2Rpc2FibGUodm9pZCk7CiAKKy8qIEV4cG9ydGVkIGZy b20gYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jICovCitleHRlcm4gc3RydWN0IHJlc291 cmNlIGludGVsX2dyYXBoaWNzX3N0b2xlbl9yZXM7CisKIC8qCiAgKiBUaGUgQnJpZGdlIGRldmlj ZSdzIFBDSSBjb25maWcgc3BhY2UgaGFzIGluZm9ybWF0aW9uIGFib3V0IHRoZQogICogZmIgYXBl cnR1cmUgc2l6ZSBhbmQgdGhlIGFtb3VudCBvZiBwcmUtcmVzZXJ2ZWQgbWVtb3J5LgotLSAKMi4x NC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK