From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 06/11] x86: Reorganise and rename debug register fields in struct vcpu Date: Mon, 4 Jun 2018 14:59:10 +0100 Message-ID: <1528120755-17455-7-git-send-email-andrew.cooper3@citrix.com> References: <1528120755-17455-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1528120755-17455-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Kevin Tian , Wei Liu , Jan Beulich , Andrew Cooper , Jun Nakajima , Boris Ostrovsky , Brian Woods , Suravee Suthikulpanit , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org UmV1c2luZyBkZWJ1Z3JlZ1s1XSBmb3IgdGhlIFBWIGVtdWxhdGVkIElPIGJyZWFrcG9pbnQgaW5m b3JtYXRpb24gaXMgY29uZnVzaW5nCnRvIHJlYWQuICBJbnN0ZWFkLCBpbnRyb2R1Y2UgYSBkcjdf ZW11bCBmaWVsZCBpbiBwdl92Y3B1IGZvciB0aGUgcHVwb3NlLgoKV2l0aCB0aGUgUFYgZW11bGF0 aW9uIG91dCBvZiB0aGUgd2F5LCBkZWJ1Z3JlZ1s0LDVdIGFyZSBlbnRpcmVseSB1bnVzZWQgYW5k CmRvbid0IG5lZWQgdG8gYmUgc3RvcmVkLgoKUmVuYW1lIGRlYnVncmVnWzAuLjNdIHRvIGRyWzAu LjNdIHRvIHJlZHVjZSBjb2RlIHZvbHVtZSwgYnV0IGtlZXAgdGhlbSBhcyBhbgphcnJheSBiZWNh dXNlIHRoZWlyIGJlaGF2aW91ciBpcyBpZGVudGljYWwgYW5kIHRoaXMgaGVscHMgc2ltcGxmeSBz b21lIG9mIHRoZQpQViBoYW5kbGluZy4gIEludHJvZHVjZSBkcjYgYW5kIGRyNyBmaWVsZHMgdG8g cmVwbGFjZSBkZWJ1Z3JlZ1s2LDddIHdoaWNoCnJlbW92ZXMgdGhlIHN0b3JhZ2UgZm9yIGRlYnVn cmVnWzQsNV0uCgpUd28gbWlub3IgYWx0ZXJhdGlvbnMgb24gdGhlIFBWIHNpZGUgaXMgdGhhdCBt ZXJnaW5nIG9mIHRoZSBlbXVsYXRlZCBzdGF0ZQpoYXBwZW5zIGFsb25nIHdpdGggdGhlIG90aGVy IGRyIGhhbmRsaW5nLCByYXRoZXIgdGhhbiBtdWNoIGxhdGVyLCBhbmQKYXJjaF9zZXRfaW5mb19n dWVzdCgpIG5vdyBjaGVja3MgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHNldF9kZWJ1Z3JlZygpIGZh aWxzCnRoZSBoeXBlcmNhbGwgcmF0aGVyIHRoYW4gc2lsZW50bHkgZGlzY2FyZGluZyB0aGUgdmFs dWVzLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBXZWkgTGl1 IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNp dHJpeC5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNDOiBL ZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ0M6IEJvcmlzIE9zdHJvdnNreSA8Ym9y aXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNDOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2 ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpDQzogQnJpYW4gV29vZHMgPGJyaWFuLndvb2RzQGFt ZC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2FjcGkvc3VzcGVuZC5jICAgIHwgMTQgKysrKysrKy0t LS0tLS0KIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2RvbWN0bC5jICAgICAgICAgIHwgMTUgKysrKyst LS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgfCAzMCArKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jICAgICB8IDI3 ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMg ICAgIHwgMjYgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9wdi9lbXVs LXByaXYtb3AuYyB8IDE0ICsrKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHYvZW11bGF0ZS5j ICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAgIHwgMzAgKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyAgICAgICAg fCAgMiArLQogeGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlLmMgICAgIHwgIDcgKysrLS0tLQogeGVu L2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCAgIHwgMTEgKysrKysrKysrKy0KIDEyIGZpbGVzIGNo YW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCA5OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvYWNwaS9zdXNwZW5kLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9zdXNwZW5kLmMK aW5kZXggMDQ0YmQ4MS4uMWExMjliNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2FjcGkvc3Vz cGVuZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL3N1c3BlbmQuYwpAQCAtODIsMTQgKzgyLDE0 IEBAIHZvaWQgcmVzdG9yZV9yZXN0X3Byb2Nlc3Nvcl9zdGF0ZSh2b2lkKQogCiAgICAgLyogTWF5 YmUgbG9hZCB0aGUgZGVidWcgcmVnaXN0ZXJzLiAqLwogICAgIEJVR19PTighaXNfcHZfdmNwdShj dXJyKSk7Ci0gICAgaWYgKCAhaXNfaWRsZV92Y3B1KGN1cnIpICYmIGN1cnItPmFyY2guZGVidWdy ZWdbN10gKQorICAgIGlmICggIWlzX2lkbGVfdmNwdShjdXJyKSAmJiBjdXJyLT5hcmNoLmRyNyAp CiAgICAgewotICAgICAgICB3cml0ZV9kZWJ1Z3JlZygwLCBjdXJyLT5hcmNoLmRlYnVncmVnWzBd KTsKLSAgICAgICAgd3JpdGVfZGVidWdyZWcoMSwgY3Vyci0+YXJjaC5kZWJ1Z3JlZ1sxXSk7Ci0g ICAgICAgIHdyaXRlX2RlYnVncmVnKDIsIGN1cnItPmFyY2guZGVidWdyZWdbMl0pOwotICAgICAg ICB3cml0ZV9kZWJ1Z3JlZygzLCBjdXJyLT5hcmNoLmRlYnVncmVnWzNdKTsKLSAgICAgICAgd3Jp dGVfZGVidWdyZWcoNiwgY3Vyci0+YXJjaC5kZWJ1Z3JlZ1s2XSk7Ci0gICAgICAgIHdyaXRlX2Rl YnVncmVnKDcsIGN1cnItPmFyY2guZGVidWdyZWdbN10pOworICAgICAgICB3cml0ZV9kZWJ1Z3Jl ZygwLCBjdXJyLT5hcmNoLmRyWzBdKTsKKyAgICAgICAgd3JpdGVfZGVidWdyZWcoMSwgY3Vyci0+ YXJjaC5kclsxXSk7CisgICAgICAgIHdyaXRlX2RlYnVncmVnKDIsIGN1cnItPmFyY2guZHJbMl0p OworICAgICAgICB3cml0ZV9kZWJ1Z3JlZygzLCBjdXJyLT5hcmNoLmRyWzNdKTsKKyAgICAgICAg d3JpdGVfZGVidWdyZWcoNiwgY3Vyci0+YXJjaC5kcjYpOworICAgICAgICB3cml0ZV9kZWJ1Z3Jl Zyg3LCBjdXJyLT5hcmNoLmRyNyk7CiAgICAgfQogCiAgICAgLyogUmVsb2FkIEZQVSBzdGF0ZSBv biBuZXh0IEZQVSB1c2UuICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94 ZW4vYXJjaC94ODYvZG9tYWluLmMKaW5kZXggY2VlNTdhOC4uYmE4ZWIwNSAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMzI2 LDggKzMyNiw4IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpc2VfcmVnaXN0ZXJzKHN0cnVjdCB2Y3B1 ICp2KQogewogICAgIHYtPmFyY2gudXNlcl9yZWdzLmVmbGFncyA9IFg4Nl9FRkxBR1NfTUJTOwog Ci0gICAgdi0+YXJjaC5kZWJ1Z3JlZ1s2XSA9IFg4Nl9EUjZfREVGQVVMVDsKLSAgICB2LT5hcmNo LmRlYnVncmVnWzddID0gWDg2X0RSN19ERUZBVUxUOworICAgIHYtPmFyY2guZHI2ID0gWDg2X0RS Nl9ERUZBVUxUOworICAgIHYtPmFyY2guZHI3ID0gWDg2X0RSN19ERUZBVUxUOwogfQogCiBpbnQg dmNwdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQpAQCAtODk1LDEwICs4OTUsMTAgQEAgaW50 IGFyY2hfc2V0X2luZm9fZ3Vlc3QoCiAKICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAg IHsKLSAgICAgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHYtPmFyY2guZGVidWdyZWcp IC0gMjsgKytpICkKLSAgICAgICAgICAgIHYtPmFyY2guZGVidWdyZWdbaV0gPSBjKGRlYnVncmVn W2ldKTsKLSAgICAgICAgdi0+YXJjaC5kZWJ1Z3JlZ1s2XSA9IGFkanVzdF9kcjZfcnN2ZChjKGRl YnVncmVnWzZdKSwgY3AtPmZlYXQucnRtKTsKLSAgICAgICAgdi0+YXJjaC5kZWJ1Z3JlZ1s3XSA9 IGFkanVzdF9kcjdfcnN2ZChjKGRlYnVncmVnWzddKSwgY3AtPmZlYXQucnRtKTsKKyAgICAgICAg Zm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHYtPmFyY2guZHIpOyArK2kgKQorICAgICAgICAg ICAgdi0+YXJjaC5kcltpXSA9IGMoZGVidWdyZWdbaV0pOworICAgICAgICB2LT5hcmNoLmRyNiA9 IGFkanVzdF9kcjZfcnN2ZChjKGRlYnVncmVnWzZdKSwgY3AtPmZlYXQucnRtKTsKKyAgICAgICAg di0+YXJjaC5kcjcgPSBhZGp1c3RfZHI3X3JzdmQoYyhkZWJ1Z3JlZ1s3XSksIGNwLT5mZWF0LnJ0 bSk7CiAKICAgICAgICAgaHZtX3NldF9pbmZvX2d1ZXN0KHYpOwogICAgICAgICBnb3RvIG91dDsK QEAgLTk4MSw5ICs5ODEsMTQgQEAgaW50IGFyY2hfc2V0X2luZm9fZ3Vlc3QoCiAgICAgdi0+YXJj aC5wdl92Y3B1LmN0cmxyZWdbNF0gPSBjcjQgPyBwdl9ndWVzdF9jcjRfZml4dXAodiwgY3I0KSA6 CiAgICAgICAgIHJlYWxfY3I0X3RvX3B2X2d1ZXN0X2NyNChtbXVfY3I0X2ZlYXR1cmVzKTsKIAot ICAgIG1lbXNldCh2LT5hcmNoLmRlYnVncmVnLCAwLCBzaXplb2Yodi0+YXJjaC5kZWJ1Z3JlZykp OwotICAgIGZvciAoIGkgPSAwOyBpIDwgODsgaSsrICkKLSAgICAgICAgKHZvaWQpc2V0X2RlYnVn cmVnKHYsIGksIGMoZGVidWdyZWdbaV0pKTsKKyAgICBmb3IgKCBpID0gMDsgIXJjICYmIGkgPCBB UlJBWV9TSVpFKHYtPmFyY2guZHIpOyBpKysgKQorICAgICAgICByYyA9IHNldF9kZWJ1Z3JlZyh2 LCBpLCBjKGRlYnVncmVnW2ldKSk7CisgICAgaWYgKCAhcmMgKQorICAgICAgICByYyA9IHNldF9k ZWJ1Z3JlZyh2LCA2LCBjKGRlYnVncmVnWzZdKSk7CisgICAgaWYgKCAhcmMgKQorICAgICAgICBy YyA9IHNldF9kZWJ1Z3JlZyh2LCA3LCBjKGRlYnVncmVnWzddKSk7CisgICAgaWYgKCByYyApCisg ICAgICAgIHJldHVybiByYzsKIAogICAgIGlmICggdi0+aXNfaW5pdGlhbGlzZWQgKQogICAgICAg ICBnb3RvIG91dDsKQEAgLTE1MjUsNyArMTUzMCw3IEBAIHZvaWQgcGFyYXZpcnRfY3R4dF9zd2l0 Y2hfZnJvbShzdHJ1Y3QgdmNwdSAqdikKICAgICAgKiBpbnNpZGUgWGVuLCBiZWZvcmUgd2UgZ2V0 IGEgY2hhbmNlIHRvIHJlbG9hZCBEUjcsIGFuZCB0aGlzIGNhbm5vdCBhbHdheXMKICAgICAgKiBz YWZlbHkgYmUgaGFuZGxlZC4KICAgICAgKi8KLSAgICBpZiAoIHVubGlrZWx5KHYtPmFyY2guZGVi dWdyZWdbN10gJiBEUjdfQUNUSVZFX01BU0spICkKKyAgICBpZiAoIHVubGlrZWx5KHYtPmFyY2gu ZHI3ICYgRFI3X0FDVElWRV9NQVNLKSApCiAgICAgICAgIHdyaXRlX2RlYnVncmVnKDcsIDApOwog fQogCkBAIC0xNTM4LDcgKzE1NDMsNyBAQCB2b2lkIHBhcmF2aXJ0X2N0eHRfc3dpdGNoX3RvKHN0 cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICAgbDRlX2Zyb21fcGFnZSh2LT5kb21haW4tPmFyY2gu cGVyZG9tYWluX2wzX3BnLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJW SVNPUl9SVyk7CiAKLSAgICBpZiAoIHVubGlrZWx5KHYtPmFyY2guZGVidWdyZWdbN10gJiBEUjdf QUNUSVZFX01BU0spICkKKyAgICBpZiAoIHVubGlrZWx5KHYtPmFyY2guZHI3ICYgRFI3X0FDVElW RV9NQVNLKSApCiAgICAgICAgIGFjdGl2YXRlX2RlYnVncmVncyh2KTsKIAogICAgIGlmICggY3B1 X2hhc19yZHRzY3AgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2Fy Y2gveDg2L2RvbWN0bC5jCmluZGV4IDhmYmJmM2EuLjU0ZjlmMGUgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTE1NjUsOCAr MTU2NSwxMSBAQCB2b2lkIGFyY2hfZ2V0X2luZm9fZ3Vlc3Qoc3RydWN0IHZjcHUgKnYsIHZjcHVf Z3Vlc3RfY29udGV4dF91IGMpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBmb3IgKCBpID0gMDsg aSA8IEFSUkFZX1NJWkUodi0+YXJjaC5kZWJ1Z3JlZyk7ICsraSApCi0gICAgICAgIGMoZGVidWdy ZWdbaV0gPSB2LT5hcmNoLmRlYnVncmVnW2ldKTsKKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZ X1NJWkUodi0+YXJjaC5kcik7ICsraSApCisgICAgICAgIGMoZGVidWdyZWdbaV0gPSB2LT5hcmNo LmRyW2ldKTsKKyAgICBjKGRlYnVncmVnWzZdID0gdi0+YXJjaC5kcjYpOworICAgIGMoZGVidWdy ZWdbN10gPSB2LT5hcmNoLmRyNyB8CisgICAgICAoaXNfcHZfZG9tYWluKGQpID8gdi0+YXJjaC5w dl92Y3B1LmRyN19lbXVsIDogMCkpOwogCiAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKICAg ICB7CkBAIC0xNjQxLDEwICsxNjQ0LDYgQEAgdm9pZCBhcmNoX2dldF9pbmZvX2d1ZXN0KHN0cnVj dCB2Y3B1ICp2LCB2Y3B1X2d1ZXN0X2NvbnRleHRfdSBjKQogICAgICAgICAgICAgYy5uYXQtPmN0 cmxyZWdbMV0gPQogICAgICAgICAgICAgICAgIHBhZ2V0YWJsZV9pc19udWxsKHYtPmFyY2guZ3Vl c3RfdGFibGVfdXNlcikgPyAwCiAgICAgICAgICAgICAgICAgOiB4ZW5fcGZuX3RvX2NyMyhwYWdl dGFibGVfZ2V0X3Bmbih2LT5hcmNoLmd1ZXN0X3RhYmxlX3VzZXIpKTsKLQotICAgICAgICAgICAg LyogTWVyZ2Ugc2hhZG93IERSNyBiaXRzIGludG8gcmVhbCBEUjcuICovCi0gICAgICAgICAgICBj Lm5hdC0+ZGVidWdyZWdbN10gfD0gYy5uYXQtPmRlYnVncmVnWzVdOwotICAgICAgICAgICAgYy5u YXQtPmRlYnVncmVnWzVdID0gMDsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsK QEAgLTE2NTMsMTAgKzE2NTIsNiBAQCB2b2lkIGFyY2hfZ2V0X2luZm9fZ3Vlc3Qoc3RydWN0IHZj cHUgKnYsIHZjcHVfZ3Vlc3RfY29udGV4dF91IGMpCiAKICAgICAgICAgICAgIGMuY21wLT5jdHJs cmVnWzNdID0gY29tcGF0X3Bmbl90b19jcjMobDRlX2dldF9wZm4oKmw0ZSkpOwogICAgICAgICAg ICAgdW5tYXBfZG9tYWluX3BhZ2UobDRlKTsKLQotICAgICAgICAgICAgLyogTWVyZ2Ugc2hhZG93 IERSNyBiaXRzIGludG8gcmVhbCBEUjcuICovCi0gICAgICAgICAgICBjLmNtcC0+ZGVidWdyZWdb N10gfD0gYy5jbXAtPmRlYnVncmVnWzVdOwotICAgICAgICAgICAgYy5jbXAtPmRlYnVncmVnWzVd ID0gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlmICggZ3Vlc3Rfa2VybmVsX21vZGUodiwgJnYt PmFyY2gudXNlcl9yZWdzKSApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA3ZmRkYWUxLi40ZjgyNWEyIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAg LTg4MywxMiArODgzLDEyIEBAIHN0YXRpYyBpbnQgaHZtX3NhdmVfY3B1X2N0eHQoc3RydWN0IGRv bWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAgICAgICAgIGN0eHQucjEzID0gdi0+ YXJjaC51c2VyX3JlZ3MucjEzOwogICAgICAgICBjdHh0LnIxNCA9IHYtPmFyY2gudXNlcl9yZWdz LnIxNDsKICAgICAgICAgY3R4dC5yMTUgPSB2LT5hcmNoLnVzZXJfcmVncy5yMTU7Ci0gICAgICAg IGN0eHQuZHIwID0gdi0+YXJjaC5kZWJ1Z3JlZ1swXTsKLSAgICAgICAgY3R4dC5kcjEgPSB2LT5h cmNoLmRlYnVncmVnWzFdOwotICAgICAgICBjdHh0LmRyMiA9IHYtPmFyY2guZGVidWdyZWdbMl07 Ci0gICAgICAgIGN0eHQuZHIzID0gdi0+YXJjaC5kZWJ1Z3JlZ1szXTsKLSAgICAgICAgY3R4dC5k cjYgPSB2LT5hcmNoLmRlYnVncmVnWzZdOwotICAgICAgICBjdHh0LmRyNyA9IHYtPmFyY2guZGVi dWdyZWdbN107CisgICAgICAgIGN0eHQuZHIwID0gdi0+YXJjaC5kclswXTsKKyAgICAgICAgY3R4 dC5kcjEgPSB2LT5hcmNoLmRyWzFdOworICAgICAgICBjdHh0LmRyMiA9IHYtPmFyY2guZHJbMl07 CisgICAgICAgIGN0eHQuZHIzID0gdi0+YXJjaC5kclszXTsKKyAgICAgICAgY3R4dC5kcjYgPSB2 LT5hcmNoLmRyNjsKKyAgICAgICAgY3R4dC5kcjcgPSB2LT5hcmNoLmRyNzsKIAogICAgICAgICBp ZiAoIGh2bV9zYXZlX2VudHJ5KENQVSwgdi0+dmNwdV9pZCwgaCwgJmN0eHQpICE9IDAgKQogICAg ICAgICAgICAgcmV0dXJuIDE7IApAQCAtMTE1MSwxMiArMTE1MSwxMiBAQCBzdGF0aWMgaW50IGh2 bV9sb2FkX2NwdV9jdHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpo KQogICAgIHYtPmFyY2gudXNlcl9yZWdzLnIxMyA9IGN0eHQucjEzOwogICAgIHYtPmFyY2gudXNl cl9yZWdzLnIxNCA9IGN0eHQucjE0OwogICAgIHYtPmFyY2gudXNlcl9yZWdzLnIxNSA9IGN0eHQu cjE1OwotICAgIHYtPmFyY2guZGVidWdyZWdbMF0gPSBjdHh0LmRyMDsKLSAgICB2LT5hcmNoLmRl YnVncmVnWzFdID0gY3R4dC5kcjE7Ci0gICAgdi0+YXJjaC5kZWJ1Z3JlZ1syXSA9IGN0eHQuZHIy OwotICAgIHYtPmFyY2guZGVidWdyZWdbM10gPSBjdHh0LmRyMzsKLSAgICB2LT5hcmNoLmRlYnVn cmVnWzZdID0gYWRqdXN0X2RyNl9yc3ZkKGN0eHQuZHI2LCBjcC0+ZmVhdC5ydG0pOwotICAgIHYt PmFyY2guZGVidWdyZWdbN10gPSBhZGp1c3RfZHI3X3JzdmQoY3R4dC5kcjcsIGNwLT5mZWF0LnJ0 bSk7CisgICAgdi0+YXJjaC5kclswXSA9IGN0eHQuZHIwOworICAgIHYtPmFyY2guZHJbMV0gPSBj dHh0LmRyMTsKKyAgICB2LT5hcmNoLmRyWzJdID0gY3R4dC5kcjI7CisgICAgdi0+YXJjaC5kclsz XSA9IGN0eHQuZHIzOworICAgIHYtPmFyY2guZHI2ID0gYWRqdXN0X2RyNl9yc3ZkKGN0eHQuZHI2 LCBjcC0+ZmVhdC5ydG0pOworICAgIHYtPmFyY2guZHI3ID0gYWRqdXN0X2RyN19yc3ZkKGN0eHQu ZHI3LCBjcC0+ZmVhdC5ydG0pOwogCiAgICAgdi0+YXJjaC52Z2NfZmxhZ3MgPSBWR0NGX29ubGlu ZTsKIApAQCAtMzkxMCw5ICszOTEwLDkgQEAgdm9pZCBodm1fdmNwdV9yZXNldF9zdGF0ZShzdHJ1 Y3QgdmNwdSAqdiwgdWludDE2X3QgY3MsIHVpbnQxNl90IGlwKQogICAgIHYtPmFyY2gudXNlcl9y ZWdzLnJkeCA9IDB4MDAwMDBmMDA7CiAgICAgdi0+YXJjaC51c2VyX3JlZ3MucmlwID0gaXA7CiAK LSAgICBtZW1zZXQoJnYtPmFyY2guZGVidWdyZWcsIDAsIHNpemVvZih2LT5hcmNoLmRlYnVncmVn KSAtIDE2KTsKLSAgICB2LT5hcmNoLmRlYnVncmVnWzZdID0gWDg2X0RSNl9ERUZBVUxUOwotICAg IHYtPmFyY2guZGVidWdyZWdbN10gPSBYODZfRFI3X0RFRkFVTFQ7CisgICAgbWVtc2V0KHYtPmFy Y2guZHIsIDAsIHNpemVvZih2LT5hcmNoLmRyKSk7CisgICAgdi0+YXJjaC5kcjYgPSBYODZfRFI2 X0RFRkFVTFQ7CisgICAgdi0+YXJjaC5kcjcgPSBYODZfRFI3X0RFRkFVTFQ7CiAKICAgICB2LT5h cmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdID0gWDg2X0NSMF9FVDsKICAgICBodm1fdXBkYXRlX2d1 ZXN0X2NyKHYsIDApOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgYi94 ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwppbmRleCA0OWJiNzIyLi5kYWJiOTZmIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2 bS9zdm0uYwpAQCAtMjE1LDEyICsyMTUsMTIgQEAgc3RhdGljIHZvaWQgc3ZtX3NhdmVfZHIoc3Ry dWN0IHZjcHUgKnYpCiAgICAgICAgIHJkbXNybChNU1JfQU1ENjRfRFIzX0FERFJFU1NfTUFTSywg di0+YXJjaC5odm1fc3ZtLmRyX21hc2tbM10pOwogICAgIH0KIAotICAgIHYtPmFyY2guZGVidWdy ZWdbMF0gPSByZWFkX2RlYnVncmVnKDApOwotICAgIHYtPmFyY2guZGVidWdyZWdbMV0gPSByZWFk X2RlYnVncmVnKDEpOwotICAgIHYtPmFyY2guZGVidWdyZWdbMl0gPSByZWFkX2RlYnVncmVnKDIp OwotICAgIHYtPmFyY2guZGVidWdyZWdbM10gPSByZWFkX2RlYnVncmVnKDMpOwotICAgIHYtPmFy Y2guZGVidWdyZWdbNl0gPSB2bWNiX2dldF9kcjYodm1jYik7Ci0gICAgdi0+YXJjaC5kZWJ1Z3Jl Z1s3XSA9IHZtY2JfZ2V0X2RyNyh2bWNiKTsKKyAgICB2LT5hcmNoLmRyWzBdID0gcmVhZF9kZWJ1 Z3JlZygwKTsKKyAgICB2LT5hcmNoLmRyWzFdID0gcmVhZF9kZWJ1Z3JlZygxKTsKKyAgICB2LT5h cmNoLmRyWzJdID0gcmVhZF9kZWJ1Z3JlZygyKTsKKyAgICB2LT5hcmNoLmRyWzNdID0gcmVhZF9k ZWJ1Z3JlZygzKTsKKyAgICB2LT5hcmNoLmRyNiA9IHZtY2JfZ2V0X2RyNih2bWNiKTsKKyAgICB2 LT5hcmNoLmRyNyA9IHZtY2JfZ2V0X2RyNyh2bWNiKTsKIH0KIAogc3RhdGljIHZvaWQgX19yZXN0 b3JlX2RlYnVnX3JlZ2lzdGVycyhzdHJ1Y3Qgdm1jYl9zdHJ1Y3QgKnZtY2IsIHN0cnVjdCB2Y3B1 ICp2KQpAQCAtMjQ2LDEyICsyNDYsMTIgQEAgc3RhdGljIHZvaWQgX19yZXN0b3JlX2RlYnVnX3Jl Z2lzdGVycyhzdHJ1Y3Qgdm1jYl9zdHJ1Y3QgKnZtY2IsIHN0cnVjdCB2Y3B1ICp2KQogICAgICAg ICB3cm1zcmwoTVNSX0FNRDY0X0RSM19BRERSRVNTX01BU0ssIHYtPmFyY2guaHZtX3N2bS5kcl9t YXNrWzNdKTsKICAgICB9CiAKLSAgICB3cml0ZV9kZWJ1Z3JlZygwLCB2LT5hcmNoLmRlYnVncmVn WzBdKTsKLSAgICB3cml0ZV9kZWJ1Z3JlZygxLCB2LT5hcmNoLmRlYnVncmVnWzFdKTsKLSAgICB3 cml0ZV9kZWJ1Z3JlZygyLCB2LT5hcmNoLmRlYnVncmVnWzJdKTsKLSAgICB3cml0ZV9kZWJ1Z3Jl ZygzLCB2LT5hcmNoLmRlYnVncmVnWzNdKTsKLSAgICB2bWNiX3NldF9kcjYodm1jYiwgdi0+YXJj aC5kZWJ1Z3JlZ1s2XSk7Ci0gICAgdm1jYl9zZXRfZHI3KHZtY2IsIHYtPmFyY2guZGVidWdyZWdb N10pOworICAgIHdyaXRlX2RlYnVncmVnKDAsIHYtPmFyY2guZHJbMF0pOworICAgIHdyaXRlX2Rl YnVncmVnKDEsIHYtPmFyY2guZHJbMV0pOworICAgIHdyaXRlX2RlYnVncmVnKDIsIHYtPmFyY2gu ZHJbMl0pOworICAgIHdyaXRlX2RlYnVncmVnKDMsIHYtPmFyY2guZHJbM10pOworICAgIHZtY2Jf c2V0X2RyNih2bWNiLCB2LT5hcmNoLmRyNik7CisgICAgdm1jYl9zZXRfZHI3KHZtY2IsIHYtPmFy Y2guZHI3KTsKIH0KIAogLyoKQEAgLTI2Myw3ICsyNjMsOCBAQCBzdGF0aWMgdm9pZCBfX3Jlc3Rv cmVfZGVidWdfcmVnaXN0ZXJzKHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1jYiwgc3RydWN0IHZjcHUg KnYpCiBzdGF0aWMgdm9pZCBzdm1fcmVzdG9yZV9kcihzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBz dHJ1Y3Qgdm1jYl9zdHJ1Y3QgKnZtY2IgPSB2LT5hcmNoLmh2bV9zdm0udm1jYjsKLSAgICBpZiAo IHVubGlrZWx5KHYtPmFyY2guZGVidWdyZWdbN10gJiBEUjdfQUNUSVZFX01BU0spICkKKworICAg IGlmICggdW5saWtlbHkodi0+YXJjaC5kcjcgJiBEUjdfQUNUSVZFX01BU0spICkKICAgICAgICAg X19yZXN0b3JlX2RlYnVnX3JlZ2lzdGVycyh2bWNiLCB2KTsKIH0KIApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwppbmRl eCA4ZGJlODM4Li5iZmEzYTBkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXgu YworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtNjEwLDEzICs2MTAsMTMgQEAg c3RhdGljIHZvaWQgdm14X3NhdmVfZHIoc3RydWN0IHZjcHUgKnYpCiAgICAgdi0+YXJjaC5odm1f dm14LmV4ZWNfY29udHJvbCB8PSBDUFVfQkFTRURfTU9WX0RSX0VYSVRJTkc7CiAgICAgdm14X3Vw ZGF0ZV9jcHVfZXhlY19jb250cm9sKHYpOwogCi0gICAgdi0+YXJjaC5kZWJ1Z3JlZ1swXSA9IHJl YWRfZGVidWdyZWcoMCk7Ci0gICAgdi0+YXJjaC5kZWJ1Z3JlZ1sxXSA9IHJlYWRfZGVidWdyZWco MSk7Ci0gICAgdi0+YXJjaC5kZWJ1Z3JlZ1syXSA9IHJlYWRfZGVidWdyZWcoMik7Ci0gICAgdi0+ YXJjaC5kZWJ1Z3JlZ1szXSA9IHJlYWRfZGVidWdyZWcoMyk7Ci0gICAgdi0+YXJjaC5kZWJ1Z3Jl Z1s2XSA9IHJlYWRfZGVidWdyZWcoNik7CisgICAgdi0+YXJjaC5kclswXSA9IHJlYWRfZGVidWdy ZWcoMCk7CisgICAgdi0+YXJjaC5kclsxXSA9IHJlYWRfZGVidWdyZWcoMSk7CisgICAgdi0+YXJj aC5kclsyXSA9IHJlYWRfZGVidWdyZWcoMik7CisgICAgdi0+YXJjaC5kclszXSA9IHJlYWRfZGVi dWdyZWcoMyk7CisgICAgdi0+YXJjaC5kcjYgICA9IHJlYWRfZGVidWdyZWcoNik7CiAgICAgLyog RFI3IG11c3QgYmUgc2F2ZWQgYXMgaXQgaXMgdXNlZCBieSB2bXhfcmVzdG9yZV9kcigpLiAqLwot ICAgIF9fdm1yZWFkKEdVRVNUX0RSNywgJnYtPmFyY2guZGVidWdyZWdbN10pOworICAgIF9fdm1y ZWFkKEdVRVNUX0RSNywgJnYtPmFyY2guZHI3KTsKIH0KIAogc3RhdGljIHZvaWQgX19yZXN0b3Jl X2RlYnVnX3JlZ2lzdGVycyhzdHJ1Y3QgdmNwdSAqdikKQEAgLTYyNiwxMSArNjI2LDExIEBAIHN0 YXRpYyB2b2lkIF9fcmVzdG9yZV9kZWJ1Z19yZWdpc3RlcnMoc3RydWN0IHZjcHUgKnYpCiAKICAg ICB2LT5hcmNoLmh2bV92Y3B1LmZsYWdfZHJfZGlydHkgPSAxOwogCi0gICAgd3JpdGVfZGVidWdy ZWcoMCwgdi0+YXJjaC5kZWJ1Z3JlZ1swXSk7Ci0gICAgd3JpdGVfZGVidWdyZWcoMSwgdi0+YXJj aC5kZWJ1Z3JlZ1sxXSk7Ci0gICAgd3JpdGVfZGVidWdyZWcoMiwgdi0+YXJjaC5kZWJ1Z3JlZ1sy XSk7Ci0gICAgd3JpdGVfZGVidWdyZWcoMywgdi0+YXJjaC5kZWJ1Z3JlZ1szXSk7Ci0gICAgd3Jp dGVfZGVidWdyZWcoNiwgdi0+YXJjaC5kZWJ1Z3JlZ1s2XSk7CisgICAgd3JpdGVfZGVidWdyZWco MCwgdi0+YXJjaC5kclswXSk7CisgICAgd3JpdGVfZGVidWdyZWcoMSwgdi0+YXJjaC5kclsxXSk7 CisgICAgd3JpdGVfZGVidWdyZWcoMiwgdi0+YXJjaC5kclsyXSk7CisgICAgd3JpdGVfZGVidWdy ZWcoMywgdi0+YXJjaC5kclszXSk7CisgICAgd3JpdGVfZGVidWdyZWcoNiwgdi0+YXJjaC5kcjYp OwogICAgIC8qIERSNyBpcyBsb2FkZWQgZnJvbSB0aGUgVk1DUy4gKi8KIH0KIApAQCAtNjQzLDcg KzY0Myw3IEBAIHN0YXRpYyB2b2lkIF9fcmVzdG9yZV9kZWJ1Z19yZWdpc3RlcnMoc3RydWN0IHZj cHUgKnYpCiBzdGF0aWMgdm9pZCB2bXhfcmVzdG9yZV9kcihzdHJ1Y3QgdmNwdSAqdikKIHsKICAg ICAvKiBOQi4gX192bXJlYWQoKSBpcyBub3QgdXNhYmxlIGhlcmUsIHNvIHdlIGNhbm5vdCByZWFk IGZyb20gdGhlIFZNQ1MuICovCi0gICAgaWYgKCB1bmxpa2VseSh2LT5hcmNoLmRlYnVncmVnWzdd ICYgRFI3X0FDVElWRV9NQVNLKSApCisgICAgaWYgKCB1bmxpa2VseSh2LT5hcmNoLmRyNyAmIERS N19BQ1RJVkVfTUFTSykgKQogICAgICAgICBfX3Jlc3RvcmVfZGVidWdfcmVnaXN0ZXJzKHYpOwog fQogCkBAIC0xODcwLDcgKzE4NzAsNyBAQCBzdGF0aWMgdm9pZCB2bXhfc2V0X2luZm9fZ3Vlc3Qo c3RydWN0IHZjcHUgKnYpCiAKICAgICB2bXhfdm1jc19lbnRlcih2KTsKIAotICAgIF9fdm13cml0 ZShHVUVTVF9EUjcsIHYtPmFyY2guZGVidWdyZWdbN10pOworICAgIF9fdm13cml0ZShHVUVTVF9E UjcsIHYtPmFyY2guZHI3KTsKIAogICAgIC8qIAogICAgICAqIElmIHRoZSBpbnRlcnJ1cHRpYmls aXR5LXN0YXRlIGZpZWxkIGluZGljYXRlcyBibG9ja2luZyBieSBTVEksCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMgYi94ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2 LW9wLmMKaW5kZXggY2UyZWM3Ni4uZGZkZTcwZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2 L2VtdWwtcHJpdi1vcC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYwpAQCAt Mjg2LDIwICsyODYsMjAgQEAgc3RhdGljIHVuc2lnbmVkIGludCBjaGVja19ndWVzdF9pb19icmVh a3BvaW50KHN0cnVjdCB2Y3B1ICp2LAogICAgIHVuc2lnbmVkIGludCB3aWR0aCwgaSwgbWF0Y2gg PSAwOwogICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQ7CiAKLSAgICBpZiAoICEodi0+YXJjaC5kZWJ1 Z3JlZ1s1XSkgfHwKKyAgICBpZiAoICF2LT5hcmNoLnB2X3ZjcHUuZHI3X2VtdWwgfHwKICAgICAg ICAgICEodi0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbNF0gJiBYODZfQ1I0X0RFKSApCiAgICAgICAg IHJldHVybiAwOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCA0OyBpKysgKQogICAgIHsKLSAgICAg ICAgaWYgKCAhKHYtPmFyY2guZGVidWdyZWdbNV0gJgorICAgICAgICBpZiAoICEodi0+YXJjaC5w dl92Y3B1LmRyN19lbXVsICYKICAgICAgICAgICAgICAgICgzIDw8IChpICogRFJfRU5BQkxFX1NJ WkUpKSkgKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgc3RhcnQgPSB2LT5hcmNo LmRlYnVncmVnW2ldOworICAgICAgICBzdGFydCA9IHYtPmFyY2guZHJbaV07CiAgICAgICAgIHdp ZHRoID0gMDsKIAotICAgICAgICBzd2l0Y2ggKCAodi0+YXJjaC5kZWJ1Z3JlZ1s3XSA+PgorICAg ICAgICBzd2l0Y2ggKCAodi0+YXJjaC5kcjcgPj4KICAgICAgICAgICAgICAgICAgIChEUl9DT05U Uk9MX1NISUZUICsgaSAqIERSX0NPTlRST0xfU0laRSkpICYgMHhjICkKICAgICAgICAgewogICAg ICAgICBjYXNlIERSX0xFTl8xOiB3aWR0aCA9IDE7IGJyZWFrOwpAQCAtMTExNiw3ICsxMTE2LDcg QEAgc3RhdGljIGludCB3cml0ZV9tc3IodW5zaWduZWQgaW50IHJlZywgdWludDY0X3QgdmFsLAog ICAgICAgICBpZiAoICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfREJFWFQpIHx8ICh2YWwgPj4g MzIpICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuZHJf bWFza1swXSA9IHZhbDsKLSAgICAgICAgaWYgKCBjdXJyLT5hcmNoLmRlYnVncmVnWzddICYgRFI3 X0FDVElWRV9NQVNLICkKKyAgICAgICAgaWYgKCBjdXJyLT5hcmNoLmRyNyAmIERSN19BQ1RJVkVf TUFTSyApCiAgICAgICAgICAgICB3cm1zcmwoTVNSX0FNRDY0X0RSMF9BRERSRVNTX01BU0ssIHZh bCk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CiAKQEAgLTExMjQsNyArMTEyNCw3IEBA IHN0YXRpYyBpbnQgd3JpdGVfbXNyKHVuc2lnbmVkIGludCByZWcsIHVpbnQ2NF90IHZhbCwKICAg ICAgICAgaWYgKCAhYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0RCRVhUKSB8fCAodmFsID4+IDMy KSApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LmRyX21h c2tbcmVnIC0gTVNSX0FNRDY0X0RSMV9BRERSRVNTX01BU0sgKyAxXSA9IHZhbDsKLSAgICAgICAg aWYgKCBjdXJyLT5hcmNoLmRlYnVncmVnWzddICYgRFI3X0FDVElWRV9NQVNLICkKKyAgICAgICAg aWYgKCBjdXJyLT5hcmNoLmRyNyAmIERSN19BQ1RJVkVfTUFTSyApCiAgICAgICAgICAgICB3cm1z cmwocmVnLCB2YWwpOwogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogCkBAIC0xMzY4LDcg KzEzNjgsNyBAQCBpbnQgcHZfZW11bGF0ZV9wcml2aWxlZ2VkX29wKHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQogICAgICAgICAgICAgY3R4dC5icG1hdGNoIHw9IERSX1NURVA7CiAgICAgICAg IGlmICggY3R4dC5icG1hdGNoICkKICAgICAgICAgewotICAgICAgICAgICAgY3Vyci0+YXJjaC5k ZWJ1Z3JlZ1s2XSB8PSBjdHh0LmJwbWF0Y2ggfCBEUl9TVEFUVVNfUkVTRVJWRURfT05FOworICAg ICAgICAgICAgY3Vyci0+YXJjaC5kcjYgfD0gY3R4dC5icG1hdGNoIHwgRFJfU1RBVFVTX1JFU0VS VkVEX09ORTsKICAgICAgICAgICAgIGlmICggIShjdXJyLT5hcmNoLnB2X3ZjcHUudHJhcF9ib3Vu Y2UuZmxhZ3MgJiBUQkZfRVhDRVBUSU9OKSApCiAgICAgICAgICAgICAgICAgcHZfaW5qZWN0X2h3 X2V4Y2VwdGlvbihUUkFQX2RlYnVnLCBYODZfRVZFTlRfTk9fRUMpOwogICAgICAgICB9CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWxh dGUuYwppbmRleCAxYjYwOTExLi43NTdmZmQxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYv ZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVsYXRlLmMKQEAgLTc4LDcgKzc4LDcg QEAgdm9pZCBwdl9lbXVsX2luc3RydWN0aW9uX2RvbmUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MsIHVuc2lnbmVkIGxvbmcgcmlwKQogICAgIHJlZ3MtPmVmbGFncyAmPSB+WDg2X0VGTEFHU19S RjsKICAgICBpZiAoIHJlZ3MtPmVmbGFncyAmIFg4Nl9FRkxBR1NfVEYgKQogICAgIHsKLSAgICAg ICAgY3VycmVudC0+YXJjaC5kZWJ1Z3JlZ1s2XSB8PSBEUl9TVEVQIHwgRFJfU1RBVFVTX1JFU0VS VkVEX09ORTsKKyAgICAgICAgY3VycmVudC0+YXJjaC5kcjYgfD0gRFJfU1RFUCB8IERSX1NUQVRV U19SRVNFUlZFRF9PTkU7CiAgICAgICAgIHB2X2luamVjdF9od19leGNlcHRpb24oVFJBUF9kZWJ1 ZywgWDg2X0VWRU5UX05PX0VDKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv dHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IGU5YmZiYzcuLmQwZDkwMTEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5j CkBAIC0xODYxLDggKzE4NjEsOCBAQCB2b2lkIGRvX2RlYnVnKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogICAgIH0KIAogICAgIC8qIFNhdmUgZGVidWcgc3RhdHVzIHJlZ2lzdGVyIHdoZXJl IGd1ZXN0IE9TIGNhbiBwZWVrIGF0IGl0ICovCi0gICAgdi0+YXJjaC5kZWJ1Z3JlZ1s2XSB8PSAo ZHI2ICYgflg4Nl9EUjZfREVGQVVMVCk7Ci0gICAgdi0+YXJjaC5kZWJ1Z3JlZ1s2XSAmPSAoZHI2 IHwgflg4Nl9EUjZfREVGQVVMVCk7CisgICAgdi0+YXJjaC5kcjYgfD0gKGRyNiAmIH5YODZfRFI2 X0RFRkFVTFQpOworICAgIHYtPmFyY2guZHI2ICY9IChkcjYgfCB+WDg2X0RSNl9ERUZBVUxUKTsK IAogICAgIHB2X2luamVjdF9od19leGNlcHRpb24oVFJBUF9kZWJ1ZywgWDg2X0VWRU5UX05PX0VD KTsKIH0KQEAgLTIwMjUsMTkgKzIwMjUsMTkgQEAgdm9pZCBhY3RpdmF0ZV9kZWJ1Z3JlZ3MoY29u c3Qgc3RydWN0IHZjcHUgKmN1cnIpCiB7CiAgICAgQVNTRVJUKGN1cnIgPT0gY3VycmVudCk7CiAK LSAgICB3cml0ZV9kZWJ1Z3JlZygwLCBjdXJyLT5hcmNoLmRlYnVncmVnWzBdKTsKLSAgICB3cml0 ZV9kZWJ1Z3JlZygxLCBjdXJyLT5hcmNoLmRlYnVncmVnWzFdKTsKLSAgICB3cml0ZV9kZWJ1Z3Jl ZygyLCBjdXJyLT5hcmNoLmRlYnVncmVnWzJdKTsKLSAgICB3cml0ZV9kZWJ1Z3JlZygzLCBjdXJy LT5hcmNoLmRlYnVncmVnWzNdKTsKLSAgICB3cml0ZV9kZWJ1Z3JlZyg2LCBjdXJyLT5hcmNoLmRl YnVncmVnWzZdKTsKKyAgICB3cml0ZV9kZWJ1Z3JlZygwLCBjdXJyLT5hcmNoLmRyWzBdKTsKKyAg ICB3cml0ZV9kZWJ1Z3JlZygxLCBjdXJyLT5hcmNoLmRyWzFdKTsKKyAgICB3cml0ZV9kZWJ1Z3Jl ZygyLCBjdXJyLT5hcmNoLmRyWzJdKTsKKyAgICB3cml0ZV9kZWJ1Z3JlZygzLCBjdXJyLT5hcmNo LmRyWzNdKTsKKyAgICB3cml0ZV9kZWJ1Z3JlZyg2LCBjdXJyLT5hcmNoLmRyNik7CiAKICAgICAv KgogICAgICAqIEF2b2lkIHdyaXRpbmcgdGhlIHN1YnNlcXVlbnRseSBnZXR0aW5nIHJlcGxhY2Vk IHZhbHVlIHdoZW4gZ2V0dGluZwogICAgICAqIGNhbGxlZCBmcm9tIHNldF9kZWJ1Z3JlZygpIGJl bG93LiBFdmVudHVhbCBmdXR1cmUgY2FsbGVycyB3aWxsIG5lZWQKICAgICAgKiB0byB0YWtlIHRo aXMgaW50byBhY2NvdW50LgogICAgICAqLwotICAgIGlmICggY3Vyci0+YXJjaC5kZWJ1Z3JlZ1s3 XSAmIERSN19BQ1RJVkVfTUFTSyApCi0gICAgICAgIHdyaXRlX2RlYnVncmVnKDcsIGN1cnItPmFy Y2guZGVidWdyZWdbN10pOworICAgIGlmICggY3Vyci0+YXJjaC5kcjcgJiBEUjdfQUNUSVZFX01B U0sgKQorICAgICAgICB3cml0ZV9kZWJ1Z3JlZyg3LCBjdXJyLT5hcmNoLmRyNyk7CiAKICAgICBp ZiAoIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9EQkVYVCkgKQogICAgIHsKQEAgLTIwNjUsNiAr MjA2NSw3IEBAIGxvbmcgc2V0X2RlYnVncmVnKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQg cmVnLCB1bnNpZ25lZCBsb25nIHZhbHVlKQogICAgICAgICBpZiAoICFhY2Nlc3Nfb2sodmFsdWUs IHNpemVvZihsb25nKSkgKQogICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKIAorICAgICAgICB2 LT5hcmNoLmRyW3JlZ10gPSB2YWx1ZTsKICAgICAgICAgaWYgKCB2ID09IGN1cnIgKQogICAgICAg ICB7CiAgICAgICAgICAgICBzd2l0Y2ggKCByZWcgKQpAQCAtMjA4OSw2ICsyMDkwLDcgQEAgbG9u ZyBzZXRfZGVidWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVk IGxvbmcgdmFsdWUpCiAKICAgICAgICAgdmFsdWUgPSBhZGp1c3RfZHI2X3JzdmQodmFsdWUsIGNw LT5mZWF0LnJ0bSk7CiAKKyAgICAgICAgdi0+YXJjaC5kcjYgPSB2YWx1ZTsKICAgICAgICAgaWYg KCB2ID09IGN1cnIgKQogICAgICAgICAgICAgd3JpdGVfZGVidWdyZWcoNiwgdmFsdWUpOwogICAg ICAgICBicmVhazsKQEAgLTIxMjcsOCArMjEyOSw3IEBAIGxvbmcgc2V0X2RlYnVncmVnKHN0cnVj dCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBsb25nIHZhbHVlKQogICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgLyogR3Vlc3QgRFI1IGlz IGEgaGFuZHkgc3Rhc2ggZm9yIEkvTyBpbnRlcmNlcHQgaW5mb3JtYXRpb24uICovCi0gICAgICAg ICAgICB2LT5hcmNoLmRlYnVncmVnWzVdID0gaW9fZW5hYmxlOworICAgICAgICAgICAgdi0+YXJj aC5wdl92Y3B1LmRyN19lbXVsID0gaW9fZW5hYmxlOwogICAgICAgICAgICAgdmFsdWUgJj0gfmlv X2VuYWJsZTsKIAogICAgICAgICAgICAgLyoKQEAgLTIxMzYsMTQgKzIxMzcsMTQgQEAgbG9uZyBz ZXRfZGVidWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxv bmcgdmFsdWUpCiAgICAgICAgICAgICAgKiBkZWJ1ZyByZWdpc3RlcnMgYXQgdGhpcyBwb2ludCBh cyB0aGV5IHdlcmUgbm90IHJlc3RvcmVkIGR1cmluZwogICAgICAgICAgICAgICogY29udGV4dCBz d2l0Y2guICBVcGRhdGluZyBEUjcgaXRzZWxmIGhhcHBlbnMgbGF0ZXIuCiAgICAgICAgICAgICAg Ki8KLSAgICAgICAgICAgIGlmICggKHYgPT0gY3VycikgJiYKLSAgICAgICAgICAgICAgICAgISh2 LT5hcmNoLmRlYnVncmVnWzddICYgRFI3X0FDVElWRV9NQVNLKSApCisgICAgICAgICAgICBpZiAo ICh2ID09IGN1cnIpICYmICEodi0+YXJjaC5kcjcgJiBEUjdfQUNUSVZFX01BU0spICkKICAgICAg ICAgICAgICAgICBhY3RpdmF0ZV9kZWJ1Z3JlZ3Modik7CiAgICAgICAgIH0KICAgICAgICAgZWxz ZQogICAgICAgICAgICAgLyogWmVybyB0aGUgZW11bGF0ZWQgY29udHJvbHMgaWYgJWRyNyBpc24n dCBhY3RpdmUuICovCi0gICAgICAgICAgICB2LT5hcmNoLmRlYnVncmVnWzVdID0gMDsKKyAgICAg ICAgICAgIHYtPmFyY2gucHZfdmNwdS5kcjdfZW11bCA9IDA7CiAKKyAgICAgICAgdi0+YXJjaC5k cjcgPSB2YWx1ZTsKICAgICAgICAgaWYgKCB2ID09IGN1cnIgKQogICAgICAgICAgICAgd3JpdGVf ZGVidWdyZWcoNywgdmFsdWUpOwogICAgICAgICBicmVhazsKQEAgLTIxNTIsNyArMjE1Myw2IEBA IGxvbmcgc2V0X2RlYnVncmVnKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNp Z25lZCBsb25nIHZhbHVlKQogICAgICAgICByZXR1cm4gLUVOT0RFVjsKICAgICB9CiAKLSAgICB2 LT5hcmNoLmRlYnVncmVnW3JlZ10gPSB2YWx1ZTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L3ZtX2V2ZW50LmMgYi94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYwpp bmRleCBmOTFhYWRlLi44MWZhY2IwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdm1fZXZlbnQu YworKysgYi94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYwpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQg dm1fZXZlbnRfZmlsbF9yZWdzKHZtX2V2ZW50X3JlcXVlc3RfdCAqcmVxKQogICAgIHJlcS0+ZGF0 YS5yZWdzLng4Ni5yZmxhZ3MgPSByZWdzLT5yZmxhZ3M7CiAgICAgcmVxLT5kYXRhLnJlZ3MueDg2 LnJpcCAgICA9IHJlZ3MtPnJpcDsKIAotICAgIHJlcS0+ZGF0YS5yZWdzLng4Ni5kcjcgPSBjdXJy LT5hcmNoLmRlYnVncmVnWzddOworICAgIHJlcS0+ZGF0YS5yZWdzLng4Ni5kcjcgPSBjdXJyLT5h cmNoLmRyNzsKICAgICByZXEtPmRhdGEucmVncy54ODYuY3IwID0gY3R4dC5jcjA7CiAgICAgcmVx LT5kYXRhLnJlZ3MueDg2LmNyMiA9IGN0eHQuY3IyOwogICAgIHJlcS0+ZGF0YS5yZWdzLng4Ni5j cjMgPSBjdHh0LmNyMzsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS5jIGIv eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlLmMKaW5kZXggMDNiMzY0YS4uOWQxOTQyYiAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9l bXVsYXRlLmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBpbnQgeDg2ZW11bF9yZWFkX2RyKHVuc2lnbmVk IGludCByZWcsIHVuc2lnbmVkIGxvbmcgKnZhbCwKICAgICBzd2l0Y2ggKCByZWcgKQogICAgIHsK ICAgICBjYXNlIDAgLi4uIDM6Ci0gICAgICAgICp2YWwgPSBjdXJyLT5hcmNoLmRlYnVncmVnW3Jl Z107CisgICAgICAgICp2YWwgPSBjdXJyLT5hcmNoLmRyW3JlZ107CiAgICAgICAgIGJyZWFrOwog CiAgICAgY2FzZSA0OgpAQCAtMTEwLDcgKzExMCw3IEBAIGludCB4ODZlbXVsX3JlYWRfZHIodW5z aWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyAqdmFsLAogCiAgICAgICAgIC8qIEZhbGx0aHJv dWdoICovCiAgICAgY2FzZSA2OgotICAgICAgICAqdmFsID0gY3Vyci0+YXJjaC5kZWJ1Z3JlZ1s2 XTsKKyAgICAgICAgKnZhbCA9IGN1cnItPmFyY2guZHI2OwogICAgICAgICBicmVhazsKIAogICAg IGNhc2UgNToKQEAgLTExOSw4ICsxMTksNyBAQCBpbnQgeDg2ZW11bF9yZWFkX2RyKHVuc2lnbmVk IGludCByZWcsIHVuc2lnbmVkIGxvbmcgKnZhbCwKIAogICAgICAgICAvKiBGYWxsdGhyb3VnaCAq LwogICAgIGNhc2UgNzoKLSAgICAgICAgKnZhbCA9IChjdXJyLT5hcmNoLmRlYnVncmVnWzddIHwK LSAgICAgICAgICAgICAgICBjdXJyLT5hcmNoLmRlYnVncmVnWzVdKTsKKyAgICAgICAgKnZhbCA9 IGN1cnItPmFyY2guZHI3IHwgY3Vyci0+YXJjaC5wdl92Y3B1LmRyN19lbXVsOwogICAgICAgICBi cmVhazsKIAogICAgIHVkX2ZhdWx0OgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9k b21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKaW5kZXggMTk3ZjhkNi4uNTlk NWU0YSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCkBAIC01MDAsNiArNTAwLDEyIEBAIHN0cnVjdCBwdl92 Y3B1CiAgICAgdW5zaWduZWQgbG9uZyBzaGFkb3dfbGR0X21hcGNudDsKICAgICBzcGlubG9ja190 IHNoYWRvd19sZHRfbG9jazsKIAorICAgIC8qCisgICAgICogJWRyNyBiaXRzIHRoZSBndWVzdCBo YXMgc2V0LCBidXQgYXJlbid0IGxvYWRlZCBpbnRvIGhhcmR3YXJlLCBhbmQgYXJlCisgICAgICog Y29tcGxldGVseSBlbXVsYXRlZC4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBkcjdfZW11bDsKKwog ICAgIC8qIGRhdGEgYnJlYWtwb2ludCBleHRlbnNpb24gTVNScyAqLwogICAgIHVpbnQzMl90IGRy X21hc2tbNF07CiAKQEAgLTUxOCw3ICs1MjQsMTAgQEAgc3RydWN0IGFyY2hfdmNwdQogICAgIHZv aWQgICAgICAgICAgICAgICpmcHVfY3R4dDsKICAgICB1bnNpZ25lZCBsb25nICAgICAgdmdjX2Zs YWdzOwogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzIHVzZXJfcmVnczsKLSAgICB1bnNpZ25lZCBs b25nICAgICAgZGVidWdyZWdbOF07CisKKyAgICAvKiBEZWJ1ZyByZWdpc3RlcnMuICovCisgICAg dW5zaWduZWQgbG9uZyBkcls0XTsKKyAgICB1bnNpZ25lZCBsb25nIGRyNiwgZHI3OwogCiAgICAg Lyogb3RoZXIgc3RhdGUgKi8KIAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs