From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 1/7] x86/viridian: update to version 5.0a of the specification Date: Fri, 17 Mar 2017 09:57:07 +0000 Message-ID: <1489744633-28760-2-git-send-email-paul.durrant@citrix.com> References: <1489744633-28760-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1coodL-0000TX-N1 for xen-devel@lists.xenproject.org; Fri, 17 Mar 2017 09:57:19 +0000 In-Reply-To: <1489744633-28760-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Paul Durrant , Ian Jackson , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org VGhlIEh5cGVydmlzb3IgVG9wIExldmVsIEZ1bmN0aW9uYWwgU3BlY2lmaWNhdGlvbiB2NS4wYSBo YXMgbWFueSBkaWZmZXJlbmNlcwpmcm9tIHByZXZpb3VzIHZlcnNpb25zIGFuZCBpbnRyb2R1Y2Vz IHdob2xlIG5ldyBzZWN0aW9ucy4KClRoaXMgcGF0Y2g6CgotIFVwZGF0ZXMgdGhlIFVSTCBhdCB0 aGUgdG9wIG9mIHRoZSBzb3VyY2UuCi0gRml4ZXMgdXAgc2VjdGlvbiByZWZlcmVuY2VzIGFjY29y ZGluZ2x5LgotIE1vZGlmaWVzIHRoZSBNU1IgbmFtaW5nIGNvbnZlbnRpb24gaW4gdGhlIGNvZGUg dG8gbWF0Y2ggdGhlIHNwZWNpZmljYXRpb24uCi0gUmVuYW1lIHRoZSBhcGljX2Fzc2lzdCBwYWdl IHRvIHRoZSB2cF9hc3Npc3QgcGFnZSB0byByZWZsZWN0IHRoZSBjaGFuZ2UKICBpbiB0aGUgc3Bl Y2lmaWNhdGlvbi4KICAoVGhlIEFQSUMgYXNzaXN0IGZlYXR1cmUgaXRzZWxmIGlzIGluY29uc2lz dGVudGx5IG5hbWVkIGluIHRoZQogIHNwZWNpZmljYXRpb24gc28gc3RpY2sgd3RoIHRoZSBjdXJy ZW50IGZlYXR1cmUgbmFtZSkuCi0gVXBkYXRlcyB0aGUgaGFuZGxpbmcgb2YgQ1BVSUQgbGVhZiAz LgoKVGhlcmUgaXMgb25lIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoaXMgcGF0Y2g6IFRoZSB2cF9h c3Npc3QgcGFnZSBpcwptYXBwZWQgKGFuZCBjb21wbGV0ZWx5IHplcm9lZCkgcmVnYXJkbGVzcyBv ZiB3aGV0aGVyIHRoZSBBUElDIGFzc2lzdApmZWF0dXJlIGlzIGVuYWJsZWQuIFRoaXMgcmVmbGVj dHMgaXRzIG5ldyB3aWRlciByZW1pdCBhbmQgc2ltcGxpZmllcyB0aGUKY29kZSBzbGlnaHRseS4K ClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0t LQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1 IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t PgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCiB0b29s cy9taXNjL3hlbi1odm1jdHguYyAgICAgICAgICAgICAgICB8ICAgNiArLQogeGVuL2FyY2gveDg2 L2h2bS92aXJpZGlhbi5jICAgICAgICAgICAgfCAyNTAgKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92aXJpZGlhbi5oICAgICB8ICAgNiAr LQogeGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2h2bS9zYXZlLmggfCAgIDQgKy0KIDQgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDEwOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90b29scy9taXNjL3hlbi1odm1jdHguYyBiL3Rvb2xzL21pc2MveGVuLWh2bWN0eC5jCmlu ZGV4IDMyYmUxMjAuLmJkZTQxZjMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL21pc2MveGVuLWh2bWN0eC5j CisrKyBiL3Rvb2xzL21pc2MveGVuLWh2bWN0eC5jCkBAIC0zNzksOSArMzc5LDkgQEAgc3RhdGlj IHZvaWQgZHVtcF92aXJpZGlhbl92Y3B1KHZvaWQpCiB7CiAgICAgSFZNX1NBVkVfVFlQRShWSVJJ RElBTl9WQ1BVKSBwOwogICAgIFJFQUQocCk7Ci0gICAgcHJpbnRmKCIgICAgVklSSURJQU5fVkNQ VTogYXBpY19hc3Npc3RfbXNyIDB4JWxseCwgYXBpY19hc3Npc3RfdmVjdG9yIDB4JXhcbiIsCi0J ICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgcC5hcGljX2Fzc2lzdF9tc3IsCi0JICAgcC5hcGljX2Fz c2lzdF92ZWN0b3IpOworICAgIHByaW50ZigiICAgIFZJUklESUFOX1ZDUFU6IHZwX2Fzc2lzdF9t c3IgMHglbGx4LCB2cF9hc3Npc3RfdmVjdG9yIDB4JXhcbiIsCisJICAgKHVuc2lnbmVkIGxvbmcg bG9uZykgcC52cF9hc3Npc3RfbXNyLAorCSAgIHAudnBfYXNzaXN0X3ZlY3Rvcik7CiB9CiAKIHN0 YXRpYyB2b2lkIGR1bXBfdm1jZV92Y3B1KHZvaWQpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL3ZpcmlkaWFuLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKaW5kZXggOGFjYTRk ZC4uZDc0MWU4MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwpAQCAtMiw5ICsyLDkgQEAKICAqIHZpcmlkaWFu LmMKICAqCiAgKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBzb21lIFZpcmlkaWFuIGVubGlnaHRlbm1l bnRzLiBTZWUgTWljcm9zb2Z0J3MKLSAqIEh5cGVydmlzb3IgVG9wIExldmVsIEZ1bmN0aW9uYWwg U3BlY2lmaWNhdGlvbiAodjQuMGIpIGF0OgorICogSHlwZXJ2aXNvciBUb3AgTGV2ZWwgRnVuY3Rp b25hbCBTcGVjaWZpY2F0aW9uICh2NS4wYSkgYXQ6CiAgKgotICogaHR0cHM6Ly9tc2RuLm1pY3Jv c29mdC5jb20vZW4tdXMvdmlydHVhbGl6YXRpb24vaHlwZXJ2X29uX3dpbmRvd3MvZGV2ZWxvcC90 bGZzIAorICogaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9WaXJ0dWFsaXphdGlvbi1Eb2N1 bWVudGF0aW9uL3Jhdy9tYXN0ZXIvdGxmcy9IeXBlcnZpc29yJTIwVG9wJTIwTGV2ZWwlMjBGdW5j dGlvbmFsJTIwU3BlY2lmaWNhdGlvbiUyMHY1LjAucGRmCiAgKgogICogZm9yIG1vcmUgaW5mb3Jt YXRpb24uCiAgKi8KQEAgLTIzLDE3ICsyMywxNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9odm0vaHZt X29wLmg+CiAKIC8qIFZpcmlkaWFuIE1TUiBudW1iZXJzLiAqLwotI2RlZmluZSBWSVJJRElBTl9N U1JfR1VFU1RfT1NfSUQgICAgICAgICAgICAgICAgMHg0MDAwMDAwMAotI2RlZmluZSBWSVJJRElB Tl9NU1JfSFlQRVJDQUxMICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMQotI2RlZmluZSBWSVJJ RElBTl9NU1JfVlBfSU5ERVggICAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMgotI2RlZmluZSBW SVJJRElBTl9NU1JfVElNRV9SRUZfQ09VTlQgICAgICAgICAgICAgMHg0MDAwMDAyMAotI2RlZmlu ZSBWSVJJRElBTl9NU1JfUkVGRVJFTkNFX1RTQyAgICAgICAgICAgICAgMHg0MDAwMDAyMQotI2Rl ZmluZSBWSVJJRElBTl9NU1JfVFNDX0ZSRVFVRU5DWSAgICAgICAgICAgICAgMHg0MDAwMDAyMgot I2RlZmluZSBWSVJJRElBTl9NU1JfQVBJQ19GUkVRVUVOQ1kgICAgICAgICAgICAgMHg0MDAwMDAy MwotI2RlZmluZSBWSVJJRElBTl9NU1JfRU9JICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAw MDA3MAotI2RlZmluZSBWSVJJRElBTl9NU1JfSUNSICAgICAgICAgICAgICAgICAgICAgICAgMHg0 MDAwMDA3MQotI2RlZmluZSBWSVJJRElBTl9NU1JfVFBSICAgICAgICAgICAgICAgICAgICAgICAg MHg0MDAwMDA3MgotI2RlZmluZSBWSVJJRElBTl9NU1JfQVBJQ19BU1NJU1QgICAgICAgICAgICAg ICAgMHg0MDAwMDA3MworI2RlZmluZSBIVl9YNjRfTVNSX0dVRVNUX09TX0lEICAgICAgICAgICAg ICAgICAgMHg0MDAwMDAwMAorI2RlZmluZSBIVl9YNjRfTVNSX0hZUEVSQ0FMTCAgICAgICAgICAg ICAgICAgICAgMHg0MDAwMDAwMQorI2RlZmluZSBIVl9YNjRfTVNSX1ZQX0lOREVYICAgICAgICAg ICAgICAgICAgICAgMHg0MDAwMDAwMgorI2RlZmluZSBIVl9YNjRfTVNSX1RJTUVfUkVGX0NPVU5U ICAgICAgICAgICAgICAgMHg0MDAwMDAyMAorI2RlZmluZSBIVl9YNjRfTVNSX1JFRkVSRU5DRV9U U0MgICAgICAgICAgICAgICAgMHg0MDAwMDAyMQorI2RlZmluZSBIVl9YNjRfTVNSX1RTQ19GUkVR VUVOQ1kgICAgICAgICAgICAgICAgMHg0MDAwMDAyMgorI2RlZmluZSBIVl9YNjRfTVNSX0FQSUNf RlJFUVVFTkNZICAgICAgICAgICAgICAgMHg0MDAwMDAyMworI2RlZmluZSBIVl9YNjRfTVNSX0VP SSAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDA3MAorI2RlZmluZSBIVl9YNjRfTVNS X0lDUiAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDA3MQorI2RlZmluZSBIVl9YNjRf TVNSX1RQUiAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMDA3MgorI2RlZmluZSBIVl9Y NjRfTVNSX1ZQX0FTU0lTVF9QQUdFICAgICAgICAgICAgICAgMHg0MDAwMDA3MwogCiAvKiBWaXJp ZGlhbiBIeXBlcmNhbGwgU3RhdHVzIENvZGVzLiAqLwogI2RlZmluZSBIVl9TVEFUVVNfU1VDQ0VT UyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwCkBAIC00OCwyMCArNDgsNjAgQEAKIC8qIFZp cmlkaWFuIEh5cGVyY2FsbCBGbGFncy4gKi8KICNkZWZpbmUgSFZfRkxVU0hfQUxMX1BST0NFU1NP UlMgMQogCi0vKiBWaXJpZGlhbiBDUFVJRCA0MDAwMDAzLCBWaXJpZGlhbiBNU1IgYXZhaWxhYmls aXR5LiAqLwotI2RlZmluZSBDUFVJRDNBX01TUl9USU1FX1JFRl9DT1VOVCAoMSA8PCAxKQotI2Rl ZmluZSBDUFVJRDNBX01TUl9BUElDX0FDQ0VTUyAgICAoMSA8PCA0KQotI2RlZmluZSBDUFVJRDNB X01TUl9IWVBFUkNBTEwgICAgICAoMSA8PCA1KQotI2RlZmluZSBDUFVJRDNBX01TUl9WUF9JTkRF WCAgICAgICAoMSA8PCA2KQotI2RlZmluZSBDUFVJRDNBX01TUl9SRUZFUkVOQ0VfVFNDICAoMSA8 PCA5KQotI2RlZmluZSBDUFVJRDNBX01TUl9GUkVRICAgICAgICAgICAoMSA8PCAxMSkKLQotLyog VmlyaWRpYW4gQ1BVSUQgNDAwMDAwNCwgSW1wbGVtZW50YXRpb24gUmVjb21tZW5kYXRpb25zLiAq LworLyoKKyAqIFZpcmlkaWFuIFBhcnRpdGlvbiBQcml2aWxlZ2UgRmxhZ3MuCisgKgorICogVGhp cyBpcyB0YWtlbiBmcm9tIHNlY3Rpb24gNC4yLjIgb2YgdGhlIHNwZWNpZmljYXRpb24sIGFuZCBm aXhlZCBmb3IKKyAqIHN0eWxlIGFuZCBjb3JyZWN0bmVzcy4KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg eworICAgIC8qIEFjY2VzcyB0byB2aXJ0dWFsIE1TUnMgKi8KKyAgICB1aW50NjRfdCBBY2Nlc3NW cFJ1blRpbWVSZWc6MTsKKyAgICB1aW50NjRfdCBBY2Nlc3NQYXJ0aXRpb25SZWZlcmVuY2VDb3Vu dGVyOjE7CisgICAgdWludDY0X3QgQWNjZXNzU3luaWNSZWdzOjE7CisgICAgdWludDY0X3QgQWNj ZXNzU3ludGhldGljVGltZXJSZWdzOjE7CisgICAgdWludDY0X3QgQWNjZXNzSW50ckN0cmxSZWdz OjE7CisgICAgdWludDY0X3QgQWNjZXNzSHlwZXJjYWxsTXNyczoxOworICAgIHVpbnQ2NF90IEFj Y2Vzc1ZwSW5kZXg6MTsKKyAgICB1aW50NjRfdCBBY2Nlc3NSZXNldFJlZzoxOworICAgIHVpbnQ2 NF90IEFjY2Vzc1N0YXRzUmVnOjE7CisgICAgdWludDY0X3QgQWNjZXNzUGFydGl0aW9uUmVmZXJl bmNlVHNjOjE7CisgICAgdWludDY0X3QgQWNjZXNzR3Vlc3RJZGxlUmVnOjE7CisgICAgdWludDY0 X3QgQWNjZXNzRnJlcXVlbmN5UmVnczoxOworICAgIHVpbnQ2NF90IEFjY2Vzc0RlYnVnUmVnczox OworICAgIHVpbnQ2NF90IFJlc2VydmVkMToxOTsKKworICAgIC8qIEFjY2VzcyB0byBoeXBlcmNh bGxzICovCisgICAgdWludDY0X3QgQ3JlYXRlUGFydGl0aW9uczoxOworICAgIHVpbnQ2NF90IEFj Y2Vzc1BhcnRpdGlvbklkOjE7CisgICAgdWludDY0X3QgQWNjZXNzTWVtb3J5UG9vbDoxOworICAg IHVpbnQ2NF90IEFkanVzdE1lc3NhZ2VCdWZmZXJzOjE7CisgICAgdWludDY0X3QgUG9zdE1lc3Nh Z2VzOjE7CisgICAgdWludDY0X3QgU2lnbmFsRXZlbnRzOjE7CisgICAgdWludDY0X3QgQ3JlYXRl UG9ydDoxOworICAgIHVpbnQ2NF90IENvbm5lY3RQb3J0OjE7CisgICAgdWludDY0X3QgQWNjZXNz U3RhdHM6MTsKKyAgICB1aW50NjRfdCBSZXNlcnZlZDI6MjsKKyAgICB1aW50NjRfdCBEZWJ1Z2dp bmc6MTsKKyAgICB1aW50NjRfdCBDcHVNYW5hZ2VtZW50OjE7CisgICAgdWludDY0X3QgUmVzZXJ2 ZWQzOjE7CisgICAgdWludDY0X3QgUmVzZXJ2ZWQ0OjE7CisgICAgdWludDY0X3QgUmVzZXJ2ZWQ1 OjE7CisgICAgdWludDY0X3QgQWNjZXNzVlNNOjE7CisgICAgdWludDY0X3QgQWNjZXNzVnBSZWdp c3RlcnM6MTsKKyAgICB1aW50NjRfdCBSZXNlcnZlZDY6MTsKKyAgICB1aW50NjRfdCBSZXNlcnZl ZDc6MTsKKyAgICB1aW50NjRfdCBFbmFibGVFeHRlbmRlZEh5cGVyY2FsbHM6MTsKKyAgICB1aW50 NjRfdCBTdGFydFZpcnR1YWxQcm9jZXNzb3I6MTsKKyAgICB1aW50NjRfdCBSZXNlcnZlZDg6MTA7 Cit9IEhWX1BBUlRJVElPTl9QUklWSUxFR0VfTUFTSzsKKworLyogVmlyaWRpYW4gQ1BVSUQgbGVh ZiA0OiBJbXBsZW1lbnRhdGlvbiBSZWNvbW1lbmRhdGlvbnMuICovCiAjZGVmaW5lIENQVUlENEFf SENBTExfUkVNT1RFX1RMQl9GTFVTSCAoMSA8PCAyKQogI2RlZmluZSBDUFVJRDRBX01TUl9CQVNF RF9BUElDICAgICAgICAgKDEgPDwgMykKICNkZWZpbmUgQ1BVSUQ0QV9SRUxBWF9USU1FUl9JTlQg ICAgICAgICgxIDw8IDUpCiAKLS8qIFZpcmlkaWFuIENQVUlEIDQwMDAwMDYsIEltcGxlbWVudGF0 aW9uIEhXIGZlYXR1cmVzIGRldGVjdGVkIGFuZCBpbiB1c2UuICovCisvKiBWaXJpZGlhbiBDUFVJ RCBsZWFmIDY6IEltcGxlbWVudGF0aW9uIEhXIGZlYXR1cmVzIGRldGVjdGVkIGFuZCBpbiB1c2Uu ICovCiAjZGVmaW5lIENQVUlENkFfQVBJQ19PVkVSTEFZICAgICgxIDw8IDApCiAjZGVmaW5lIENQ VUlENkFfTVNSX0JJVE1BUFMgICAgICgxIDw8IDEpCiAjZGVmaW5lIENQVUlENkFfTkVTVEVEX1BB R0lORyAgICgxIDw8IDMpCkBAIC0xMDEsMTcgKzE0MSwzNSBAQCB2b2lkIGNwdWlkX3ZpcmlkaWFu X2xlYXZlcyhjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgbGVhZiwKICAgICAgICAgYnJl YWs7CiAKICAgICBjYXNlIDM6Ci0gICAgICAgIC8qIFdoaWNoIGh5cGVydmlzb3IgTVNScyBhcmUg YXZhaWxhYmxlIHRvIHRoZSBndWVzdCAqLwotICAgICAgICByZXMtPmEgPSAoQ1BVSUQzQV9NU1Jf QVBJQ19BQ0NFU1MgfAotICAgICAgICAgICAgICAgICAgQ1BVSUQzQV9NU1JfSFlQRVJDQUxMICAg fAotICAgICAgICAgICAgICAgICAgQ1BVSUQzQV9NU1JfVlBfSU5ERVgpOworICAgIHsKKyAgICAg ICAgLyoKKyAgICAgICAgICogU2VjdGlvbiAyLjQuNCBkZXRhaWxzIHRoaXMgbGVhZiBhbmQgc3Rh dGVzIHRoYXQgRUFYIGFuZCBFQlgKKyAgICAgICAgICogYXJlIGRlZmluZWQgdG8gdGhlIHRoZSBs b3cgYW5kIGhpZ2ggcGFydHMgb2YgdGhlIHBhcnRpdGlvbgorICAgICAgICAgKiBwcml2aWxlZ2Ug bWFzayByZXNwZWN0aXZlbHkuCisgICAgICAgICAqLworICAgICAgICBIVl9QQVJUSVRJT05fUFJJ VklMRUdFX01BU0sgbWFzayA9IHsKKyAgICAgICAgICAgIC5BY2Nlc3NJbnRyQ3RybFJlZ3MgPSAx LAorICAgICAgICAgICAgLkFjY2Vzc0h5cGVyY2FsbE1zcnMgPSAxLAorICAgICAgICAgICAgLkFj Y2Vzc1ZwSW5kZXggPSAxLAorICAgICAgICB9OworICAgICAgICB1bmlvbiB7CisgICAgICAgICAg ICBIVl9QQVJUSVRJT05fUFJJVklMRUdFX01BU0sgbWFzazsKKyAgICAgICAgICAgIHVpbnQzMl90 IGxvLCBoaTsKKyAgICAgICAgfSB1OworCiAgICAgICAgIGlmICggISh2aXJpZGlhbl9mZWF0dXJl X21hc2soZCkgJiBIVk1QVl9ub19mcmVxKSApCi0gICAgICAgICAgICByZXMtPmEgfD0gQ1BVSUQz QV9NU1JfRlJFUTsKKyAgICAgICAgICAgIG1hc2suQWNjZXNzRnJlcXVlbmN5UmVncyA9IDE7CiAg ICAgICAgIGlmICggdmlyaWRpYW5fZmVhdHVyZV9tYXNrKGQpICYgSFZNUFZfdGltZV9yZWZfY291 bnQgKQotICAgICAgICAgICAgcmVzLT5hIHw9IENQVUlEM0FfTVNSX1RJTUVfUkVGX0NPVU5UOwor ICAgICAgICAgICAgbWFzay5BY2Nlc3NQYXJ0aXRpb25SZWZlcmVuY2VDb3VudGVyID0gMTsKICAg ICAgICAgaWYgKCB2aXJpZGlhbl9mZWF0dXJlX21hc2soZCkgJiBIVk1QVl9yZWZlcmVuY2VfdHNj ICkKLSAgICAgICAgICAgIHJlcy0+YSB8PSBDUFVJRDNBX01TUl9SRUZFUkVOQ0VfVFNDOworICAg ICAgICAgICAgbWFzay5BY2Nlc3NQYXJ0aXRpb25SZWZlcmVuY2VUc2MgPSAxOworCisgICAgICAg IHUubWFzayA9IG1hc2s7CisKKyAgICAgICAgcmVzLT5hID0gdS5sbzsKKyAgICAgICAgcmVzLT5i ID0gdS5oaTsKICAgICAgICAgYnJlYWs7CisgICAgfQogCiAgICAgY2FzZSA0OgogICAgICAgICAv KiBSZWNvbW1lbmRlZCBoeXBlcmNhbGwgdXNhZ2UuICovCkBAIC0xNjMsMTQgKzIyMSwxNCBAQCBz dGF0aWMgdm9pZCBkdW1wX2h5cGVyY2FsbChjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQogICAgICAg ICAgICBoZy0+ZmllbGRzLmVuYWJsZWQsICh1bnNpZ25lZCBsb25nKWhnLT5maWVsZHMucGZuKTsK IH0KIAotc3RhdGljIHZvaWQgZHVtcF9hcGljX2Fzc2lzdChjb25zdCBzdHJ1Y3QgdmNwdSAqdikK K3N0YXRpYyB2b2lkIGR1bXBfdnBfYXNzaXN0KGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQogewotICAg IGNvbnN0IHVuaW9uIHZpcmlkaWFuX2FwaWNfYXNzaXN0ICphYTsKKyAgICBjb25zdCB1bmlvbiB2 aXJpZGlhbl92cF9hc3Npc3QgKnZhOwogCi0gICAgYWEgPSAmdi0+YXJjaC5odm1fdmNwdS52aXJp ZGlhbi5hcGljX2Fzc2lzdC5tc3I7CisgICAgdmEgPSAmdi0+YXJjaC5odm1fdmNwdS52aXJpZGlh bi52cF9hc3Npc3QubXNyOwogCi0gICAgcHJpbnRrKFhFTkxPR19HX0lORk8gIiVwdjogVklSSURJ QU4gQVBJQ19BU1NJU1Q6IGVuYWJsZWQ6ICV4IHBmbjogJWx4XG4iLAotICAgICAgICAgICB2LCBh YS0+ZmllbGRzLmVuYWJsZWQsICh1bnNpZ25lZCBsb25nKWFhLT5maWVsZHMucGZuKTsKKyAgICBw cmludGsoWEVOTE9HX0dfSU5GTyAiJXB2OiBWSVJJRElBTiBWUF9BU1NJU1RfUEFHRTogZW5hYmxl ZDogJXggcGZuOiAlbHhcbiIsCisgICAgICAgICAgIHYsIHZhLT5maWVsZHMuZW5hYmxlZCwgKHVu c2lnbmVkIGxvbmcpdmEtPmZpZWxkcy5wZm4pOwogfQogCiBzdGF0aWMgdm9pZCBkdW1wX3JlZmVy ZW5jZV90c2MoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKQEAgLTIxOCwxNSArMjc2LDE1IEBAIHN0 YXRpYyB2b2lkIGVuYWJsZV9oeXBlcmNhbGxfcGFnZShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHB1 dF9wYWdlX2FuZF90eXBlKHBhZ2UpOwogfQogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplX2FwaWNf YXNzaXN0KHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZV92cF9hc3Npc3Qo c3RydWN0IHZjcHUgKnYpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKLSAg ICB1bnNpZ25lZCBsb25nIGdtZm4gPSB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNz aXN0Lm1zci5maWVsZHMucGZuOworICAgIHVuc2lnbmVkIGxvbmcgZ21mbiA9IHYtPmFyY2guaHZt X3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0Lm1zci5maWVsZHMucGZuOwogICAgIHN0cnVjdCBwYWdl X2luZm8gKnBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCBOVUxMLCBQMk1fQUxMT0Mp OwogICAgIHZvaWQgKnZhOwogCiAgICAgLyoKLSAgICAgKiBTZWUgc2VjdGlvbiAxMy4zLjQuMSBv ZiB0aGUgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlscyBvZiB0aGlzCisgICAgICogU2VlIHNlY3Rp b24gNy44Ljcgb2YgdGhlIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbHMgb2YgdGhpcwogICAgICAq IGVubGlnaHRlbm1lbnQuCiAgICAgICovCiAKQEAgLTI0NiwyNCArMzA0LDE3IEBAIHN0YXRpYyB2 b2lkIGluaXRpYWxpemVfYXBpY19hc3Npc3Qoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIGdvdG8g ZmFpbDsKICAgICB9CiAKLSAgICAqKHVpbnQzMl90ICopdmEgPSAwOwotCi0gICAgaWYgKCB2aXJp ZGlhbl9mZWF0dXJlX21hc2sodi0+ZG9tYWluKSAmIEhWTVBWX2FwaWNfYXNzaXN0ICkKLSAgICB7 Ci0gICAgICAgIC8qCi0gICAgICAgICAqIElmIHdlIG92ZXJ3cml0ZSBhbiBleGlzdGluZyBhZGRy ZXNzIGhlcmUgdGhlbiBzb21ldGhpbmcgaGFzCi0gICAgICAgICAqIGdvbmUgd3JvbmcgYW5kIGEg ZG9tYWluIHBhZ2Ugd2lsbCBsZWFrLiBJbnN0ZWFkIGNyYXNoIHRoZQotICAgICAgICAgKiBkb21h aW4gdG8gbWFrZSB0aGUgcHJvYmxlbSBvYnZpb3VzLgotICAgICAgICAgKi8KLSAgICAgICAgaWYg KCB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0LnZhICkKLSAgICAgICAgICAg IGRvbWFpbl9jcmFzaChkKTsKKyAgICBjbGVhcl9wYWdlKHZhKTsKIAotICAgICAgICB2LT5hcmNo Lmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0LnZhID0gdmE7Ci0gICAgICAgIHJldHVybjsK LSAgICB9CisgICAgLyoKKyAgICAgKiBJZiB3ZSBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgYWRkcmVz cyBoZXJlIHRoZW4gc29tZXRoaW5nIGhhcworICAgICAqIGdvbmUgd3JvbmcgYW5kIGEgZG9tYWlu IHBhZ2Ugd2lsbCBsZWFrLiBJbnN0ZWFkIGNyYXNoIHRoZQorICAgICAqIGRvbWFpbiB0byBtYWtl IHRoZSBwcm9ibGVtIG9idmlvdXMuCisgICAgICovCisgICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1 LnZpcmlkaWFuLnZwX2Fzc2lzdC52YSApCisgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKIAotICAg IHVubWFwX2RvbWFpbl9wYWdlX2dsb2JhbCh2YSk7Ci0gICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFn ZSk7CisgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QudmEgPSB2YTsKICAg ICByZXR1cm47CiAKICBmYWlsOgpAQCAtMjcxLDE1ICszMjIsMTUgQEAgc3RhdGljIHZvaWQgaW5p dGlhbGl6ZV9hcGljX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgICBwYWdlID8g cGFnZV90b19tZm4ocGFnZSkgOiBtZm5feChJTlZBTElEX01GTikpOwogfQogCi1zdGF0aWMgdm9p ZCB0ZWFyZG93bl9hcGljX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikKK3N0YXRpYyB2b2lkIHRlYXJk b3duX3ZwX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICB2b2lkICp2YSA9IHYtPmFyY2gu aHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3QudmE7CisgICAgdm9pZCAqdmEgPSB2LT5hcmNo Lmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52YTsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpw YWdlOwogCiAgICAgaWYgKCAhdmEgKQogICAgICAgICByZXR1cm47CiAKLSAgICB2LT5hcmNoLmh2 bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0LnZhID0gTlVMTDsKKyAgICB2LT5hcmNoLmh2bV92 Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52YSA9IE5VTEw7CiAKICAgICBwYWdlID0gbWZuX3RvX3Bh Z2UoZG9tYWluX3BhZ2VfbWFwX3RvX21mbih2YSkpOwogCkBAIC0yODksNyArMzQwLDcgQEAgc3Rh dGljIHZvaWQgdGVhcmRvd25fYXBpY19hc3Npc3Qoc3RydWN0IHZjcHUgKnYpCiAKIHZvaWQgdmly aWRpYW5fc3RhcnRfYXBpY19hc3Npc3Qoc3RydWN0IHZjcHUgKnYsIGludCB2ZWN0b3IpCiB7Ci0g ICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52 YTsKKyAgICB1aW50MzJfdCAqdmEgPSB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lz dC52YTsKIAogICAgIGlmICggIXZhICkKICAgICAgICAgcmV0dXJuOwpAQCAtMzAyLDE2ICszNTMs MTYgQEAgdm9pZCB2aXJpZGlhbl9zdGFydF9hcGljX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdiwgaW50 IHZlY3RvcikKICAgICAgKiB3cm9uZyBhbmQgdGhlIFZNIHdpbGwgbW9zdCBsaWtlbHkgaGFuZyBz byBmb3JjZSBhIGNyYXNoIG5vdwogICAgICAqIHRvIG1ha2UgdGhlIHByb2JsZW0gY2xlYXIuCiAg ICAgICovCi0gICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0LnZl Y3RvciApCisgICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52ZWN0 b3IgKQogICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKIAotICAgIHYtPmFyY2guaHZt X3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3QudmVjdG9yID0gdmVjdG9yOworICAgIHYtPmFyY2gu aHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0LnZlY3RvciA9IHZlY3RvcjsKICAgICAqdmEgfD0g MXU7CiB9CiAKIGludCB2aXJpZGlhbl9jb21wbGV0ZV9hcGljX2Fzc2lzdChzdHJ1Y3QgdmNwdSAq dikKIHsKLSAgICB1aW50MzJfdCAqdmEgPSB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNf YXNzaXN0LnZhOworICAgIHVpbnQzMl90ICp2YSA9IHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4u dnBfYXNzaXN0LnZhOwogICAgIGludCB2ZWN0b3I7CiAKICAgICBpZiAoICF2YSApCkBAIC0zMjAs MjEgKzM3MSwyMSBAQCBpbnQgdmlyaWRpYW5fY29tcGxldGVfYXBpY19hc3Npc3Qoc3RydWN0IHZj cHUgKnYpCiAgICAgaWYgKCAqdmEgJiAxdSApCiAgICAgICAgIHJldHVybiAwOyAvKiBJbnRlcnJ1 cHQgbm90IHlldCBwcm9jZXNzZWQgYnkgdGhlIGd1ZXN0LiAqLwogCi0gICAgdmVjdG9yID0gdi0+ YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52ZWN0b3I7Ci0gICAgdi0+YXJjaC5o dm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52ZWN0b3IgPSAwOworICAgIHZlY3RvciA9IHYt PmFyY2guaHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0LnZlY3RvcjsKKyAgICB2LT5hcmNoLmh2 bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52ZWN0b3IgPSAwOwogCiAgICAgcmV0dXJuIHZlY3Rv cjsKIH0KIAogdm9pZCB2aXJpZGlhbl9hYm9ydF9hcGljX2Fzc2lzdChzdHJ1Y3QgdmNwdSAqdikK IHsKLSAgICB1aW50MzJfdCAqdmEgPSB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNz aXN0LnZhOworICAgIHVpbnQzMl90ICp2YSA9IHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4udnBf YXNzaXN0LnZhOwogCiAgICAgaWYgKCAhdmEgKQogICAgICAgICByZXR1cm47CiAKICAgICAqdmEg Jj0gfjF1OwotICAgIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3QudmVjdG9y ID0gMDsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52ZWN0b3IgPSAw OwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVfcmVmZXJlbmNlX3RzYyhzdHJ1Y3QgZG9tYWluICpk LCBib29sX3QgaW5pdGlhbGl6ZSkKQEAgLTQyMCwxMyArNDcxLDEzIEBAIGludCB3cm1zcl92aXJp ZGlhbl9yZWdzKHVpbnQzMl90IGlkeCwgdWludDY0X3QgdmFsKQogCiAgICAgc3dpdGNoICggaWR4 ICkKICAgICB7Ci0gICAgY2FzZSBWSVJJRElBTl9NU1JfR1VFU1RfT1NfSUQ6CisgICAgY2FzZSBI Vl9YNjRfTVNSX0dVRVNUX09TX0lEOgogICAgICAgICBwZXJmY19pbmNyKG1zaHZfd3Jtc3Jfb3Np ZCk7CiAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi52aXJpZGlhbi5ndWVzdF9vc19pZC5yYXcg PSB2YWw7CiAgICAgICAgIGR1bXBfZ3Vlc3Rfb3NfaWQoZCk7CiAgICAgICAgIGJyZWFrOwogCi0g ICAgY2FzZSBWSVJJRElBTl9NU1JfSFlQRVJDQUxMOgorICAgIGNhc2UgSFZfWDY0X01TUl9IWVBF UkNBTEw6CiAgICAgICAgIHBlcmZjX2luY3IobXNodl93cm1zcl9oY19wYWdlKTsKICAgICAgICAg ZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLmh5cGVyY2FsbF9ncGEucmF3ID0gdmFsOwogICAg ICAgICBkdW1wX2h5cGVyY2FsbChkKTsKQEAgLTQzNCwxNiArNDg1LDE2IEBAIGludCB3cm1zcl92 aXJpZGlhbl9yZWdzKHVpbnQzMl90IGlkeCwgdWludDY0X3QgdmFsKQogICAgICAgICAgICAgZW5h YmxlX2h5cGVyY2FsbF9wYWdlKGQpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgVklSSURJ QU5fTVNSX1ZQX0lOREVYOgorICAgIGNhc2UgSFZfWDY0X01TUl9WUF9JTkRFWDoKICAgICAgICAg cGVyZmNfaW5jcihtc2h2X3dybXNyX3ZwX2luZGV4KTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBj YXNlIFZJUklESUFOX01TUl9FT0k6CisgICAgY2FzZSBIVl9YNjRfTVNSX0VPSToKICAgICAgICAg cGVyZmNfaW5jcihtc2h2X3dybXNyX2VvaSk7CiAgICAgICAgIHZsYXBpY19FT0lfc2V0KHZjcHVf dmxhcGljKHYpKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFZJUklESUFOX01TUl9JQ1I6 IHsKKyAgICBjYXNlIEhWX1g2NF9NU1JfSUNSOiB7CiAgICAgICAgIHUzMiBlYXggPSAodTMyKXZh bCwgZWR4ID0gKHUzMikodmFsID4+IDMyKTsKICAgICAgICAgc3RydWN0IHZsYXBpYyAqdmxhcGlj ID0gdmNwdV92bGFwaWModik7CiAgICAgICAgIHBlcmZjX2luY3IobXNodl93cm1zcl9pY3IpOwpA QCAtNDU1LDIxICs1MDYsMjEgQEAgaW50IHdybXNyX3ZpcmlkaWFuX3JlZ3ModWludDMyX3QgaWR4 LCB1aW50NjRfdCB2YWwpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgVklSSURJ QU5fTVNSX1RQUjoKKyAgICBjYXNlIEhWX1g2NF9NU1JfVFBSOgogICAgICAgICBwZXJmY19pbmNy KG1zaHZfd3Jtc3JfdHByKTsKICAgICAgICAgdmxhcGljX3NldF9yZWcodmNwdV92bGFwaWModiks IEFQSUNfVEFTS1BSSSwgKHVpbnQ4X3QpdmFsKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNl IFZJUklESUFOX01TUl9BUElDX0FTU0lTVDoKKyAgICBjYXNlIEhWX1g2NF9NU1JfVlBfQVNTSVNU X1BBR0U6CiAgICAgICAgIHBlcmZjX2luY3IobXNodl93cm1zcl9hcGljX21zcik7Ci0gICAgICAg IHRlYXJkb3duX2FwaWNfYXNzaXN0KHYpOyAvKiByZWxlYXNlIGFueSBwcmV2aW91cyBtYXBwaW5n ICovCi0gICAgICAgIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3QubXNyLnJh dyA9IHZhbDsKLSAgICAgICAgZHVtcF9hcGljX2Fzc2lzdCh2KTsKLSAgICAgICAgaWYgKCB2LT5h cmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0Lm1zci5maWVsZHMuZW5hYmxlZCApCi0g ICAgICAgICAgICBpbml0aWFsaXplX2FwaWNfYXNzaXN0KHYpOworICAgICAgICB0ZWFyZG93bl92 cF9hc3Npc3Qodik7IC8qIHJlbGVhc2UgYW55IHByZXZpb3VzIG1hcHBpbmcgKi8KKyAgICAgICAg di0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QubXNyLnJhdyA9IHZhbDsKKyAgICAg ICAgZHVtcF92cF9hc3Npc3Qodik7CisgICAgICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS52aXJp ZGlhbi52cF9hc3Npc3QubXNyLmZpZWxkcy5lbmFibGVkICkKKyAgICAgICAgICAgIGluaXRpYWxp emVfdnBfYXNzaXN0KHYpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgVklSSURJQU5fTVNS X1JFRkVSRU5DRV9UU0M6CisgICAgY2FzZSBIVl9YNjRfTVNSX1JFRkVSRU5DRV9UU0M6CiAgICAg ICAgIGlmICggISh2aXJpZGlhbl9mZWF0dXJlX21hc2soZCkgJiBIVk1QVl9yZWZlcmVuY2VfdHNj KSApCiAgICAgICAgICAgICByZXR1cm4gMDsKIApAQCAtNTMwLDIyICs1ODEsMjIgQEAgaW50IHJk bXNyX3ZpcmlkaWFuX3JlZ3ModWludDMyX3QgaWR4LCB1aW50NjRfdCAqdmFsKQogCiAgICAgc3dp dGNoICggaWR4ICkKICAgICB7Ci0gICAgY2FzZSBWSVJJRElBTl9NU1JfR1VFU1RfT1NfSUQ6Cisg ICAgY2FzZSBIVl9YNjRfTVNSX0dVRVNUX09TX0lEOgogICAgICAgICBwZXJmY19pbmNyKG1zaHZf cmRtc3Jfb3NpZCk7CiAgICAgICAgICp2YWwgPSBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4u Z3Vlc3Rfb3NfaWQucmF3OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgVklSSURJQU5fTVNS X0hZUEVSQ0FMTDoKKyAgICBjYXNlIEhWX1g2NF9NU1JfSFlQRVJDQUxMOgogICAgICAgICBwZXJm Y19pbmNyKG1zaHZfcmRtc3JfaGNfcGFnZSk7CiAgICAgICAgICp2YWwgPSBkLT5hcmNoLmh2bV9k b21haW4udmlyaWRpYW4uaHlwZXJjYWxsX2dwYS5yYXc7CiAgICAgICAgIGJyZWFrOwogCi0gICAg Y2FzZSBWSVJJRElBTl9NU1JfVlBfSU5ERVg6CisgICAgY2FzZSBIVl9YNjRfTVNSX1ZQX0lOREVY OgogICAgICAgICBwZXJmY19pbmNyKG1zaHZfcmRtc3JfdnBfaW5kZXgpOwogICAgICAgICAqdmFs ID0gdi0+dmNwdV9pZDsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFZJUklESUFOX01TUl9U U0NfRlJFUVVFTkNZOgorICAgIGNhc2UgSFZfWDY0X01TUl9UU0NfRlJFUVVFTkNZOgogICAgICAg ICBpZiAoIHZpcmlkaWFuX2ZlYXR1cmVfbWFzayhkKSAmIEhWTVBWX25vX2ZyZXEgKQogICAgICAg ICAgICAgcmV0dXJuIDA7CiAKQEAgLTU1Myw3ICs2MDQsNyBAQCBpbnQgcmRtc3JfdmlyaWRpYW5f cmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90ICp2YWwpCiAgICAgICAgICp2YWwgPSAodWludDY0 X3QpZC0+YXJjaC50c2Nfa2h6ICogMTAwMHVsbDsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNl IFZJUklESUFOX01TUl9BUElDX0ZSRVFVRU5DWToKKyAgICBjYXNlIEhWX1g2NF9NU1JfQVBJQ19G UkVRVUVOQ1k6CiAgICAgICAgIGlmICggdmlyaWRpYW5fZmVhdHVyZV9tYXNrKGQpICYgSFZNUFZf bm9fZnJlcSApCiAgICAgICAgICAgICByZXR1cm4gMDsKIApAQCAtNTYxLDIzICs2MTIsMjMgQEAg aW50IHJkbXNyX3ZpcmlkaWFuX3JlZ3ModWludDMyX3QgaWR4LCB1aW50NjRfdCAqdmFsKQogICAg ICAgICAqdmFsID0gMTAwMDAwMDAwMHVsbCAvIEFQSUNfQlVTX0NZQ0xFX05TOwogICAgICAgICBi cmVhazsKIAotICAgIGNhc2UgVklSSURJQU5fTVNSX0lDUjoKKyAgICBjYXNlIEhWX1g2NF9NU1Jf SUNSOgogICAgICAgICBwZXJmY19pbmNyKG1zaHZfcmRtc3JfaWNyKTsKICAgICAgICAgKnZhbCA9 ICgoKHVpbnQ2NF90KXZsYXBpY19nZXRfcmVnKHZjcHVfdmxhcGljKHYpLCBBUElDX0lDUjIpIDw8 IDMyKSB8CiAgICAgICAgICAgICAgICAgdmxhcGljX2dldF9yZWcodmNwdV92bGFwaWModiksIEFQ SUNfSUNSKSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBWSVJJRElBTl9NU1JfVFBSOgor ICAgIGNhc2UgSFZfWDY0X01TUl9UUFI6CiAgICAgICAgIHBlcmZjX2luY3IobXNodl9yZG1zcl90 cHIpOwogICAgICAgICAqdmFsID0gdmxhcGljX2dldF9yZWcodmNwdV92bGFwaWModiksIEFQSUNf VEFTS1BSSSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBWSVJJRElBTl9NU1JfQVBJQ19B U1NJU1Q6CisgICAgY2FzZSBIVl9YNjRfTVNSX1ZQX0FTU0lTVF9QQUdFOgogICAgICAgICBwZXJm Y19pbmNyKG1zaHZfcmRtc3JfYXBpY19tc3IpOwotICAgICAgICAqdmFsID0gdi0+YXJjaC5odm1f dmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC5tc3IucmF3OworICAgICAgICAqdmFsID0gdi0+YXJj aC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QubXNyLnJhdzsKICAgICAgICAgYnJlYWs7CiAK LSAgICBjYXNlIFZJUklESUFOX01TUl9SRUZFUkVOQ0VfVFNDOgorICAgIGNhc2UgSFZfWDY0X01T Ul9SRUZFUkVOQ0VfVFNDOgogICAgICAgICBpZiAoICEodmlyaWRpYW5fZmVhdHVyZV9tYXNrKGQp ICYgSFZNUFZfcmVmZXJlbmNlX3RzYykgKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTU4 NSw3ICs2MzYsNyBAQCBpbnQgcmRtc3JfdmlyaWRpYW5fcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2 NF90ICp2YWwpCiAgICAgICAgICp2YWwgPSBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4ucmVm ZXJlbmNlX3RzYy5yYXc7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBWSVJJRElBTl9NU1Jf VElNRV9SRUZfQ09VTlQ6CisgICAgY2FzZSBIVl9YNjRfTVNSX1RJTUVfUkVGX0NPVU5UOgogICAg IHsKICAgICAgICAgc3RydWN0IHZpcmlkaWFuX3RpbWVfcmVmX2NvdW50ICp0cmM7CiAKQEAgLTYx Miw3ICs2NjMsNyBAQCBpbnQgcmRtc3JfdmlyaWRpYW5fcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2 NF90ICp2YWwpCiAKIHZvaWQgdmlyaWRpYW5fdmNwdV9kZWluaXQoc3RydWN0IHZjcHUgKnYpCiB7 Ci0gICAgdGVhcmRvd25fYXBpY19hc3Npc3Qodik7CisgICAgdGVhcmRvd25fdnBfYXNzaXN0KHYp OwogfQogCiB2b2lkIHZpcmlkaWFuX2RvbWFpbl9kZWluaXQoc3RydWN0IGRvbWFpbiAqZCkKQEAg LTYyMCw3ICs2NzEsNyBAQCB2b2lkIHZpcmlkaWFuX2RvbWFpbl9kZWluaXQoc3RydWN0IGRvbWFp biAqZCkKICAgICBzdHJ1Y3QgdmNwdSAqdjsKIAogICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkK LSAgICAgICAgdGVhcmRvd25fYXBpY19hc3Npc3Qodik7CisgICAgICAgIHRlYXJkb3duX3ZwX2Fz c2lzdCh2KTsKIH0KIAogc3RhdGljIERFRklORV9QRVJfQ1BVKGNwdW1hc2tfdCwgaXBpX2NwdW1h c2spOwpAQCAtNjc4LDcgKzcyOSw3IEBAIGludCB2aXJpZGlhbl9oeXBlcmNhbGwoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgewogICAgIGNhc2UgSHZOb3RpZnlMb25nU3BpbldhaXQ6 CiAgICAgICAgIC8qCi0gICAgICAgICAqIFNlZSBNaWNyb3NvZnQgSHlwZXJ2aXNvciBUb3AgTGV2 ZWwgU3BlYy4gc2VjdGlvbiAxOC41LjEuCisgICAgICAgICAqIFNlZSBzZWN0aW9uIDE0LjUuMSBv ZiB0aGUgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgICovCiAgICAgICAgIHBlcmZjX2luY3IobXNo dl9jYWxsX2xvbmdfd2FpdCk7CiAgICAgICAgIGRvX3NjaGVkX29wKFNDSEVET1BfeWllbGQsIGd1 ZXN0X2hhbmRsZV9mcm9tX3B0cihOVUxMLCB2b2lkKSk7CkBAIC02OTcsOCArNzQ4LDcgQEAgaW50 IHZpcmlkaWFuX2h5cGVyY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAg fSBpbnB1dF9wYXJhbXM7CiAKICAgICAgICAgLyoKLSAgICAgICAgICogU2VlIE1pY3Jvc29mdCBI eXBlcnZpc29yIFRvcCBMZXZlbCBTcGVjLiBzZWN0aW9ucyAxMi40LjIKLSAgICAgICAgICogYW5k IDEyLjQuMy4KKyAgICAgICAgICogU2VlIHNlY3Rpb25zIDkuNC4yIGFuZCA5LjQuNCBvZiB0aGUg c3BlY2lmaWNhdGlvbi4KICAgICAgICAgICovCiAgICAgICAgIHBlcmZjX2luY3IobXNodl9jYWxs X2ZsdXNoKTsKIApAQCAtODIyLDggKzg3Miw4IEBAIHN0YXRpYyBpbnQgdmlyaWRpYW5fc2F2ZV92 Y3B1X2N0eHQoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAKICAg ICBmb3JfZWFjaF92Y3B1KCBkLCB2ICkgewogICAgICAgICBzdHJ1Y3QgaHZtX3ZpcmlkaWFuX3Zj cHVfY29udGV4dCBjdHh0ID0gewotICAgICAgICAgICAgLmFwaWNfYXNzaXN0X21zciA9IHYtPmFy Y2guaHZtX3ZjcHUudmlyaWRpYW4uYXBpY19hc3Npc3QubXNyLnJhdywKLSAgICAgICAgICAgIC5h cGljX2Fzc2lzdF92ZWN0b3IgPSB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0 LnZlY3RvciwKKyAgICAgICAgICAgIC52cF9hc3Npc3RfbXNyID0gdi0+YXJjaC5odm1fdmNwdS52 aXJpZGlhbi52cF9hc3Npc3QubXNyLnJhdywKKyAgICAgICAgICAgIC52cF9hc3Npc3RfdmVjdG9y ID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QudmVjdG9yLAogICAgICAgICB9 OwogCiAgICAgICAgIGlmICggaHZtX3NhdmVfZW50cnkoVklSSURJQU5fVkNQVSwgdi0+dmNwdV9p ZCwgaCwgJmN0eHQpICE9IDAgKQpAQCAtODUzLDExICs5MDMsMTEgQEAgc3RhdGljIGludCB2aXJp ZGlhbl9sb2FkX3ZjcHVfY3R4dChzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRf dCAqaCkKICAgICBpZiAoIG1lbWNtcCgmY3R4dC5fcGFkLCB6ZXJvX3BhZ2UsIHNpemVvZihjdHh0 Ll9wYWQpKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgdi0+YXJjaC5odm1fdmNw dS52aXJpZGlhbi5hcGljX2Fzc2lzdC5tc3IucmF3ID0gY3R4dC5hcGljX2Fzc2lzdF9tc3I7Ci0g ICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmFwaWNfYXNzaXN0Lm1zci5maWVsZHMu ZW5hYmxlZCApCi0gICAgICAgIGluaXRpYWxpemVfYXBpY19hc3Npc3Qodik7CisgICAgdi0+YXJj aC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QubXNyLnJhdyA9IGN0eHQudnBfYXNzaXN0X21z cjsKKyAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0Lm1zci5maWVs ZHMuZW5hYmxlZCApCisgICAgICAgIGluaXRpYWxpemVfdnBfYXNzaXN0KHYpOwogCi0gICAgdi0+ YXJjaC5odm1fdmNwdS52aXJpZGlhbi5hcGljX2Fzc2lzdC52ZWN0b3IgPSBjdHh0LmFwaWNfYXNz aXN0X3ZlY3RvcjsKKyAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52ZWN0 b3IgPSBjdHh0LnZwX2Fzc2lzdF92ZWN0b3I7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFuLmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS92aXJpZGlhbi5oCmluZGV4IDhjNDVkMGYuLjI3MWMzNmQgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFuLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vdmlyaWRpYW4uaApAQCAtOSw3ICs5LDcgQEAKICNpZm5kZWYgX19BU01fWDg2X0hWTV9W SVJJRElBTl9IX18KICNkZWZpbmUgX19BU01fWDg2X0hWTV9WSVJJRElBTl9IX18KIAotdW5pb24g dmlyaWRpYW5fYXBpY19hc3Npc3QKK3VuaW9uIHZpcmlkaWFuX3ZwX2Fzc2lzdAogeyAgIHVpbnQ2 NF90IHJhdzsKICAgICBzdHJ1Y3QKICAgICB7CkBAIC0yMiwxMCArMjIsMTAgQEAgdW5pb24gdmly aWRpYW5fYXBpY19hc3Npc3QKIHN0cnVjdCB2aXJpZGlhbl92Y3B1CiB7CiAgICAgc3RydWN0IHsK LSAgICAgICAgdW5pb24gdmlyaWRpYW5fYXBpY19hc3Npc3QgbXNyOworICAgICAgICB1bmlvbiB2 aXJpZGlhbl92cF9hc3Npc3QgbXNyOwogICAgICAgICB2b2lkICp2YTsKICAgICAgICAgaW50IHZl Y3RvcjsKLSAgICB9IGFwaWNfYXNzaXN0OworICAgIH0gdnBfYXNzaXN0OwogfTsKIAogdW5pb24g dmlyaWRpYW5fZ3Vlc3Rfb3NfaWQKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNo LXg4Ni9odm0vc2F2ZS5oIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2h2bS9zYXZlLmgK aW5kZXggNDE5YTNiMi4uNjZhZTFhMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2Fy Y2gteDg2L2h2bS9zYXZlLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2h2bS9z YXZlLmgKQEAgLTU4OCw4ICs1ODgsOCBAQCBzdHJ1Y3QgaHZtX3ZpcmlkaWFuX2RvbWFpbl9jb250 ZXh0IHsKIERFQ0xBUkVfSFZNX1NBVkVfVFlQRShWSVJJRElBTl9ET01BSU4sIDE1LCBzdHJ1Y3Qg aHZtX3ZpcmlkaWFuX2RvbWFpbl9jb250ZXh0KTsKIAogc3RydWN0IGh2bV92aXJpZGlhbl92Y3B1 X2NvbnRleHQgewotICAgIHVpbnQ2NF90IGFwaWNfYXNzaXN0X21zcjsKLSAgICB1aW50OF90ICBh cGljX2Fzc2lzdF92ZWN0b3I7CisgICAgdWludDY0X3QgdnBfYXNzaXN0X21zcjsKKyAgICB1aW50 OF90ICB2cF9hc3Npc3RfdmVjdG9yOwogICAgIHVpbnQ4X3QgIF9wYWRbN107CiB9OwogCi0tIAoy LjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=