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: [V3,2/2] rasdaemon: add support for ARM events From: Tyler Baicar Message-Id: <1497305765-24746-3-git-send-email-tbaicar@codeaurora.org> Date: Mon, 12 Jun 2017 16:16:05 -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 cmFzLWFybS1oYW5kbGVyLmggfCAyNCArKysrKysrKysrKysrKysKIHJhcy1ldmVudHMuYyAgICAg IHwgMTUgKysrKysrKysrKwogcmFzLXJlY29yZC5jICAgICAgfCA1MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogcmFzLXJlY29yZC5oICAgICAgfCAxNiArKysrKysrKysrCiByYXMt cmVwb3J0LmMgICAgICB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHJhcy1yZXBvcnQuaCAgICAgIHwgIDUgKysrLQogOSBmaWxlcyBjaGFuZ2VkLCAy ODggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHJhcy1h cm0taGFuZGxlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgcmFzLWFybS1oYW5kbGVyLmgKCmRpZmYg LS1naXQgYS9NYWtlZmlsZS5hbSBiL01ha2VmaWxlLmFtCmluZGV4IDFiYzI1ZTQuLjgzODY4ZTIg MTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0yNyw2ICsyNyw5 IEBAIGVuZGlmCiBpZiBXSVRIX05PTl9TVEFOREFSRAogICAgcmFzZGFlbW9uX1NPVVJDRVMgKz0g cmFzLW5vbi1zdGFuZGFyZC1oYW5kbGVyLmMKIGVuZGlmCitpZiBXSVRIX0FSTQorICAgcmFzZGFl bW9uX1NPVVJDRVMgKz0gcmFzLWFybS1oYW5kbGVyLmMKK2VuZGlmCiBpZiBXSVRIX01DRQogICAg cmFzZGFlbW9uX1NPVVJDRVMgKz0gcmFzLW1jZS1oYW5kbGVyLmMgbWNlLWludGVsLmMgbWNlLWFt ZC1rOC5jIFwKIAkJCW1jZS1pbnRlbC1wNC1wNi5jIG1jZS1pbnRlbC1uZWhhbGVtLmMgXApkaWZm IC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDJhZGI3OTguLjY0OGEz YWMgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTUzLDYg KzUzLDE1IEBAIEFTX0lGKFt0ZXN0ICJ4JGVuYWJsZV9ub25fc3RhbmRhcmQiID0gInh5ZXMiXSwg WwogXSkKIEFNX0NPTkRJVElPTkFMKFtXSVRIX05PTl9TVEFOREFSRF0sIFt0ZXN0IHgkZW5hYmxl X25vbl9zdGFuZGFyZCA9IHh5ZXNdKQogCitBQ19BUkdfRU5BQkxFKFthcm1dLAorICAgIEFTX0hF TFBfU1RSSU5HKFstLWVuYWJsZS1hcm1dLCBbZW5hYmxlIEFSTSBldmVudHMgKGN1cnJlbnRseSBl eHBlcmltZW50YWwpXSkpCisKK0FTX0lGKFt0ZXN0ICJ4JGVuYWJsZV9hcm0iID0gInh5ZXMiXSwg WworICBBQ19ERUZJTkUoSEFWRV9BUk0sMSwiaGF2ZSBBUk0gZXZlbnRzIGNvbGxlY3QiKQorICBB Q19TVUJTVChbV0lUSF9BUk1dKQorXSkKK0FNX0NPTkRJVElPTkFMKFtXSVRIX0FSTV0sIFt0ZXN0 IHgkZW5hYmxlX2FybSA9IHh5ZXNdKQorCiBBQ19BUkdfRU5BQkxFKFttY2VdLAogICAgIEFTX0hF TFBfU1RSSU5HKFstLWVuYWJsZS1tY2VdLCBbZW5hYmxlIE1DRSBldmVudHMgKGN1cnJlbnRseSBl eHBlcmltZW50YWwpXSkpCiAKZGlmZiAtLWdpdCBhL3Jhcy1hcm0taGFuZGxlci5jIGIvcmFzLWFy bS1oYW5kbGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc2NDcwZAot LS0gL2Rldi9udWxsCisrKyBiL3Jhcy1hcm0taGFuZGxlci5jCkBAIC0wLDAgKzEsOTAgQEAKKy8q CisgKiBDb3B5cmlnaHQgKGMpIDIwMTYsIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhbmQKKyAqIG9ubHkgdmVy c2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCisg KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg PHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2lu Y2x1ZGUgImxpYnRyYWNlL2tidWZmZXIuaCIKKyNpbmNsdWRlICJyYXMtYXJtLWhhbmRsZXIuaCIK KyNpbmNsdWRlICJyYXMtcmVjb3JkLmgiCisjaW5jbHVkZSAicmFzLWxvZ2dlci5oIgorI2luY2x1 ZGUgInJhcy1yZXBvcnQuaCIKKworaW50IHJhc19hcm1fZXZlbnRfaGFuZGxlcihzdHJ1Y3QgdHJh Y2Vfc2VxICpzLAorCQkJIHN0cnVjdCBwZXZlbnRfcmVjb3JkICpyZWNvcmQsCisJCQkgc3RydWN0 IGV2ZW50X2Zvcm1hdCAqZXZlbnQsIHZvaWQgKmNvbnRleHQpCit7CisJdW5zaWduZWQgbG9uZyBs b25nIHZhbDsKKwlzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzID0gY29udGV4dDsKKwl0aW1lX3Qgbm93 OworCXN0cnVjdCB0bSAqdG07CisJc3RydWN0IHJhc19hcm1fZXZlbnQgZXY7CisKKwkvKgorCSAq IE5ld2VyIGtlcm5lbHMgKDMuMTAtcmMxIG9yIHVwcGVyKSBwcm92aWRlIGFuIHVwdGltZSBjbG9j ay4KKwkgKiBPbiBwcmV2aW91cyBrZXJuZWxzLCB0aGUgd2F5IHRvIHByb3Blcmx5IGdlbmVyYXRl IGFuIGV2ZW50IHdvdWxkCisJICogYmUgdG8gaW5qZWN0IGEgZmFrZSBvbmUsIG1lYXN1cmUgaXRz IHRpbWVzdGFtcCBhbmQgZGlmZiBpdCBhZ2FpbnN0CisJICogZ2V0dGltZW9mZGF5LiBXZSB3b24n dCBkbyBpdCBoZXJlLiBJbnN0ZWFkLCBsZXQncyB1c2UgdXB0aW1lLAorCSAqIGZhbGxpbmctYmFj ayB0byB0aGUgZXZlbnQgcmVwb3J0J3MgdGltZSwgaWYgInVwdGltZSIgY2xvY2sgaXMKKwkgKiBu b3QgYXZhaWxhYmxlIChsZWdhY3kga2VybmVscykuCisJICovCisKKwlpZiAocmFzLT51c2VfdXB0 aW1lKQorCQlub3cgPSByZWNvcmQtPnRzL3VzZXJfaHogKyByYXMtPnVwdGltZV9kaWZmOworCWVs c2UKKwkJbm93ID0gdGltZShOVUxMKTsKKworCXRtID0gbG9jYWx0aW1lKCZub3cpOworCWlmICh0 bSkKKwkJc3RyZnRpbWUoZXYudGltZXN0YW1wLCBzaXplb2YoZXYudGltZXN0YW1wKSwKKwkJCSAi JVktJW0tJWQgJUg6JU06JVMgJXoiLCB0bSk7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJXNcbiIs IGV2LnRpbWVzdGFtcCk7CisKKwlpZiAocGV2ZW50X2dldF9maWVsZF92YWwocywgZXZlbnQsICJh ZmZpbml0eSIsIHJlY29yZCwgJnZhbCwgMSkgPCAwKQorCQlyZXR1cm4gLTE7CisJZXYuYWZmaW5p dHkgPSB2YWw7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiIGFmZmluaXR5OiAlZCIsIGV2LmFmZmlu aXR5KTsKKworCWlmIChwZXZlbnRfZ2V0X2ZpZWxkX3ZhbChzLCBldmVudCwgIm1waWRyIiwgcmVj b3JkLCAmdmFsLCAxKSA8IDApCisJCXJldHVybiAtMTsKKwlldi5tcGlkciA9IHZhbDsKKwl0cmFj ZV9zZXFfcHJpbnRmKHMsICJcbiBNUElEUjogMHglbGx4IiwgKHVuc2lnbmVkIGxvbmcgbG9uZyll di5tcGlkcik7CisKKwlpZiAocGV2ZW50X2dldF9maWVsZF92YWwocywgZXZlbnQsICJtaWRyIiwg cmVjb3JkLCAmdmFsLCAxKSA8IDApCisJCXJldHVybiAtMTsKKwlldi5taWRyID0gdmFsOworCXRy YWNlX3NlcV9wcmludGYocywgIlxuIE1JRFI6IDB4JWxseCIsICh1bnNpZ25lZCBsb25nIGxvbmcp ZXYubWlkcik7CisKKwlpZiAocGV2ZW50X2dldF9maWVsZF92YWwocywgZXZlbnQsICJydW5uaW5n X3N0YXRlIiwgcmVjb3JkLCAmdmFsLCAxKSA8IDApCisJCXJldHVybiAtMTsKKwlldi5ydW5uaW5n X3N0YXRlID0gdmFsOworCXRyYWNlX3NlcV9wcmludGYocywgIlxuIHJ1bm5pbmdfc3RhdGU6ICVk IiwgZXYucnVubmluZ19zdGF0ZSk7CisKKwlpZiAocGV2ZW50X2dldF9maWVsZF92YWwocywgZXZl bnQsICJwc2NpX3N0YXRlIiwgcmVjb3JkLCAmdmFsLCAxKSA8IDApCisJCXJldHVybiAtMTsKKwll di5wc2NpX3N0YXRlID0gdmFsOworCXRyYWNlX3NlcV9wcmludGYocywgIlxuIHBzY2lfc3RhdGU6 ICVkIiwgZXYucHNjaV9zdGF0ZSk7CisKKwkvKiBJbnNlcnQgZGF0YSBpbnRvIHRoZSBTR0JEICov CisjaWZkZWYgSEFWRV9TUUxJVEUzCisJcmFzX3N0b3JlX2FybV9yZWNvcmQocmFzLCAmZXYpOwor I2VuZGlmCisKKyNpZmRlZiBIQVZFX0FCUlRfUkVQT1JUCisJLyogUmVwb3J0IGV2ZW50IHRvIEFC UlQgKi8KKwlyYXNfcmVwb3J0X2FybV9ldmVudChyYXMsICZldik7CisjZW5kaWYKKworCXJldHVy biAwOworfQpkaWZmIC0tZ2l0IGEvcmFzLWFybS1oYW5kbGVyLmggYi9yYXMtYXJtLWhhbmRsZXIu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWUxMGVjCi0tLSAvZGV2L251 bGwKKysrIGIvcmFzLWFybS1oYW5kbGVyLmgKQEAgLTAsMCArMSwyNCBAQAorLyoKKyAqIENvcHly aWdodCAoYykgMjAxNiwgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFuZAorICogb25seSB2ZXJzaW9uIDIgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKKyAqIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisgKi8KKworI2lmbmRlZiBfX1JBU19BUk1fSEFORExFUl9ICisjZGVmaW5lIF9f UkFTX0FSTV9IQU5ETEVSX0gKKworI2luY2x1ZGUgInJhcy1ldmVudHMuaCIKKyNpbmNsdWRlICJs aWJ0cmFjZS9ldmVudC1wYXJzZS5oIgorCitpbnQgcmFzX2FybV9ldmVudF9oYW5kbGVyKHN0cnVj dCB0cmFjZV9zZXEgKnMsCisJCQkgc3RydWN0IHBldmVudF9yZWNvcmQgKnJlY29yZCwKKwkJCSBz dHJ1Y3QgZXZlbnRfZm9ybWF0ICpldmVudCwgdm9pZCAqY29udGV4dCk7CisKKyNlbmRpZgpkaWZm IC0tZ2l0IGEvcmFzLWV2ZW50cy5jIGIvcmFzLWV2ZW50cy5jCmluZGV4IDk2YWE2ZjEuLjgxMmQ3 MTIgMTAwNjQ0Ci0tLSBhL3Jhcy1ldmVudHMuYworKysgYi9yYXMtZXZlbnRzLmMKQEAgLTMwLDYg KzMwLDcgQEAKICNpbmNsdWRlICJyYXMtbWMtaGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1hZXIt aGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1ub24tc3RhbmRhcmQtaGFuZGxlci5oIgorI2luY2x1 ZGUgInJhcy1hcm0taGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1tY2UtaGFuZGxlci5oIgogI2lu Y2x1ZGUgInJhcy1leHRsb2ctaGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1yZWNvcmQuaCIKQEAg LTIxMyw2ICsyMTQsMTAgQEAgaW50IHRvZ2dsZV9yYXNfbWNfZXZlbnQoaW50IGVuYWJsZSkKIAly YyB8PSBfX3RvZ2dsZV9yYXNfbWNfZXZlbnQocmFzLCAicmFzIiwgIm5vbl9zdGFuZGFyZF9ldmVu dCIsIGVuYWJsZSk7CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfQVJNCisJcmMgfD0gX190b2dnbGVf cmFzX21jX2V2ZW50KHJhcywgInJhcyIsICJhcm1fZXZlbnQiLCBlbmFibGUpOworI2VuZGlmCisK IGZyZWVfcmFzOgogCWZyZWUocmFzKTsKIAlyZXR1cm4gcmM7CkBAIC02OTEsNiArNjk2LDE2IEBA IGludCBoYW5kbGVfcmFzX2V2ZW50cyhpbnQgcmVjb3JkX2V2ZW50cykKICAgICAgICAgICAgICAg ICAgICAgInJhcyIsICJub25fc3RhbmRhcmRfZXZlbnQiKTsKICNlbmRpZgogCisjaWZkZWYgSEFW RV9BUk0KKyAgICAgICAgcmMgPSBhZGRfZXZlbnRfaGFuZGxlcihyYXMsIHBldmVudCwgcGFnZV9z aXplLCAicmFzIiwgImFybV9ldmVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmFzX2FybV9ldmVudF9oYW5kbGVyKTsKKyAgICAgICAgaWYgKCFyYykKKyAgICAgICAgICAgICAg ICBudW1fZXZlbnRzKys7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2coQUxMLCBM T0dfRVJSLCAiQ2FuJ3QgZ2V0IHRyYWNlcyBmcm9tICVzOiVzXG4iLAorICAgICAgICAgICAgICAg ICAgICAicmFzIiwgImFybV9ldmVudCIpOworI2VuZGlmCisKIAljcHVzID0gZ2V0X251bV9jcHVz KHJhcyk7CiAKICNpZmRlZiBIQVZFX01DRQpkaWZmIC0tZ2l0IGEvcmFzLXJlY29yZC5jIGIvcmFz LXJlY29yZC5jCmluZGV4IDM1N2FiNjEuLjVkZmEwMGYgMTAwNjQ0Ci0tLSBhL3Jhcy1yZWNvcmQu YworKysgYi9yYXMtcmVjb3JkLmMKQEAgLTIwOSw2ICsyMDksNTggQEAgaW50IHJhc19zdG9yZV9u b25fc3RhbmRhcmRfcmVjb3JkKHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCByYXNfbm9u X3N0YW5kYXIKIH0KICNlbmRpZgogCisvKgorICogVGFibGUgYW5kIGZ1bmN0aW9ucyB0byBoYW5k bGUgcmFzOmFybQorICovCisKKyNpZmRlZiBIQVZFX0FSTQorc3RhdGljIGNvbnN0IHN0cnVjdCBk Yl9maWVsZHMgYXJtX2V2ZW50X2ZpZWxkc1tdID0geworCQl7IC5uYW1lPSJpZCIsCQkJLnR5cGU9 IklOVEVHRVIgUFJJTUFSWSBLRVkiIH0sCisJCXsgLm5hbWU9InRpbWVzdGFtcCIsCQkudHlwZT0i VEVYVCIgfSwKKwkJeyAubmFtZT0iZXJyb3JfY291bnQiLAkJLnR5cGU9IklOVEVHRVIiIH0sCisJ CXsgLm5hbWU9ImFmZmluaXR5IiwJCS50eXBlPSJJTlRFR0VSIiB9LAorCQl7IC5uYW1lPSJtcGlk ciIsCQkudHlwZT0iSU5URUdFUiIgfSwKKwkJeyAubmFtZT0icnVubmluZ19zdGF0ZSIsCS50eXBl PSJJTlRFR0VSIiB9LAorCQl7IC5uYW1lPSJwc2NpX3N0YXRlIiwJCS50eXBlPSJJTlRFR0VSIiB9 LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBkYl90YWJsZV9kZXNjcmlwdG9yIGFybV9ldmVu dF90YWIgPSB7CisJLm5hbWUgPSAiYXJtX2V2ZW50IiwKKwkuZmllbGRzID0gYXJtX2V2ZW50X2Zp ZWxkcywKKwkubnVtX2ZpZWxkcyA9IEFSUkFZX1NJWkUoYXJtX2V2ZW50X2ZpZWxkcyksCit9Owor CitpbnQgcmFzX3N0b3JlX2FybV9yZWNvcmQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0 IHJhc19hcm1fZXZlbnQgKmV2KQoreworCWludCByYzsKKwlzdHJ1Y3Qgc3FsaXRlM19wcml2ICpw cml2ID0gcmFzLT5kYl9wcml2OworCisJaWYgKCFwcml2IHx8ICFwcml2LT5zdG10X2FybV9yZWNv cmQpCisJCXJldHVybiAwOworCWxvZyhURVJNLCBMT0dfSU5GTywgImFybV9ldmVudCBzdG9yZTog JXBcbiIsIHByaXYtPnN0bXRfYXJtX3JlY29yZCk7CisKKwlzcWxpdGUzX2JpbmRfdGV4dCAocHJp di0+c3RtdF9hcm1fcmVjb3JkLCAgMSwgIGV2LT50aW1lc3RhbXAsIC0xLCBOVUxMKTsKKwlzcWxp dGUzX2JpbmRfaW50ICAocHJpdi0+c3RtdF9hcm1fcmVjb3JkLCAgMiwgIGV2LT5lcnJvcl9jb3Vu dCk7CisJc3FsaXRlM19iaW5kX2ludCAgKHByaXYtPnN0bXRfYXJtX3JlY29yZCwgIDMsICBldi0+ YWZmaW5pdHkpOworCXNxbGl0ZTNfYmluZF9pbnQgIChwcml2LT5zdG10X2FybV9yZWNvcmQsICA0 LCAgZXYtPm1waWRyKTsKKwlzcWxpdGUzX2JpbmRfaW50ICAocHJpdi0+c3RtdF9hcm1fcmVjb3Jk LCAgNSwgIGV2LT5ydW5uaW5nX3N0YXRlKTsKKwlzcWxpdGUzX2JpbmRfaW50ICAocHJpdi0+c3Rt dF9hcm1fcmVjb3JkLCAgNiwgIGV2LT5wc2NpX3N0YXRlKTsKKworCXJjID0gc3FsaXRlM19zdGVw KHByaXYtPnN0bXRfYXJtX3JlY29yZCk7CisJaWYgKHJjICE9IFNRTElURV9PSyAmJiByYyAhPSBT UUxJVEVfRE9ORSkKKwkJbG9nKFRFUk0sIExPR19FUlIsCisJCSAgICAiRmFpbGVkIHRvIGRvIGFy bV9ldmVudCBzdGVwIG9uIHNxbGl0ZTogZXJyb3IgPSAlZFxuIiwgcmMpOworCXJjID0gc3FsaXRl M19yZXNldChwcml2LT5zdG10X2FybV9yZWNvcmQpOworCWlmIChyYyAhPSBTUUxJVEVfT0sgJiYg cmMgIT0gU1FMSVRFX0RPTkUpCisJCWxvZyhURVJNLCBMT0dfRVJSLAorCQkgICAgIkZhaWxlZCBy ZXNldCBhcm1fZXZlbnQgb24gc3FsaXRlOiBlcnJvciA9ICVkXG4iLAorCQkgICAgcmMpOworCWxv ZyhURVJNLCBMT0dfSU5GTywgInJlZ2lzdGVyIGluc2VydGVkIGF0IGRiXG4iKTsKKworCXJldHVy biByYzsKK30KKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9FWFRMT0cKIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZGJfZmllbGRzIGV4dGxvZ19ldmVudF9maWVsZHNbXSA9IHsKIAkJeyAubmFtZT0iaWQiLAkJ CS50eXBlPSJJTlRFR0VSIFBSSU1BUlkgS0VZIiB9LApkaWZmIC0tZ2l0IGEvcmFzLXJlY29yZC5o IGIvcmFzLXJlY29yZC5oCmluZGV4IDQ3M2FlNDAuLjEyYzIyMTggMTAwNjQ0Ci0tLSBhL3Jhcy1y ZWNvcmQuaAorKysgYi9yYXMtcmVjb3JkLmgKQEAgLTY1LDEwICs2NSwyMSBAQCBzdHJ1Y3QgcmFz X25vbl9zdGFuZGFyZF9ldmVudCB7CiAJdWludDMyX3QgbGVuZ3RoOwogfTsKIAorc3RydWN0IHJh c19hcm1fZXZlbnQgeworCWNoYXIgdGltZXN0YW1wWzY0XTsKKwlpbnQzMl90IGVycm9yX2NvdW50 OworCWludDhfdCBhZmZpbml0eTsKKwlpbnQ2NF90IG1waWRyOworCWludDY0X3QgbWlkcjsKKwlp bnQzMl90IHJ1bm5pbmdfc3RhdGU7CisJaW50MzJfdCBwc2NpX3N0YXRlOworfTsKKwogc3RydWN0 IHJhc19tY19ldmVudDsKIHN0cnVjdCByYXNfYWVyX2V2ZW50Owogc3RydWN0IHJhc19leHRsb2df ZXZlbnQ7CiBzdHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudDsKK3N0cnVjdCByYXNfYXJtX2V2 ZW50Owogc3RydWN0IG1jZV9ldmVudDsKIAogI2lmZGVmIEhBVkVfU1FMSVRFMwpAQCAtOTAsNiAr MTAxLDkgQEAgc3RydWN0IHNxbGl0ZTNfcHJpdiB7CiAjaWZkZWYgSEFWRV9OT05fU1RBTkRBUkQK IAlzcWxpdGUzX3N0bXQJKnN0bXRfbm9uX3N0YW5kYXJkX3JlY29yZDsKICNlbmRpZgorI2lmZGVm IEhBVkVfQVJNCisJc3FsaXRlM19zdG10CSpzdG10X2FybV9yZWNvcmQ7CisjZW5kaWYKIH07CiAK IGludCByYXNfbWNfZXZlbnRfb3BlbmRiKHVuc2lnbmVkIGNwdSwgc3RydWN0IHJhc19ldmVudHMg KnJhcyk7CkBAIC05OCw2ICsxMTIsNyBAQCBpbnQgcmFzX3N0b3JlX2Flcl9ldmVudChzdHJ1Y3Qg cmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX2Flcl9ldmVudCAqZXYpOwogaW50IHJhc19zdG9y ZV9tY2VfcmVjb3JkKHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCBtY2VfZXZlbnQgKmV2 KTsKIGludCByYXNfc3RvcmVfZXh0bG9nX21lbV9yZWNvcmQoc3RydWN0IHJhc19ldmVudHMgKnJh cywgc3RydWN0IHJhc19leHRsb2dfZXZlbnQgKmV2KTsKIGludCByYXNfc3RvcmVfbm9uX3N0YW5k YXJkX3JlY29yZChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX25vbl9zdGFuZGFy ZF9ldmVudCAqZXYpOworaW50IHJhc19zdG9yZV9hcm1fcmVjb3JkKHN0cnVjdCByYXNfZXZlbnRz ICpyYXMsIHN0cnVjdCByYXNfYXJtX2V2ZW50ICpldik7CiAKICNlbHNlCiBzdGF0aWMgaW5saW5l IGludCByYXNfbWNfZXZlbnRfb3BlbmRiKHVuc2lnbmVkIGNwdSwgc3RydWN0IHJhc19ldmVudHMg KnJhcykgeyByZXR1cm4gMDsgfTsKQEAgLTEwNiw2ICsxMjEsNyBAQCBzdGF0aWMgaW5saW5lIGlu dCByYXNfc3RvcmVfYWVyX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCByYXNf YWVyX2V2ZQogc3RhdGljIGlubGluZSBpbnQgcmFzX3N0b3JlX21jZV9yZWNvcmQoc3RydWN0IHJh c19ldmVudHMgKnJhcywgc3RydWN0IG1jZV9ldmVudCAqZXYpIHsgcmV0dXJuIDA7IH07CiBzdGF0 aWMgaW5saW5lIGludCByYXNfc3RvcmVfZXh0bG9nX21lbV9yZWNvcmQoc3RydWN0IHJhc19ldmVu dHMgKnJhcywgc3RydWN0IHJhc19leHRsb2dfZXZlbnQgKmV2KSB7IHJldHVybiAwOyB9Owogc3Rh dGljIGlubGluZSBpbnQgcmFzX3N0b3JlX25vbl9zdGFuZGFyZF9yZWNvcmQoc3RydWN0IHJhc19l dmVudHMgKnJhcywgc3RydWN0IHJhc19ub25fc3RhbmRhcmRfZXZlbnQgKmV2KSB7IHJldHVybiAw OyB9Oworc3RhdGljIGlubGluZSBpbnQgcmFzX3N0b3JlX2FybV9yZWNvcmQoc3RydWN0IHJhc19l dmVudHMgKnJhcywgc3RydWN0IHJhc19hcm1fZXZlbnQgKmV2KSB7IHJldHVybiAwOyB9OwogCiAj ZW5kaWYKIApkaWZmIC0tZ2l0IGEvcmFzLXJlcG9ydC5jIGIvcmFzLXJlcG9ydC5jCmluZGV4IDFl YjlmNzkuLmQ0YmVlZTAgMTAwNjQ0Ci0tLSBhL3Jhcy1yZXBvcnQuYworKysgYi9yYXMtcmVwb3J0 LmMKQEAgLTIyOCw2ICsyMjgsMzMgQEAgc3RhdGljIGludCBzZXRfbm9uX3N0YW5kYXJkX2V2ZW50 X2JhY2t0cmFjZShjaGFyICpidWYsIHN0cnVjdCByYXNfbm9uX3N0YW5kYXJkX2UKIAlyZXR1cm4g MDsKIH0KIAorc3RhdGljIGludCBzZXRfYXJtX2V2ZW50X2JhY2t0cmFjZShjaGFyICpidWYsIHN0 cnVjdCByYXNfYXJtX2V2ZW50ICpldil7CisJY2hhciBidF9idWZbTUFYX0JBQ0tUUkFDRV9TSVpF XTsKKworCWlmKCFidWYgfHwgIWV2KQorCQlyZXR1cm4gLTE7CisKKwlzcHJpbnRmKGJ0X2J1Ziwg IkJBQ0tUUkFDRT0iICAgIFwKKwkJCQkJCSJ0aW1lc3RhbXA9JXNcbiIJXAorCQkJCQkJImVycm9y X2NvdW50PSVkXG4iCVwKKwkJCQkJCSJhZmZpbml0eT0lZFxuIglcCisJCQkJCQkibXBpZHI9MHgl bHhcbiIJXAorCQkJCQkJIm1pZHI9MHglbHhcbiIJXAorCQkJCQkJInJ1bm5pbmdfc3RhdGU9JWRc biIJXAorCQkJCQkJInBzY2lfc3RhdGU9JWRcbiIsCVwKKwkJCQkJCWV2LT50aW1lc3RhbXAsCVwK KwkJCQkJCWV2LT5lcnJvcl9jb3VudCwJXAorCQkJCQkJZXYtPmFmZmluaXR5LAlcCisJCQkJCQll di0+bXBpZHIsCVwKKwkJCQkJCWV2LT5taWRyLAlcCisJCQkJCQlldi0+cnVubmluZ19zdGF0ZSwJ XAorCQkJCQkJZXYtPnBzY2lfc3RhdGUpOworCisJc3RyY2F0KGJ1ZiwgYnRfYnVmKTsKKworCXJl dHVybiAwOworfQorCiBzdGF0aWMgaW50IGNvbW1pdF9yZXBvcnRfYmFja3RyYWNlKGludCBzb2Nr ZmQsIGludCB0eXBlLCB2b2lkICpldil7CiAJY2hhciBidWZbTUFYX0JBQ0tUUkFDRV9TSVpFXTsK IAljaGFyICpwYnVmID0gYnVmOwpAQCAtMjUzLDYgKzI4MCw5IEBAIHN0YXRpYyBpbnQgY29tbWl0 X3JlcG9ydF9iYWNrdHJhY2UoaW50IHNvY2tmZCwgaW50IHR5cGUsIHZvaWQgKmV2KXsKIAljYXNl IE5PTl9TVEFOREFSRF9FVkVOVDoKIAkJcmMgPSBzZXRfbm9uX3N0YW5kYXJkX2V2ZW50X2JhY2t0 cmFjZShidWYsIChzdHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudCAqKWV2KTsKIAkJYnJlYWs7 CisJY2FzZSBBUk1fRVZFTlQ6CisJCXJjID0gc2V0X2FybV9ldmVudF9iYWNrdHJhY2UoYnVmLCAo c3RydWN0IHJhc19hcm1fZXZlbnQgKilldik7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVy biAtMTsKIAl9CkBAIC00MjUsNiArNDU1LDUxIEBAIG5vbl9zdGFuZGFyZF9mYWlsOgogCXJldHVy biByYzsKIH0KIAoraW50IHJhc19yZXBvcnRfYXJtX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpy YXMsIHN0cnVjdCByYXNfYXJtX2V2ZW50ICpldil7CisJY2hhciBidWZbTUFYX01FU1NBR0VfU0la RV07CisJaW50IHNvY2tmZCA9IDA7CisJaW50IHJjID0gLTE7CisKKwltZW1zZXQoYnVmLCAwLCBz aXplb2YoYnVmKSk7CisKKwlzb2NrZmQgPSBzZXR1cF9yZXBvcnRfc29ja2V0KCk7CisJaWYoc29j a2ZkIDwgMCl7CisJCXJldHVybiByYzsKKwl9CisKKwlyYyA9IGNvbW1pdF9yZXBvcnRfYmFzaWMo c29ja2ZkKTsKKwlpZihyYyA8IDApeworCQlnb3RvIGFybV9mYWlsOworCX0KKworCXJjID0gY29t bWl0X3JlcG9ydF9iYWNrdHJhY2Uoc29ja2ZkLCBBUk1fRVZFTlQsIGV2KTsKKwlpZihyYyA8IDAp eworCQlnb3RvIGFybV9mYWlsOworCX0KKworCXNwcmludGYoYnVmLCAiQU5BTFlaRVI9JXMiLCAi cmFzZGFlbW9uLWFybSIpOworCXJjID0gd3JpdGUoc29ja2ZkLCBidWYsIHN0cmxlbihidWYpICsg MSk7CisJaWYocmMgPCBzdHJsZW4oYnVmKSArIDEpeworCQlnb3RvIGFybV9mYWlsOworCX0KKwor CXNwcmludGYoYnVmLCAiUkVBU09OPSVzIiwgIkFSTSBDUFUgcmVwb3J0IHByb2JsZW0iKTsKKwly YyA9IHdyaXRlKHNvY2tmZCwgYnVmLCBzdHJsZW4oYnVmKSArIDEpOworCWlmKHJjIDwgc3RybGVu KGJ1ZikgKyAxKXsKKwkJZ290byBhcm1fZmFpbDsKKwl9CisKKwlyYyA9IDA7CisKK2FybV9mYWls OgorCisJaWYoc29ja2ZkID4gMCl7CisJCWNsb3NlKHNvY2tmZCk7CisJfQorCisJcmV0dXJuIHJj OworfQorCiBpbnQgcmFzX3JlcG9ydF9tY2VfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJhcywg c3RydWN0IG1jZV9ldmVudCAqZXYpewogCWNoYXIgYnVmW01BWF9NRVNTQUdFX1NJWkVdOwogCWlu dCBzb2NrZmQgPSAwOwpkaWZmIC0tZ2l0IGEvcmFzLXJlcG9ydC5oIGIvcmFzLXJlcG9ydC5oCmlu ZGV4IGMyZmNmNDIuLjZjNDY2ZjUgMTAwNjQ0Ci0tLSBhL3Jhcy1yZXBvcnQuaAorKysgYi9yYXMt cmVwb3J0LmgKQEAgLTMzLDcgKzMzLDggQEAgZW51bSB7CiAJTUNfRVZFTlQsCiAJTUNFX0VWRU5U LAogCUFFUl9FVkVOVCwKLQlOT05fU1RBTkRBUkRfRVZFTlQKKwlOT05fU1RBTkRBUkRfRVZFTlQs CisJQVJNX0VWRU5UCiB9OwogCiAjaWZkZWYgSEFWRV9BQlJUX1JFUE9SVApAQCAtNDIsNiArNDMs NyBAQCBpbnQgcmFzX3JlcG9ydF9tY19ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1 Y3QgcmFzX21jX2V2ZW50ICpldik7CiBpbnQgcmFzX3JlcG9ydF9hZXJfZXZlbnQoc3RydWN0IHJh c19ldmVudHMgKnJhcywgc3RydWN0IHJhc19hZXJfZXZlbnQgKmV2KTsKIGludCByYXNfcmVwb3J0 X21jZV9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgbWNlX2V2ZW50ICpldik7 CiBpbnQgcmFzX3JlcG9ydF9ub25fc3RhbmRhcmRfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJh cywgc3RydWN0IHJhc19ub25fc3RhbmRhcmRfZXZlbnQgKmV2KTsKK2ludCByYXNfcmVwb3J0X2Fy bV9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX2FybV9ldmVudCAqZXYp OwogCiAjZWxzZQogCkBAIC00OSw2ICs1MSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHJhc19yZXBv cnRfbWNfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJhc19tY19ldmVuCiBz dGF0aWMgaW5saW5lIGludCByYXNfcmVwb3J0X2Flcl9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAq cmFzLCBzdHJ1Y3QgcmFzX2Flcl9ldmVudCAqZXYpIHsgcmV0dXJuIDA7IH07CiBzdGF0aWMgaW5s aW5lIGludCByYXNfcmVwb3J0X21jZV9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1 Y3QgbWNlX2V2ZW50ICpldikgeyByZXR1cm4gMDsgfTsKIHN0YXRpYyBpbmxpbmUgaW50IHJhc19y ZXBvcnRfbm9uX3N0YW5kYXJkX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCBy YXNfbm9uX3N0YW5kYXJkX2V2ZW50ICpldikgeyByZXR1cm4gMDsgfTsKK3N0YXRpYyBpbmxpbmUg aW50IHJhc19yZXBvcnRfYXJtX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCBy YXNfYXJtX2V2ZW50ICpldikgeyByZXR1cm4gMDsgfTsKIAogI2VuZGlmCiAK