From mboxrd@z Thu Jan 1 00:00:00 1970 From: Corneliu ZUZU Subject: [PATCH 05/16] x86/monitor: relocate code more appropriately Date: Sat, 9 Jul 2016 07:15:07 +0300 Message-ID: <1468037707-6663-1-git-send-email-czuzu@bitdefender.com> References: <1468037509-6428-1-git-send-email-czuzu@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1468037509-6428-1-git-send-email-czuzu@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Tamas K Lengyel , Jan Beulich , Razvan Cojocaru , Andrew Cooper , Jun Nakajima List-Id: xen-devel@lists.xenproject.org Rm9yIHJlYWRhYmlsaXR5OgoKKiBBZGQgZnVuY3Rpb24gbW9uaXRvcl9jdHJscmVnX3dyaXRlX2Rh dGEoKSAoaW4geDg2L21vbml0b3IuYykgYW5kIHNlcGFyYXRlCmhhbmRsaW5nIG9mIG1vbml0b3Jf d3JpdGVfZGF0YSB0aGVyZSAocHJldmlvdXNseSBkb25lIGRpcmVjdGx5IGluCmh2bV9kb19yZXN1 bWUoKSkuCgoqIFNlcGFyYXRlIGVuYWJsaW5nL2Rpc2FibGluZyBvZiBDUFVfQkFTRURfQ1IzX0xP QURfRVhJVElORyBmb3IgQ1IzIG1vbml0b3IKdm0tZXZlbnRzIGZyb20gQ1IwIG5vZGUgQCB2bXhf dXBkYXRlX2d1ZXN0X2NyKHYsIDApIGludG8gbmV3bHkgYWRkZWQgZnVuY3Rpb24Kdm14X3ZtX2V2 ZW50X3VwZGF0ZV9jcjNfdHJhcHMoZCk7IGFsc28sIGZvciBhIGJldHRlciBpbnRlcmZhY2UsIGNy ZWF0ZSBnZW5lcmljCmZ1bmN0aW9ucyBtb25pdG9yX2N0cmxyZWdfYWRqdXN0X3RyYXBzKCkgYW5k IG1vbml0b3JfY3RybHJlZ19kaXNhYmxlX3RyYXBzKCkgKGluCng4Ni9tb25pdG9yLmMpIHdoaWNo IGRlYWwgd2l0aCBzZXR0aW5nL3Vuc2V0dGluZyBhbnkgdHJhcHMgZm9yIGNyLXdyaXRlIG1vbml0 b3IKdm0tZXZlbnRzLgoKU2lnbmVkLW9mZi1ieTogQ29ybmVsaXUgWlVaVSA8Y3p1enVAYml0ZGVm ZW5kZXIuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICB8IDQ2ICsr KysrKysrKystLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAgICAg ICAgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9t b25pdG9yLmMgICAgICAgICAgICB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZteC5oIHwgIDEgKwogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9tb25pdG9yLmggICAgIHwgIDIgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTM1 IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDdmOTkwODcuLjc5YmEx ODUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwpAQCAtNDczLDggKzQ3Myw2IEBAIHZvaWQgaHZtX2RvX3Jlc3VtZShzdHJ1Y3Qg dmNwdSAqdikKIAogICAgIGlmICggdW5saWtlbHkodi0+YXJjaC52bV9ldmVudCkgKQogICAgIHsK LSAgICAgICAgc3RydWN0IG1vbml0b3Jfd3JpdGVfZGF0YSAqdyA9ICZ2LT5hcmNoLnZtX2V2ZW50 LT53cml0ZV9kYXRhOwotCiAgICAgICAgIGlmICggdW5saWtlbHkodi0+YXJjaC52bV9ldmVudC0+ ZW11bGF0ZV9mbGFncykgKQogICAgICAgICB7CiAgICAgICAgICAgICBlbnVtIGVtdWxfa2luZCBr aW5kID0gRU1VTF9LSU5EX05PUk1BTDsKQEAgLTQ5MiwyOSArNDkwLDcgQEAgdm9pZCBodm1fZG9f cmVzdW1lKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICAgdi0+YXJjaC52bV9ldmVudC0+ZW11 bGF0ZV9mbGFncyA9IDA7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIHctPmRvX3dyaXRlLm1z ciApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGh2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHctPm1z ciwgdy0+dmFsdWUsIDApOwotICAgICAgICAgICAgdy0+ZG9fd3JpdGUubXNyID0gMDsKLSAgICAg ICAgfQotCi0gICAgICAgIGlmICggdy0+ZG9fd3JpdGUuY3IwICkKLSAgICAgICAgewotICAgICAg ICAgICAgaHZtX3NldF9jcjAody0+Y3IwLCAwKTsKLSAgICAgICAgICAgIHctPmRvX3dyaXRlLmNy MCA9IDA7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIHctPmRvX3dyaXRlLmNyNCApCi0gICAg ICAgIHsKLSAgICAgICAgICAgIGh2bV9zZXRfY3I0KHctPmNyNCwgMCk7Ci0gICAgICAgICAgICB3 LT5kb193cml0ZS5jcjQgPSAwOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCB3LT5kb193cml0 ZS5jcjMgKQotICAgICAgICB7Ci0gICAgICAgICAgICBodm1fc2V0X2NyMyh3LT5jcjMsIDApOwot ICAgICAgICAgICAgdy0+ZG9fd3JpdGUuY3IzID0gMDsKLSAgICAgICAgfQorICAgICAgICBtb25p dG9yX2N0cmxyZWdfd3JpdGVfZGF0YSh2KTsKICAgICB9CiAKICAgICAvKiBJbmplY3QgcGVuZGlu ZyBody9zdyB0cmFwICovCkBAIC0yMjA0LDcgKzIxODAsMTAgQEAgaW50IGh2bV9zZXRfY3IwKHVu c2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVmZXIpCiAKICAgICAgICAgaWYgKCBodm1f bW9uaXRvcl9jclgoQ1IwLCB2YWx1ZSwgb2xkX3ZhbHVlKSApCiAgICAgICAgIHsKLSAgICAgICAg ICAgIC8qIFRoZSBhY3R1YWwgd3JpdGUgd2lsbCBvY2N1ciBpbiBodm1fZG9fcmVzdW1lKCksIGlm IHBlcm1pdHRlZC4gKi8KKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaGUgYWN0dWFs IHdyaXRlIHdpbGwgb2NjdXIgaW4gbW9uaXRvcl9jdHJscmVnX3dyaXRlX2RhdGEoKSwgaWYKKyAg ICAgICAgICAgICAqIHBlcm1pdHRlZC4KKyAgICAgICAgICAgICAqLwogICAgICAgICAgICAgdi0+ YXJjaC52bV9ldmVudC0+d3JpdGVfZGF0YS5kb193cml0ZS5jcjAgPSAxOwogICAgICAgICAgICAg di0+YXJjaC52bV9ldmVudC0+d3JpdGVfZGF0YS5jcjAgPSB2YWx1ZTsKIApAQCAtMjMwNiw3ICsy Mjg1LDEwIEBAIGludCBodm1fc2V0X2NyMyh1bnNpZ25lZCBsb25nIHZhbHVlLCBib29sX3QgbWF5 X2RlZmVyKQogCiAgICAgICAgIGlmICggaHZtX21vbml0b3JfY3JYKENSMywgdmFsdWUsIG9sZCkg KQogICAgICAgICB7Ci0gICAgICAgICAgICAvKiBUaGUgYWN0dWFsIHdyaXRlIHdpbGwgb2NjdXIg aW4gaHZtX2RvX3Jlc3VtZSgpLCBpZiBwZXJtaXR0ZWQuICovCisgICAgICAgICAgICAvKgorICAg ICAgICAgICAgICogVGhlIGFjdHVhbCB3cml0ZSB3aWxsIG9jY3VyIGluIG1vbml0b3JfY3RybHJl Z193cml0ZV9kYXRhKCksIGlmCisgICAgICAgICAgICAgKiBwZXJtaXR0ZWQuCisgICAgICAgICAg ICAgKi8KICAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPndyaXRlX2RhdGEuZG9fd3JpdGUu Y3IzID0gMTsKICAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPndyaXRlX2RhdGEuY3IzID0g dmFsdWU7CiAKQEAgLTIzODYsNyArMjM2OCwxMCBAQCBpbnQgaHZtX3NldF9jcjQodW5zaWduZWQg bG9uZyB2YWx1ZSwgYm9vbF90IG1heV9kZWZlcikKIAogICAgICAgICBpZiAoIGh2bV9tb25pdG9y X2NyWChDUjQsIHZhbHVlLCBvbGRfY3IpICkKICAgICAgICAgewotICAgICAgICAgICAgLyogVGhl IGFjdHVhbCB3cml0ZSB3aWxsIG9jY3VyIGluIGh2bV9kb19yZXN1bWUoKSwgaWYgcGVybWl0dGVk LiAqLworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFRoZSBhY3R1YWwgd3JpdGUgd2ls bCBvY2N1ciBpbiBtb25pdG9yX2N0cmxyZWdfd3JpdGVfZGF0YSgpLCBpZgorICAgICAgICAgICAg ICogcGVybWl0dGVkLgorICAgICAgICAgICAgICovCiAgICAgICAgICAgICB2LT5hcmNoLnZtX2V2 ZW50LT53cml0ZV9kYXRhLmRvX3dyaXRlLmNyNCA9IDE7CiAgICAgICAgICAgICB2LT5hcmNoLnZt X2V2ZW50LT53cml0ZV9kYXRhLmNyNCA9IHZhbHVlOwogCkBAIC0zNzY1LDcgKzM3NTAsMTAgQEAg aW50IGh2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1z cl9jb250ZW50LAogICAgIHsKICAgICAgICAgQVNTRVJUKHYtPmFyY2gudm1fZXZlbnQpOwogCi0g ICAgICAgIC8qIFRoZSBhY3R1YWwgd3JpdGUgd2lsbCBvY2N1ciBpbiBodm1fZG9fcmVzdW1lKCkg KGlmIHBlcm1pdHRlZCkuICovCisgICAgICAgIC8qCisgICAgICAgICAqIFRoZSBhY3R1YWwgd3Jp dGUgd2lsbCBvY2N1ciBpbiBtb25pdG9yX2N0cmxyZWdfd3JpdGVfZGF0YSgpLCBpZgorICAgICAg ICAgKiBwZXJtaXR0ZWQuCisgICAgICAgICAqLwogICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT53 cml0ZV9kYXRhLmRvX3dyaXRlLm1zciA9IDE7CiAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPndy aXRlX2RhdGEubXNyID0gbXNyOwogICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT53cml0ZV9kYXRh LnZhbHVlID0gbXNyX2NvbnRlbnQ7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCmluZGV4IDA3OTgyNDUuLjdhMzE1ODIg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9odm0vdm14L3ZteC5jCkBAIC0xNDQxLDExICsxNDQxLDYgQEAgc3RhdGljIHZvaWQgdm14X3Vw ZGF0ZV9ndWVzdF9jcihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGNyKQogICAgICAgICAg ICAgaWYgKCAhaHZtX3BhZ2luZ19lbmFibGVkKHYpICYmICF2bXhfdW5yZXN0cmljdGVkX2d1ZXN0 KHYpICkKICAgICAgICAgICAgICAgICB2LT5hcmNoLmh2bV92bXguZXhlY19jb250cm9sIHw9IGNy M19jdGxzOwogCi0gICAgICAgICAgICAvKiBUcmFwIENSMyB1cGRhdGVzIGlmIENSMyBtZW1vcnkg ZXZlbnRzIGFyZSBlbmFibGVkLiAqLwotICAgICAgICAgICAgaWYgKCB2LT5kb21haW4tPmFyY2gu bW9uaXRvci53cml0ZV9jdHJscmVnX2VuYWJsZWQgJgotICAgICAgICAgICAgICAgICBtb25pdG9y X2N0cmxyZWdfYml0bWFzayhWTV9FVkVOVF9YODZfQ1IzKSApCi0gICAgICAgICAgICAgICAgdi0+ YXJjaC5odm1fdm14LmV4ZWNfY29udHJvbCB8PSBDUFVfQkFTRURfQ1IzX0xPQURfRVhJVElORzsK LQogICAgICAgICAgICAgaWYgKCBvbGRfY3RscyAhPSB2LT5hcmNoLmh2bV92bXguZXhlY19jb250 cm9sICkKICAgICAgICAgICAgICAgICB2bXhfdXBkYXRlX2NwdV9leGVjX2NvbnRyb2wodik7CiAg ICAgICAgIH0KQEAgLTM4OTgsNiArMzg5Myw2MCBAQCB2b2lkIHZteF92bWVudGVyX2hlbHBlcihj b25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIH0KIAogLyoKKyAqIEFkanVzdHMgZG9t YWluIENSMyBsb2FkLWV4aXRpbmcgZXhlY3V0aW9uIGNvbnRyb2wgZm9yIENSMy13cml0ZSBtb25p dG9yCisgKiB2bS1ldmVudC4KKyAqLwordm9pZCB2bXhfdm1fZXZlbnRfdXBkYXRlX2NyM190cmFw cyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHN0cnVjdCB2Y3B1ICp2OworICAgIHN0 cnVjdCBhcmNoX3ZteF9zdHJ1Y3QgKmF2bXg7CisgICAgdW5zaWduZWQgaW50IGNyM19iaXRtYXNr OworICAgIGJvb2xfdCBjcjNfdm1ldmVudCwgY3IzX2xkZXhpdDsKKworICAgIC8qIERvbWFpbiBt dXN0IGJlIHBhdXNlZC4gKi8KKyAgICBBU1NFUlQoYXRvbWljX3JlYWQoJmQtPnBhdXNlX2NvdW50 KSk7CisKKyAgICAvKiBOb24taGFwIGRvbWFpbnMgdHJhcCBDUjMgd3JpdGVzIHVuY29uZGl0aW9u YWxseS4gKi8KKyAgICBpZiAoICFwYWdpbmdfbW9kZV9oYXAoZCkgKQorICAgIHsKKyNpZm5kZWYg TkRFQlVHCisgICAgICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKKyAgICAgICAgICAgIEFTU0VS VCh2LT5hcmNoLmh2bV92bXguZXhlY19jb250cm9sICYgQ1BVX0JBU0VEX0NSM19MT0FEX0VYSVRJ TkcpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjcjNfYml0bWFzayA9 IG1vbml0b3JfY3RybHJlZ19iaXRtYXNrKFZNX0VWRU5UX1g4Nl9DUjMpOworICAgIGNyM192bWV2 ZW50ID0gISEoZC0+YXJjaC5tb25pdG9yLndyaXRlX2N0cmxyZWdfZW5hYmxlZCAmIGNyM19iaXRt YXNrKTsKKworICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKKyAgICB7CisgICAgICAgIGF2bXgg PSAmdi0+YXJjaC5odm1fdm14OworICAgICAgICBjcjNfbGRleGl0ID0gISEoYXZteC0+ZXhlY19j b250cm9sICYgQ1BVX0JBU0VEX0NSM19MT0FEX0VYSVRJTkcpOworCisgICAgICAgIGlmICggY3Iz X3ZtZXZlbnQgPT0gY3IzX2xkZXhpdCApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg ICAvKgorICAgICAgICAgKiBJZiBkb21haW4gcGFnaW5nIGlzIGRpc2FibGVkIChDUjAuUEc9MCkg YW5kCisgICAgICAgICAqIHRoZSBkb21haW4gaXMgbm90IGluIHJlYWwtbW9kZSwgdGhlbiBDUjMg bG9hZC1leGl0aW5nCisgICAgICAgICAqIG11c3QgcmVtYWluIGVuYWJsZWQgKHNlZSB2bXhfdXBk YXRlX2d1ZXN0X2NyKHYsIGNyKSB3aGVuIGNyID0gMCkuCisgICAgICAgICAqLworICAgICAgICBp ZiAoIGNyM19sZGV4aXQgJiYgIWh2bV9wYWdpbmdfZW5hYmxlZCh2KSAmJiAhdm14X3VucmVzdHJp Y3RlZF9ndWVzdCh2KSApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIGNy M192bWV2ZW50ICkKKyAgICAgICAgICAgIGF2bXgtPmV4ZWNfY29udHJvbCB8PSBDUFVfQkFTRURf Q1IzX0xPQURfRVhJVElORzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXZteC0+ZXhlY19j b250cm9sICY9IH5DUFVfQkFTRURfQ1IzX0xPQURfRVhJVElORzsKKworICAgICAgICB2bXhfdm1j c19lbnRlcih2KTsKKyAgICAgICAgdm14X3VwZGF0ZV9jcHVfZXhlY19jb250cm9sKHYpOworICAg ICAgICB2bXhfdm1jc19leGl0KHYpOworICAgIH0KK30KKworLyoKICAqIExvY2FsIHZhcmlhYmxl czoKICAqIG1vZGU6IEMKICAqIGMtZmlsZS1zdHlsZTogIkJTRCIKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9tb25pdG9yLmMgYi94ZW4vYXJjaC94ODYvbW9uaXRvci5jCmluZGV4IDA2ZDIxYjEu LjI5MTg4ZTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tb25pdG9yLmMKKysrIGIveGVuL2Fy Y2gveDg2L21vbml0b3IuYwpAQCAtMTksMTAgKzE5LDM5IEBACiAgKiBMaWNlbnNlIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCiAgKi8KIAorI2luY2x1ZGUgPGFzbS9odm0vdm14L3ZteC5oPgogI2luY2x1ZGUgPGFzbS9t b25pdG9yLmg+CiAjaW5jbHVkZSA8YXNtL3ZtX2V2ZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL3Zt X2V2ZW50Lmg+CiAKK3N0YXRpYyBpbmxpbmUKK3ZvaWQgbW9uaXRvcl9jdHJscmVnX2FkanVzdF90 cmFwcyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaW5kZXgpCit7CisgICAgLyogRm9y IG5vdywgVk1YIG9ubHkuICovCisgICAgQVNTRVJUKGNwdV9oYXNfdm14KTsKKworICAgIC8qIE90 aGVyIENScyB0aGFuIENSMyBhcmUgYWx3YXlzIHRyYXBwZWQuICovCisgICAgaWYgKCBWTV9FVkVO VF9YODZfQ1IzID09IGluZGV4ICkKKyAgICAgICAgdm14X3ZtX2V2ZW50X3VwZGF0ZV9jcjNfdHJh cHMoZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBtb25pdG9yX2N0cmxyZWdfZGlzYWJsZV90 cmFwcyhzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHVuc2lnbmVkIGludCBvbGQgPSBkLT5hcmNo Lm1vbml0b3Iud3JpdGVfY3RybHJlZ19lbmFibGVkOworCisgICAgZC0+YXJjaC5tb25pdG9yLndy aXRlX2N0cmxyZWdfZW5hYmxlZCA9IDA7CisKKyAgICBpZiAoIG9sZCApCisgICAgeworICAgICAg ICAvKiBGb3Igbm93LCBWTVggb25seS4gKi8KKyAgICAgICAgQVNTRVJUKGNwdV9oYXNfdm14KTsK KworICAgICAgICAvKiBXYXMgQ1IzIGxvYWQtZXhpdGluZyBlbmFibGVkIGR1ZSB0byBtb25pdG9y aW5nPyAqLworICAgICAgICBpZiAoIG9sZCAmIG1vbml0b3JfY3RybHJlZ19iaXRtYXNrKFZNX0VW RU5UX1g4Nl9DUjMpICkKKyAgICAgICAgICAgIHZteF92bV9ldmVudF91cGRhdGVfY3IzX3RyYXBz KGQpOworICAgIH0KK30KKwogaW50IG1vbml0b3JfaW5pdF9kb21haW4oc3RydWN0IGRvbWFpbiAq ZCkKIHsKICAgICBpZiAoICFkLT5hcmNoLm1vbml0b3IubXNyX2JpdG1hcCApCkBAIC0zOCw2ICs2 Nyw4IEBAIHZvaWQgbW9uaXRvcl9jbGVhbnVwX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQogewog ICAgIHhmcmVlKGQtPmFyY2gubW9uaXRvci5tc3JfYml0bWFwKTsKIAorICAgIG1vbml0b3JfY3Ry bHJlZ19kaXNhYmxlX3RyYXBzKGQpOworCiAgICAgbWVtc2V0KCZkLT5hcmNoLm1vbml0b3IsIDAs IHNpemVvZihkLT5hcmNoLm1vbml0b3IpKTsKICAgICBtZW1zZXQoJmQtPm1vbml0b3IsIDAsIHNp emVvZihkLT5tb25pdG9yKSk7CiB9CkBAIC03OSw2ICsxMTAsMzUgQEAgdm9pZCBtb25pdG9yX2N0 cmxyZWdfd3JpdGVfcmVzdW1lKHN0cnVjdCB2Y3B1ICp2LCB2bV9ldmVudF9yZXNwb25zZV90ICpy c3ApCiAgICAgfQogfQogCit2b2lkIG1vbml0b3JfY3RybHJlZ193cml0ZV9kYXRhKHN0cnVjdCB2 Y3B1ICp2KQoreworICAgIHN0cnVjdCBtb25pdG9yX3dyaXRlX2RhdGEgKncgPSAmdi0+YXJjaC52 bV9ldmVudC0+d3JpdGVfZGF0YTsKKworICAgIGlmICggdy0+ZG9fd3JpdGUubXNyICkKKyAgICB7 CisgICAgICAgIGh2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHctPm1zciwgdy0+dmFsdWUsIDApOwor ICAgICAgICB3LT5kb193cml0ZS5tc3IgPSAwOworICAgIH0KKworICAgIGlmICggdy0+ZG9fd3Jp dGUuY3IwICkKKyAgICB7CisgICAgICAgIGh2bV9zZXRfY3IwKHctPmNyMCwgMCk7CisgICAgICAg IHctPmRvX3dyaXRlLmNyMCA9IDA7CisgICAgfQorCisgICAgaWYgKCB3LT5kb193cml0ZS5jcjQg KQorICAgIHsKKyAgICAgICAgaHZtX3NldF9jcjQody0+Y3I0LCAwKTsKKyAgICAgICAgdy0+ZG9f d3JpdGUuY3I0ID0gMDsKKyAgICB9CisKKyAgICBpZiAoIHctPmRvX3dyaXRlLmNyMyApCisgICAg eworICAgICAgICBodm1fc2V0X2NyMyh3LT5jcjMsIDApOworICAgICAgICB3LT5kb193cml0ZS5j cjMgPSAwOworICAgIH0KK30KKwogc3RhdGljIHVuc2lnbmVkIGxvbmcgKm1vbml0b3JfYml0bWFw X2Zvcl9tc3IoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgdTMyICptc3IpCiB7CiAgICAgQVNTRVJU KGQtPmFyY2gubW9uaXRvci5tc3JfYml0bWFwICYmIG1zcik7CkBAIC0xOTcsMTMgKzI1Nyw3IEBA IGludCBhcmNoX21vbml0b3JfZG9tY3RsX2V2ZW50KHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAg IGVsc2UKICAgICAgICAgICAgIGFkLT5tb25pdG9yLndyaXRlX2N0cmxyZWdfZW5hYmxlZCAmPSB+ Y3RybHJlZ19iaXRtYXNrOwogCi0gICAgICAgIGlmICggVk1fRVZFTlRfWDg2X0NSMyA9PSBtb3At PnUubW92X3RvX2NyLmluZGV4ICkKLSAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IHZjcHUg KnY7Ci0gICAgICAgICAgICAvKiBMYXRjaGVzIG5ldyBDUjMgbWFzayB0aHJvdWdoIENSMCBjb2Rl LiAqLwotICAgICAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQotICAgICAgICAgICAgICAg IGh2bV91cGRhdGVfZ3Vlc3RfY3IodiwgMCk7Ci0gICAgICAgIH0KKyAgICAgICAgbW9uaXRvcl9j dHJscmVnX2FkanVzdF90cmFwcyhkLCBtb3AtPnUubW92X3RvX2NyLmluZGV4KTsKIAogICAgICAg ICBkb21haW5fdW5wYXVzZShkKTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vdm14L3ZteC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZteC5oCmluZGV4IDM1 OWIyYTkuLjMwMWRmNTYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92 bXguaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm14LmgKQEAgLTEwMSw2ICsx MDEsNyBAQCB2b2lkIHZteF91cGRhdGVfZGVidWdfc3RhdGUoc3RydWN0IHZjcHUgKnYpOwogdm9p ZCB2bXhfdXBkYXRlX2V4Y2VwdGlvbl9iaXRtYXAoc3RydWN0IHZjcHUgKnYpOwogdm9pZCB2bXhf dXBkYXRlX2NwdV9leGVjX2NvbnRyb2woc3RydWN0IHZjcHUgKnYpOwogdm9pZCB2bXhfdXBkYXRl X3NlY29uZGFyeV9leGVjX2NvbnRyb2woc3RydWN0IHZjcHUgKnYpOwordm9pZCB2bXhfdm1fZXZl bnRfdXBkYXRlX2NyM190cmFwcyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkKTsKIAogI2RlZmluZSBQ T1NURURfSU5UUl9PTiAgMAogI2RlZmluZSBQT1NURURfSU5UUl9TTiAgMQpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9tb25pdG9yLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21vbml0 b3IuaAppbmRleCBhZGNhMzc4Li4zYWUyNGRkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20t eDg2L21vbml0b3IuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21vbml0b3IuaApAQCAtOTMs NiArOTMsOCBAQCB2b2lkIG1vbml0b3JfY2xlYW51cF9kb21haW4oc3RydWN0IGRvbWFpbiAqZCk7 CiAKIHZvaWQgbW9uaXRvcl9jdHJscmVnX3dyaXRlX3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdiwgdm1f ZXZlbnRfcmVzcG9uc2VfdCAqcnNwKTsKIAordm9pZCBtb25pdG9yX2N0cmxyZWdfd3JpdGVfZGF0 YShzdHJ1Y3QgdmNwdSAqdik7CisKIGJvb2xfdCBtb25pdG9yZWRfbXNyKGNvbnN0IHN0cnVjdCBk b21haW4gKmQsIHUzMiBtc3IpOwogCiAjZW5kaWYgLyogX19BU01fWDg2X01PTklUT1JfSF9fICov Ci0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=