From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v5 09/12] KVM: arm64: introduce vcpu->arch.debug_ptr Date: Fri, 29 May 2015 10:30:25 +0100 Message-ID: <1432891828-4816-10-git-send-email-alex.bennee@linaro.org> References: <1432891828-4816-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: <1432891828-4816-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+Ci0tLQogYXJj aC9hcm0va3ZtL2FybS5jICAgICAgICAgICAgICAgIHwgICAzICsKIGFyY2gvYXJtNjQvaW5jbHVk ZS9hc20va3ZtX2FzbS5oICB8ICAyNCArKystLS0tLQogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9r dm1faG9zdC5oIHwgIDEyICsrKy0KIGFyY2gvYXJtNjQva2VybmVsL2FzbS1vZmZzZXRzLmMgICB8 ICAgNiArKwogYXJjaC9hcm02NC9rdm0vaHlwLlMgICAgICAgICAgICAgIHwgMTA3ICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBhcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jICAgICAg ICAgfCAxMjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDYgZmlsZXMg Y2hhbmdlZCwgMTg4IGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL2t2bS9hcm0uYyBiL2FyY2gvYXJtL2t2bS9hcm0uYwppbmRleCA5YjNlZDZkLi4w ZDE3YzdiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9rdm0vYXJtLmMKKysrIGIvYXJjaC9hcm0va3Zt L2FybS5jCkBAIC0yNzksNiArMjc5LDkgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW5pdChzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHUpCiAJLyogU2V0IHVwIHRoZSB0aW1lciAqLwogCWt2bV90aW1lcl92Y3B1 X2luaXQodmNwdSk7CiAKKwkvKiBTZXQgdGhlIGRlYnVnIHJlZ2lzdGVycyB0byBiZSB0aGUgZ3Vl c3RzICovCisJdmNwdS0+YXJjaC5kZWJ1Z19wdHIgPSAmdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0 YXRlOworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9h c20va3ZtX2FzbS5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fYXNtLmgKaW5kZXggZDZi NTA3ZS4uZTk5NzQwNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fYXNt LmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fYXNtLmgKQEAgLTQ2LDI0ICs0Niwx NiBAQAogI2RlZmluZQlDTlRLQ1RMX0VMMQkyMAkvKiBUaW1lciBDb250cm9sIFJlZ2lzdGVyIChF TDEpICovCiAjZGVmaW5lCVBBUl9FTDEJCTIxCS8qIFBoeXNpY2FsIEFkZHJlc3MgUmVnaXN0ZXIg Ki8KICNkZWZpbmUgTURTQ1JfRUwxCTIyCS8qIE1vbml0b3IgRGVidWcgU3lzdGVtIENvbnRyb2wg UmVnaXN0ZXIgKi8KLSNkZWZpbmUgREJHQkNSMF9FTDEJMjMJLyogRGVidWcgQnJlYWtwb2ludCBD b250cm9sIFJlZ2lzdGVycyAoMC0xNSkgKi8KLSNkZWZpbmUgREJHQkNSMTVfRUwxCTM4Ci0jZGVm aW5lIERCR0JWUjBfRUwxCTM5CS8qIERlYnVnIEJyZWFrcG9pbnQgVmFsdWUgUmVnaXN0ZXJzICgw LTE1KSAqLwotI2RlZmluZSBEQkdCVlIxNV9FTDEJNTQKLSNkZWZpbmUgREJHV0NSMF9FTDEJNTUJ LyogRGVidWcgV2F0Y2hwb2ludCBDb250cm9sIFJlZ2lzdGVycyAoMC0xNSkgKi8KLSNkZWZpbmUg REJHV0NSMTVfRUwxCTcwCi0jZGVmaW5lIERCR1dWUjBfRUwxCTcxCS8qIERlYnVnIFdhdGNocG9p bnQgVmFsdWUgUmVnaXN0ZXJzICgwLTE1KSAqLwotI2RlZmluZSBEQkdXVlIxNV9FTDEJODYKLSNk ZWZpbmUgTURDQ0lOVF9FTDEJODcJLyogTW9uaXRvciBEZWJ1ZyBDb21tcyBDaGFubmVsIEludGVy cnVwdCBFbmFibGUgUmVnICovCisjZGVmaW5lIE1EQ0NJTlRfRUwxCTIzCS8qIE1vbml0b3IgRGVi dWcgQ29tbXMgQ2hhbm5lbCBJbnRlcnJ1cHQgRW5hYmxlIFJlZyAqLwogCiAvKiAzMmJpdCBzcGVj aWZpYyByZWdpc3RlcnMuIEtlZXAgdGhlbSBhdCB0aGUgZW5kIG9mIHRoZSByYW5nZSAqLwotI2Rl ZmluZQlEQUNSMzJfRUwyCTg4CS8qIERvbWFpbiBBY2Nlc3MgQ29udHJvbCBSZWdpc3RlciAqLwot I2RlZmluZQlJRlNSMzJfRUwyCTg5CS8qIEluc3RydWN0aW9uIEZhdWx0IFN0YXR1cyBSZWdpc3Rl ciAqLwotI2RlZmluZQlGUEVYQzMyX0VMMgk5MAkvKiBGbG9hdGluZy1Qb2ludCBFeGNlcHRpb24g Q29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZQlEQkdWQ1IzMl9FTDIJOTEJLyogRGVidWcgVmVj dG9yIENhdGNoIFJlZ2lzdGVyICovCi0jZGVmaW5lCVRFRUNSMzJfRUwxCTkyCS8qIFRodW1iRUUg Q29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZQlURUVIQlIzMl9FTDEJOTMJLyogVGh1 bWJFRSBIYW5kbGVyIEJhc2UgUmVnaXN0ZXIgKi8KLSNkZWZpbmUJTlJfU1lTX1JFR1MJOTQKKyNk ZWZpbmUJREFDUjMyX0VMMgkyNAkvKiBEb21haW4gQWNjZXNzIENvbnRyb2wgUmVnaXN0ZXIgKi8K KyNkZWZpbmUJSUZTUjMyX0VMMgkyNQkvKiBJbnN0cnVjdGlvbiBGYXVsdCBTdGF0dXMgUmVnaXN0 ZXIgKi8KKyNkZWZpbmUJRlBFWEMzMl9FTDIJMjYJLyogRmxvYXRpbmctUG9pbnQgRXhjZXB0aW9u IENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUJREJHVkNSMzJfRUwyCTI3CS8qIERlYnVnIFZl Y3RvciBDYXRjaCBSZWdpc3RlciAqLworI2RlZmluZQlURUVDUjMyX0VMMQkyOAkvKiBUaHVtYkVF IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KKyNkZWZpbmUJVEVFSEJSMzJfRUwxCTI5CS8qIFRo dW1iRUUgSGFuZGxlciBCYXNlIFJlZ2lzdGVyICovCisjZGVmaW5lCU5SX1NZU19SRUdTCTMwCiAK IC8qIDMyYml0IG1hcHBpbmcgKi8KICNkZWZpbmUgYzBfTVBJRFIJKE1QSURSX0VMMSAqIDIpCS8q IE11bHRpUHJvY2Vzc29yIElEIFJlZ2lzdGVyICovCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2lu Y2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgK aW5kZXggZTJkYjZhNi4uZTUwNDBiNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2Fz bS9rdm1faG9zdC5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaApAQCAt MTA4LDExICsxMDgsMjEgQEAgc3RydWN0IGt2bV92Y3B1X2FyY2ggewogCS8qIEV4Y2VwdGlvbiBJ bmZvcm1hdGlvbiAqLwogCXN0cnVjdCBrdm1fdmNwdV9mYXVsdF9pbmZvIGZhdWx0OwogCi0JLyog RGVidWcgc3RhdGUgKi8KKwkvKiBHdWVzdCBkZWJ1ZyBzdGF0ZSAqLwogCXU2NCBkZWJ1Z19mbGFn czsKIAorCS8qCisJICogRm9yIGRlYnVnZ2luZyB0aGUgZ3Vlc3Qgd2UgbmVlZCB0byBrZWVwIGEg c2V0IG9mIGRlYnVnCisJICogcmVnaXN0ZXJzIHdoaWNoIGNhbiBvdmVycmlkZSB0aGUgZ3Vlc3Rz IG93biBkZWJ1ZyBzdGF0ZQorCSAqIHdoaWxlIGJlaW5nIHVzZWQuIFRoZXNlIGFyZSBzZXQgdmlh IHRoZSBLVk1fU0VUX0dVRVNUX0RFQlVHCisJICogaW9jdGwuCisJICovCisJc3RydWN0IGt2bV9n dWVzdF9kZWJ1Z19hcmNoICpkZWJ1Z19wdHI7CisJc3RydWN0IGt2bV9ndWVzdF9kZWJ1Z19hcmNo IHZjcHVfZGVidWdfc3RhdGU7CisKIAkvKiBQb2ludGVyIHRvIGhvc3QgQ1BVIGNvbnRleHQgKi8K IAlrdm1fY3B1X2NvbnRleHRfdCAqaG9zdF9jcHVfY29udGV4dDsKKwlzdHJ1Y3Qga3ZtX2d1ZXN0 X2RlYnVnX2FyY2ggaG9zdF9kZWJ1Z19zdGF0ZTsKIAogCS8qIFZHSUMgc3RhdGUgKi8KIAlzdHJ1 Y3QgdmdpY19jcHUgdmdpY19jcHU7CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9hc20t b2Zmc2V0cy5jIGIvYXJjaC9hcm02NC9rZXJuZWwvYXNtLW9mZnNldHMuYwppbmRleCBkZmIyNWEy Li4xYThlOTdjIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9hc20tb2Zmc2V0cy5jCisr KyBiL2FyY2gvYXJtNjQva2VybmVsL2FzbS1vZmZzZXRzLmMKQEAgLTExNiwxMCArMTE2LDE2IEBA IGludCBtYWluKHZvaWQpCiAgIERFRklORShWQ1BVX0ZBUl9FTDIsCQlvZmZzZXRvZihzdHJ1Y3Qg a3ZtX3ZjcHUsIGFyY2guZmF1bHQuZmFyX2VsMikpOwogICBERUZJTkUoVkNQVV9IUEZBUl9FTDIs CW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5mYXVsdC5ocGZhcl9lbDIpKTsKICAgREVG SU5FKFZDUFVfREVCVUdfRkxBR1MsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5kZWJ1 Z19mbGFncykpOworICBERUZJTkUoVkNQVV9ERUJVR19QVFIsCW9mZnNldG9mKHN0cnVjdCBrdm1f dmNwdSwgYXJjaC5kZWJ1Z19wdHIpKTsKKyAgREVGSU5FKERFQlVHX0JDUiwgCQlvZmZzZXRvZihz dHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2FyY2gsIGRiZ19iY3IpKTsKKyAgREVGSU5FKERFQlVHX0JW UiwgCQlvZmZzZXRvZihzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2FyY2gsIGRiZ19idnIpKTsKKyAg REVGSU5FKERFQlVHX1dDUiwgCQlvZmZzZXRvZihzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2FyY2gs IGRiZ193Y3IpKTsKKyAgREVGSU5FKERFQlVHX1dWUiwgCQlvZmZzZXRvZihzdHJ1Y3Qga3ZtX2d1 ZXN0X2RlYnVnX2FyY2gsIGRiZ193dnIpKTsKICAgREVGSU5FKFZDUFVfSENSX0VMMiwJCW9mZnNl dG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5oY3JfZWwyKSk7CiAgIERFRklORShWQ1BVX01EQ1Jf RUwyLAlvZmZzZXRvZihzdHJ1Y3Qga3ZtX3ZjcHUsIGFyY2gubWRjcl9lbDIpKTsKICAgREVGSU5F KFZDUFVfSVJRX0xJTkVTLAlvZmZzZXRvZihzdHJ1Y3Qga3ZtX3ZjcHUsIGFyY2guaXJxX2xpbmVz KSk7CiAgIERFRklORShWQ1BVX0hPU1RfQ09OVEVYVCwJb2Zmc2V0b2Yoc3RydWN0IGt2bV92Y3B1 LCBhcmNoLmhvc3RfY3B1X2NvbnRleHQpKTsKKyAgREVGSU5FKFZDUFVfSE9TVF9ERUJVR19TVEFU RSwgb2Zmc2V0b2Yoc3RydWN0IGt2bV92Y3B1LCBhcmNoLmhvc3RfZGVidWdfc3RhdGUpKTsKICAg REVGSU5FKFZDUFVfVElNRVJfQ05UVl9DVEwsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJj aC50aW1lcl9jcHUuY250dl9jdGwpKTsKICAgREVGSU5FKFZDUFVfVElNRVJfQ05UVl9DVkFMLAlv ZmZzZXRvZihzdHJ1Y3Qga3ZtX3ZjcHUsIGFyY2gudGltZXJfY3B1LmNudHZfY3ZhbCkpOwogICBE RUZJTkUoS1ZNX1RJTUVSX0NOVFZPRkYsCW9mZnNldG9mKHN0cnVjdCBrdm0sIGFyY2gudGltZXIu Y250dm9mZikpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwLlMgYi9hcmNoL2FybTY0 L2t2bS9oeXAuUwppbmRleCA5YzQ4OTdkLi4xOTQwYTRjIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0 L2t2bS9oeXAuUworKysgYi9hcmNoL2FybTY0L2t2bS9oeXAuUwpAQCAtMjI4LDcgKzIyOCw3IEBA CiAJc3RwCXgyNCwgeDI1LCBbeDMsICMxNjBdCiAuZW5kbQogCi0ubWFjcm8gc2F2ZV9kZWJ1ZyB0 eXBlCisubWFjcm8gc2F2ZV9kZWJ1ZyB0eXBlIHJlZ3N6IG9mZnN6CiAJLy8geDQ6IHBvaW50ZXIg dG8gcmVnaXN0ZXIgc2V0CiAJLy8geDU6IG51bWJlciBvZiByZWdpc3RlcnMgdG8gc2tpcAogCS8v IHg2Li54MjIgdHJhc2hlZApAQCAtMjU4LDIyICsyNTgsMjIgQEAKIAlhZGQJeDIyLCB4MjIsIHg1 LCBsc2wgIzIKIAlicgl4MjIKIDE6Ci0Jc3RyCXgyMSwgW3g0LCAjKDE1ICogOCldCi0Jc3RyCXgy MCwgW3g0LCAjKDE0ICogOCldCi0Jc3RyCXgxOSwgW3g0LCAjKDEzICogOCldCi0Jc3RyCXgxOCwg W3g0LCAjKDEyICogOCldCi0Jc3RyCXgxNywgW3g0LCAjKDExICogOCldCi0Jc3RyCXgxNiwgW3g0 LCAjKDEwICogOCldCi0Jc3RyCXgxNSwgW3g0LCAjKDkgKiA4KV0KLQlzdHIJeDE0LCBbeDQsICMo OCAqIDgpXQotCXN0cgl4MTMsIFt4NCwgIyg3ICogOCldCi0Jc3RyCXgxMiwgW3g0LCAjKDYgKiA4 KV0KLQlzdHIJeDExLCBbeDQsICMoNSAqIDgpXQotCXN0cgl4MTAsIFt4NCwgIyg0ICogOCldCi0J c3RyCXg5LCBbeDQsICMoMyAqIDgpXQotCXN0cgl4OCwgW3g0LCAjKDIgKiA4KV0KLQlzdHIJeDcs IFt4NCwgIygxICogOCldCi0Jc3RyCXg2LCBbeDQsICMoMCAqIDgpXQorCXN0cglccmVnc3pcKCky MSwgW3g0LCAjKDE1ICogXG9mZnN6KV0KKwlzdHIJXHJlZ3N6XCgpMjAsIFt4NCwgIygxNCAqIFxv ZmZzeildCisJc3RyCVxyZWdzelwoKTE5LCBbeDQsICMoMTMgKiBcb2Zmc3opXQorCXN0cglccmVn c3pcKCkxOCwgW3g0LCAjKDEyICogXG9mZnN6KV0KKwlzdHIJXHJlZ3N6XCgpMTcsIFt4NCwgIygx MSAqIFxvZmZzeildCisJc3RyCVxyZWdzelwoKTE2LCBbeDQsICMoMTAgKiBcb2Zmc3opXQorCXN0 cglccmVnc3pcKCkxNSwgW3g0LCAjKDkgKiBcb2Zmc3opXQorCXN0cglccmVnc3pcKCkxNCwgW3g0 LCAjKDggKiBcb2Zmc3opXQorCXN0cglccmVnc3pcKCkxMywgW3g0LCAjKDcgKiBcb2Zmc3opXQor CXN0cglccmVnc3pcKCkxMiwgW3g0LCAjKDYgKiBcb2Zmc3opXQorCXN0cglccmVnc3pcKCkxMSwg W3g0LCAjKDUgKiBcb2Zmc3opXQorCXN0cglccmVnc3pcKCkxMCwgW3g0LCAjKDQgKiBcb2Zmc3op XQorCXN0cglccmVnc3pcKCk5LCBbeDQsICMoMyAqIFxvZmZzeildCisJc3RyCVxyZWdzelwoKTgs IFt4NCwgIygyICogXG9mZnN6KV0KKwlzdHIJXHJlZ3N6XCgpNywgW3g0LCAjKDEgKiBcb2Zmc3op XQorCXN0cglccmVnc3pcKCk2LCBbeDQsICMoMCAqIFxvZmZzeildCiAuZW5kbQogCiAubWFjcm8g cmVzdG9yZV9zeXNyZWdzCkBAIC0zMTgsNyArMzE4LDcgQEAKIAltc3IJbWRzY3JfZWwxLAl4MjUK IC5lbmRtCiAKLS5tYWNybyByZXN0b3JlX2RlYnVnIHR5cGUKKy5tYWNybyByZXN0b3JlX2RlYnVn IHR5cGUgcmVnc3ogb2Zmc3oKICAgICAgICAgLy8geDQ6IHBvaW50ZXIgdG8gcmVnaXN0ZXIgc2V0 CiAgICAgICAgIC8vIHg1OiBudW1iZXIgb2YgcmVnaXN0ZXJzIHRvIHNraXAKIAkvLyB4Ni4ueDIy IHRyYXNoZWQKQEAgLTMyNywyMiArMzI3LDIyIEBACiAJYWRkCXgyMiwgeDIyLCB4NSwgbHNsICMy CiAJYnIJeDIyCiAxOgotCWxkcgl4MjEsIFt4NCwgIygxNSAqIDgpXQotCWxkcgl4MjAsIFt4NCwg IygxNCAqIDgpXQotCWxkcgl4MTksIFt4NCwgIygxMyAqIDgpXQotCWxkcgl4MTgsIFt4NCwgIygx MiAqIDgpXQotCWxkcgl4MTcsIFt4NCwgIygxMSAqIDgpXQotCWxkcgl4MTYsIFt4NCwgIygxMCAq IDgpXQotCWxkcgl4MTUsIFt4NCwgIyg5ICogOCldCi0JbGRyCXgxNCwgW3g0LCAjKDggKiA4KV0K LQlsZHIJeDEzLCBbeDQsICMoNyAqIDgpXQotCWxkcgl4MTIsIFt4NCwgIyg2ICogOCldCi0JbGRy CXgxMSwgW3g0LCAjKDUgKiA4KV0KLQlsZHIJeDEwLCBbeDQsICMoNCAqIDgpXQotCWxkcgl4OSwg W3g0LCAjKDMgKiA4KV0KLQlsZHIJeDgsIFt4NCwgIygyICogOCldCi0JbGRyCXg3LCBbeDQsICMo MSAqIDgpXQotCWxkcgl4NiwgW3g0LCAjKDAgKiA4KV0KKwlsZHIJXHJlZ3N6XCgpMjEsIFt4NCwg IygxNSAqIFxvZmZzeildCisJbGRyCVxyZWdzelwoKTIwLCBbeDQsICMoMTQgKiBcb2Zmc3opXQor CWxkcglccmVnc3pcKCkxOSwgW3g0LCAjKDEzICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpMTgs IFt4NCwgIygxMiAqIFxvZmZzeildCisJbGRyCVxyZWdzelwoKTE3LCBbeDQsICMoMTEgKiBcb2Zm c3opXQorCWxkcglccmVnc3pcKCkxNiwgW3g0LCAjKDEwICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6 XCgpMTUsIFt4NCwgIyg5ICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpMTQsIFt4NCwgIyg4ICog XG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpMTMsIFt4NCwgIyg3ICogXG9mZnN6KV0KKwlsZHIJXHJl Z3N6XCgpMTIsIFt4NCwgIyg2ICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpMTEsIFt4NCwgIyg1 ICogXG9mZnN6KV0KKwlsZHIJXHJlZ3N6XCgpMTAsIFt4NCwgIyg0ICogXG9mZnN6KV0KKwlsZHIJ XHJlZ3N6XCgpOSwgW3g0LCAjKDMgKiBcb2Zmc3opXQorCWxkcglccmVnc3pcKCk4LCBbeDQsICMo MiAqIFxvZmZzeildCisJbGRyCVxyZWdzelwoKTcsIFt4NCwgIygxICogXG9mZnN6KV0KKwlsZHIJ XHJlZ3N6XCgpNiwgW3g0LCAjKDAgKiBcb2Zmc3opXQogCiAJYWRyCXgyMiwgMWYKIAlhZGQJeDIy LCB4MjIsIHg1LCBsc2wgIzIKQEAgLTYwMSw2ICs2MDEsNyBAQCBfX3Jlc3RvcmVfc3lzcmVnczoK IF9fc2F2ZV9kZWJ1ZzoKIAkvLyB4MDogYmFzZSBhZGRyZXNzIGZvciB2Y3B1IGNvbnRleHQKIAkv LyB4MjogcHRyIHRvIGN1cnJlbnQgQ1BVIGNvbnRleHQKKwkvLyB4MzogcHRyIHRvIGRlYnVnIHJl ZyBzdHJ1Y3QKIAkvLyB4NC94NTogdHJhc2hlZAogCiAJbXJzCXgyNiwgaWRfYWE2NGRmcjBfZWwx CkBAIC02MTEsMTYgKzYxMiwxNiBAQCBfX3NhdmVfZGVidWc6CiAJc3ViCXcyNSwgdzI2LCB3MjUJ CS8vIEhvdyBtYW55IFdQcyB0byBza2lwCiAKIAltb3YgICAgIHg1LCB4MjQKLQlhZGQJeDQsIHgy LCAjQ1BVX1NZU1JFR19PRkZTRVQoREJHQkNSMF9FTDEpCi0Jc2F2ZV9kZWJ1ZyBkYmdiY3IKLQlh ZGQJeDQsIHgyLCAjQ1BVX1NZU1JFR19PRkZTRVQoREJHQlZSMF9FTDEpCi0Jc2F2ZV9kZWJ1ZyBk YmdidnIKKwlhZGQJeDQsIHgzLCAjREVCVUdfQkNSCisJc2F2ZV9kZWJ1ZyBkYmdiY3IgdyA0CisJ YWRkCXg0LCB4MywgI0RFQlVHX0JWUgorCXNhdmVfZGVidWcgZGJnYnZyIHggOAogCiAJbW92ICAg ICB4NSwgeDI1Ci0JYWRkCXg0LCB4MiwgI0NQVV9TWVNSRUdfT0ZGU0VUKERCR1dDUjBfRUwxKQot CXNhdmVfZGVidWcgZGJnd2NyCi0JYWRkCXg0LCB4MiwgI0NQVV9TWVNSRUdfT0ZGU0VUKERCR1dW UjBfRUwxKQotCXNhdmVfZGVidWcgZGJnd3ZyCisJYWRkCXg0LCB4MywgI0RFQlVHX1dDUgorCXNh dmVfZGVidWcgZGJnd2NyIHcgNAorCWFkZAl4NCwgeDMsICNERUJVR19XVlIKKwlzYXZlX2RlYnVn IGRiZ3d2ciB4IDgKIAogCW1ycwl4MjEsIG1kY2NpbnRfZWwxCiAJc3RyCXgyMSwgW3gyLCAjQ1BV X1NZU1JFR19PRkZTRVQoTURDQ0lOVF9FTDEpXQpAQCAtNjQwLDE2ICs2NDEsMTYgQEAgX19yZXN0 b3JlX2RlYnVnOgogCXN1Ygl3MjUsIHcyNiwgdzI1CQkvLyBIb3cgbWFueSBXUHMgdG8gc2tpcAog CiAJbW92ICAgICB4NSwgeDI0Ci0JYWRkCXg0LCB4MiwgI0NQVV9TWVNSRUdfT0ZGU0VUKERCR0JD UjBfRUwxKQotCXJlc3RvcmVfZGVidWcgZGJnYmNyCi0JYWRkCXg0LCB4MiwgI0NQVV9TWVNSRUdf T0ZGU0VUKERCR0JWUjBfRUwxKQotCXJlc3RvcmVfZGVidWcgZGJnYnZyCisJYWRkCXg0LCB4Mywg I0RFQlVHX0JDUgorCXJlc3RvcmVfZGVidWcgZGJnYmNyIHcgNAorCWFkZAl4NCwgeDMsICNERUJV R19CVlIKKwlyZXN0b3JlX2RlYnVnIGRiZ2J2ciB4IDgKIAogCW1vdiAgICAgeDUsIHgyNQotCWFk ZAl4NCwgeDIsICNDUFVfU1lTUkVHX09GRlNFVChEQkdXQ1IwX0VMMSkKLQlyZXN0b3JlX2RlYnVn IGRiZ3djcgotCWFkZAl4NCwgeDIsICNDUFVfU1lTUkVHX09GRlNFVChEQkdXVlIwX0VMMSkKLQly ZXN0b3JlX2RlYnVnIGRiZ3d2cgorCWFkZAl4NCwgeDMsICNERUJVR19XQ1IKKwlyZXN0b3JlX2Rl YnVnIGRiZ3djciB3IDQKKwlhZGQJeDQsIHgzLCAjREVCVUdfV1ZSCisJcmVzdG9yZV9kZWJ1ZyBk Ymd3dnIgeCA4CiAKIAlsZHIJeDIxLCBbeDIsICNDUFVfU1lTUkVHX09GRlNFVChNRENDSU5UX0VM MSldCiAJbXNyCW1kY2NpbnRfZWwxLCB4MjEKQEAgLTY4OCw2ICs2ODksNyBAQCBFTlRSWShfX2t2 bV92Y3B1X3J1bikKIAlibCBfX3NhdmVfc3lzcmVncwogCiAJY29tcHV0ZV9kZWJ1Z19zdGF0ZSAx ZgorCWFkZAl4MywgeDAsICNWQ1BVX0hPU1RfREVCVUdfU1RBVEUKIAlibAlfX3NhdmVfZGVidWcK IDE6CiAJYWN0aXZhdGVfdHJhcHMKQEAgLTcwMyw2ICs3MDUsOCBAQCBFTlRSWShfX2t2bV92Y3B1 X3J1bikKIAlibCBfX3Jlc3RvcmVfZnBzaW1kCiAKIAlza2lwX2RlYnVnX3N0YXRlIHgzLCAxZgor CWxkcgl4MywgW3gwLCAjVkNQVV9ERUJVR19QVFJdCisJa2Vybl9oeXBfdmEgeDMKIAlibAlfX3Jl c3RvcmVfZGVidWcKIDE6CiAJcmVzdG9yZV9ndWVzdF8zMmJpdF9zdGF0ZQpAQCAtNzIzLDYgKzcy Nyw4IEBAIF9fa3ZtX3ZjcHVfcmV0dXJuOgogCWJsIF9fc2F2ZV9zeXNyZWdzCiAKIAlza2lwX2Rl YnVnX3N0YXRlIHgzLCAxZgorCWxkcgl4MywgW3gwLCAjVkNQVV9ERUJVR19QVFJdCisJa2Vybl9o eXBfdmEgeDMKIAlibAlfX3NhdmVfZGVidWcKIDE6CiAJc2F2ZV9ndWVzdF8zMmJpdF9zdGF0ZQpA QCAtNzQ1LDYgKzc1MSw3IEBAIF9fa3ZtX3ZjcHVfcmV0dXJuOgogCS8vIGFscmVhZHkgYmVlbiBz YXZlZC4gTm90ZSB0aGF0IHdlIG51a2UgdGhlIHdob2xlIDY0Yml0IHdvcmQuCiAJLy8gSWYgd2Ug ZXZlciBhZGQgbW9yZSBmbGFncywgd2UnbGwgaGF2ZSB0byBiZSBtb3JlIGNhcmVmdWwuLi4KIAlz dHIJeHpyLCBbeDAsICNWQ1BVX0RFQlVHX0ZMQUdTXQorCWFkZAl4MywgeDAsICNWQ1BVX0hPU1Rf REVCVUdfU1RBVEUKIAlibAlfX3Jlc3RvcmVfZGVidWcKIDE6CiAJcmVzdG9yZV9ob3N0X3JlZ3MK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMgYi9hcmNoL2FybTY0L2t2bS9z eXNfcmVncy5jCmluZGV4IGMzNzBiNDAuLjQwNTQwM2UgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQv a3ZtL3N5c19yZWdzLmMKKysrIGIvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYwpAQCAtMjExLDYg KzIxMSw0OCBAQCBzdGF0aWMgYm9vbCB0cmFwX2RlYnVnX3JlZ3Moc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LAogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgdHJhcF9kZWJ1ZzMy KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKKwkJCQljb25zdCBzdHJ1Y3Qgc3lzX3JlZ19wYXJhbXMg KnAsCisJCQkJY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcmQpCit7CisJX191MzIgKnIgPSAo X191MzIgKikgKCh2b2lkICogKSZ2Y3B1LT5hcmNoLnZjcHVfZGVidWdfc3RhdGUgKyByZC0+cmVn KTsKKwlpZiAocC0+aXNfd3JpdGUpIHsKKwkJKnIgPSAqdmNwdV9yZWcodmNwdSwgcC0+UnQpOwor CQl2Y3B1LT5hcmNoLmRlYnVnX2ZsYWdzIHw9IEtWTV9BUk02NF9ERUJVR19ESVJUWTsKKwl9IGVs c2UgeworCQkqdmNwdV9yZWcodmNwdSwgcC0+UnQpID0gKnI7CisJfQorCisJcmV0dXJuIHRydWU7 Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCB0cmFwX2RlYnVnNjQoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LAorCQkJCWNvbnN0IHN0cnVjdCBzeXNfcmVnX3BhcmFtcyAqcCwKKwkJCQljb25zdCBzdHJ1 Y3Qgc3lzX3JlZ19kZXNjICpyZCkKK3sKKwlfX3U2NCAqciA9IChfX3U2NCAqKSAoKHZvaWQgKiAp JnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZSArIHJkLT5yZWcpOworCWlmIChwLT5pc193cml0 ZSkgeworCQkqciA9ICp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCk7CisJCXZjcHUtPmFyY2guZGVidWdf ZmxhZ3MgfD0gS1ZNX0FSTTY0X0RFQlVHX0RJUlRZOworCX0gZWxzZSB7CisJCSp2Y3B1X3JlZyh2 Y3B1LCBwLT5SdCkgPSAqcjsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGlubGlu ZSB2b2lkIHJlc2V0X2RlYnVnMzIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qg c3lzX3JlZ19kZXNjICpyZCkKK3sKKwlfX3UzMiAqciA9IChfX3UzMiAqKSAoKHZvaWQgKiApJnZj cHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZSArIHJkLT5yZWcpOworCSpyID0gcmQtPnZhbDsKK30K Kworc3RhdGljIGlubGluZSB2b2lkIHJlc2V0X2RlYnVnNjQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 LCBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyZCkKK3sKKwlfX3U2NCAqciA9IChfX3U2NCAq KSAoKHZvaWQgKiApJnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZSArIHJkLT5yZWcpOworCSpy ID0gcmQtPnZhbDsKK30KKwogc3RhdGljIHZvaWQgcmVzZXRfYW1haXJfZWwxKHN0cnVjdCBrdm1f dmNwdSAqdmNwdSwgY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcikKIHsKIAl1NjQgYW1haXI7 CkBAIC0yNDAsMTYgKzI4MiwyMCBAQCBzdGF0aWMgdm9pZCByZXNldF9tcGlkcihzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnIpCiAjZGVmaW5lIERCR19C Q1JfQlZSX1dDUl9XVlJfRUwxKG4pCQkJCQlcCiAJLyogREJHQlZSbl9FTDEgKi8JCQkJCQlcCiAJ eyBPcDAoMGIxMCksIE9wMSgwYjAwMCksIENSbigwYjAwMDApLCBDUm0oKG4pKSwgT3AyKDBiMTAw KSwJXAotCSAgdHJhcF9kZWJ1Z19yZWdzLCByZXNldF92YWwsIChEQkdCVlIwX0VMMSArIChuKSks IDAgfSwJCVwKKwkgIHRyYXBfZGVidWc2NCwgcmVzZXRfZGVidWc2NCwJCQkJCVwKKwkgIG9mZnNl dG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCwgZGJnX2J2clsobildKSwgMCB9LAlcCiAJ LyogREJHQkNSbl9FTDEgKi8JCQkJCQlcCiAJeyBPcDAoMGIxMCksIE9wMSgwYjAwMCksIENSbigw YjAwMDApLCBDUm0oKG4pKSwgT3AyKDBiMTAxKSwJXAotCSAgdHJhcF9kZWJ1Z19yZWdzLCByZXNl dF92YWwsIChEQkdCQ1IwX0VMMSArIChuKSksIDAgfSwJCVwKKwkgIHRyYXBfZGVidWczMiwgcmVz ZXRfZGVidWczMiwJCQkJCVwKKwkgIG9mZnNldG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJj aCwgZGJnX2JjclsobildKSwgMH0sCVwKIAkvKiBEQkdXVlJuX0VMMSAqLwkJCQkJCVwKIAl7IE9w MCgwYjEwKSwgT3AxKDBiMDAwKSwgQ1JuKDBiMDAwMCksIENSbSgobikpLCBPcDIoMGIxMTApLAlc Ci0JICB0cmFwX2RlYnVnX3JlZ3MsIHJlc2V0X3ZhbCwgKERCR1dWUjBfRUwxICsgKG4pKSwgMCB9 LAkJXAorCSAgdHJhcF9kZWJ1ZzY0LCByZXNldF9kZWJ1ZzY0LAkJCQkJXAorCSAgb2Zmc2V0b2Yo c3RydWN0IGt2bV9ndWVzdF9kZWJ1Z19hcmNoLCBkYmdfd3ZyWyhuKV0pLCAwIH0sCVwKIAkvKiBE QkdXQ1JuX0VMMSAqLwkJCQkJCVwKIAl7IE9wMCgwYjEwKSwgT3AxKDBiMDAwKSwgQ1JuKDBiMDAw MCksIENSbSgobikpLCBPcDIoMGIxMTEpLAlcCi0JICB0cmFwX2RlYnVnX3JlZ3MsIHJlc2V0X3Zh bCwgKERCR1dDUjBfRUwxICsgKG4pKSwgMCB9CisJICB0cmFwX2RlYnVnMzIsIHJlc2V0X2RlYnVn MzIsCQkJCQlcCisJICBvZmZzZXRvZihzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2FyY2gsIGRiZ193 Y3JbKG4pXSksIDB9CiAKIC8qCiAgKiBBcmNoaXRlY3RlZCBzeXN0ZW0gcmVnaXN0ZXJzLgpAQCAt NTAyLDM3ICs1NDgsMjMgQEAgc3RhdGljIGJvb2wgdHJhcF9kYmdpZHIoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LAogCX0KIH0KIAotc3RhdGljIGJvb2wgdHJhcF9kZWJ1ZzMyKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSwKLQkJCSBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19wYXJhbXMgKnAsCi0JCQkgY29uc3Qg c3RydWN0IHN5c19yZWdfZGVzYyAqcikKLXsKLQlpZiAocC0+aXNfd3JpdGUpIHsKLQkJdmNwdV9j cDE0KHZjcHUsIHItPnJlZykgPSAqdmNwdV9yZWcodmNwdSwgcC0+UnQpOwotCQl2Y3B1LT5hcmNo LmRlYnVnX2ZsYWdzIHw9IEtWTV9BUk02NF9ERUJVR19ESVJUWTsKLQl9IGVsc2UgewotCQkqdmNw dV9yZWcodmNwdSwgcC0+UnQpID0gdmNwdV9jcDE0KHZjcHUsIHItPnJlZyk7Ci0JfQotCi0JcmV0 dXJuIHRydWU7Ci19Ci0KICNkZWZpbmUgREJHX0JDUl9CVlJfV0NSX1dWUihuKQkJCQkJXAogCS8q IERCR0JWUm4gKi8JCQkJCQlcCiAJeyBPcDEoIDApLCBDUm4oIDApLCBDUm0oKG4pKSwgT3AyKCA0 KSwgdHJhcF9kZWJ1ZzMyLAlcCi0JICBOVUxMLCAoY3AxNF9EQkdCVlIwICsgKG4pICogMikgfSwJ CQlcCisJICBOVUxMLCBvZmZzZXRvZihzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2FyY2gsIGRiZ19i dnJbKG4pXSkgfSwJXAogCS8qIERCR0JDUm4gKi8JCQkJCQlcCiAJeyBPcDEoIDApLCBDUm4oIDAp LCBDUm0oKG4pKSwgT3AyKCA1KSwgdHJhcF9kZWJ1ZzMyLAlcCi0JICBOVUxMLCAoY3AxNF9EQkdC Q1IwICsgKG4pICogMikgfSwJCQlcCisJICBOVUxMLCBvZmZzZXRvZihzdHJ1Y3Qga3ZtX2d1ZXN0 X2RlYnVnX2FyY2gsIGRiZ19iY3JbKG4pXSkgfSwJCQlcCiAJLyogREJHV1ZSbiAqLwkJCQkJCVwK IAl7IE9wMSggMCksIENSbiggMCksIENSbSgobikpLCBPcDIoIDYpLCB0cmFwX2RlYnVnMzIsCVwK LQkgIE5VTEwsIChjcDE0X0RCR1dWUjAgKyAobikgKiAyKSB9LAkJCVwKKwkgIE5VTEwsIG9mZnNl dG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCwgZGJnX3d2clsobildKSB9LAkJCVwKIAkv KiBEQkdXQ1JuICovCQkJCQkJXAogCXsgT3AxKCAwKSwgQ1JuKCAwKSwgQ1JtKChuKSksIE9wMigg NyksIHRyYXBfZGVidWczMiwJXAotCSAgTlVMTCwgKGNwMTRfREJHV0NSMCArIChuKSAqIDIpIH0K KwkgIE5VTEwsIG9mZnNldG9mKHN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCwgZGJnX3djclso bildKSB9CiAKICNkZWZpbmUgREJHQlhWUihuKQkJCQkJCVwKIAl7IE9wMSggMCksIENSbiggMSks IENSbSgobikpLCBPcDIoIDEpLCB0cmFwX2RlYnVnMzIsCVwKLQkgIE5VTEwsIGNwMTRfREJHQlhW UjAgKyBuICogMiB9CisJICBOVUxMLCBvZmZzZXRvZihzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2Fy Y2gsIGRiZ19idnJbKG4pXSkrc2l6ZW9mKF9fdTMyKSB9CiAKIC8qCiAgKiBUcmFwcGVkIGNwMTQg cmVnaXN0ZXJzLiBXZSBnZW5lcmFsbHkgaWdub3JlIG1vc3Qgb2YgdGhlIGV4dGVybmFsCkBAIC0x Mjg4LDYgKzEzMjAsNDIgQEAgc3RhdGljIGludCBkZW11eF9jMTVfc2V0KHU2NCBpZCwgdm9pZCBf X3VzZXIgKnVhZGRyKQogCX0KIH0KIAorc3RhdGljIGludCBkZWJ1Z19zZXQzMihzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBzeXNfcmVnX2Rlc2MgKnJkLAorCQljb25zdCBzdHJ1 Y3Qga3ZtX29uZV9yZWcgKnJlZywgdm9pZCBfX3VzZXIgKnVhZGRyKQoreworCV9fdTMyICpyID0g KF9fdTMyICopICgodm9pZCAqICkmdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlICsgcmQtPnJl Zyk7CisJaWYgKGNvcHlfZnJvbV91c2VyKHVhZGRyLCByLCBLVk1fUkVHX1NJWkUocmVnLT5pZCkp ICE9IDApCisJCXJldHVybiAtRUZBVUxUOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRl YnVnX3NldDY0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgY29uc3Qgc3RydWN0IHN5c19yZWdfZGVz YyAqcmQsCisJCWNvbnN0IHN0cnVjdCBrdm1fb25lX3JlZyAqcmVnLCB2b2lkIF9fdXNlciAqdWFk ZHIpCit7CisJX191NjQgKnIgPSAoX191NjQgKikgKCh2b2lkICogKSZ2Y3B1LT5hcmNoLnZjcHVf ZGVidWdfc3RhdGUgKyByZC0+cmVnKTsKKwlpZiAoY29weV9mcm9tX3VzZXIodWFkZHIsIHIsIEtW TV9SRUdfU0laRShyZWctPmlkKSkgIT0gMCkKKwkJcmV0dXJuIC1FRkFVTFQ7CisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBpbnQgZGVidWdfZ2V0MzIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBjb25z dCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyZCwKKwkJY29uc3Qgc3RydWN0IGt2bV9vbmVfcmVnICpy ZWcsIHZvaWQgX191c2VyICp1YWRkcikKK3sKKwlfX3UzMiAqciA9IChfX3UzMiAqKSAoKHZvaWQg KiApJnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZSArIHJkLT5yZWcpOworCWlmIChjb3B5X3Rv X3VzZXIodWFkZHIsIHIsIEtWTV9SRUdfU0laRShyZWctPmlkKSkgIT0gMCkKKwkJcmV0dXJuIC1F RkFVTFQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGVidWdfZ2V0NjQoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1LCBjb25zdCBzdHJ1Y3Qgc3lzX3JlZ19kZXNjICpyZCwKKwljb25zdCBzdHJ1 Y3Qga3ZtX29uZV9yZWcgKnJlZywgdm9pZCBfX3VzZXIgKnVhZGRyKQoreworCV9fdTY0ICpyID0g KF9fdTY0ICopICgodm9pZCAqICkmdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlICsgcmQtPnJl Zyk7CisJaWYgKGNvcHlfdG9fdXNlcih1YWRkciwgciwgS1ZNX1JFR19TSVpFKHJlZy0+aWQpKSAh PSAwKQorCQlyZXR1cm4gLUVGQVVMVDsKKwlyZXR1cm4gMDsKK30KKwogaW50IGt2bV9hcm1fc3lz X3JlZ19nZXRfcmVnKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgY29uc3Qgc3RydWN0IGt2bV9vbmVf cmVnICpyZWcpCiB7CiAJY29uc3Qgc3RydWN0IHN5c19yZWdfZGVzYyAqcjsKQEAgLTEzMDMsNiAr MTM3MSwxMiBAQCBpbnQga3ZtX2FybV9zeXNfcmVnX2dldF9yZWcoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LCBjb25zdCBzdHJ1Y3Qga3ZtX29uZV9yZWcgKnJlZwogCWlmICghcikKIAkJcmV0dXJuIGdl dF9pbnZhcmlhbnRfc3lzX3JlZyhyZWctPmlkLCB1YWRkcik7CiAKKwlpZiAoci0+YWNjZXNzID09 IHRyYXBfZGVidWc2NCkKKwkJcmV0dXJuIGRlYnVnX2dldDY0KHZjcHUsIHIsIHJlZywgdWFkZHIp OworCisJaWYgKHItPmFjY2VzcyA9PSB0cmFwX2RlYnVnMzIpCisJCXJldHVybiBkZWJ1Z19nZXQz Mih2Y3B1LCByLCByZWcsIHVhZGRyKTsKKwogCXJldHVybiByZWdfdG9fdXNlcih1YWRkciwgJnZj cHVfc3lzX3JlZyh2Y3B1LCByLT5yZWcpLCByZWctPmlkKTsKIH0KIApAQCAtMTMyMSw2ICsxMzk1 LDEyIEBAIGludCBrdm1fYXJtX3N5c19yZWdfc2V0X3JlZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUs IGNvbnN0IHN0cnVjdCBrdm1fb25lX3JlZyAqcmVnCiAJaWYgKCFyKQogCQlyZXR1cm4gc2V0X2lu dmFyaWFudF9zeXNfcmVnKHJlZy0+aWQsIHVhZGRyKTsKIAorCWlmIChyLT5hY2Nlc3MgPT0gdHJh cF9kZWJ1ZzY0KQorCQlyZXR1cm4gZGVidWdfc2V0NjQodmNwdSwgciwgcmVnLCB1YWRkcik7CisK KwlpZiAoci0+YWNjZXNzID09IHRyYXBfZGVidWczMikKKwkJcmV0dXJuIGRlYnVnX3NldDMyKHZj cHUsIHIsIHJlZywgdWFkZHIpOworCiAJcmV0dXJuIHJlZ19mcm9tX3VzZXIoJnZjcHVfc3lzX3Jl Zyh2Y3B1LCByLT5yZWcpLCB1YWRkciwgcmVnLT5pZCk7CiB9CiAKLS0gCjIuNC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGluZyBs aXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJp YS5lZHUvbWFpbG1hbi9saXN0aW5mby9rdm1hcm0K