From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v4 09/12] KVM: arm64: introduce vcpu->arch.debug_ptr Date: Fri, 15 May 2015 15:27:12 +0100 Message-ID: <1431700035-23479-10-git-send-email-alex.bennee@linaro.org> References: <1431700035-23479-1-git-send-email-alex.bennee@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Lorenzo Pieralisi , Russell King , Richard Weinberger , Ard Biesheuvel , Gleb Natapov , jan.kiszka@siemens.com, Will Deacon , open list , dahi@linux.vnet.ibm.com, Andre Przywara , Catalin Marinas , r65777@freescale.com, bp@suse.de To: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org, marc.zyngier@arm.com, peter.maydell@linaro.org, agraf@suse.de, drjones@redhat.com, pbonzini@redhat.com, zhichao.huang@linaro.org Return-path: In-Reply-To: <1431700035-23479-1-git-send-email-alex.bennee@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu List-Id: kvm.vger.kernel.org VGhpcyBpbnRyb2R1Y2VzIGEgbGV2ZWwgb2YgaW5kaXJlY3Rpb24gZm9yIHRoZSBkZWJ1ZyByZWdp c3RlcnMuIEluc3RlYWQKb2YgdXNpbmcgdGhlIHN5c19yZWdzW10gZGlyZWN0bHkgd2Ugc3RvcmUg cmVnaXN0ZXJzIGluIGEgc3RydWN0dXJlIGluCnRoZSB2Y3B1LiBBcyB3ZSBhcmUgbm8gbG9uZ2Vy IHRpZWQgdG8gdGhlIGxheW91dCBvZiB0aGUgc3lzX3JlZ3NbXSB3ZQpjYW4gbWFrZSB0aGUgY29w aWVzIHNpemUgYXBwcm9wcmlhdGUgZm9yIGNvbnRyb2wgYW5kIHZhbHVlIHJlZ2lzdGVycy4KClRo aXMgYWxzbyBlbnRhaWxzIHVwZGF0aW5nIHRoZSBzeXNfcmVncyBjb2RlIHRvIGFjY2VzcyB0aGlz IG5ldwpzdHJ1Y3R1cmUuIEluc3RlYWQgb2YgcGFzc2luZyBhIHJlZ2lzdGVyIGluZGV4IHdlIG5v dyBwYXNzIGFuIG9mZnNldAppbnRvIHRoZSBrdm1fZ3Vlc3RfZGVidWdfYXJjaCBzdHJ1Y3R1cmUu CgpXZSBhbHNvIG5lZWQgdG8gZW5zdXJlIHRoZSBHRVQvU0VUX09ORV9SRUcgaW9jdGwgb3BlcmF0 aW9ucyBzdG9yZSB0aGUKcmVnaXN0ZXJzIGluIHRoZWlyIGNvcnJlY3QgbG9jYXRpb24uCgpTaWdu ZWQtb2ZmLWJ5OiBBbGV4IEJlbm7DqWUgPGFsZXguYmVubmVlQGxpbmFyby5vcmc+CgpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0va3ZtL2FybS5jIGIvYXJjaC9hcm0va3ZtL2FybS5jCmluZGV4IDliM2Vk NmQuLjBkMTdjN2IgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2t2bS9hcm0uYworKysgYi9hcmNoL2Fy bS9rdm0vYXJtLmMKQEAgLTI3OSw2ICsyNzksOSBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pbml0KHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkvKiBTZXQgdXAgdGhlIHRpbWVyICovCiAJa3ZtX3RpbWVy X3ZjcHVfaW5pdCh2Y3B1KTsKIAorCS8qIFNldCB0aGUgZGVidWcgcmVnaXN0ZXJzIHRvIGJlIHRo ZSBndWVzdHMgKi8KKwl2Y3B1LT5hcmNoLmRlYnVnX3B0ciA9ICZ2Y3B1LT5hcmNoLnZjcHVfZGVi dWdfc3RhdGU7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNs dWRlL2FzbS9rdm1fYXNtLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9hc20uaAppbmRl eCBkNmI1MDdlLi5lOTk3NDA0IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2 bV9hc20uaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9hc20uaApAQCAtNDYsMjQg KzQ2LDE2IEBACiAjZGVmaW5lCUNOVEtDVExfRUwxCTIwCS8qIFRpbWVyIENvbnRyb2wgUmVnaXN0 ZXIgKEVMMSkgKi8KICNkZWZpbmUJUEFSX0VMMQkJMjEJLyogUGh5c2ljYWwgQWRkcmVzcyBSZWdp c3RlciAqLwogI2RlZmluZSBNRFNDUl9FTDEJMjIJLyogTW9uaXRvciBEZWJ1ZyBTeXN0ZW0gQ29u dHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBEQkdCQ1IwX0VMMQkyMwkvKiBEZWJ1ZyBCcmVha3Bv aW50IENvbnRyb2wgUmVnaXN0ZXJzICgwLTE1KSAqLwotI2RlZmluZSBEQkdCQ1IxNV9FTDEJMzgK LSNkZWZpbmUgREJHQlZSMF9FTDEJMzkJLyogRGVidWcgQnJlYWtwb2ludCBWYWx1ZSBSZWdpc3Rl cnMgKDAtMTUpICovCi0jZGVmaW5lIERCR0JWUjE1X0VMMQk1NAotI2RlZmluZSBEQkdXQ1IwX0VM MQk1NQkvKiBEZWJ1ZyBXYXRjaHBvaW50IENvbnRyb2wgUmVnaXN0ZXJzICgwLTE1KSAqLwotI2Rl ZmluZSBEQkdXQ1IxNV9FTDEJNzAKLSNkZWZpbmUgREJHV1ZSMF9FTDEJNzEJLyogRGVidWcgV2F0 Y2hwb2ludCBWYWx1ZSBSZWdpc3RlcnMgKDAtMTUpICovCi0jZGVmaW5lIERCR1dWUjE1X0VMMQk4 NgotI2RlZmluZSBNRENDSU5UX0VMMQk4NwkvKiBNb25pdG9yIERlYnVnIENvbW1zIENoYW5uZWwg SW50ZXJydXB0IEVuYWJsZSBSZWcgKi8KKyNkZWZpbmUgTURDQ0lOVF9FTDEJMjMJLyogTW9uaXRv ciBEZWJ1ZyBDb21tcyBDaGFubmVsIEludGVycnVwdCBFbmFibGUgUmVnICovCiAKIC8qIDMyYml0 IHNwZWNpZmljIHJlZ2lzdGVycy4gS2VlcCB0aGVtIGF0IHRoZSBlbmQgb2YgdGhlIHJhbmdlICov Ci0jZGVmaW5lCURBQ1IzMl9FTDIJODgJLyogRG9tYWluIEFjY2VzcyBDb250cm9sIFJlZ2lzdGVy ICovCi0jZGVmaW5lCUlGU1IzMl9FTDIJODkJLyogSW5zdHJ1Y3Rpb24gRmF1bHQgU3RhdHVzIFJl Z2lzdGVyICovCi0jZGVmaW5lCUZQRVhDMzJfRUwyCTkwCS8qIEZsb2F0aW5nLVBvaW50IEV4Y2Vw dGlvbiBDb250cm9sIFJlZ2lzdGVyICovCi0jZGVmaW5lCURCR1ZDUjMyX0VMMgk5MQkvKiBEZWJ1 ZyBWZWN0b3IgQ2F0Y2ggUmVnaXN0ZXIgKi8KLSNkZWZpbmUJVEVFQ1IzMl9FTDEJOTIJLyogVGh1 bWJFRSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCi0jZGVmaW5lCVRFRUhCUjMyX0VMMQk5Mwkv KiBUaHVtYkVFIEhhbmRsZXIgQmFzZSBSZWdpc3RlciAqLwotI2RlZmluZQlOUl9TWVNfUkVHUwk5 NAorI2RlZmluZQlEQUNSMzJfRUwyCTI0CS8qIERvbWFpbiBBY2Nlc3MgQ29udHJvbCBSZWdpc3Rl ciAqLworI2RlZmluZQlJRlNSMzJfRUwyCTI1CS8qIEluc3RydWN0aW9uIEZhdWx0IFN0YXR1cyBS ZWdpc3RlciAqLworI2RlZmluZQlGUEVYQzMyX0VMMgkyNgkvKiBGbG9hdGluZy1Qb2ludCBFeGNl cHRpb24gQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZQlEQkdWQ1IzMl9FTDIJMjcJLyogRGVi dWcgVmVjdG9yIENhdGNoIFJlZ2lzdGVyICovCisjZGVmaW5lCVRFRUNSMzJfRUwxCTI4CS8qIFRo dW1iRUUgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLworI2RlZmluZQlURUVIQlIzMl9FTDEJMjkJ LyogVGh1bWJFRSBIYW5kbGVyIEJhc2UgUmVnaXN0ZXIgKi8KKyNkZWZpbmUJTlJfU1lTX1JFR1MJ MzAKIAogLyogMzJiaXQgbWFwcGluZyAqLwogI2RlZmluZSBjMF9NUElEUgkoTVBJRFJfRUwxICog MikJLyogTXVsdGlQcm9jZXNzb3IgSUQgUmVnaXN0ZXIgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJt NjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hv c3QuaAppbmRleCAzYWIzMWQ3Li5hZDc5MmNiIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1 ZGUvYXNtL2t2bV9ob3N0LmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1faG9zdC5o CkBAIC0xMDgsMTEgKzEwOCwyMSBAQCBzdHJ1Y3Qga3ZtX3ZjcHVfYXJjaCB7CiAJLyogRXhjZXB0 aW9uIEluZm9ybWF0aW9uICovCiAJc3RydWN0IGt2bV92Y3B1X2ZhdWx0X2luZm8gZmF1bHQ7CiAK LQkvKiBEZWJ1ZyBzdGF0ZSAqLworCS8qIEd1ZXN0IGRlYnVnIHN0YXRlICovCiAJdTY0IGRlYnVn X2ZsYWdzOwogCisJLyoKKwkgKiBGb3IgZGVidWdnaW5nIHRoZSBndWVzdCB3ZSBuZWVkIHRvIGtl ZXAgYSBzZXQgb2YgZGVidWcKKwkgKiByZWdpc3RlcnMgd2hpY2ggY2FuIG92ZXJyaWRlIHRoZSBn dWVzdHMgb3duIGRlYnVnIHN0YXRlCisJICogd2hpbGUgYmVpbmcgdXNlZC4gVGhlc2UgYXJlIHNl dCB2aWEgdGhlIEtWTV9TRVRfR1VFU1RfREVCVUcKKwkgKiBpb2N0bC4KKwkgKi8KKwlzdHJ1Y3Qg a3ZtX2d1ZXN0X2RlYnVnX2FyY2ggKmRlYnVnX3B0cjsKKwlzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVn X2FyY2ggdmNwdV9kZWJ1Z19zdGF0ZTsKKwogCS8qIFBvaW50ZXIgdG8gaG9zdCBDUFUgY29udGV4 dCAqLwogCWt2bV9jcHVfY29udGV4dF90ICpob3N0X2NwdV9jb250ZXh0OworCXN0cnVjdCBrdm1f Z3Vlc3RfZGVidWdfYXJjaCBob3N0X2RlYnVnX3N0YXRlOwogCiAJLyogVkdJQyBzdGF0ZSAqLwog CXN0cnVjdCB2Z2ljX2NwdSB2Z2ljX2NwdTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVs L2FzbS1vZmZzZXRzLmMgYi9hcmNoL2FybTY0L2tlcm5lbC9hc20tb2Zmc2V0cy5jCmluZGV4IGRm YjI1YTIuLjFhOGU5N2MgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2FzbS1vZmZzZXRz LmMKKysrIGIvYXJjaC9hcm02NC9rZXJuZWwvYXNtLW9mZnNldHMuYwpAQCAtMTE2LDEwICsxMTYs MTYgQEAgaW50IG1haW4odm9pZCkKICAgREVGSU5FKFZDUFVfRkFSX0VMMiwJCW9mZnNldG9mKHN0 cnVjdCBrdm1fdmNwdSwgYXJjaC5mYXVsdC5mYXJfZWwyKSk7CiAgIERFRklORShWQ1BVX0hQRkFS X0VMMiwJb2Zmc2V0b2Yoc3RydWN0IGt2bV92Y3B1LCBhcmNoLmZhdWx0LmhwZmFyX2VsMikpOwog ICBERUZJTkUoVkNQVV9ERUJVR19GTEFHUywJb2Zmc2V0b2Yoc3RydWN0IGt2bV92Y3B1LCBhcmNo LmRlYnVnX2ZsYWdzKSk7CisgIERFRklORShWQ1BVX0RFQlVHX1BUUiwJb2Zmc2V0b2Yoc3RydWN0 IGt2bV92Y3B1LCBhcmNoLmRlYnVnX3B0cikpOworICBERUZJTkUoREVCVUdfQkNSLCAJCW9mZnNl dG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCwgZGJnX2JjcikpOworICBERUZJTkUoREVC VUdfQlZSLCAJCW9mZnNldG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCwgZGJnX2J2cikp OworICBERUZJTkUoREVCVUdfV0NSLCAJCW9mZnNldG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdf YXJjaCwgZGJnX3djcikpOworICBERUZJTkUoREVCVUdfV1ZSLCAJCW9mZnNldG9mKHN0cnVjdCBr dm1fZ3Vlc3RfZGVidWdfYXJjaCwgZGJnX3d2cikpOwogICBERUZJTkUoVkNQVV9IQ1JfRUwyLAkJ b2Zmc2V0b2Yoc3RydWN0IGt2bV92Y3B1LCBhcmNoLmhjcl9lbDIpKTsKICAgREVGSU5FKFZDUFVf TURDUl9FTDIsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5tZGNyX2VsMikpOwogICBE RUZJTkUoVkNQVV9JUlFfTElORVMsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5pcnFf bGluZXMpKTsKICAgREVGSU5FKFZDUFVfSE9TVF9DT05URVhULAlvZmZzZXRvZihzdHJ1Y3Qga3Zt X3ZjcHUsIGFyY2guaG9zdF9jcHVfY29udGV4dCkpOworICBERUZJTkUoVkNQVV9IT1NUX0RFQlVH X1NUQVRFLCBvZmZzZXRvZihzdHJ1Y3Qga3ZtX3ZjcHUsIGFyY2guaG9zdF9kZWJ1Z19zdGF0ZSkp OwogICBERUZJTkUoVkNQVV9USU1FUl9DTlRWX0NUTCwJb2Zmc2V0b2Yoc3RydWN0IGt2bV92Y3B1 LCBhcmNoLnRpbWVyX2NwdS5jbnR2X2N0bCkpOwogICBERUZJTkUoVkNQVV9USU1FUl9DTlRWX0NW QUwsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC50aW1lcl9jcHUuY250dl9jdmFsKSk7 CiAgIERFRklORShLVk1fVElNRVJfQ05UVk9GRiwJb2Zmc2V0b2Yoc3RydWN0IGt2bSwgYXJjaC50 aW1lci5jbnR2b2ZmKSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9oeXAuUyBiL2FyY2gv YXJtNjQva3ZtL2h5cC5TCmluZGV4IDMzNTcyM2UuLmQ3NTU5MjIgMTAwNjQ0Ci0tLSBhL2FyY2gv YXJtNjQva3ZtL2h5cC5TCisrKyBiL2FyY2gvYXJtNjQva3ZtL2h5cC5TCkBAIC0yMjgsNyArMjI4 LDcgQEAKIAlzdHAJeDI0LCB4MjUsIFt4MywgIzE2MF0KIC5lbmRtCiAKLS5tYWNybyBzYXZlX2Rl YnVnIHR5cGUKKy5tYWNybyBzYXZlX2RlYnVnIHR5cGUgcmVnc3ogb2Zmc3oKIAkvLyB4NDogcG9p bnRlciB0byByZWdpc3RlciBzZXQKIAkvLyB4NTogbnVtYmVyIG9mIHJlZ2lzdGVycyB0byBza2lw CiAJLy8geDYuLngyMiB0cmFzaGVkCkBAIC0yNTgsMjIgKzI1OCwyMiBAQAogCWFkZAl4MjIsIHgy MiwgeDUsIGxzbCAjMgogCWJyCXgyMgogMToKLQlzdHIJeDIxLCBbeDQsICMoMTUgKiA4KV0KLQlz dHIJeDIwLCBbeDQsICMoMTQgKiA4KV0KLQlzdHIJeDE5LCBbeDQsICMoMTMgKiA4KV0KLQlzdHIJ eDE4LCBbeDQsICMoMTIgKiA4KV0KLQlzdHIJeDE3LCBbeDQsICMoMTEgKiA4KV0KLQlzdHIJeDE2 LCBbeDQsICMoMTAgKiA4KV0KLQlzdHIJeDE1LCBbeDQsICMoOSAqIDgpXQotCXN0cgl4MTQsIFt4 NCwgIyg4ICogOCldCi0Jc3RyCXgxMywgW3g0LCAjKDcgKiA4KV0KLQlzdHIJeDEyLCBbeDQsICMo NiAqIDgpXQotCXN0cgl4MTEsIFt4NCwgIyg1ICogOCldCi0Jc3RyCXgxMCwgW3g0LCAjKDQgKiA4 KV0KLQlzdHIJeDksIFt4NCwgIygzICogOCldCi0Jc3RyCXg4LCBbeDQsICMoMiAqIDgpXQotCXN0 cgl4NywgW3g0LCAjKDEgKiA4KV0KLQlzdHIJeDYsIFt4NCwgIygwICogOCldCisJc3RyCVxyZWdz elwoKTIxLCBbeDQsICMoMTUgKiBcb2Zmc3opXQorCXN0cglccmVnc3pcKCkyMCwgW3g0LCAjKDE0 ICogXG9mZnN6KV0KKwlzdHIJXHJlZ3N6XCgpMTksIFt4NCwgIygxMyAqIFxvZmZzeildCisJc3Ry CVxyZWdzelwoKTE4LCBbeDQsICMoMTIgKiBcb2Zmc3opXQorCXN0cglccmVnc3pcKCkxNywgW3g0 LCAjKDExICogXG9mZnN6KV0KKwlzdHIJXHJlZ3N6XCgpMTYsIFt4NCwgIygxMCAqIFxvZmZzeild CisJc3RyCVxyZWdzelwoKTE1LCBbeDQsICMoOSAqIFxvZmZzeildCisJc3RyCVxyZWdzelwoKTE0 LCBbeDQsICMoOCAqIFxvZmZzeildCisJc3RyCVxyZWdzelwoKTEzLCBbeDQsICMoNyAqIFxvZmZz eildCisJc3RyCVxyZWdzelwoKTEyLCBbeDQsICMoNiAqIFxvZmZzeildCisJc3RyCVxyZWdzelwo KTExLCBbeDQsICMoNSAqIFxvZmZzeildCisJc3RyCVxyZWdzelwoKTEwLCBbeDQsICMoNCAqIFxv ZmZzeildCisJc3RyCVxyZWdzelwoKTksIFt4NCwgIygzICogXG9mZnN6KV0KKwlzdHIJXHJlZ3N6 XCgpOCwgW3g0LCAjKDIgKiBcb2Zmc3opXQorCXN0cglccmVnc3pcKCk3LCBbeDQsICMoMSAqIFxv ZmZzeildCisJc3RyCVxyZWdzelwoKTYsIFt4NCwgIygwICogXG9mZnN6KV0KIC5lbmRtCiAKIC5t YWNybyByZXN0b3JlX3N5c3JlZ3MKQEAgLTMxOCw3ICszMTgsNyBAQAogCW1zcgltZHNjcl9lbDEs CXgyNQogLmVuZG0KIAotLm1hY3JvIHJlc3RvcmVfZGVidWcgdHlwZQorLm1hY3JvIHJlc3RvcmVf ZGVidWcgdHlwZSByZWdzeiBvZmZzegogICAgICAgICAvLyB4NDogcG9pbnRlciB0byByZWdpc3Rl ciBzZXQKICAgICAgICAgLy8geDU6IG51bWJlciBvZiByZWdpc3RlcnMgdG8gc2tpcAogCS8vIHg2 Li54MjIgdHJhc2hlZApAQCAtMzI3LDIyICszMjcsMjIgQEAKIAlhZGQJeDIyLCB4MjIsIHg1LCBs c2wgIzIKIAlicgl4MjIKIDE6Ci0JbGRyCXgyMSwgW3g0LCAjKDE1ICogOCldCi0JbGRyCXgyMCwg W3g0LCAjKDE0ICogOCldCi0JbGRyCXgxOSwgW3g0LCAjKDEzICogOCldCi0JbGRyCXgxOCwgW3g0 LCAjKDEyICogOCldCi0JbGRyCXgxNywgW3g0LCAjKDExICogOCldCi0JbGRyCXgxNiwgW3g0LCAj KDEwICogOCldCi0JbGRyCXgxNSwgW3g0LCAjKDkgKiA4KV0KLQlsZHIJeDE0LCBbeDQsICMoOCAq IDgpXQotCWxkcgl4MTMsIFt4NCwgIyg3ICogOCldCi0JbGRyCXgxMiwgW3g0LCAjKDYgKiA4KV0K LQlsZHIJeDExLCBbeDQsICMoNSAqIDgpXQotCWxkcgl4MTAsIFt4NCwgIyg0ICogOCldCi0JbGRy CXg5LCBbeDQsICMoMyAqIDgpXQotCWxkcgl4OCwgW3g0LCAjKDIgKiA4KV0KLQlsZHIJeDcsIFt4 NCwgIygxICogOCldCi0JbGRyCXg2LCBbeDQsICMoMCAqIDgpXQorCWxkcglccmVnc3pcKCkyMSwg W3g0LCAjKDE1ICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpMjAsIFt4NCwgIygxNCAqIFxvZmZz eildCisJbGRyCVxyZWdzelwoKTE5LCBbeDQsICMoMTMgKiBcb2Zmc3opXQorCWxkcglccmVnc3pc KCkxOCwgW3g0LCAjKDEyICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpMTcsIFt4NCwgIygxMSAq IFxvZmZzeildCisJbGRyCVxyZWdzelwoKTE2LCBbeDQsICMoMTAgKiBcb2Zmc3opXQorCWxkcglc cmVnc3pcKCkxNSwgW3g0LCAjKDkgKiBcb2Zmc3opXQorCWxkcglccmVnc3pcKCkxNCwgW3g0LCAj KDggKiBcb2Zmc3opXQorCWxkcglccmVnc3pcKCkxMywgW3g0LCAjKDcgKiBcb2Zmc3opXQorCWxk cglccmVnc3pcKCkxMiwgW3g0LCAjKDYgKiBcb2Zmc3opXQorCWxkcglccmVnc3pcKCkxMSwgW3g0 LCAjKDUgKiBcb2Zmc3opXQorCWxkcglccmVnc3pcKCkxMCwgW3g0LCAjKDQgKiBcb2Zmc3opXQor CWxkcglccmVnc3pcKCk5LCBbeDQsICMoMyAqIFxvZmZzeildCisJbGRyCVxyZWdzelwoKTgsIFt4 NCwgIygyICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpNywgW3g0LCAjKDEgKiBcb2Zmc3opXQor CWxkcglccmVnc3pcKCk2LCBbeDQsICMoMCAqIFxvZmZzeildCiAKIAlhZHIJeDIyLCAxZgogCWFk ZAl4MjIsIHgyMiwgeDUsIGxzbCAjMgpAQCAtNjAxLDYgKzYwMSw3IEBAIF9fcmVzdG9yZV9zeXNy ZWdzOgogX19zYXZlX2RlYnVnOgogCS8vIHgwOiBiYXNlIGFkZHJlc3MgZm9yIHZjcHUgY29udGV4 dAogCS8vIHgyOiBwdHIgdG8gY3VycmVudCBDUFUgY29udGV4dAorCS8vIHgzOiBwdHIgdG8gZGVi dWcgcmVnIHN0cnVjdAogCS8vIHg0L3g1OiB0cmFzaGVkCiAKIAltcnMJeDI2LCBpZF9hYTY0ZGZy MF9lbDEKQEAgLTYxMSwxNiArNjEyLDE2IEBAIF9fc2F2ZV9kZWJ1ZzoKIAlzdWIJdzI1LCB3MjYs IHcyNQkJLy8gSG93IG1hbnkgV1BzIHRvIHNraXAKIAogCW1vdiAgICAgeDUsIHgyNAotCWFkZAl4 NCwgeDIsICNDUFVfU1lTUkVHX09GRlNFVChEQkdCQ1IwX0VMMSkKLQlzYXZlX2RlYnVnIGRiZ2Jj cgotCWFkZAl4NCwgeDIsICNDUFVfU1lTUkVHX09GRlNFVChEQkdCVlIwX0VMMSkKLQlzYXZlX2Rl YnVnIGRiZ2J2cgorCWFkZAl4NCwgeDMsICNERUJVR19CQ1IKKwlzYXZlX2RlYnVnIGRiZ2JjciB3 IDQKKwlhZGQJeDQsIHgzLCAjREVCVUdfQlZSCisJc2F2ZV9kZWJ1ZyBkYmdidnIgeCA4CiAKIAlt b3YgICAgIHg1LCB4MjUKLQlhZGQJeDQsIHgyLCAjQ1BVX1NZU1JFR19PRkZTRVQoREJHV0NSMF9F TDEpCi0Jc2F2ZV9kZWJ1ZyBkYmd3Y3IKLQlhZGQJeDQsIHgyLCAjQ1BVX1NZU1JFR19PRkZTRVQo REJHV1ZSMF9FTDEpCi0Jc2F2ZV9kZWJ1ZyBkYmd3dnIKKwlhZGQJeDQsIHgzLCAjREVCVUdfV0NS CisJc2F2ZV9kZWJ1ZyBkYmd3Y3IgdyA0CisJYWRkCXg0LCB4MywgI0RFQlVHX1dWUgorCXNhdmVf ZGVidWcgZGJnd3ZyIHggOAogCiAJbXJzCXgyMSwgbWRjY2ludF9lbDEKIAlzdHIJeDIxLCBbeDIs ICNDUFVfU1lTUkVHX09GRlNFVChNRENDSU5UX0VMMSldCkBAIC02NDAsMTYgKzY0MSwxNiBAQCBf X3Jlc3RvcmVfZGVidWc6CiAJc3ViCXcyNSwgdzI2LCB3MjUJCS8vIEhvdyBtYW55IFdQcyB0byBz a2lwCiAKIAltb3YgICAgIHg1LCB4MjQKLQlhZGQJeDQsIHgyLCAjQ1BVX1NZU1JFR19PRkZTRVQo REJHQkNSMF9FTDEpCi0JcmVzdG9yZV9kZWJ1ZyBkYmdiY3IKLQlhZGQJeDQsIHgyLCAjQ1BVX1NZ U1JFR19PRkZTRVQoREJHQlZSMF9FTDEpCi0JcmVzdG9yZV9kZWJ1ZyBkYmdidnIKKwlhZGQJeDQs IHgzLCAjREVCVUdfQkNSCisJcmVzdG9yZV9kZWJ1ZyBkYmdiY3IgdyA0CisJYWRkCXg0LCB4Mywg I0RFQlVHX0JWUgorCXJlc3RvcmVfZGVidWcgZGJnYnZyIHggOAogCiAJbW92ICAgICB4NSwgeDI1 Ci0JYWRkCXg0LCB4MiwgI0NQVV9TWVNSRUdfT0ZGU0VUKERCR1dDUjBfRUwxKQotCXJlc3RvcmVf ZGVidWcgZGJnd2NyCi0JYWRkCXg0LCB4MiwgI0NQVV9TWVNSRUdfT0ZGU0VUKERCR1dWUjBfRUwx KQotCXJlc3RvcmVfZGVidWcgZGJnd3ZyCisJYWRkCXg0LCB4MywgI0RFQlVHX1dDUgorCXJlc3Rv cmVfZGVidWcgZGJnd2NyIHcgNAorCWFkZAl4NCwgeDMsICNERUJVR19XVlIKKwlyZXN0b3JlX2Rl YnVnIGRiZ3d2ciB4IDgKIAogCWxkcgl4MjEsIFt4MiwgI0NQVV9TWVNSRUdfT0ZGU0VUKE1EQ0NJ TlRfRUwxKV0KIAltc3IJbWRjY2ludF9lbDEsIHgyMQpAQCAtNjg4LDYgKzY4OSw3IEBAIEVOVFJZ KF9fa3ZtX3ZjcHVfcnVuKQogCWJsIF9fc2F2ZV9zeXNyZWdzCiAKIAljb21wdXRlX2RlYnVnX3N0 YXRlIDFmCisJYWRkCXgzLCB4MCwgI1ZDUFVfSE9TVF9ERUJVR19TVEFURQogCWJsCV9fc2F2ZV9k ZWJ1ZwogMToKIAlhY3RpdmF0ZV90cmFwcwpAQCAtNzAzLDYgKzcwNSw4IEBAIEVOVFJZKF9fa3Zt X3ZjcHVfcnVuKQogCWJsIF9fcmVzdG9yZV9mcHNpbWQKIAogCXNraXBfZGVidWdfc3RhdGUgeDMs IDFmCisJbGRyCXgzLCBbeDAsICNWQ1BVX0RFQlVHX1BUUl0KKwlrZXJuX2h5cF92YSB4MwogCWJs CV9fcmVzdG9yZV9kZWJ1ZwogMToKIAlyZXN0b3JlX2d1ZXN0XzMyYml0X3N0YXRlCkBAIC03MjMs NiArNzI3LDggQEAgX19rdm1fdmNwdV9yZXR1cm46CiAJYmwgX19zYXZlX3N5c3JlZ3MKIAogCXNr aXBfZGVidWdfc3RhdGUgeDMsIDFmCisJbGRyCXgzLCBbeDAsICNWQ1BVX0RFQlVHX1BUUl0KKwlr ZXJuX2h5cF92YSB4MwogCWJsCV9fc2F2ZV9kZWJ1ZwogMToKIAlzYXZlX2d1ZXN0XzMyYml0X3N0 YXRlCkBAIC03NDUsNiArNzUxLDcgQEAgX19rdm1fdmNwdV9yZXR1cm46CiAJLy8gYWxyZWFkeSBi ZWVuIHNhdmVkLiBOb3RlIHRoYXQgd2UgbnVrZSB0aGUgd2hvbGUgNjRiaXQgd29yZC4KIAkvLyBJ ZiB3ZSBldmVyIGFkZCBtb3JlIGZsYWdzLCB3ZSdsbCBoYXZlIHRvIGJlIG1vcmUgY2FyZWZ1bC4u LgogCXN0cgl4enIsIFt4MCwgI1ZDUFVfREVCVUdfRkxBR1NdCisJYWRkCXgzLCB4MCwgI1ZDUFVf SE9TVF9ERUJVR19TVEFURQogCWJsCV9fcmVzdG9yZV9kZWJ1ZwogMToKIAlyZXN0b3JlX2hvc3Rf cmVncwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYyBiL2FyY2gvYXJtNjQv a3ZtL3N5c19yZWdzLmMKaW5kZXggYzM3MGI0MC4uNDA1NDAzZSAxMDA2NDQKLS0tIGEvYXJjaC9h cm02NC9rdm0vc3lzX3JlZ3MuYworKysgYi9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jCkBAIC0y MTEsNiArMjExLDQ4IEBAIHN0YXRpYyBib29sIHRyYXBfZGVidWdfcmVncyhzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUsCiAJcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCB0cmFwX2Rl YnVnMzIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAorCQkJCWNvbnN0IHN0cnVjdCBzeXNfcmVnX3Bh cmFtcyAqcCwKKwkJCQljb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyZCkKK3sKKwlfX3UzMiAq ciA9IChfX3UzMiAqKSAoKHZvaWQgKiApJnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZSArIHJk LT5yZWcpOworCWlmIChwLT5pc193cml0ZSkgeworCQkqciA9ICp2Y3B1X3JlZyh2Y3B1LCBwLT5S dCk7CisJCXZjcHUtPmFyY2guZGVidWdfZmxhZ3MgfD0gS1ZNX0FSTTY0X0RFQlVHX0RJUlRZOwor CX0gZWxzZSB7CisJCSp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCkgPSAqcjsKKwl9CisKKwlyZXR1cm4g dHJ1ZTsKK30KKworc3RhdGljIGlubGluZSBib29sIHRyYXBfZGVidWc2NChzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUsCisJCQkJY29uc3Qgc3RydWN0IHN5c19yZWdfcGFyYW1zICpwLAorCQkJCWNvbnN0 IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnJkKQoreworCV9fdTY0ICpyID0gKF9fdTY0ICopICgodm9p ZCAqICkmdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlICsgcmQtPnJlZyk7CisJaWYgKHAtPmlz X3dyaXRlKSB7CisJCSpyID0gKnZjcHVfcmVnKHZjcHUsIHAtPlJ0KTsKKwkJdmNwdS0+YXJjaC5k ZWJ1Z19mbGFncyB8PSBLVk1fQVJNNjRfREVCVUdfRElSVFk7CisJfSBlbHNlIHsKKwkJKnZjcHVf cmVnKHZjcHUsIHAtPlJ0KSA9ICpyOworCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMg aW5saW5lIHZvaWQgcmVzZXRfZGVidWczMihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNvbnN0IHN0 cnVjdCBzeXNfcmVnX2Rlc2MgKnJkKQoreworCV9fdTMyICpyID0gKF9fdTMyICopICgodm9pZCAq ICkmdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlICsgcmQtPnJlZyk7CisJKnIgPSByZC0+dmFs OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVzZXRfZGVidWc2NChzdHJ1Y3Qga3ZtX3ZjcHUg KnZjcHUsIGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnJkKQoreworCV9fdTY0ICpyID0gKF9f dTY0ICopICgodm9pZCAqICkmdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlICsgcmQtPnJlZyk7 CisJKnIgPSByZC0+dmFsOworfQorCiBzdGF0aWMgdm9pZCByZXNldF9hbWFpcl9lbDEoc3RydWN0 IGt2bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyKQogewogCXU2NCBh bWFpcjsKQEAgLTI0MCwxNiArMjgyLDIwIEBAIHN0YXRpYyB2b2lkIHJlc2V0X21waWRyKHN0cnVj dCBrdm1fdmNwdSAqdmNwdSwgY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcikKICNkZWZpbmUg REJHX0JDUl9CVlJfV0NSX1dWUl9FTDEobikJCQkJCVwKIAkvKiBEQkdCVlJuX0VMMSAqLwkJCQkJ CVwKIAl7IE9wMCgwYjEwKSwgT3AxKDBiMDAwKSwgQ1JuKDBiMDAwMCksIENSbSgobikpLCBPcDIo MGIxMDApLAlcCi0JICB0cmFwX2RlYnVnX3JlZ3MsIHJlc2V0X3ZhbCwgKERCR0JWUjBfRUwxICsg KG4pKSwgMCB9LAkJXAorCSAgdHJhcF9kZWJ1ZzY0LCByZXNldF9kZWJ1ZzY0LAkJCQkJXAorCSAg b2Zmc2V0b2Yoc3RydWN0IGt2bV9ndWVzdF9kZWJ1Z19hcmNoLCBkYmdfYnZyWyhuKV0pLCAwIH0s CVwKIAkvKiBEQkdCQ1JuX0VMMSAqLwkJCQkJCVwKIAl7IE9wMCgwYjEwKSwgT3AxKDBiMDAwKSwg Q1JuKDBiMDAwMCksIENSbSgobikpLCBPcDIoMGIxMDEpLAlcCi0JICB0cmFwX2RlYnVnX3JlZ3Ms IHJlc2V0X3ZhbCwgKERCR0JDUjBfRUwxICsgKG4pKSwgMCB9LAkJXAorCSAgdHJhcF9kZWJ1ZzMy LCByZXNldF9kZWJ1ZzMyLAkJCQkJXAorCSAgb2Zmc2V0b2Yoc3RydWN0IGt2bV9ndWVzdF9kZWJ1 Z19hcmNoLCBkYmdfYmNyWyhuKV0pLCAwfSwJXAogCS8qIERCR1dWUm5fRUwxICovCQkJCQkJXAog CXsgT3AwKDBiMTApLCBPcDEoMGIwMDApLCBDUm4oMGIwMDAwKSwgQ1JtKChuKSksIE9wMigwYjEx MCksCVwKLQkgIHRyYXBfZGVidWdfcmVncywgcmVzZXRfdmFsLCAoREJHV1ZSMF9FTDEgKyAobikp LCAwIH0sCQlcCisJICB0cmFwX2RlYnVnNjQsIHJlc2V0X2RlYnVnNjQsCQkJCQlcCisJICBvZmZz ZXRvZihzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2FyY2gsIGRiZ193dnJbKG4pXSksIDAgfSwJXAog CS8qIERCR1dDUm5fRUwxICovCQkJCQkJXAogCXsgT3AwKDBiMTApLCBPcDEoMGIwMDApLCBDUm4o MGIwMDAwKSwgQ1JtKChuKSksIE9wMigwYjExMSksCVwKLQkgIHRyYXBfZGVidWdfcmVncywgcmVz ZXRfdmFsLCAoREJHV0NSMF9FTDEgKyAobikpLCAwIH0KKwkgIHRyYXBfZGVidWczMiwgcmVzZXRf ZGVidWczMiwJCQkJCVwKKwkgIG9mZnNldG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCwg ZGJnX3djclsobildKSwgMH0KIAogLyoKICAqIEFyY2hpdGVjdGVkIHN5c3RlbSByZWdpc3RlcnMu CkBAIC01MDIsMzcgKzU0OCwyMyBAQCBzdGF0aWMgYm9vbCB0cmFwX2RiZ2lkcihzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsCiAJfQogfQogCi1zdGF0aWMgYm9vbCB0cmFwX2RlYnVnMzIoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1LAotCQkJIGNvbnN0IHN0cnVjdCBzeXNfcmVnX3BhcmFtcyAqcCwKLQkJCSBj b25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyKQotewotCWlmIChwLT5pc193cml0ZSkgewotCQl2 Y3B1X2NwMTQodmNwdSwgci0+cmVnKSA9ICp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCk7Ci0JCXZjcHUt PmFyY2guZGVidWdfZmxhZ3MgfD0gS1ZNX0FSTTY0X0RFQlVHX0RJUlRZOwotCX0gZWxzZSB7Ci0J CSp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCkgPSB2Y3B1X2NwMTQodmNwdSwgci0+cmVnKTsKLQl9Ci0K LQlyZXR1cm4gdHJ1ZTsKLX0KLQogI2RlZmluZSBEQkdfQkNSX0JWUl9XQ1JfV1ZSKG4pCQkJCQlc CiAJLyogREJHQlZSbiAqLwkJCQkJCVwKIAl7IE9wMSggMCksIENSbiggMCksIENSbSgobikpLCBP cDIoIDQpLCB0cmFwX2RlYnVnMzIsCVwKLQkgIE5VTEwsIChjcDE0X0RCR0JWUjAgKyAobikgKiAy KSB9LAkJCVwKKwkgIE5VTEwsIG9mZnNldG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCwg ZGJnX2J2clsobildKSB9LAlcCiAJLyogREJHQkNSbiAqLwkJCQkJCVwKIAl7IE9wMSggMCksIENS biggMCksIENSbSgobikpLCBPcDIoIDUpLCB0cmFwX2RlYnVnMzIsCVwKLQkgIE5VTEwsIChjcDE0 X0RCR0JDUjAgKyAobikgKiAyKSB9LAkJCVwKKwkgIE5VTEwsIG9mZnNldG9mKHN0cnVjdCBrdm1f Z3Vlc3RfZGVidWdfYXJjaCwgZGJnX2JjclsobildKSB9LAkJCVwKIAkvKiBEQkdXVlJuICovCQkJ CQkJXAogCXsgT3AxKCAwKSwgQ1JuKCAwKSwgQ1JtKChuKSksIE9wMiggNiksIHRyYXBfZGVidWcz MiwJXAotCSAgTlVMTCwgKGNwMTRfREJHV1ZSMCArIChuKSAqIDIpIH0sCQkJXAorCSAgTlVMTCwg b2Zmc2V0b2Yoc3RydWN0IGt2bV9ndWVzdF9kZWJ1Z19hcmNoLCBkYmdfd3ZyWyhuKV0pIH0sCQkJ XAogCS8qIERCR1dDUm4gKi8JCQkJCQlcCiAJeyBPcDEoIDApLCBDUm4oIDApLCBDUm0oKG4pKSwg T3AyKCA3KSwgdHJhcF9kZWJ1ZzMyLAlcCi0JICBOVUxMLCAoY3AxNF9EQkdXQ1IwICsgKG4pICog MikgfQorCSAgTlVMTCwgb2Zmc2V0b2Yoc3RydWN0IGt2bV9ndWVzdF9kZWJ1Z19hcmNoLCBkYmdf d2NyWyhuKV0pIH0KIAogI2RlZmluZSBEQkdCWFZSKG4pCQkJCQkJXAogCXsgT3AxKCAwKSwgQ1Ju KCAxKSwgQ1JtKChuKSksIE9wMiggMSksIHRyYXBfZGVidWczMiwJXAotCSAgTlVMTCwgY3AxNF9E QkdCWFZSMCArIG4gKiAyIH0KKwkgIE5VTEwsIG9mZnNldG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVi dWdfYXJjaCwgZGJnX2J2clsobildKStzaXplb2YoX191MzIpIH0KIAogLyoKICAqIFRyYXBwZWQg Y3AxNCByZWdpc3RlcnMuIFdlIGdlbmVyYWxseSBpZ25vcmUgbW9zdCBvZiB0aGUgZXh0ZXJuYWwK QEAgLTEyODgsNiArMTMyMCw0MiBAQCBzdGF0aWMgaW50IGRlbXV4X2MxNV9zZXQodTY0IGlkLCB2 b2lkIF9fdXNlciAqdWFkZHIpCiAJfQogfQogCitzdGF0aWMgaW50IGRlYnVnX3NldDMyKHN0cnVj dCBrdm1fdmNwdSAqdmNwdSwgY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcmQsCisJCWNvbnN0 IHN0cnVjdCBrdm1fb25lX3JlZyAqcmVnLCB2b2lkIF9fdXNlciAqdWFkZHIpCit7CisJX191MzIg KnIgPSAoX191MzIgKikgKCh2b2lkICogKSZ2Y3B1LT5hcmNoLnZjcHVfZGVidWdfc3RhdGUgKyBy ZC0+cmVnKTsKKwlpZiAoY29weV9mcm9tX3VzZXIodWFkZHIsIHIsIEtWTV9SRUdfU0laRShyZWct PmlkKSkgIT0gMCkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgZGVidWdfc2V0NjQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qgc3lzX3Jl Z19kZXNjICpyZCwKKwkJY29uc3Qgc3RydWN0IGt2bV9vbmVfcmVnICpyZWcsIHZvaWQgX191c2Vy ICp1YWRkcikKK3sKKwlfX3U2NCAqciA9IChfX3U2NCAqKSAoKHZvaWQgKiApJnZjcHUtPmFyY2gu dmNwdV9kZWJ1Z19zdGF0ZSArIHJkLT5yZWcpOworCWlmIChjb3B5X2Zyb21fdXNlcih1YWRkciwg ciwgS1ZNX1JFR19TSVpFKHJlZy0+aWQpKSAhPSAwKQorCQlyZXR1cm4gLUVGQVVMVDsKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGludCBkZWJ1Z19nZXQzMihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUs IGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnJkLAorCQljb25zdCBzdHJ1Y3Qga3ZtX29uZV9y ZWcgKnJlZywgdm9pZCBfX3VzZXIgKnVhZGRyKQoreworCV9fdTMyICpyID0gKF9fdTMyICopICgo dm9pZCAqICkmdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlICsgcmQtPnJlZyk7CisJaWYgKGNv cHlfdG9fdXNlcih1YWRkciwgciwgS1ZNX1JFR19TSVpFKHJlZy0+aWQpKSAhPSAwKQorCQlyZXR1 cm4gLUVGQVVMVDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkZWJ1Z19nZXQ2NChzdHJ1 Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnJkLAorCWNvbnN0 IHN0cnVjdCBrdm1fb25lX3JlZyAqcmVnLCB2b2lkIF9fdXNlciAqdWFkZHIpCit7CisJX191NjQg KnIgPSAoX191NjQgKikgKCh2b2lkICogKSZ2Y3B1LT5hcmNoLnZjcHVfZGVidWdfc3RhdGUgKyBy ZC0+cmVnKTsKKwlpZiAoY29weV90b191c2VyKHVhZGRyLCByLCBLVk1fUkVHX1NJWkUocmVnLT5p ZCkpICE9IDApCisJCXJldHVybiAtRUZBVUxUOworCXJldHVybiAwOworfQorCiBpbnQga3ZtX2Fy bV9zeXNfcmVnX2dldF9yZWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qga3Zt X29uZV9yZWcgKnJlZykKIHsKIAljb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyOwpAQCAtMTMw Myw2ICsxMzcxLDEyIEBAIGludCBrdm1fYXJtX3N5c19yZWdfZ2V0X3JlZyhzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBrdm1fb25lX3JlZyAqcmVnCiAJaWYgKCFyKQogCQlyZXR1 cm4gZ2V0X2ludmFyaWFudF9zeXNfcmVnKHJlZy0+aWQsIHVhZGRyKTsKIAorCWlmIChyLT5hY2Nl c3MgPT0gdHJhcF9kZWJ1ZzY0KQorCQlyZXR1cm4gZGVidWdfZ2V0NjQodmNwdSwgciwgcmVnLCB1 YWRkcik7CisKKwlpZiAoci0+YWNjZXNzID09IHRyYXBfZGVidWczMikKKwkJcmV0dXJuIGRlYnVn X2dldDMyKHZjcHUsIHIsIHJlZywgdWFkZHIpOworCiAJcmV0dXJuIHJlZ190b191c2VyKHVhZGRy LCAmdmNwdV9zeXNfcmVnKHZjcHUsIHItPnJlZyksIHJlZy0+aWQpOwogfQogCkBAIC0xMzIxLDYg KzEzOTUsMTIgQEAgaW50IGt2bV9hcm1fc3lzX3JlZ19zZXRfcmVnKHN0cnVjdCBrdm1fdmNwdSAq dmNwdSwgY29uc3Qgc3RydWN0IGt2bV9vbmVfcmVnICpyZWcKIAlpZiAoIXIpCiAJCXJldHVybiBz ZXRfaW52YXJpYW50X3N5c19yZWcocmVnLT5pZCwgdWFkZHIpOwogCisJaWYgKHItPmFjY2VzcyA9 PSB0cmFwX2RlYnVnNjQpCisJCXJldHVybiBkZWJ1Z19zZXQ2NCh2Y3B1LCByLCByZWcsIHVhZGRy KTsKKworCWlmIChyLT5hY2Nlc3MgPT0gdHJhcF9kZWJ1ZzMyKQorCQlyZXR1cm4gZGVidWdfc2V0 MzIodmNwdSwgciwgcmVnLCB1YWRkcik7CisKIAlyZXR1cm4gcmVnX2Zyb21fdXNlcigmdmNwdV9z eXNfcmVnKHZjcHUsIHItPnJlZyksIHVhZGRyLCByZWctPmlkKTsKIH0KIAotLSAKMi4zLjUKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmt2bWFybSBtYWls aW5nIGxpc3QKa3ZtYXJtQGxpc3RzLmNzLmNvbHVtYmlhLmVkdQpodHRwczovL2xpc3RzLmNzLmNv bHVtYmlhLmVkdS9tYWlsbWFuL2xpc3RpbmZvL2t2bWFybQo=