From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Garnier Subject: [PATCH v4 2/4] x86: Remap GDT tables in the Fixmap section Date: Thu, 16 Feb 2017 13:54:36 -0800 Message-ID: <20170216215438.126111-2-thgarnie__21227.1564327695$1487282154$gmane$org@google.com> References: <20170216215438.126111-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceU0o-0006OD-Ug for xen-devel@lists.xenproject.org; Thu, 16 Feb 2017 21:54:51 +0000 Received: by mail-pg0-f42.google.com with SMTP id v184so9323981pgv.3 for ; Thu, 16 Feb 2017 13:54:48 -0800 (PST) In-Reply-To: <20170216215438.126111-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Jonathan Corbet , Thomas Garnier , Kees Cook , Lorenzo Stoakes , Juergen Gross , Andy Lutomirski , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Jiri Kosina , Matt Fleming , Ard Biesheuvel , Boris Ostrovsky , Rusty Russell , Borislav Petkov , Christian Borntraeger , Brian Gerst , He Chen , "Luis R . Rodriguez" , Stanislaw Gruszka , Arnd Bergmann Cc: linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, lguest@lists.ozlabs.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org RWFjaCBwcm9jZXNzb3IgaG9sZHMgYSBHRFQgaW4gaXRzIHBlci1jcHUgc3RydWN0dXJlLiBUaGUg c2dkdAppbnN0cnVjdGlvbiBnaXZlcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IEdE VC4gVGhpcyBhZGRyZXNzIGNhbgpiZSB1c2VkIHRvIGJ5cGFzcyBLQVNMUiBtZW1vcnkgcmFuZG9t aXphdGlvbi4gV2l0aCBhbm90aGVyIGJ1ZywgYW4KYXR0YWNrZXIgY291bGQgdGFyZ2V0IG90aGVy IHBlci1jcHUgc3RydWN0dXJlcyBvciBkZWR1Y2UgdGhlIGJhc2Ugb2YKdGhlIG1haW4gbWVtb3J5 IHNlY3Rpb24gKFBBR0VfT0ZGU0VUKS4KClRoaXMgcGF0Y2ggcmVsb2NhdGVzIHRoZSBHRFQgdGFi bGUgZm9yIGVhY2ggcHJvY2Vzc29yIGluc2lkZSB0aGUKRml4bWFwIHNlY3Rpb24uIFRoZSBzcGFj ZSBpcyByZXNlcnZlZCBiYXNlZCBvbiBudW1iZXIgb2Ygc3VwcG9ydGVkCnByb2Nlc3NvcnMuCgpG b3IgY29uc2lzdGVuY3ksIHRoZSByZW1hcHBpbmcgaXMgZG9uZSBieSBkZWZhdWx0IG9uIDMyIGFu ZCA2NC1iaXQuCgpFYWNoIHByb2Nlc3NvciBzd2l0Y2hlcyB0byBpdHMgcmVtYXBwZWQgR0RUIGF0 IHRoZSBlbmQgb2YKaW5pdGlhbGl6YXRpb24uIEZvciBoaWJlcm5hdGlvbiwgdGhlIG1haW4gcHJv Y2Vzc29yIHJldHVybnMgd2l0aCB0aGUKb3JpZ2luYWwgR0RUIGFuZCBzd2l0Y2hlcyBiYWNrIHRv IHRoZSByZW1hcHBpbmcgYXQgY29tcGxldGlvbi4KClRoaXMgcGF0Y2ggd2FzIHRlc3RlZCBvbiBi b3RoIGFyY2hpdGVjdHVyZXMuIEhpYmVybmF0aW9uIGFuZCBLVk0gd2VyZQpib3RoIHRlc3RlZCBz cGVjaWFsbHkgZm9yIHRoZWlyIHVzYWdlIG9mIHRoZSBHRFQuCgpTaWduZWQtb2ZmLWJ5OiBUaG9t YXMgR2FybmllciA8dGhnYXJuaWVAZ29vZ2xlLmNvbT4KLS0tCkJhc2VkIG9uIG5leHQtMjAxNzAy MTMKLS0tCiBhcmNoL3g4Ni9lbnRyeS92ZHNvL3ZtYS5jICAgICAgICAgICAgIHwgIDIgKy0KIGFy Y2gveDg2L2luY2x1ZGUvYXNtL2Rlc2MuaCAgICAgICAgICAgfCAzMyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0KIGFyY2gveDg2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oICAgICAgICAg fCAgNCArKysrCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCAgICAgIHwgIDEgKwog YXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaCB8ICAyICstCiBhcmNoL3g4Ni9r ZXJuZWwvYWNwaS9zbGVlcC5jICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9hcG1f MzIuYyAgICAgICAgICAgICAgfCAgNiArKystLS0KIGFyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9u LmMgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKystLQogYXJjaC94ODYva2Vy bmVsL3NldHVwX3BlcmNwdS5jICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9rZXJuZWwvc21wYm9v dC5jICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfMzIuYyAg ICAgICAgfCAgNCArKy0tCiBhcmNoL3g4Ni9wb3dlci9jcHUuYyAgICAgICAgICAgICAgICAgIHwg IDcgKysrKystLQogYXJjaC94ODYveGVuL2VubGlnaHRlbi5jICAgICAgICAgICAgICB8ICAyICst CiBhcmNoL3g4Ni94ZW4vc21wLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv bGd1ZXN0L3g4Ni9jb3JlLmMgICAgICAgICAgICAgfCAgNiArKystLS0KIGRyaXZlcnMvcG5wL3Bu cGJpb3MvYmlvc2NhbGxzLmMgICAgICAgfCAxMCArKysrKy0tLS0tCiAxNiBmaWxlcyBjaGFuZ2Vk LCA4MyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9lbnRyeS92ZHNvL3ZtYS5jIGIvYXJjaC94ODYvZW50cnkvdmRzby92bWEuYwppbmRleCA1NzJj ZWUzZmNjZmYuLjljOGJkNGNmY2M2ZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvZW50cnkvdmRzby92 bWEuYworKysgYi9hcmNoL3g4Ni9lbnRyeS92ZHNvL3ZtYS5jCkBAIC0zNTMsNyArMzUzLDcgQEAg c3RhdGljIHZvaWQgdmdldGNwdV9jcHVfaW5pdCh2b2lkICphcmcpCiAJZC5wID0gMTsJCS8qIFBy ZXNlbnQgKi8KIAlkLmQgPSAxOwkJLyogMzItYml0ICovCiAKLQl3cml0ZV9nZHRfZW50cnkoZ2V0 X2NwdV9nZHRfdGFibGUoY3B1KSwgR0RUX0VOVFJZX1BFUl9DUFUsICZkLCBERVNDVFlQRV9TKTsK Kwl3cml0ZV9nZHRfZW50cnkoZ2V0X2NwdV9nZHRfcncoY3B1KSwgR0RUX0VOVFJZX1BFUl9DUFUs ICZkLCBERVNDVFlQRV9TKTsKIH0KIAogc3RhdGljIGludCB2Z2V0Y3B1X29ubGluZSh1bnNpZ25l ZCBpbnQgY3B1KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vZGVzYy5oIGIvYXJj aC94ODYvaW5jbHVkZS9hc20vZGVzYy5oCmluZGV4IDEyMDgwZDg3ZGEzYi4uNWQ0YmExMzExNzM3 IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kZXNjLmgKKysrIGIvYXJjaC94ODYv aW5jbHVkZS9hc20vZGVzYy5oCkBAIC00LDYgKzQsNyBAQAogI2luY2x1ZGUgPGFzbS9kZXNjX2Rl ZnMuaD4KICNpbmNsdWRlIDxhc20vbGR0Lmg+CiAjaW5jbHVkZSA8YXNtL21tdS5oPgorI2luY2x1 ZGUgPGFzbS9maXhtYXAuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxp bnV4L3BlcmNwdS5oPgpAQCAtNDUsMTEgKzQ2LDM1IEBAIHN0cnVjdCBnZHRfcGFnZSB7CiAKIERF Q0xBUkVfUEVSX0NQVV9QQUdFX0FMSUdORUQoc3RydWN0IGdkdF9wYWdlLCBnZHRfcGFnZSk7CiAK LXN0YXRpYyBpbmxpbmUgc3RydWN0IGRlc2Nfc3RydWN0ICpnZXRfY3B1X2dkdF90YWJsZSh1bnNp Z25lZCBpbnQgY3B1KQorLyogUHJvdmlkZSB0aGUgb3JpZ2luYWwgR0RUICovCitzdGF0aWMgaW5s aW5lIHN0cnVjdCBkZXNjX3N0cnVjdCAqZ2V0X2NwdV9nZHRfcncodW5zaWduZWQgaW50IGNwdSkK IHsKIAlyZXR1cm4gcGVyX2NwdShnZHRfcGFnZSwgY3B1KS5nZHQ7CiB9CiAKK3N0YXRpYyBpbmxp bmUgdW5zaWduZWQgbG9uZyBnZXRfY3B1X2dkdF9yd192YWRkcih1bnNpZ25lZCBpbnQgY3B1KQor eworCXJldHVybiAodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF9ydyhjcHUpOworfQorCisvKiBH ZXQgdGhlIGZpeG1hcCBpbmRleCBmb3IgYSBzcGVjaWZpYyBwcm9jZXNzb3IgKi8KK3N0YXRpYyBp bmxpbmUgdW5zaWduZWQgaW50IGdldF9jcHVfZ2R0X3JvX2luZGV4KGludCBjcHUpCit7CisJcmV0 dXJuIEZJWF9HRFRfUkVNQVBfQkVHSU4gKyBjcHU7Cit9CisKKy8qIFByb3ZpZGUgdGhlIGZpeG1h cCBhZGRyZXNzIG9mIHRoZSByZW1hcHBlZCBHRFQgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRl c2Nfc3RydWN0ICpnZXRfY3B1X2dkdF9ybyhpbnQgY3B1KQoreworCXVuc2lnbmVkIGludCBpZHgg PSBnZXRfY3B1X2dkdF9yb19pbmRleChjcHUpOworCXJldHVybiAoc3RydWN0IGRlc2Nfc3RydWN0 ICopX19maXhfdG9fdmlydChpZHgpOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcg Z2V0X2NwdV9nZHRfcm9fdmFkZHIoaW50IGNwdSkKK3sKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcp Z2V0X2NwdV9nZHRfcm8oY3B1KTsKK30KKwogI2lmZGVmIENPTkZJR19YODZfNjQKIAogc3RhdGlj IGlubGluZSB2b2lkIHBhY2tfZ2F0ZShnYXRlX2Rlc2MgKmdhdGUsIHVuc2lnbmVkIHR5cGUsIHVu c2lnbmVkIGxvbmcgZnVuYywKQEAgLTE3NCw3ICsxOTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg c2V0X3Rzc2xkdF9kZXNjcmlwdG9yKHZvaWQgKmQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWdu ZWQgdAogCiBzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfdHNzX2Rlc2ModW5zaWduZWQgY3B1LCB1 bnNpZ25lZCBpbnQgZW50cnksIHZvaWQgKmFkZHIpCiB7Ci0Jc3RydWN0IGRlc2Nfc3RydWN0ICpk ID0gZ2V0X2NwdV9nZHRfdGFibGUoY3B1KTsKKwlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmQgPSBnZXRf Y3B1X2dkdF9ydyhjcHUpOwogCXRzc19kZXNjIHRzczsKIAogCS8qCkBAIC0yMDIsNyArMjI3LDcg QEAgc3RhdGljIGlubGluZSB2b2lkIG5hdGl2ZV9zZXRfbGR0KGNvbnN0IHZvaWQgKmFkZHIsIHVu c2lnbmVkIGludCBlbnRyaWVzKQogCiAJCXNldF90c3NsZHRfZGVzY3JpcHRvcigmbGR0LCAodW5z aWduZWQgbG9uZylhZGRyLCBERVNDX0xEVCwKIAkJCQkgICAgICBlbnRyaWVzICogTERUX0VOVFJZ X1NJWkUgLSAxKTsKLQkJd3JpdGVfZ2R0X2VudHJ5KGdldF9jcHVfZ2R0X3RhYmxlKGNwdSksIEdE VF9FTlRSWV9MRFQsCisJCXdyaXRlX2dkdF9lbnRyeShnZXRfY3B1X2dkdF9ydyhjcHUpLCBHRFRf RU5UUllfTERULAogCQkJCSZsZHQsIERFU0NfTERUKTsKIAkJYXNtIHZvbGF0aWxlKCJsbGR0ICV3 MCI6OiJxIiAoR0RUX0VOVFJZX0xEVCo4KSk7CiAJfQpAQCAtMjQ0LDcgKzI2OSw3IEBAIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyBuYXRpdmVfc3RvcmVfdHIodm9pZCkKIAogc3RhdGljIGlu bGluZSB2b2lkIG5hdGl2ZV9sb2FkX3RscyhzdHJ1Y3QgdGhyZWFkX3N0cnVjdCAqdCwgdW5zaWdu ZWQgaW50IGNwdSkKIHsKLQlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdkdCA9IGdldF9jcHVfZ2R0X3Rh YmxlKGNwdSk7CisJc3RydWN0IGRlc2Nfc3RydWN0ICpnZHQgPSBnZXRfY3B1X2dkdF9ydyhjcHUp OwogCXVuc2lnbmVkIGludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IEdEVF9FTlRSWV9UTFNfRU5U UklFUzsgaSsrKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaAppbmRleCA4NTU0Zjk2MGUyMWIuLmI2NTE1NWNj Mzc2MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgKKysrIGIvYXJj aC94ODYvaW5jbHVkZS9hc20vZml4bWFwLmgKQEAgLTEwMCw2ICsxMDAsMTAgQEAgZW51bSBmaXhl ZF9hZGRyZXNzZXMgewogI2lmZGVmCUNPTkZJR19YODZfSU5URUxfTUlECiAJRklYX0xOV19WUlRD LAogI2VuZGlmCisJLyogRml4bWFwIGVudHJpZXMgdG8gcmVtYXAgdGhlIEdEVHMsIG9uZSBwZXIg cHJvY2Vzc29yLiAqLworCUZJWF9HRFRfUkVNQVBfQkVHSU4sCisJRklYX0dEVF9SRU1BUF9FTkQg PSBGSVhfR0RUX1JFTUFQX0JFR0lOICsgTlJfQ1BVUyAtIDEsCisKIAlfX2VuZF9vZl9wZXJtYW5l bnRfZml4ZWRfYWRkcmVzc2VzLAogCiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL3Byb2Nlc3Nvci5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgKaW5kZXgg ZTZjZmU3YmEyZDY1Li5jNDQxZDFmN2UyNzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL3Byb2Nlc3Nvci5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCkBA IC03MDYsNiArNzA2LDcgQEAgZXh0ZXJuIHN0cnVjdCBkZXNjX3B0cgkJZWFybHlfZ2R0X2Rlc2Ny OwogCiBleHRlcm4gdm9pZCBjcHVfc2V0X2dkdChpbnQpOwogZXh0ZXJuIHZvaWQgc3dpdGNoX3Rv X25ld19nZHQoaW50KTsKK2V4dGVybiB2b2lkIGxvYWRfZml4bWFwX2dkdChpbnQpOwogZXh0ZXJu IHZvaWQgbG9hZF9wZXJjcHVfc2VnbWVudChpbnQpOwogZXh0ZXJuIHZvaWQgY3B1X2luaXQodm9p ZCk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0YWNrcHJvdGVjdG9yLmgg Yi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zdGFja3Byb3RlY3Rvci5oCmluZGV4IDU4NTA1ZjAxOTYy Zi4uZGNiZDliY2NlNzE0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zdGFja3By b3RlY3Rvci5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N0YWNrcHJvdGVjdG9yLmgKQEAg LTg3LDcgKzg3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3N0YWNrX2NhbmFyeV9zZWdt ZW50KGludCBjcHUpCiB7CiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogCXVuc2lnbmVkIGxvbmcgY2Fu YXJ5ID0gKHVuc2lnbmVkIGxvbmcpJnBlcl9jcHUoc3RhY2tfY2FuYXJ5LCBjcHUpOwotCXN0cnVj dCBkZXNjX3N0cnVjdCAqZ2R0X3RhYmxlID0gZ2V0X2NwdV9nZHRfdGFibGUoY3B1KTsKKwlzdHJ1 Y3QgZGVzY19zdHJ1Y3QgKmdkdF90YWJsZSA9IGdldF9jcHVfZ2R0X3J3KGNwdSk7CiAJc3RydWN0 IGRlc2Nfc3RydWN0IGRlc2M7CiAKIAlkZXNjID0gZ2R0X3RhYmxlW0dEVF9FTlRSWV9TVEFDS19D QU5BUlldOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FjcGkvc2xlZXAuYyBiL2FyY2gv eDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMKaW5kZXggNDg1ODczMzVlZGU4Li5lZDAxNDgxNGVhMzUg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMKKysrIGIvYXJjaC94ODYv a2VybmVsL2FjcGkvc2xlZXAuYwpAQCAtMTAxLDcgKzEwMSw3IEBAIGludCB4ODZfYWNwaV9zdXNw ZW5kX2xvd2xldmVsKHZvaWQpCiAjaWZkZWYgQ09ORklHX1NNUAogCWluaXRpYWxfc3RhY2sgPSAo dW5zaWduZWQgbG9uZyl0ZW1wX3N0YWNrICsgc2l6ZW9mKHRlbXBfc3RhY2spOwogCWVhcmx5X2dk dF9kZXNjci5hZGRyZXNzID0KLQkJCSh1bnNpZ25lZCBsb25nKWdldF9jcHVfZ2R0X3RhYmxlKHNt cF9wcm9jZXNzb3JfaWQoKSk7CisJCQkodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF9ydyhzbXBf cHJvY2Vzc29yX2lkKCkpOwogCWluaXRpYWxfZ3MgPSBwZXJfY3B1X29mZnNldChzbXBfcHJvY2Vz c29yX2lkKCkpOwogI2VuZGlmCiAJaW5pdGlhbF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpd2FrZXVw X2xvbmc2NDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcG1fMzIuYyBiL2FyY2gveDg2 L2tlcm5lbC9hcG1fMzIuYwppbmRleCA0NWQ0NGMxNzNjZjkuLmRjNGU4OWQ5M2ExMCAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL2FwbV8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hcG1f MzIuYwpAQCAtNjA4LDcgKzYwOCw3IEBAIHN0YXRpYyBsb25nIF9fYXBtX2Jpb3NfY2FsbCh2b2lk ICpfY2FsbCkKIAogCWNwdSA9IGdldF9jcHUoKTsKIAlCVUdfT04oY3B1ICE9IDApOwotCWdkdCA9 IGdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7CisJZ2R0ID0gZ2V0X2NwdV9nZHRfcncoY3B1KTsKIAlz YXZlX2Rlc2NfNDAgPSBnZHRbMHg0MCAvIDhdOwogCWdkdFsweDQwIC8gOF0gPSBiYWRfYmlvc19k ZXNjOwogCkBAIC02ODQsNyArNjg0LDcgQEAgc3RhdGljIGxvbmcgX19hcG1fYmlvc19jYWxsX3Np bXBsZSh2b2lkICpfY2FsbCkKIAogCWNwdSA9IGdldF9jcHUoKTsKIAlCVUdfT04oY3B1ICE9IDAp OwotCWdkdCA9IGdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7CisJZ2R0ID0gZ2V0X2NwdV9nZHRfcnco Y3B1KTsKIAlzYXZlX2Rlc2NfNDAgPSBnZHRbMHg0MCAvIDhdOwogCWdkdFsweDQwIC8gOF0gPSBi YWRfYmlvc19kZXNjOwogCkBAIC0yMzUxLDcgKzIzNTEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBh cG1faW5pdCh2b2lkKQogCSAqIE5vdGUgd2Ugb25seSBzZXQgQVBNIHNlZ21lbnRzIG9uIENQVSB6 ZXJvLCBzaW5jZSB3ZSBwaW4gdGhlIEFQTQogCSAqIGNvZGUgdG8gdGhhdCBDUFUuCiAJICovCi0J Z2R0ID0gZ2V0X2NwdV9nZHRfdGFibGUoMCk7CisJZ2R0ID0gZ2V0X2NwdV9nZHRfcncoMCk7CiAJ c2V0X2Rlc2NfYmFzZSgmZ2R0W0FQTV9DUyA+PiAzXSwKIAkJICh1bnNpZ25lZCBsb25nKV9fdmEo KHVuc2lnbmVkIGxvbmcpYXBtX2luZm8uYmlvcy5jc2VnIDw8IDQpKTsKIAlzZXRfZGVzY19iYXNl KCZnZHRbQVBNX0NTXzE2ID4+IDNdLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9j b21tb24uYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMKaW5kZXggMWE0ZWU3MDgyYWQ3 Li4yODUzYTQyZGVkMmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMK KysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYwpAQCAtNDQ0LDYgKzQ0NCwyMyBAQCB2 b2lkIGxvYWRfcGVyY3B1X3NlZ21lbnQoaW50IGNwdSkKIAlsb2FkX3N0YWNrX2NhbmFyeV9zZWdt ZW50KCk7CiB9CiAKKy8qIFNldHVwIHRoZSBmaXhtYXAgbWFwcGluZyBvbmx5IG9uY2UgcGVyLXBy b2Nlc3NvciAqLworc3RhdGljIGlubGluZSB2b2lkIHNldHVwX2ZpeG1hcF9nZHQoaW50IGNwdSkK K3sKKwlfX3NldF9maXhtYXAoZ2V0X2NwdV9nZHRfcm9faW5kZXgoY3B1KSwKKwkJICAgICBfX3Bh KGdldF9jcHVfZ2R0X3J3KGNwdSkpLCBQQUdFX0tFUk5FTCk7Cit9CisKKy8qIExvYWQgYSBmaXht YXAgcmVtYXBwaW5nIG9mIHRoZSBwZXItY3B1IEdEVCAqLwordm9pZCBsb2FkX2ZpeG1hcF9nZHQo aW50IGNwdSkKK3sKKwlzdHJ1Y3QgZGVzY19wdHIgZ2R0X2Rlc2NyOworCisJZ2R0X2Rlc2NyLmFk ZHJlc3MgPSAobG9uZylnZXRfY3B1X2dkdF9ybyhjcHUpOworCWdkdF9kZXNjci5zaXplID0gR0RU X1NJWkUgLSAxOworCWxvYWRfZ2R0KCZnZHRfZGVzY3IpOworfQorCiAvKgogICogQ3VycmVudCBn ZHQgcG9pbnRzICVmcyBhdCB0aGUgIm1hc3RlciIgcGVyLWNwdSBhcmVhOiBhZnRlciB0aGlzLAog ICogaXQncyBvbiB0aGUgcmVhbCBvbmUuCkBAIC00NTIsMTEgKzQ2OSwxMCBAQCB2b2lkIHN3aXRj aF90b19uZXdfZ2R0KGludCBjcHUpCiB7CiAJc3RydWN0IGRlc2NfcHRyIGdkdF9kZXNjcjsKIAot CWdkdF9kZXNjci5hZGRyZXNzID0gKGxvbmcpZ2V0X2NwdV9nZHRfdGFibGUoY3B1KTsKKwlnZHRf ZGVzY3IuYWRkcmVzcyA9IChsb25nKWdldF9jcHVfZ2R0X3J3KGNwdSk7CiAJZ2R0X2Rlc2NyLnNp emUgPSBHRFRfU0laRSAtIDE7CiAJbG9hZF9nZHQoJmdkdF9kZXNjcik7CiAJLyogUmVsb2FkIHRo ZSBwZXItY3B1IGJhc2UgKi8KLQogCWxvYWRfcGVyY3B1X3NlZ21lbnQoY3B1KTsKIH0KIApAQCAt MTUyNCw2ICsxNTQwLDkgQEAgdm9pZCBjcHVfaW5pdCh2b2lkKQogCiAJaWYgKGlzX3V2X3N5c3Rl bSgpKQogCQl1dl9jcHVfaW5pdCgpOworCisJc2V0dXBfZml4bWFwX2dkdChjcHUpOworCWxvYWRf Zml4bWFwX2dkdChjcHUpOwogfQogCiAjZWxzZQpAQCAtMTU3OSw2ICsxNTk4LDkgQEAgdm9pZCBj cHVfaW5pdCh2b2lkKQogCWRiZ19yZXN0b3JlX2RlYnVnX3JlZ3MoKTsKIAogCWZwdV9faW5pdF9j cHUoKTsKKworCXNldHVwX2ZpeG1hcF9nZHQoY3B1KTsKKwlsb2FkX2ZpeG1hcF9nZHQoY3B1KTsK IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVyY3B1LmMg Yi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVyY3B1LmMKaW5kZXggOTgyMGQ2ZDk3N2M2Li4xMTMz OGIwYjNhZDIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cF9wZXJjcHUuYworKysg Yi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVyY3B1LmMKQEAgLTE2MCw3ICsxNjAsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgc2V0dXBfcGVyY3B1X3NlZ21lbnQoaW50IGNwdSkKIAlwYWNrX2Rlc2Ny aXB0b3IoJmdkdCwgcGVyX2NwdV9vZmZzZXQoY3B1KSwgMHhGRkZGRiwKIAkJCTB4MiB8IERFU0NU WVBFX1MsIDB4OCk7CiAJZ2R0LnMgPSAxOwotCXdyaXRlX2dkdF9lbnRyeShnZXRfY3B1X2dkdF90 YWJsZShjcHUpLAorCXdyaXRlX2dkdF9lbnRyeShnZXRfY3B1X2dkdF9ydyhjcHUpLAogCQkJR0RU X0VOVFJZX1BFUkNQVSwgJmdkdCwgREVTQ1RZUEVfUyk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBh L2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jCmlu ZGV4IDk5YjkyMGQwZTUxNi4uMmU2MWI0YjY5NTdiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJu ZWwvc21wYm9vdC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKQEAgLTk4MCw3ICs5 ODAsNyBAQCBzdGF0aWMgaW50IGRvX2Jvb3RfY3B1KGludCBhcGljaWQsIGludCBjcHUsIHN0cnVj dCB0YXNrX3N0cnVjdCAqaWRsZSkKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CiAKIAlpZGxlLT50 aHJlYWQuc3AgPSAodW5zaWduZWQgbG9uZyl0YXNrX3B0X3JlZ3MoaWRsZSk7Ci0JZWFybHlfZ2R0 X2Rlc2NyLmFkZHJlc3MgPSAodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF90YWJsZShjcHUpOwor CWVhcmx5X2dkdF9kZXNjci5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfcnco Y3B1KTsKIAlpbml0aWFsX2NvZGUgPSAodW5zaWduZWQgbG9uZylzdGFydF9zZWNvbmRhcnk7CiAJ aW5pdGlhbF9zdGFjayAgPSBpZGxlLT50aHJlYWQuc3A7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L3BsYXRmb3JtL2VmaS9lZmlfMzIuYyBiL2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfMzIuYwpp bmRleCBjZWYzOWIwOTc2NDkuLjk1MDA3MTE3MTQzNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGxh dGZvcm0vZWZpL2VmaV8zMi5jCisrKyBiL2FyY2gveDg2L3BsYXRmb3JtL2VmaS9lZmlfMzIuYwpA QCAtNjgsNyArNjgsNyBAQCBwZ2RfdCAqIF9faW5pdCBlZmlfY2FsbF9waHlzX3Byb2xvZyh2b2lk KQogCWxvYWRfY3IzKGluaXRpYWxfcGFnZV90YWJsZSk7CiAJX19mbHVzaF90bGJfYWxsKCk7CiAK LQlnZHRfZGVzY3IuYWRkcmVzcyA9IF9fcGEoZ2V0X2NwdV9nZHRfdGFibGUoMCkpOworCWdkdF9k ZXNjci5hZGRyZXNzID0gX19wYShnZXRfY3B1X2dkdF9ydygwKSk7CiAJZ2R0X2Rlc2NyLnNpemUg PSBHRFRfU0laRSAtIDE7CiAJbG9hZF9nZHQoJmdkdF9kZXNjcik7CiAKQEAgLTc5LDcgKzc5LDcg QEAgdm9pZCBfX2luaXQgZWZpX2NhbGxfcGh5c19lcGlsb2cocGdkX3QgKnNhdmVfcGdkKQogewog CXN0cnVjdCBkZXNjX3B0ciBnZHRfZGVzY3I7CiAKLQlnZHRfZGVzY3IuYWRkcmVzcyA9ICh1bnNp Z25lZCBsb25nKWdldF9jcHVfZ2R0X3RhYmxlKDApOworCWdkdF9kZXNjci5hZGRyZXNzID0gKHVu c2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfcncoMCk7CiAJZ2R0X2Rlc2NyLnNpemUgPSBHRFRfU0la RSAtIDE7CiAJbG9hZF9nZHQoJmdkdF9kZXNjcik7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Bv d2VyL2NwdS5jIGIvYXJjaC94ODYvcG93ZXIvY3B1LmMKaW5kZXggNjZhZGUxNmM3NjkzLi42YjA1 YTkyMTllYTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3Bvd2VyL2NwdS5jCisrKyBiL2FyY2gveDg2 L3Bvd2VyL2NwdS5jCkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyB2b2lkIF9fc2F2ZV9wcm9jZXNz b3Jfc3RhdGUoc3RydWN0IHNhdmVkX2NvbnRleHQgKmN0eHQpCiAJICogJ3Btb2RlX2dkdCcgaW4g d2FrZXVwX3N0YXJ0LgogCSAqLwogCWN0eHQtPmdkdF9kZXNjLnNpemUgPSBHRFRfU0laRSAtIDE7 Ci0JY3R4dC0+Z2R0X2Rlc2MuYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKWdldF9jcHVfZ2R0X3Rh YmxlKHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJY3R4dC0+Z2R0X2Rlc2MuYWRkcmVzcyA9ICh1bnNp Z25lZCBsb25nKWdldF9jcHVfZ2R0X3J3KHNtcF9wcm9jZXNzb3JfaWQoKSk7CiAKIAlzdG9yZV90 cihjdHh0LT50cik7CiAKQEAgLTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgdm9pZCBmaXhfcHJvY2Vz c29yX2NvbnRleHQodm9pZCkKIAlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCXN0cnVj dCB0c3Nfc3RydWN0ICp0ID0gJnBlcl9jcHUoY3B1X3RzcywgY3B1KTsKICNpZmRlZiBDT05GSUdf WDg2XzY0Ci0Jc3RydWN0IGRlc2Nfc3RydWN0ICpkZXNjID0gZ2V0X2NwdV9nZHRfdGFibGUoY3B1 KTsKKwlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmRlc2MgPSBnZXRfY3B1X2dkdF9ydyhjcHUpOwogCXRz c19kZXNjIHRzczsKICNlbmRpZgogCXNldF90c3NfZGVzYyhjcHUsIHQpOwkvKgpAQCAtMTgzLDYg KzE4Myw5IEBAIHN0YXRpYyB2b2lkIGZpeF9wcm9jZXNzb3JfY29udGV4dCh2b2lkKQogCWxvYWRf bW1fbGR0KGN1cnJlbnQtPmFjdGl2ZV9tbSk7CS8qIFRoaXMgZG9lcyBsbGR0ICovCiAKIAlmcHVf X3Jlc3VtZV9jcHUoKTsKKworCS8qIFRoZSBwcm9jZXNzb3IgaXMgYmFjayBvbiB0aGUgZGlyZWN0 IEdEVCwgbG9hZCBiYWNrIHRoZSBmaXhtYXAgKi8KKwlsb2FkX2ZpeG1hcF9nZHQoY3B1KTsKIH0K IAogLyoqCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMgYi9hcmNoL3g4Ni94 ZW4vZW5saWdodGVuLmMKaW5kZXggZWMxZDVjNDZlNThmLi40OTUxZmNmOTUxNDMgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYworKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVu LmMKQEAgLTcxMCw3ICs3MTAsNyBAQCBzdGF0aWMgdm9pZCBsb2FkX1RMU19kZXNjcmlwdG9yKHN0 cnVjdCB0aHJlYWRfc3RydWN0ICp0LAogCiAJKnNoYWRvdyA9IHQtPnRsc19hcnJheVtpXTsKIAot CWdkdCA9IGdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7CisJZ2R0ID0gZ2V0X2NwdV9nZHRfcncoY3B1 KTsKIAltYWRkciA9IGFyYml0cmFyeV92aXJ0X3RvX21hY2hpbmUoJmdkdFtHRFRfRU5UUllfVExT X01JTitpXSk7CiAJbWMgPSBfX3hlbl9tY19lbnRyeSgwKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94 ODYveGVuL3NtcC5jIGIvYXJjaC94ODYveGVuL3NtcC5jCmluZGV4IDBkZWU2ZjU5ZWE4Mi4uNjM5 OWJhYjkzNmNkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vc21wLmMKKysrIGIvYXJjaC94ODYv eGVuL3NtcC5jCkBAIC0zOTEsNyArMzkxLDcgQEAgY3B1X2luaXRpYWxpemVfY29udGV4dCh1bnNp Z25lZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUpCiAJaWYgKGN0eHQgPT0gTlVM TCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlnZHQgPSBnZXRfY3B1X2dkdF90YWJsZShjcHUpOwor CWdkdCA9IGdldF9jcHVfZ2R0X3J3KGNwdSk7CiAKICNpZmRlZiBDT05GSUdfWDg2XzMyCiAJY3R4 dC0+dXNlcl9yZWdzLmZzID0gX19LRVJORUxfUEVSQ1BVOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9s Z3Vlc3QveDg2L2NvcmUuYyBiL2RyaXZlcnMvbGd1ZXN0L3g4Ni9jb3JlLmMKaW5kZXggZDcxZjYz MjNhYzAwLi5iNGY3OWI5MjNhZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGd1ZXN0L3g4Ni9jb3Jl LmMKKysrIGIvZHJpdmVycy9sZ3Vlc3QveDg2L2NvcmUuYwpAQCAtNTA0LDcgKzUwNCw3IEBAIHZv aWQgX19pbml0IGxndWVzdF9hcmNoX2hvc3RfaW5pdCh2b2lkKQogCQkgKiBieXRlLCBub3QgdGhl IHNpemUsIGhlbmNlIHRoZSAiLTEiKS4KIAkJICovCiAJCXN0YXRlLT5ob3N0X2dkdF9kZXNjLnNp emUgPSBHRFRfU0laRS0xOwotCQlzdGF0ZS0+aG9zdF9nZHRfZGVzYy5hZGRyZXNzID0gKGxvbmcp Z2V0X2NwdV9nZHRfdGFibGUoaSk7CisJCXN0YXRlLT5ob3N0X2dkdF9kZXNjLmFkZHJlc3MgPSAo bG9uZylnZXRfY3B1X2dkdF9ydyhpKTsKIAogCQkvKgogCQkgKiBBbGwgQ1BVcyBvbiB0aGUgSG9z dCB1c2UgdGhlIHNhbWUgSW50ZXJydXB0IERlc2NyaXB0b3IKQEAgLTU1NCw4ICs1NTQsOCBAQCB2 b2lkIF9faW5pdCBsZ3Vlc3RfYXJjaF9ob3N0X2luaXQodm9pZCkKIAkJICogVGhlIEhvc3QgbmVl ZHMgdG8gYmUgYWJsZSB0byB1c2UgdGhlIExHVUVTVCBzZWdtZW50cyBvbiB0aGlzCiAJCSAqIENQ VSwgdG9vLCBzbyBwdXQgdGhlbSBpbiB0aGUgSG9zdCBHRFQuCiAJCSAqLwotCQlnZXRfY3B1X2dk dF90YWJsZShpKVtHRFRfRU5UUllfTEdVRVNUX0NTXSA9IEZVTExfRVhFQ19TRUdNRU5UOwotCQln ZXRfY3B1X2dkdF90YWJsZShpKVtHRFRfRU5UUllfTEdVRVNUX0RTXSA9IEZVTExfU0VHTUVOVDsK KwkJZ2V0X2NwdV9nZHRfcncoaSlbR0RUX0VOVFJZX0xHVUVTVF9DU10gPSBGVUxMX0VYRUNfU0VH TUVOVDsKKwkJZ2V0X2NwdV9nZHRfcncoaSlbR0RUX0VOVFJZX0xHVUVTVF9EU10gPSBGVUxMX1NF R01FTlQ7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG5wL3BucGJpb3MvYmlvc2Nh bGxzLmMgYi9kcml2ZXJzL3BucC9wbnBiaW9zL2Jpb3NjYWxscy5jCmluZGV4IDQzOGQ0YzcyYzdi My4uZmY1NjNkYjAyNWIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BucC9wbnBiaW9zL2Jpb3NjYWxs cy5jCisrKyBiL2RyaXZlcnMvcG5wL3BucGJpb3MvYmlvc2NhbGxzLmMKQEAgLTU0LDcgKzU0LDcg QEAgX19hc21fXygiLnRleHQJCQlcbiIKIAogI2RlZmluZSBRMl9TRVRfU0VMKGNwdSwgc2VsbmFt ZSwgYWRkcmVzcywgc2l6ZSkgXAogZG8geyBcCi0Jc3RydWN0IGRlc2Nfc3RydWN0ICpnZHQgPSBn ZXRfY3B1X2dkdF90YWJsZSgoY3B1KSk7IFwKKwlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdkdCA9IGdl dF9jcHVfZ2R0X3J3KChjcHUpKTsgXAogCXNldF9kZXNjX2Jhc2UoJmdkdFsoc2VsbmFtZSkgPj4g M10sICh1MzIpKGFkZHJlc3MpKTsgXAogCXNldF9kZXNjX2xpbWl0KCZnZHRbKHNlbG5hbWUpID4+ IDNdLCAoc2l6ZSkgLSAxKTsgXAogfSB3aGlsZSgwKQpAQCAtOTUsOCArOTUsOCBAQCBzdGF0aWMg aW5saW5lIHUxNiBjYWxsX3BucF9iaW9zKHUxNiBmdW5jLCB1MTYgYXJnMSwgdTE2IGFyZzIsIHUx NiBhcmczLAogCQlyZXR1cm4gUE5QX0ZVTkNUSU9OX05PVF9TVVBQT1JURUQ7CiAKIAljcHUgPSBn ZXRfY3B1KCk7Ci0Jc2F2ZV9kZXNjXzQwID0gZ2V0X2NwdV9nZHRfdGFibGUoY3B1KVsweDQwIC8g OF07Ci0JZ2V0X2NwdV9nZHRfdGFibGUoY3B1KVsweDQwIC8gOF0gPSBiYWRfYmlvc19kZXNjOwor CXNhdmVfZGVzY180MCA9IGdldF9jcHVfZ2R0X3J3KGNwdSlbMHg0MCAvIDhdOworCWdldF9jcHVf Z2R0X3J3KGNwdSlbMHg0MCAvIDhdID0gYmFkX2Jpb3NfZGVzYzsKIAogCS8qIE9uIHNvbWUgYm94 ZXMgSVJRJ3MgZHVyaW5nIFBuUCBCSU9TIGNhbGxzIGFyZSBkZWFkbHkuICAqLwogCXNwaW5fbG9j a19pcnFzYXZlKCZwbnBfYmlvc19sb2NrLCBmbGFncyk7CkBAIC0xMzQsNyArMTM0LDcgQEAgc3Rh dGljIGlubGluZSB1MTYgY2FsbF9wbnBfYmlvcyh1MTYgZnVuYywgdTE2IGFyZzEsIHUxNiBhcmcy LCB1MTYgYXJnMywKIAkJCSAgICAgOiJtZW1vcnkiKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZwbnBfYmlvc19sb2NrLCBmbGFncyk7CiAKLQlnZXRfY3B1X2dkdF90YWJsZShjcHUpWzB4NDAg LyA4XSA9IHNhdmVfZGVzY180MDsKKwlnZXRfY3B1X2dkdF9ydyhjcHUpWzB4NDAgLyA4XSA9IHNh dmVfZGVzY180MDsKIAlwdXRfY3B1KCk7CiAKIAkvKiBJZiB3ZSBnZXQgaGVyZSBhbmQgdGhpcyBp cyBzZXQgdGhlbiB0aGUgUG5QIEJJT1MgZmF1bHRlZCBvbiB1cy4gKi8KQEAgLTQ3Nyw3ICs0Nzcs NyBAQCB2b2lkIHBucGJpb3NfY2FsbHNfaW5pdCh1bmlvbiBwbnBfYmlvc19pbnN0YWxsX3N0cnVj dCAqaGVhZGVyKQogCXBucF9iaW9zX2NhbGxwb2ludC5zZWdtZW50ID0gUE5QX0NTMTY7CiAKIAlm b3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkgewotCQlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdkdCA9IGdl dF9jcHVfZ2R0X3RhYmxlKGkpOworCQlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdkdCA9IGdldF9jcHVf Z2R0X3J3KGkpOwogCQlpZiAoIWdkdCkKIAkJCWNvbnRpbnVlOwogCQlzZXRfZGVzY19iYXNlKCZn ZHRbR0RUX0VOVFJZX1BOUEJJT1NfQ1MzMl0sCi0tIAoyLjExLjAuNDgzLmcwODdkYTdiN2MtZ29v ZwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=