From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [V2,2/2] rasdaemon: add support for ARM events From: Tyler Baicar Message-Id: <1496439633-23155-3-git-send-email-tbaicar@codeaurora.org> Date: Fri, 2 Jun 2017 15:40:33 -0600 To: mchehab@osg.samsung.com, linux-edac@vger.kernel.org, astone@redhat.com, fu.wei@linaro.org, shiju.jose@huawei.com Cc: Tyler Baicar List-ID: QWRkIHN1cHBvcnQgdG8gaGFuZGxlIHRoZSBBUk0ga2VybmVsIHRyYWNlIGV2ZW50cwp3aGljaCBj b3ZlciBSQVMgQVJNIHByb2Nlc3NvciBlcnJvcnMuCgpTaWduZWQtb2ZmLWJ5OiBUeWxlciBCYWlj YXIgPHRiYWljYXJAY29kZWF1cm9yYS5vcmc+Ci0tLQogTWFrZWZpbGUuYW0gICAgICAgfCAgMyAr KwogY29uZmlndXJlLmFjICAgICAgfCAgOSArKysrKysKIHJhcy1hcm0taGFuZGxlci5jIHwgOTAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog cmFzLWFybS1oYW5kbGVyLmggfCAzMSArKysrKysrKysrKysrKysrKysrCiByYXMtZXZlbnRzLmMg ICAgICB8IDE1ICsrKysrKysrKysKIHJhcy1yZWNvcmQuYyAgICAgIHwgNTIgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHJhcy1yZWNvcmQuaCAgICAgIHwgMTYgKysrKysrKysrKwog cmFzLXJlcG9ydC5jICAgICAgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiByYXMtcmVwb3J0LmggICAgICB8ICA1ICsrKy0KIDkgZmlsZXMgY2hhbmdl ZCwgMjk1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBy YXMtYXJtLWhhbmRsZXIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHJhcy1hcm0taGFuZGxlci5oCgpk aWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQppbmRleCAxYmMyNWU0Li44Mzg2 OGUyIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5hbQorKysgYi9NYWtlZmlsZS5hbQpAQCAtMjcsNiAr MjcsOSBAQCBlbmRpZgogaWYgV0lUSF9OT05fU1RBTkRBUkQKICAgIHJhc2RhZW1vbl9TT1VSQ0VT ICs9IHJhcy1ub24tc3RhbmRhcmQtaGFuZGxlci5jCiBlbmRpZgoraWYgV0lUSF9BUk0KKyAgIHJh c2RhZW1vbl9TT1VSQ0VTICs9IHJhcy1hcm0taGFuZGxlci5jCitlbmRpZgogaWYgV0lUSF9NQ0UK ICAgIHJhc2RhZW1vbl9TT1VSQ0VTICs9IHJhcy1tY2UtaGFuZGxlci5jIG1jZS1pbnRlbC5jIG1j ZS1hbWQtazguYyBcCiAJCQltY2UtaW50ZWwtcDQtcDYuYyBtY2UtaW50ZWwtbmVoYWxlbS5jIFwK ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAyYWRiNzk4Li42 NDhhM2FjIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC01 Myw2ICs1MywxNSBAQCBBU19JRihbdGVzdCAieCRlbmFibGVfbm9uX3N0YW5kYXJkIiA9ICJ4eWVz Il0sIFsKIF0pCiBBTV9DT05ESVRJT05BTChbV0lUSF9OT05fU1RBTkRBUkRdLCBbdGVzdCB4JGVu YWJsZV9ub25fc3RhbmRhcmQgPSB4eWVzXSkKIAorQUNfQVJHX0VOQUJMRShbYXJtXSwKKyAgICBB U19IRUxQX1NUUklORyhbLS1lbmFibGUtYXJtXSwgW2VuYWJsZSBBUk0gZXZlbnRzIChjdXJyZW50 bHkgZXhwZXJpbWVudGFsKV0pKQorCitBU19JRihbdGVzdCAieCRlbmFibGVfYXJtIiA9ICJ4eWVz Il0sIFsKKyAgQUNfREVGSU5FKEhBVkVfQVJNLDEsImhhdmUgQVJNIGV2ZW50cyBjb2xsZWN0IikK KyAgQUNfU1VCU1QoW1dJVEhfQVJNXSkKK10pCitBTV9DT05ESVRJT05BTChbV0lUSF9BUk1dLCBb dGVzdCB4JGVuYWJsZV9hcm0gPSB4eWVzXSkKKwogQUNfQVJHX0VOQUJMRShbbWNlXSwKICAgICBB U19IRUxQX1NUUklORyhbLS1lbmFibGUtbWNlXSwgW2VuYWJsZSBNQ0UgZXZlbnRzIChjdXJyZW50 bHkgZXhwZXJpbWVudGFsKV0pKQogCmRpZmYgLS1naXQgYS9yYXMtYXJtLWhhbmRsZXIuYyBiL3Jh cy1hcm0taGFuZGxlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiODI1 YzMKLS0tIC9kZXYvbnVsbAorKysgYi9yYXMtYXJtLWhhbmRsZXIuYwpAQCAtMCwwICsxLDkwIEBA CisvKgorICogQ29weXJpZ2h0IChjKSAyMDE2LCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYW5kCisgKiBvbmx5 IHZlcnNpb24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4K KworICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNs dWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4K KyNpbmNsdWRlICJsaWJ0cmFjZS9rYnVmZmVyLmgiCisjaW5jbHVkZSAicmFzLWFybS1oYW5kbGVy LmgiCisjaW5jbHVkZSAicmFzLXJlY29yZC5oIgorI2luY2x1ZGUgInJhcy1sb2dnZXIuaCIKKyNp bmNsdWRlICJyYXMtcmVwb3J0LmgiCisKK2ludCByYXNfYXJtX2V2ZW50X2hhbmRsZXIoc3RydWN0 IHRyYWNlX3NlcSAqcywKKwkJCSBzdHJ1Y3QgcGV2ZW50X3JlY29yZCAqcmVjb3JkLAorCQkJIHN0 cnVjdCBldmVudF9mb3JtYXQgKmV2ZW50LCB2b2lkICpjb250ZXh0KQoreworCXVuc2lnbmVkIGxv bmcgbG9uZyB2YWw7CisJc3RydWN0IHJhc19ldmVudHMgKnJhcyA9IGNvbnRleHQ7CisJdGltZV90 IG5vdzsKKwlzdHJ1Y3QgdG0gKnRtOworCXN0cnVjdCByYXNfYXJtX2V2ZW50IGV2OworCisJLyoK KwkgKiBOZXdlciBrZXJuZWxzICgzLjEwLXJjMSBvciB1cHBlcikgcHJvdmlkZSBhbiB1cHRpbWUg Y2xvY2suCisJICogT24gcHJldmlvdXMga2VybmVscywgdGhlIHdheSB0byBwcm9wZXJseSBnZW5l cmF0ZSBhbiBldmVudCB3b3VsZAorCSAqIGJlIHRvIGluamVjdCBhIGZha2Ugb25lLCBtZWFzdXJl IGl0cyB0aW1lc3RhbXAgYW5kIGRpZmYgaXQgYWdhaW5zdAorCSAqIGdldHRpbWVvZmRheS4gV2Ug d29uJ3QgZG8gaXQgaGVyZS4gSW5zdGVhZCwgbGV0J3MgdXNlIHVwdGltZSwKKwkgKiBmYWxsaW5n LWJhY2sgdG8gdGhlIGV2ZW50IHJlcG9ydCdzIHRpbWUsIGlmICJ1cHRpbWUiIGNsb2NrIGlzCisJ ICogbm90IGF2YWlsYWJsZSAobGVnYWN5IGtlcm5lbHMpLgorCSAqLworCisJaWYgKHJhcy0+dXNl X3VwdGltZSkKKwkJbm93ID0gcmVjb3JkLT50cy91c2VyX2h6ICsgcmFzLT51cHRpbWVfZGlmZjsK KwllbHNlCisJCW5vdyA9IHRpbWUoTlVMTCk7CisKKwl0bSA9IGxvY2FsdGltZSgmbm93KTsKKwlp ZiAodG0pCisJCXN0cmZ0aW1lKGV2LnRpbWVzdGFtcCwgc2l6ZW9mKGV2LnRpbWVzdGFtcCksCisJ CQkgIiVZLSVtLSVkICVIOiVNOiVTICV6IiwgdG0pOworCXRyYWNlX3NlcV9wcmludGYocywgIiVz XG4iLCBldi50aW1lc3RhbXApOworCisJaWYgKHBldmVudF9nZXRfZmllbGRfdmFsKHMsIGV2ZW50 LCAiYWZmaW5pdHkiLCByZWNvcmQsICZ2YWwsIDEpIDwgMCkKKwkJcmV0dXJuIC0xOworCWV2LmFm ZmluaXR5ID0gdmFsOworCXRyYWNlX3NlcV9wcmludGYocywgImFmZmluaXR5OiAlZFxuIiwgZXYu YWZmaW5pdHkpOworCisJaWYgKHBldmVudF9nZXRfZmllbGRfdmFsKHMsIGV2ZW50LCAibXBpZHIi LCByZWNvcmQsICZ2YWwsIDEpIDwgMCkKKwkJcmV0dXJuIC0xOworCWV2Lm1waWRyID0gdmFsOwor CXRyYWNlX3NlcV9wcmludGYocywgIk1QSURSOiAweCVsbHhcbiIsICh1bnNpZ25lZCBsb25nIGxv bmcpZXYubXBpZHIpOworCisJaWYgKHBldmVudF9nZXRfZmllbGRfdmFsKHMsIGV2ZW50LCAibWlk ciIsIHJlY29yZCwgJnZhbCwgMSkgPCAwKQorCQlyZXR1cm4gLTE7CisJZXYubWlkciA9IHZhbDsK Kwl0cmFjZV9zZXFfcHJpbnRmKHMsICJNSURSOiAweCVsbHhcbiIsICh1bnNpZ25lZCBsb25nIGxv bmcpZXYubWlkcik7CisKKwlpZiAocGV2ZW50X2dldF9maWVsZF92YWwocywgZXZlbnQsICJydW5u aW5nX3N0YXRlIiwgcmVjb3JkLCAmdmFsLCAxKSA8IDApCisJCXJldHVybiAtMTsKKwlldi5ydW5u aW5nX3N0YXRlID0gdmFsOworCXRyYWNlX3NlcV9wcmludGYocywgInJ1bm5pbmdfc3RhdGU6ICVk XG4iLCBldi5ydW5uaW5nX3N0YXRlKTsKKworCWlmIChwZXZlbnRfZ2V0X2ZpZWxkX3ZhbChzLCBl dmVudCwgInBzY2lfc3RhdGUiLCByZWNvcmQsICZ2YWwsIDEpIDwgMCkKKwkJcmV0dXJuIC0xOwor CWV2LnBzY2lfc3RhdGUgPSB2YWw7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAicHNjaV9zdGF0ZTog JWRcbiIsIGV2LnBzY2lfc3RhdGUpOworCisJLyogSW5zZXJ0IGRhdGEgaW50byB0aGUgU0dCRCAq LworI2lmZGVmIEhBVkVfU1FMSVRFMworCXJhc19zdG9yZV9hcm1fcmVjb3JkKHJhcywgJmV2KTsK KyNlbmRpZgorCisjaWZkZWYgSEFWRV9BQlJUX1JFUE9SVAorCS8qIFJlcG9ydCBldmVudCB0byBB QlJUICovCisJcmFzX3JlcG9ydF9hcm1fcmVjb3JkKHJhcywgJmV2KTsKKyNlbmRpZgorCisJcmV0 dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9yYXMtYXJtLWhhbmRsZXIuaCBiL3Jhcy1hcm0taGFuZGxl ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxOTY2MTcKLS0tIC9kZXYv bnVsbAorKysgYi9yYXMtYXJtLWhhbmRsZXIuaApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29w eXJpZ2h0IChjKSAyMDE2LCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYW5kCisgKiBvbmx5IHZlcnNpb24gMiBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworICogVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKyAqLworCisjaWZuZGVmIF9fUkFTX0FSTV9IQU5ETEVSX0gKKyNkZWZpbmUg X19SQVNfQVJNX0hBTkRMRVJfSAorCisjaW5jbHVkZSAicmFzLWV2ZW50cy5oIgorI2luY2x1ZGUg ImxpYnRyYWNlL2V2ZW50LXBhcnNlLmgiCisKK3N0YXRpYyBjaGFyICphcm1fZXJyb3JfdHlwZV9z dHJzW10gPSB7CisJImNhY2hlIGVycm9yIiwKKwkiVExCIGVycm9yIiwKKwkiYnVzIGVycm9yIiwK KwkibWljcm8tYXJjaGl0ZWN0dXJhbCBlcnJvciIsCit9OworCitpbnQgcmFzX2FybV9ldmVudF9o YW5kbGVyKHN0cnVjdCB0cmFjZV9zZXEgKnMsCisJCQkgc3RydWN0IHBldmVudF9yZWNvcmQgKnJl Y29yZCwKKwkJCSBzdHJ1Y3QgZXZlbnRfZm9ybWF0ICpldmVudCwgdm9pZCAqY29udGV4dCk7CisK KyNlbmRpZgpkaWZmIC0tZ2l0IGEvcmFzLWV2ZW50cy5jIGIvcmFzLWV2ZW50cy5jCmluZGV4IDk2 YWE2ZjEuLjgxMmQ3MTIgMTAwNjQ0Ci0tLSBhL3Jhcy1ldmVudHMuYworKysgYi9yYXMtZXZlbnRz LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJyYXMtbWMtaGFuZGxlci5oIgogI2luY2x1 ZGUgInJhcy1hZXItaGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1ub24tc3RhbmRhcmQtaGFuZGxl ci5oIgorI2luY2x1ZGUgInJhcy1hcm0taGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1tY2UtaGFu ZGxlci5oIgogI2luY2x1ZGUgInJhcy1leHRsb2ctaGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1y ZWNvcmQuaCIKQEAgLTIxMyw2ICsyMTQsMTAgQEAgaW50IHRvZ2dsZV9yYXNfbWNfZXZlbnQoaW50 IGVuYWJsZSkKIAlyYyB8PSBfX3RvZ2dsZV9yYXNfbWNfZXZlbnQocmFzLCAicmFzIiwgIm5vbl9z dGFuZGFyZF9ldmVudCIsIGVuYWJsZSk7CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfQVJNCisJcmMg fD0gX190b2dnbGVfcmFzX21jX2V2ZW50KHJhcywgInJhcyIsICJhcm1fZXZlbnQiLCBlbmFibGUp OworI2VuZGlmCisKIGZyZWVfcmFzOgogCWZyZWUocmFzKTsKIAlyZXR1cm4gcmM7CkBAIC02OTEs NiArNjk2LDE2IEBAIGludCBoYW5kbGVfcmFzX2V2ZW50cyhpbnQgcmVjb3JkX2V2ZW50cykKICAg ICAgICAgICAgICAgICAgICAgInJhcyIsICJub25fc3RhbmRhcmRfZXZlbnQiKTsKICNlbmRpZgog CisjaWZkZWYgSEFWRV9BUk0KKyAgICAgICAgcmMgPSBhZGRfZXZlbnRfaGFuZGxlcihyYXMsIHBl dmVudCwgcGFnZV9zaXplLCAicmFzIiwgImFybV9ldmVudCIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmFzX2FybV9ldmVudF9oYW5kbGVyKTsKKyAgICAgICAgaWYgKCFyYykKKyAg ICAgICAgICAgICAgICBudW1fZXZlbnRzKys7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg ICBsb2coQUxMLCBMT0dfRVJSLCAiQ2FuJ3QgZ2V0IHRyYWNlcyBmcm9tICVzOiVzXG4iLAorICAg ICAgICAgICAgICAgICAgICAicmFzIiwgImFybV9ldmVudCIpOworI2VuZGlmCisKIAljcHVzID0g Z2V0X251bV9jcHVzKHJhcyk7CiAKICNpZmRlZiBIQVZFX01DRQpkaWZmIC0tZ2l0IGEvcmFzLXJl Y29yZC5jIGIvcmFzLXJlY29yZC5jCmluZGV4IDM1N2FiNjEuLjVkZmEwMGYgMTAwNjQ0Ci0tLSBh L3Jhcy1yZWNvcmQuYworKysgYi9yYXMtcmVjb3JkLmMKQEAgLTIwOSw2ICsyMDksNTggQEAgaW50 IHJhc19zdG9yZV9ub25fc3RhbmRhcmRfcmVjb3JkKHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0 cnVjdCByYXNfbm9uX3N0YW5kYXIKIH0KICNlbmRpZgogCisvKgorICogVGFibGUgYW5kIGZ1bmN0 aW9ucyB0byBoYW5kbGUgcmFzOmFybQorICovCisKKyNpZmRlZiBIQVZFX0FSTQorc3RhdGljIGNv bnN0IHN0cnVjdCBkYl9maWVsZHMgYXJtX2V2ZW50X2ZpZWxkc1tdID0geworCQl7IC5uYW1lPSJp ZCIsCQkJLnR5cGU9IklOVEVHRVIgUFJJTUFSWSBLRVkiIH0sCisJCXsgLm5hbWU9InRpbWVzdGFt cCIsCQkudHlwZT0iVEVYVCIgfSwKKwkJeyAubmFtZT0iZXJyb3JfY291bnQiLAkJLnR5cGU9IklO VEVHRVIiIH0sCisJCXsgLm5hbWU9ImFmZmluaXR5IiwJCS50eXBlPSJJTlRFR0VSIiB9LAorCQl7 IC5uYW1lPSJtcGlkciIsCQkudHlwZT0iSU5URUdFUiIgfSwKKwkJeyAubmFtZT0icnVubmluZ19z dGF0ZSIsCS50eXBlPSJJTlRFR0VSIiB9LAorCQl7IC5uYW1lPSJwc2NpX3N0YXRlIiwJCS50eXBl PSJJTlRFR0VSIiB9LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkYl90YWJsZV9kZXNjcmlw dG9yIGFybV9ldmVudF90YWIgPSB7CisJLm5hbWUgPSAiYXJtX2V2ZW50IiwKKwkuZmllbGRzID0g YXJtX2V2ZW50X2ZpZWxkcywKKwkubnVtX2ZpZWxkcyA9IEFSUkFZX1NJWkUoYXJtX2V2ZW50X2Zp ZWxkcyksCit9OworCitpbnQgcmFzX3N0b3JlX2FybV9yZWNvcmQoc3RydWN0IHJhc19ldmVudHMg KnJhcywgc3RydWN0IHJhc19hcm1fZXZlbnQgKmV2KQoreworCWludCByYzsKKwlzdHJ1Y3Qgc3Fs aXRlM19wcml2ICpwcml2ID0gcmFzLT5kYl9wcml2OworCisJaWYgKCFwcml2IHx8ICFwcml2LT5z dG10X2FybV9yZWNvcmQpCisJCXJldHVybiAwOworCWxvZyhURVJNLCBMT0dfSU5GTywgImFybV9l dmVudCBzdG9yZTogJXBcbiIsIHByaXYtPnN0bXRfYXJtX3JlY29yZCk7CisKKwlzcWxpdGUzX2Jp bmRfdGV4dCAocHJpdi0+c3RtdF9hcm1fcmVjb3JkLCAgMSwgIGV2LT50aW1lc3RhbXAsIC0xLCBO VUxMKTsKKwlzcWxpdGUzX2JpbmRfaW50ICAocHJpdi0+c3RtdF9hcm1fcmVjb3JkLCAgMiwgIGV2 LT5lcnJvcl9jb3VudCk7CisJc3FsaXRlM19iaW5kX2ludCAgKHByaXYtPnN0bXRfYXJtX3JlY29y ZCwgIDMsICBldi0+YWZmaW5pdHkpOworCXNxbGl0ZTNfYmluZF9pbnQgIChwcml2LT5zdG10X2Fy bV9yZWNvcmQsICA0LCAgZXYtPm1waWRyKTsKKwlzcWxpdGUzX2JpbmRfaW50ICAocHJpdi0+c3Rt dF9hcm1fcmVjb3JkLCAgNSwgIGV2LT5ydW5uaW5nX3N0YXRlKTsKKwlzcWxpdGUzX2JpbmRfaW50 ICAocHJpdi0+c3RtdF9hcm1fcmVjb3JkLCAgNiwgIGV2LT5wc2NpX3N0YXRlKTsKKworCXJjID0g c3FsaXRlM19zdGVwKHByaXYtPnN0bXRfYXJtX3JlY29yZCk7CisJaWYgKHJjICE9IFNRTElURV9P SyAmJiByYyAhPSBTUUxJVEVfRE9ORSkKKwkJbG9nKFRFUk0sIExPR19FUlIsCisJCSAgICAiRmFp bGVkIHRvIGRvIGFybV9ldmVudCBzdGVwIG9uIHNxbGl0ZTogZXJyb3IgPSAlZFxuIiwgcmMpOwor CXJjID0gc3FsaXRlM19yZXNldChwcml2LT5zdG10X2FybV9yZWNvcmQpOworCWlmIChyYyAhPSBT UUxJVEVfT0sgJiYgcmMgIT0gU1FMSVRFX0RPTkUpCisJCWxvZyhURVJNLCBMT0dfRVJSLAorCQkg ICAgIkZhaWxlZCByZXNldCBhcm1fZXZlbnQgb24gc3FsaXRlOiBlcnJvciA9ICVkXG4iLAorCQkg ICAgcmMpOworCWxvZyhURVJNLCBMT0dfSU5GTywgInJlZ2lzdGVyIGluc2VydGVkIGF0IGRiXG4i KTsKKworCXJldHVybiByYzsKK30KKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9FWFRMT0cKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZGJfZmllbGRzIGV4dGxvZ19ldmVudF9maWVsZHNbXSA9IHsKIAkJeyAu bmFtZT0iaWQiLAkJCS50eXBlPSJJTlRFR0VSIFBSSU1BUlkgS0VZIiB9LApkaWZmIC0tZ2l0IGEv cmFzLXJlY29yZC5oIGIvcmFzLXJlY29yZC5oCmluZGV4IDQ3M2FlNDAuLjEyYzIyMTggMTAwNjQ0 Ci0tLSBhL3Jhcy1yZWNvcmQuaAorKysgYi9yYXMtcmVjb3JkLmgKQEAgLTY1LDEwICs2NSwyMSBA QCBzdHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudCB7CiAJdWludDMyX3QgbGVuZ3RoOwogfTsK IAorc3RydWN0IHJhc19hcm1fZXZlbnQgeworCWNoYXIgdGltZXN0YW1wWzY0XTsKKwlpbnQzMl90 IGVycm9yX2NvdW50OworCWludDhfdCBhZmZpbml0eTsKKwlpbnQ2NF90IG1waWRyOworCWludDY0 X3QgbWlkcjsKKwlpbnQzMl90IHJ1bm5pbmdfc3RhdGU7CisJaW50MzJfdCBwc2NpX3N0YXRlOwor fTsKKwogc3RydWN0IHJhc19tY19ldmVudDsKIHN0cnVjdCByYXNfYWVyX2V2ZW50Owogc3RydWN0 IHJhc19leHRsb2dfZXZlbnQ7CiBzdHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudDsKK3N0cnVj dCByYXNfYXJtX2V2ZW50Owogc3RydWN0IG1jZV9ldmVudDsKIAogI2lmZGVmIEhBVkVfU1FMSVRF MwpAQCAtOTAsNiArMTAxLDkgQEAgc3RydWN0IHNxbGl0ZTNfcHJpdiB7CiAjaWZkZWYgSEFWRV9O T05fU1RBTkRBUkQKIAlzcWxpdGUzX3N0bXQJKnN0bXRfbm9uX3N0YW5kYXJkX3JlY29yZDsKICNl bmRpZgorI2lmZGVmIEhBVkVfQVJNCisJc3FsaXRlM19zdG10CSpzdG10X2FybV9yZWNvcmQ7Cisj ZW5kaWYKIH07CiAKIGludCByYXNfbWNfZXZlbnRfb3BlbmRiKHVuc2lnbmVkIGNwdSwgc3RydWN0 IHJhc19ldmVudHMgKnJhcyk7CkBAIC05OCw2ICsxMTIsNyBAQCBpbnQgcmFzX3N0b3JlX2Flcl9l dmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX2Flcl9ldmVudCAqZXYpOwog aW50IHJhc19zdG9yZV9tY2VfcmVjb3JkKHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCBt Y2VfZXZlbnQgKmV2KTsKIGludCByYXNfc3RvcmVfZXh0bG9nX21lbV9yZWNvcmQoc3RydWN0IHJh c19ldmVudHMgKnJhcywgc3RydWN0IHJhc19leHRsb2dfZXZlbnQgKmV2KTsKIGludCByYXNfc3Rv cmVfbm9uX3N0YW5kYXJkX3JlY29yZChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFz X25vbl9zdGFuZGFyZF9ldmVudCAqZXYpOworaW50IHJhc19zdG9yZV9hcm1fcmVjb3JkKHN0cnVj dCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCByYXNfYXJtX2V2ZW50ICpldik7CiAKICNlbHNlCiBz dGF0aWMgaW5saW5lIGludCByYXNfbWNfZXZlbnRfb3BlbmRiKHVuc2lnbmVkIGNwdSwgc3RydWN0 IHJhc19ldmVudHMgKnJhcykgeyByZXR1cm4gMDsgfTsKQEAgLTEwNiw2ICsxMjEsNyBAQCBzdGF0 aWMgaW5saW5lIGludCByYXNfc3RvcmVfYWVyX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMs IHN0cnVjdCByYXNfYWVyX2V2ZQogc3RhdGljIGlubGluZSBpbnQgcmFzX3N0b3JlX21jZV9yZWNv cmQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IG1jZV9ldmVudCAqZXYpIHsgcmV0dXJu IDA7IH07CiBzdGF0aWMgaW5saW5lIGludCByYXNfc3RvcmVfZXh0bG9nX21lbV9yZWNvcmQoc3Ry dWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJhc19leHRsb2dfZXZlbnQgKmV2KSB7IHJldHVy biAwOyB9Owogc3RhdGljIGlubGluZSBpbnQgcmFzX3N0b3JlX25vbl9zdGFuZGFyZF9yZWNvcmQo c3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJhc19ub25fc3RhbmRhcmRfZXZlbnQgKmV2 KSB7IHJldHVybiAwOyB9Oworc3RhdGljIGlubGluZSBpbnQgcmFzX3N0b3JlX2FybV9yZWNvcmQo c3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJhc19hcm1fZXZlbnQgKmV2KSB7IHJldHVy biAwOyB9OwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvcmFzLXJlcG9ydC5jIGIvcmFzLXJlcG9y dC5jCmluZGV4IDNlNTA4YTUuLmFmNjU2YjIgMTAwNjQ0Ci0tLSBhL3Jhcy1yZXBvcnQuYworKysg Yi9yYXMtcmVwb3J0LmMKQEAgLTIzMCw2ICsyMzAsMzMgQEAgc3RhdGljIGludCBzZXRfbm9uX3N0 YW5kYXJkX2V2ZW50X2JhY2t0cmFjZShjaGFyICpidWYsIHN0cnVjdCByYXNfbm9uX3N0YW5kYXJk X2UKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBzZXRfYXJtX2V2ZW50X2JhY2t0cmFjZShj aGFyICpidWYsIHN0cnVjdCByYXNfYXJtX2V2ZW50ICpldil7CisJY2hhciBidF9idWZbTUFYX0JB Q0tUUkFDRV9TSVpFXTsKKworCWlmKCFidWYgfHwgIWV2KQorCQlyZXR1cm4gLTE7CisKKwlzcHJp bnRmKGJ0X2J1ZiwgIkJBQ0tUUkFDRT0iICAgIFwKKwkJCQkJCSJ0aW1lc3RhbXA9JXNcbiIgICAg ICAgIFwKKwkJCQkJCSJlcnJvcl9jb3VudD0lZFxuIiAgICAgICBcCisJCQkJCQkiYWZmaW5pdHk9 JWRcbiIgXAorCQkJCQkJIm1waWRyPTB4JWxseFxuIiwgICAgIFwKKwkJCQkJCSJtaWRyPTB4JWxs eFxuIiwgICAgIFwKKwkJCQkJCSJydW5uaW5nX3N0YXRlPSVkXG4iLCAgICAgXAorCQkJCQkJInBz Y2lfc3RhdGU9JWRcbiIsICAgICBcCisJCQkJCQlldi0+dGltZXN0YW1wLCAgXAorCQkJCQkJZXYt PmVycm9yX2NvdW50LCBcCisJCQkJCQlldi0+YWZmaW5pdHksICAgXAorCQkJCQkJZXYtPm1waWRy LCAgIFwKKwkJCQkJCWV2LT5taWRyLCAgIFwKKwkJCQkJCWV2LT5ydW5uaW5nX3N0YXRlLCAgIFwK KwkJCQkJCWV2LT5wc2NpX3N0YXRlKTsKKworCXN0cmNhdChidWYsIGJ0X2J1Zik7CisKKwlyZXR1 cm4gMDsKK30KKwogc3RhdGljIGludCBjb21taXRfcmVwb3J0X2JhY2t0cmFjZShpbnQgc29ja2Zk LCBpbnQgdHlwZSwgdm9pZCAqZXYpewogCWNoYXIgYnVmW01BWF9CQUNLVFJBQ0VfU0laRV07CiAJ Y2hhciAqcGJ1ZiA9IGJ1ZjsKQEAgLTI1NSw2ICsyODIsOSBAQCBzdGF0aWMgaW50IGNvbW1pdF9y ZXBvcnRfYmFja3RyYWNlKGludCBzb2NrZmQsIGludCB0eXBlLCB2b2lkICpldil7CiAJY2FzZSBO T05fU1RBTkRBUkRfRVZFTlQ6CiAJCXJjID0gc2V0X25vbl9zdGFuZGFyZF9ldmVudF9iYWNrdHJh Y2UoYnVmLCAoc3RydWN0IHJhc19ub25fc3RhbmRhcmRfZXZlbnQgKilldik7CiAJCWJyZWFrOwor CWNhc2UgQVJNX0VWRU5UOgorCQlyYyA9IHNldF9hcm1fZXZlbnRfYmFja3RyYWNlKGJ1ZiwgKHN0 cnVjdCByYXNfYXJtX2V2ZW50ICopZXYpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4g LTE7CiAJfQpAQCAtNDI3LDYgKzQ1Nyw1MSBAQCBub25fc3RhbmRhcmRfZmFpbDoKIAlyZXR1cm4g cmM7CiB9CiAKK2ludCByYXNfcmVwb3J0X2FybV9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFz LCBzdHJ1Y3QgcmFzX2FybV9ldmVudCAqZXYpeworCWNoYXIgYnVmW01BWF9NRVNTQUdFX1NJWkVd OworCWludCBzb2NrZmQgPSAwOworCWludCByYyA9IC0xOworCisJbWVtc2V0KGJ1ZiwgMCwgc2l6 ZW9mKGJ1ZikpOworCisJc29ja2ZkID0gc2V0dXBfcmVwb3J0X3NvY2tldCgpOworCWlmKHNvY2tm ZCA8IDApeworCQlyZXR1cm4gcmM7CisJfQorCisJcmMgPSBjb21taXRfcmVwb3J0X2Jhc2ljKHNv Y2tmZCk7CisJaWYocmMgPCAwKXsKKwkJZ290byBhcm1fZmFpbDsKKwl9CisKKwlyYyA9IGNvbW1p dF9yZXBvcnRfYmFja3RyYWNlKHNvY2tmZCwgQVJNX0VWRU5ULCBldik7CisJaWYocmMgPCAwKXsK KwkJZ290byBhcm1fZmFpbDsKKwl9CisKKwlzcHJpbnRmKGJ1ZiwgIkFOQUxZWkVSPSVzIiwgInJh c2RhZW1vbi1hcm0iKTsKKwlyYyA9IHdyaXRlKHNvY2tmZCwgYnVmLCBzdHJsZW4oYnVmKSArIDEp OworCWlmKHJjIDwgc3RybGVuKGJ1ZikgKyAxKXsKKwkJZ290byBhcm1fZmFpbDsKKwl9CisKKwlz cHJpbnRmKGJ1ZiwgIlJFQVNPTj0lcyIsICJBUk0gQ1BVIHJlcG9ydCBwcm9ibGVtIik7CisJcmMg PSB3cml0ZShzb2NrZmQsIGJ1Ziwgc3RybGVuKGJ1ZikgKyAxKTsKKwlpZihyYyA8IHN0cmxlbihi dWYpICsgMSl7CisJCWdvdG8gYXJtX2ZhaWw7CisJfQorCisJcmMgPSAwOworCithcm1fZmFpbDoK KworCWlmKHNvY2tmZCA+IDApeworCQljbG9zZShzb2NrZmQpOworCX0KKworCXJldHVybiByYzsK K30KKwogaW50IHJhc19yZXBvcnRfbWNlX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0 cnVjdCBtY2VfZXZlbnQgKmV2KXsKIAljaGFyIGJ1ZltNQVhfTUVTU0FHRV9TSVpFXTsKIAlpbnQg c29ja2ZkID0gMDsKZGlmZiAtLWdpdCBhL3Jhcy1yZXBvcnQuaCBiL3Jhcy1yZXBvcnQuaAppbmRl eCBjMmZjZjQyLi42YzQ2NmY1IDEwMDY0NAotLS0gYS9yYXMtcmVwb3J0LmgKKysrIGIvcmFzLXJl cG9ydC5oCkBAIC0zMyw3ICszMyw4IEBAIGVudW0gewogCU1DX0VWRU5ULAogCU1DRV9FVkVOVCwK IAlBRVJfRVZFTlQsCi0JTk9OX1NUQU5EQVJEX0VWRU5UCisJTk9OX1NUQU5EQVJEX0VWRU5ULAor CUFSTV9FVkVOVAogfTsKIAogI2lmZGVmIEhBVkVfQUJSVF9SRVBPUlQKQEAgLTQyLDYgKzQzLDcg QEAgaW50IHJhc19yZXBvcnRfbWNfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0 IHJhc19tY19ldmVudCAqZXYpOwogaW50IHJhc19yZXBvcnRfYWVyX2V2ZW50KHN0cnVjdCByYXNf ZXZlbnRzICpyYXMsIHN0cnVjdCByYXNfYWVyX2V2ZW50ICpldik7CiBpbnQgcmFzX3JlcG9ydF9t Y2VfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IG1jZV9ldmVudCAqZXYpOwog aW50IHJhc19yZXBvcnRfbm9uX3N0YW5kYXJkX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMs IHN0cnVjdCByYXNfbm9uX3N0YW5kYXJkX2V2ZW50ICpldik7CitpbnQgcmFzX3JlcG9ydF9hcm1f ZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJhc19hcm1fZXZlbnQgKmV2KTsK IAogI2Vsc2UKIApAQCAtNDksNiArNTEsNyBAQCBzdGF0aWMgaW5saW5lIGludCByYXNfcmVwb3J0 X21jX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCByYXNfbWNfZXZlbgogc3Rh dGljIGlubGluZSBpbnQgcmFzX3JlcG9ydF9hZXJfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJh cywgc3RydWN0IHJhc19hZXJfZXZlbnQgKmV2KSB7IHJldHVybiAwOyB9Owogc3RhdGljIGlubGlu ZSBpbnQgcmFzX3JlcG9ydF9tY2VfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0 IG1jZV9ldmVudCAqZXYpIHsgcmV0dXJuIDA7IH07CiBzdGF0aWMgaW5saW5lIGludCByYXNfcmVw b3J0X25vbl9zdGFuZGFyZF9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFz X25vbl9zdGFuZGFyZF9ldmVudCAqZXYpIHsgcmV0dXJuIDA7IH07CitzdGF0aWMgaW5saW5lIGlu dCByYXNfcmVwb3J0X2FybV9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFz X2FybV9ldmVudCAqZXYpIHsgcmV0dXJuIDA7IH07CiAKICNlbmRpZgogCg==