From: Matthew Auld Subject: [PATCH 1/8] x86/early-quirks: Extend Intel graphics stolen memory placement to 64bit Date: Mon, 11 Dec 2017 12:14:20 +0000 Message-ID: <20171211121427.26205-2-matthew.auld@intel.com> References: <20171211121427.26205-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E4536E1A5 for ; Mon, 11 Dec 2017 12:14:31 +0000 (UTC) In-Reply-To: <20171211121427.26205-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 Y2FuIHRoZW4gbnVrZSB0aGUgZHVwbGljYXRlZCBzdG9sZW4gZGlzY292ZXJ5IGluIGk5MTUuCgpT aWduZWQtb2ZmLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNv bT4KQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4K Q2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFBhdWxvIFphbm9uaSA8 cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0 cm9uaXguZGU+CkNjOiBJbmdvIE1vbG5hciA8bWluZ29Aa2VybmVsLm9yZz4KQ2M6IEguIFBldGVy IEFudmluIDxocGFAenl0b3IuY29tPgpDYzogeDg2QGtlcm5lbC5vcmcKQ2M6IGxpbnV4LWtlcm5l bEB2Z2VyLmtlcm5lbC5vcmcKUmV2aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPiAjdjMKLS0tCgp2MjogZXhwb3J0IHRoZSBzdG9sZW4gcmVnaW9uIGFzIGEg cmVzb3VyY2UKICAgIGZpeCB1MTYgPDwgMTYgKENocmlzKQp2MzogYWN0dWFsbHkgZml4IHUxNiA8 PCAxNgp2NDogbWFyayBpbnRlbF9ncmFwaGljc19zdG9sZW5fcmVzIGFzIF9fcm9fYWZ0ZXJfaW5p dCAoVGhvbWFzKQoKIGFyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYyB8IDg2ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9kcm0vaTkxNV9kcm0u aCAgICAgICAgIHwgIDMgKysKIDIgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgMzkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5j IGIvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jCmluZGV4IDFlODJmNzg3YzE2MC4uNmMx NjI0ODg5MDExIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMKKysr IGIvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jCkBAIC0yNDMsNyArMjQzLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IGludGVsX3JlbWFwcGluZ19jaGVjayhpbnQgbnVtLCBpbnQgc2xvdCwg aW50IGZ1bmMpCiAjZGVmaW5lIEtCKHgpCSgoeCkgKiAxMDI0VUwpCiAjZGVmaW5lIE1CKHgpCShL QiAoS0IgKHgpKSkKIAotc3RhdGljIHNpemVfdCBfX2luaXQgaTgzMF90c2VnX3NpemUodm9pZCkK K3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGk4MzBfdHNlZ19zaXplKHZvaWQpCiB7CiAJ dTggZXNtcmFtYyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKDAsIDAsIDAsIEk4MzBfRVNNUkFNQyk7 CiAKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgc2l6ZV90IF9faW5pdCBpODMwX3RzZWdfc2l6 ZSh2b2lkKQogCQlyZXR1cm4gS0IoNTEyKTsKIH0KIAotc3RhdGljIHNpemVfdCBfX2luaXQgaTg0 NV90c2VnX3NpemUodm9pZCkKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGk4NDVfdHNl Z19zaXplKHZvaWQpCiB7CiAJdTggZXNtcmFtYyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKDAsIDAs IDAsIEk4NDVfRVNNUkFNQyk7CiAJdTggdHNlZ19zaXplID0gZXNtcmFtYyAmIEk4NDVfVFNFR19T SVpFX01BU0s7CkBAIC0yNzMsNyArMjczLDcgQEAgc3RhdGljIHNpemVfdCBfX2luaXQgaTg0NV90 c2VnX3NpemUodm9pZCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHNpemVfdCBfX2luaXQgaTg1 eF90c2VnX3NpemUodm9pZCkKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGk4NXhfdHNl Z19zaXplKHZvaWQpCiB7CiAJdTggZXNtcmFtYyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKDAsIDAs IDAsIEk4NVhfRVNNUkFNQyk7CiAKQEAgLTI4MywxMiArMjgzLDEyIEBAIHN0YXRpYyBzaXplX3Qg X19pbml0IGk4NXhfdHNlZ19zaXplKHZvaWQpCiAJcmV0dXJuIE1CKDEpOwogfQogCi1zdGF0aWMg c2l6ZV90IF9faW5pdCBpODMwX21lbV9zaXplKHZvaWQpCitzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90 IF9faW5pdCBpODMwX21lbV9zaXplKHZvaWQpCiB7CiAJcmV0dXJuIHJlYWRfcGNpX2NvbmZpZ19i eXRlKDAsIDAsIDAsIEk4MzBfRFJCMykgKiBNQigzMik7CiB9CiAKLXN0YXRpYyBzaXplX3QgX19p bml0IGk4NXhfbWVtX3NpemUodm9pZCkKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGk4 NXhfbWVtX3NpemUodm9pZCkKIHsKIAlyZXR1cm4gcmVhZF9wY2lfY29uZmlnX2J5dGUoMCwgMCwg MSwgSTg1WF9EUkIzKSAqIE1CKDMyKTsKIH0KQEAgLTI5NywzNiArMjk3LDM2IEBAIHN0YXRpYyBz aXplX3QgX19pbml0IGk4NXhfbWVtX3NpemUodm9pZCkKICAqIE9uIDgzMC84NDUvODV4IHRoZSBz dG9sZW4gbWVtb3J5IGJhc2UgaXNuJ3QgYXZhaWxhYmxlIGluIGFueQogICogcmVnaXN0ZXIuIFdl IG5lZWQgdG8gY2FsY3VsYXRlIGl0IGFzIFRPTS1UU0VHX1NJWkUtc3RvbGVuX3NpemUuCiAgKi8K LXN0YXRpYyBwaHlzX2FkZHJfdCBfX2luaXQgaTgzMF9zdG9sZW5fYmFzZShpbnQgbnVtLCBpbnQg c2xvdCwgaW50IGZ1bmMsCi0JCQkJCSAgIHNpemVfdCBzdG9sZW5fc2l6ZSkKK3N0YXRpYyByZXNv dXJjZV9zaXplX3QgX19pbml0IGk4MzBfc3RvbGVuX2Jhc2UoaW50IG51bSwgaW50IHNsb3QsIGlu dCBmdW5jLAorCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0b2xlbl9zaXplKQogewotCXJl dHVybiAocGh5c19hZGRyX3QpaTgzMF9tZW1fc2l6ZSgpIC0gaTgzMF90c2VnX3NpemUoKSAtIHN0 b2xlbl9zaXplOworCXJldHVybiBpODMwX21lbV9zaXplKCkgLSBpODMwX3RzZWdfc2l6ZSgpIC0g c3RvbGVuX3NpemU7CiB9CiAKLXN0YXRpYyBwaHlzX2FkZHJfdCBfX2luaXQgaTg0NV9zdG9sZW5f YmFzZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsCi0JCQkJCSAgIHNpemVfdCBzdG9sZW5f c2l6ZSkKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGk4NDVfc3RvbGVuX2Jhc2UoaW50 IG51bSwgaW50IHNsb3QsIGludCBmdW5jLAorCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0 b2xlbl9zaXplKQogewotCXJldHVybiAocGh5c19hZGRyX3QpaTgzMF9tZW1fc2l6ZSgpIC0gaTg0 NV90c2VnX3NpemUoKSAtIHN0b2xlbl9zaXplOworCXJldHVybiBpODMwX21lbV9zaXplKCkgLSBp ODQ1X3RzZWdfc2l6ZSgpIC0gc3RvbGVuX3NpemU7CiB9CiAKLXN0YXRpYyBwaHlzX2FkZHJfdCBf X2luaXQgaTg1eF9zdG9sZW5fYmFzZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsCi0JCQkJ CSAgIHNpemVfdCBzdG9sZW5fc2l6ZSkKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGk4 NXhfc3RvbGVuX2Jhc2UoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jLAorCQkJCQkgICAgICAg cmVzb3VyY2Vfc2l6ZV90IHN0b2xlbl9zaXplKQogewotCXJldHVybiAocGh5c19hZGRyX3QpaTg1 eF9tZW1fc2l6ZSgpIC0gaTg1eF90c2VnX3NpemUoKSAtIHN0b2xlbl9zaXplOworCXJldHVybiBp ODV4X21lbV9zaXplKCkgLSBpODV4X3RzZWdfc2l6ZSgpIC0gc3RvbGVuX3NpemU7CiB9CiAKLXN0 YXRpYyBwaHlzX2FkZHJfdCBfX2luaXQgaTg2NV9zdG9sZW5fYmFzZShpbnQgbnVtLCBpbnQgc2xv dCwgaW50IGZ1bmMsCi0JCQkJCSAgIHNpemVfdCBzdG9sZW5fc2l6ZSkKK3N0YXRpYyByZXNvdXJj ZV9zaXplX3QgX19pbml0IGk4NjVfc3RvbGVuX2Jhc2UoaW50IG51bSwgaW50IHNsb3QsIGludCBm dW5jLAorCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0b2xlbl9zaXplKQogewogCXUxNiB0 b3VkID0gMDsKIAogCXRvdWQgPSByZWFkX3BjaV9jb25maWdfMTYoMCwgMCwgMCwgSTg2NV9UT1VE KTsKIAotCXJldHVybiAocGh5c19hZGRyX3QpKHRvdWQgPDwgMTYpICsgaTg0NV90c2VnX3NpemUo KTsKKwlyZXR1cm4gdG91ZCAqIEtCKDY0KSArIGk4NDVfdHNlZ19zaXplKCk7CiB9CiAKLXN0YXRp YyBwaHlzX2FkZHJfdCBfX2luaXQgZ2VuM19zdG9sZW5fYmFzZShpbnQgbnVtLCBpbnQgc2xvdCwg aW50IGZ1bmMsCi0JCQkJCSAgIHNpemVfdCBzdG9sZW5fc2l6ZSkKK3N0YXRpYyByZXNvdXJjZV9z aXplX3QgX19pbml0IGdlbjNfc3RvbGVuX2Jhc2UoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5j LAorCQkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHN0b2xlbl9zaXplKQogewogCXUzMiBic207 CiAKQEAgLTMzNywxMCArMzM3LDEwIEBAIHN0YXRpYyBwaHlzX2FkZHJfdCBfX2luaXQgZ2VuM19z dG9sZW5fYmFzZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMsCiAJICovCiAJYnNtID0gcmVh ZF9wY2lfY29uZmlnKG51bSwgc2xvdCwgZnVuYywgSU5URUxfQlNNKTsKIAotCXJldHVybiAocGh5 c19hZGRyX3QpYnNtICYgSU5URUxfQlNNX01BU0s7CisJcmV0dXJuIGJzbSAmIElOVEVMX0JTTV9N QVNLOwogfQogCi1zdGF0aWMgc2l6ZV90IF9faW5pdCBpODMwX3N0b2xlbl9zaXplKGludCBudW0s IGludCBzbG90LCBpbnQgZnVuYykKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGk4MzBf c3RvbGVuX3NpemUoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogewogCXUxNiBnbWNoX2N0 cmw7CiAJdTE2IGdtczsKQEAgLTM2MSw3ICszNjEsNyBAQCBzdGF0aWMgc2l6ZV90IF9faW5pdCBp ODMwX3N0b2xlbl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIHNpemVfdCBfX2luaXQgZ2VuM19zdG9sZW5fc2l6ZShpbnQgbnVtLCBpbnQg c2xvdCwgaW50IGZ1bmMpCitzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IF9faW5pdCBnZW4zX3N0b2xl bl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIHsKIAl1MTYgZ21jaF9jdHJsOwog CXUxNiBnbXM7CkBAIC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIHNpemVfdCBfX2luaXQgZ2VuM19z dG9sZW5fc2l6ZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBzaXplX3QgX19pbml0IGdlbjZfc3RvbGVuX3NpemUoaW50IG51bSwgaW50IHNsb3Qs IGludCBmdW5jKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgZ2VuNl9zdG9sZW5fc2l6 ZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiB7CiAJdTE2IGdtY2hfY3RybDsKIAl1MTYg Z21zOwpAQCAtMzk4LDEwICszOTgsMTAgQEAgc3RhdGljIHNpemVfdCBfX2luaXQgZ2VuNl9zdG9s ZW5fc2l6ZShpbnQgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiAJZ21jaF9jdHJsID0gcmVhZF9w Y2lfY29uZmlnXzE2KG51bSwgc2xvdCwgZnVuYywgU05CX0dNQ0hfQ1RSTCk7CiAJZ21zID0gKGdt Y2hfY3RybCA+PiBTTkJfR01DSF9HTVNfU0hJRlQpICYgU05CX0dNQ0hfR01TX01BU0s7CiAKLQly ZXR1cm4gKHNpemVfdClnbXMgKiBNQigzMik7CisJcmV0dXJuIGdtcyAqIE1CKDMyKTsKIH0KIAot c3RhdGljIHNpemVfdCBfX2luaXQgZ2VuOF9zdG9sZW5fc2l6ZShpbnQgbnVtLCBpbnQgc2xvdCwg aW50IGZ1bmMpCitzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IF9faW5pdCBnZW44X3N0b2xlbl9zaXpl KGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIHsKIAl1MTYgZ21jaF9jdHJsOwogCXUxNiBn bXM7CkBAIC00MDksMTAgKzQwOSwxMCBAQCBzdGF0aWMgc2l6ZV90IF9faW5pdCBnZW44X3N0b2xl bl9zaXplKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIAlnbWNoX2N0cmwgPSByZWFkX3Bj aV9jb25maWdfMTYobnVtLCBzbG90LCBmdW5jLCBTTkJfR01DSF9DVFJMKTsKIAlnbXMgPSAoZ21j aF9jdHJsID4+IEJEV19HTUNIX0dNU19TSElGVCkgJiBCRFdfR01DSF9HTVNfTUFTSzsKIAotCXJl dHVybiAoc2l6ZV90KWdtcyAqIE1CKDMyKTsKKwlyZXR1cm4gZ21zICogTUIoMzIpOwogfQogCi1z dGF0aWMgc2l6ZV90IF9faW5pdCBjaHZfc3RvbGVuX3NpemUoaW50IG51bSwgaW50IHNsb3QsIGlu dCBmdW5jKQorc3RhdGljIHJlc291cmNlX3NpemVfdCBfX2luaXQgY2h2X3N0b2xlbl9zaXplKGlu dCBudW0sIGludCBzbG90LCBpbnQgZnVuYykKIHsKIAl1MTYgZ21jaF9jdHJsOwogCXUxNiBnbXM7 CkBAIC00MjYsMTQgKzQyNiwxNCBAQCBzdGF0aWMgc2l6ZV90IF9faW5pdCBjaHZfc3RvbGVuX3Np emUoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogCSAqIDB4MTcgdG8gMHgxZDogNE1CIGlu Y3JlbWVudHMgc3RhcnQgYXQgMzZNQgogCSAqLwogCWlmIChnbXMgPCAweDExKQotCQlyZXR1cm4g KHNpemVfdClnbXMgKiBNQigzMik7CisJCXJldHVybiBnbXMgKiBNQigzMik7CiAJZWxzZSBpZiAo Z21zIDwgMHgxNykKLQkJcmV0dXJuIChzaXplX3QpKGdtcyAtIDB4MTEgKyAyKSAqIE1CKDQpOwor CQlyZXR1cm4gKGdtcyAtIDB4MTEgKyAyKSAqIE1CKDQpOwogCWVsc2UKLQkJcmV0dXJuIChzaXpl X3QpKGdtcyAtIDB4MTcgKyA5KSAqIE1CKDQpOworCQlyZXR1cm4gKGdtcyAtIDB4MTcgKyA5KSAq IE1CKDQpOwogfQogCi1zdGF0aWMgc2l6ZV90IF9faW5pdCBnZW45X3N0b2xlbl9zaXplKGludCBu dW0sIGludCBzbG90LCBpbnQgZnVuYykKK3N0YXRpYyByZXNvdXJjZV9zaXplX3QgX19pbml0IGdl bjlfc3RvbGVuX3NpemUoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogewogCXUxNiBnbWNo X2N0cmw7CiAJdTE2IGdtczsKQEAgLTQ0NCwxNCArNDQ0LDE1IEBAIHN0YXRpYyBzaXplX3QgX19p bml0IGdlbjlfc3RvbGVuX3NpemUoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQogCS8qIDB4 MCAgdG8gMHhlZjogMzJNQiBpbmNyZW1lbnRzIHN0YXJ0aW5nIGF0IDBNQiAqLwogCS8qIDB4ZjAg dG8gMHhmZTogNE1CIGluY3JlbWVudHMgc3RhcnRpbmcgYXQgNE1CICovCiAJaWYgKGdtcyA8IDB4 ZjApCi0JCXJldHVybiAoc2l6ZV90KWdtcyAqIE1CKDMyKTsKKwkJcmV0dXJuIGdtcyAqIE1CKDMy KTsKIAllbHNlCi0JCXJldHVybiAoc2l6ZV90KShnbXMgLSAweGYwICsgMSkgKiBNQig0KTsKKwkJ cmV0dXJuIChnbXMgLSAweGYwICsgMSkgKiBNQig0KTsKIH0KIAogc3RydWN0IGludGVsX2Vhcmx5 X29wcyB7Ci0Jc2l6ZV90ICgqc3RvbGVuX3NpemUpKGludCBudW0sIGludCBzbG90LCBpbnQgZnVu Yyk7Ci0JcGh5c19hZGRyX3QgKCpzdG9sZW5fYmFzZSkoaW50IG51bSwgaW50IHNsb3QsIGludCBm dW5jLCBzaXplX3Qgc2l6ZSk7CisJcmVzb3VyY2Vfc2l6ZV90ICgqc3RvbGVuX3NpemUpKGludCBu dW0sIGludCBzbG90LCBpbnQgZnVuYyk7CisJcmVzb3VyY2Vfc2l6ZV90ICgqc3RvbGVuX2Jhc2Up KGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywKKwkJCQkgICAgICAgcmVzb3VyY2Vfc2l6ZV90 IHNpemUpOwogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9lYXJseV9vcHMgaTgzMF9l YXJseV9vcHMgX19pbml0Y29uc3QgPSB7CkBAIC01MzEsMTIgKzUzMiwxNSBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxfZWFybHlfaWRzW10gX19pbml0Y29uc3QgPSB7 CiAJSU5URUxfQ05MX0lEUygmZ2VuOV9lYXJseV9vcHMpLAogfTsKIAorc3RydWN0IHJlc291cmNl IGludGVsX2dyYXBoaWNzX3N0b2xlbl9yZXMgX19yb19hZnRlcl9pbml0ID0gREVGSU5FX1JFU19N RU0oMCwgMCk7CitFWFBPUlRfU1lNQk9MKGludGVsX2dyYXBoaWNzX3N0b2xlbl9yZXMpOworCiBz dGF0aWMgdm9pZCBfX2luaXQKIGludGVsX2dyYXBoaWNzX3N0b2xlbihpbnQgbnVtLCBpbnQgc2xv dCwgaW50IGZ1bmMsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9lYXJseV9vcHMgKmVhcmx5 X29wcykKIHsKLQlwaHlzX2FkZHJfdCBiYXNlLCBlbmQ7Ci0Jc2l6ZV90IHNpemU7CisJcmVzb3Vy Y2Vfc2l6ZV90IGJhc2UsIHNpemU7CisJcmVzb3VyY2Vfc2l6ZV90IGVuZDsKIAogCXNpemUgPSBl YXJseV9vcHMtPnN0b2xlbl9zaXplKG51bSwgc2xvdCwgZnVuYyk7CiAJYmFzZSA9IGVhcmx5X29w cy0+c3RvbGVuX2Jhc2UobnVtLCBzbG90LCBmdW5jLCBzaXplKTsKQEAgLTU0NSw4ICs1NDksMTIg QEAgaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywKIAkJ cmV0dXJuOwogCiAJZW5kID0gYmFzZSArIHNpemUgLSAxOwotCXByaW50ayhLRVJOX0lORk8gIlJl c2VydmluZyBJbnRlbCBncmFwaGljcyBtZW1vcnkgYXQgJXBhLSVwYVxuIiwKLQkgICAgICAgJmJh c2UsICZlbmQpOworCisJaW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3Jlcy5zdGFydCA9IGJhc2U7CisJ aW50ZWxfZ3JhcGhpY3Nfc3RvbGVuX3Jlcy5lbmQgPSBlbmQ7CisKKwlwcmludGsoS0VSTl9JTkZP ICJSZXNlcnZpbmcgSW50ZWwgZ3JhcGhpY3MgbWVtb3J5IGF0ICVwUlxuIiwKKwkgICAgICAgJmlu dGVsX2dyYXBoaWNzX3N0b2xlbl9yZXMpOwogCiAJLyogTWFyayB0aGlzIHNwYWNlIGFzIHJlc2Vy dmVkICovCiAJZTgyMF9fcmFuZ2VfYWRkKGJhc2UsIHNpemUsIEU4MjBfVFlQRV9SRVNFUlZFRCk7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS9kcm0vaTkxNV9k cm0uaAppbmRleCA0ZTFiMjc0ZTExNjQuLmM5ZTVhNjYyMWI5NSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL2RybS9pOTE1X2RybS5oCkBAIC0zNiw2ICsz Niw5IEBAIGV4dGVybiBib29sIGk5MTVfZ3B1X2xvd2VyKHZvaWQpOwogZXh0ZXJuIGJvb2wgaTkx NV9ncHVfYnVzeSh2b2lkKTsKIGV4dGVybiBib29sIGk5MTVfZ3B1X3R1cmJvX2Rpc2FibGUodm9p ZCk7CiAKKy8qIEV4cG9ydGVkIGZyb20gYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jICov CitleHRlcm4gc3RydWN0IHJlc291cmNlIGludGVsX2dyYXBoaWNzX3N0b2xlbl9yZXM7CisKIC8q CiAgKiBUaGUgQnJpZGdlIGRldmljZSdzIFBDSSBjb25maWcgc3BhY2UgaGFzIGluZm9ybWF0aW9u IGFib3V0IHRoZQogICogZmIgYXBlcnR1cmUgc2l6ZSBhbmQgdGhlIGFtb3VudCBvZiBwcmUtcmVz ZXJ2ZWQgbWVtb3J5LgotLSAKMi4xNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK