From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 5/8] dm_op: convert HVMOP_modified_memory Date: Tue, 17 Jan 2017 17:29:53 +0000 Message-ID: <1484674196-19951-6-git-send-email-paul.durrant@citrix.com> References: <1484674196-19951-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 1cTXa8-0000cH-GS for xen-devel@lists.xenproject.org; Tue, 17 Jan 2017 17:30:04 +0000 In-Reply-To: <1484674196-19951-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: Andrew Cooper , Daniel De Graaf , Paul Durrant , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGNvZGUgdG8gaGFuZGxlIERNT1AgY29udGludWF0aW9ucy4K Ck5PVEU6IFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyB0aGUgdHlwZSBvZiB0aGUgJ25yJyBhcmd1 bWVudCBvZgogICAgICB4Y19odm1fbW9kaWZpZWRfbWVtb3J5KCkgZnJvbSB1aW50NjRfdCB0byB1 aW50MzJfdC4gSW4gcHJhY3RpY2UgdGhlCiAgICAgIHZhbHVlIHBhc3NlZCB3YXMgYWx3YXlzIHRy dW5jYXRlZCB0byAzMiBiaXRzLgoKU3VnZ2VzdGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hA c3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp eC5jb20+Ci0tLQpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogSWFuIEph Y2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWku bGl1MkBjaXRyaXguY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgoKdjQ6Ci0g Q29udGludWF0aW9uIGNvZGUgaW4gZG0uYyBtb2RpZmllZCBhcyBrbm9jay1vbiBmcm9tIGNvbXBh dCBjb2RlLiBOb3QKICBhZGRpbmcgSmFuJ3MgUi1iIHNpbmNlIHBhdGNoIGhhcyBmdW5kYW1lbnRh bGx5IGNoYW5nZWQuCgp2MzoKLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmcm9tIEphbi4KCnYy OgotIEFkZHJlc3NlZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20gSmFuLCBpbmNsdWRpbmcuLi4KLSBB ZGRlZCBleHBsYW5hdG9yeSBub3RlIG9uIGNvbnRpbnVhdGlvbiBoYW5kbGluZwotLS0KIHRvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgIHwgIDIgKy0KIHRvb2xzL2xpYnhjL3hjX21p c2MuYyAgICAgICAgICAgICAgIHwgMjcgKysrKystLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9k bS5jICAgICAgICAgICAgICAgfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICB8IDYwIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICB8 IDE5ICsrKysrKysrKwogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCAgICAgfCAxMyAt LS0tLS0tCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICAyICstCiA3IGZp bGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCA5NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oCmluZGV4IGY4MTliZjIuLmE1YzIzNGYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhj L2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBA IC0xNjI3LDcgKzE2MjcsNyBAQCBpbnQgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAgKiBOb3Rp ZnkgdGhhdCBzb21lIHBhZ2VzIGdvdCBtb2RpZmllZCBieSB0aGUgRGV2aWNlIE1vZGVsCiAgKi8K IGludCB4Y19odm1fbW9kaWZpZWRfbWVtb3J5KAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21p ZF90IGRvbSwgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50NjRfdCBucik7CisgICAgeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9tLCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQzMl90IG5yKTsK IAogLyoKICAqIFNldCBhIHJhbmdlIG9mIG1lbW9yeSB0byBhIHNwZWNpZmljIHR5cGUuCmRpZmYg LS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19taXNjLmMKaW5k ZXggZGRlYTJiYi4uNTk3ZGY5OSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWlzYy5jCisr KyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNTczLDI5ICs1NzMsMjAgQEAgaW50IHhjX2h2 bV90cmFja19kaXJ0eV92cmFtKAogfQogCiBpbnQgeGNfaHZtX21vZGlmaWVkX21lbW9yeSgKLSAg ICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWlu dDY0X3QgbnIpCisgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCB1aW50NjRfdCBm aXJzdF9wZm4sIHVpbnQzMl90IG5yKQogewotICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihz dHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnksIGFyZyk7Ci0gICAgaW50IHJjOwotCi0gICAg YXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9mKCphcmcpKTsK LSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90 IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX21vZGlmaWVkX21lbW9yeSBoeXBlcmNhbGwiKTsK LSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAg IHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5ICpkYXRhOwogCi0gICAgYXJnLT5kb21p ZCAgICAgPSBkb207Ci0gICAgYXJnLT5maXJzdF9wZm4gPSBmaXJzdF9wZm47Ci0gICAgYXJnLT5u ciAgICAgICAgPSBucjsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJj ID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAg ICAgICAgIEhWTU9QX21vZGlmaWVkX21lbW9yeSwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FM TF9CVUZGRVJfQVNfQVJHKGFyZykpOworICAgIG9wLm9wID0gWEVOX0RNT1BfbW9kaWZpZWRfbWVt b3J5OworICAgIGRhdGEgPSAmb3AudS5tb2RpZmllZF9tZW1vcnk7CiAKLSAgICB4Y19oeXBlcmNh bGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOworICAgIGRhdGEtPmZpcnN0X3BmbiA9IGZpcnN0X3Bm bjsKKyAgICBkYXRhLT5uciA9IG5yOwogCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBkb19k bV9vcCh4Y2gsIGRvbSwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV9zZXRf bWVtX3R5cGUoCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94 ODYvaHZtL2RtLmMKaW5kZXggMTJhODJlNS4uZGQ4MTExNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAtMTQsNiArMTQsNyBA QAogICogdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCiAgKi8KIAorI2luY2x1ZGUgPHhlbi9ldmVudC5oPgogI2luY2x1ZGUgPHhlbi9ndWVz dF9hY2Nlc3MuaD4KICNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+CiAjaW5jbHVkZSA8eGVuL3Nj aGVkLmg+CkBAIC0xMDUsNiArMTA2LDU5IEBAIHN0YXRpYyBpbnQgc2V0X2lzYV9pcnFfbGV2ZWwo c3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBpc2FfaXJxLAogICAgIHJldHVybiAwOwogfQogCitz dGF0aWMgaW50IG1vZGlmaWVkX21lbW9yeShzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fcGZuX3QgKmZp cnN0X3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbnIpCit7 CisgICAgeGVuX3Bmbl90IGxhc3RfcGZuID0gKmZpcnN0X3BmbiArICpuciAtIDE7CisgICAgdW5z aWduZWQgaW50IGl0ZXIgPSAwOworICAgIGludCByYyA9IDA7CisKKyAgICBpZiAoICgqZmlyc3Rf cGZuID4gbGFzdF9wZm4pIHx8CisgICAgICAgICAobGFzdF9wZm4gPiBkb21haW5fZ2V0X21heGlt dW1fZ3BmbihkKSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggIXBhZ2lu Z19tb2RlX2xvZ19kaXJ0eShkKSApCisgICAgICAgIHJldHVybiAwOworCisgICAgd2hpbGUgKCBp dGVyIDwgKm5yICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gKmZpcnN0X3Bm biArIGl0ZXI7CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CisKKyAgICAgICAgcGFn ZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIHBmbiwgTlVMTCwgUDJNX1VOU0hBUkUpOworICAgICAg ICBpZiAoIHBhZ2UgKQorICAgICAgICB7CisgICAgICAgICAgICBtZm5fdCBnbWZuID0gX21mbihw YWdlX3RvX21mbihwYWdlKSk7CisKKyAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIGdt Zm4pOworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFRoZXNlIGFyZSBtb3N0IHByb2Jh Ymx5IG5vdCBwYWdlIHRhYmxlcyBhbnkgbW9yZQorICAgICAgICAgICAgICogZG9uJ3QgdGFrZSBh IGxvbmcgdGltZSBhbmQgZG9uJ3QgZGllIGVpdGhlci4KKyAgICAgICAgICAgICAqLworICAgICAg ICAgICAgc2hfcmVtb3ZlX3NoYWRvd3MoZCwgZ21mbiwgMSwgMCk7CisgICAgICAgICAgICBwdXRf cGFnZShwYWdlKTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXIrKzsKKworICAgICAgICAvKgor ICAgICAgICAgKiBDaGVjayBmb3IgY29udGludWF0aW9uIGV2ZXJ5IDI1NnRoIGl0ZXJhdGlvbiBh bmQgaWYgdGhlCisgICAgICAgICAqIGl0ZXJhdGlvbiBpcyBub3QgdGhlIGxhc3QuCisgICAgICAg ICAqLworICAgICAgICBpZiAoIChpdGVyIDwgKm5yKSAmJiAoKGl0ZXIgJiAweGZmKSA9PSAwKSAm JgorICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQorICAgICAgICB7Cisg ICAgICAgICAgICAqZmlyc3RfcGZuICs9IGl0ZXI7CisgICAgICAgICAgICAqbnIgLT0gaXRlcjsK KworICAgICAgICAgICAgcmMgPSAtRVJFU1RBUlQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgfQorICAgIH0KKworICAgIHJldHVybiByYzsKK30KKwogc3RhdGljIGludCBkbV9vcChkb21p ZF90IGRvbWlkLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKICAgICAg ICAgICAgICAgICAgeGVuX2RtX29wX2J1Zl90IGJ1ZnNbXSkKQEAgLTI2NiwxMiArMzIwLDI1IEBA IHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQog CisgICAgY2FzZSBYRU5fRE1PUF9tb2RpZmllZF9tZW1vcnk6CisgICAgeworICAgICAgICBzdHJ1 Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5t b2RpZmllZF9tZW1vcnk7CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAoIGRh dGEtPnBhZCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByYyA9IG1vZGlmaWVkX21l bW9yeShkLCAmZGF0YS0+Zmlyc3RfcGZuLCAmZGF0YS0+bnIpOworICAgICAgICBicmVhazsKKyAg ICB9CisKICAgICBkZWZhdWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBi cmVhazsKICAgICB9CiAKLSAgICBpZiAoICFyYyAmJgorICAgIGlmICggKCFyYyB8fCByYyA9PSAt RVJFU1RBUlQpICYmCiAgICAgICAgICAhY29weV9idWZfdG9fZ3Vlc3QoYnVmcywgbnJfYnVmcywg MCwgJm9wLCBzaXplb2Yob3ApKSApCiAgICAgICAgIHJjID0gLUVGQVVMVDsKIApAQCAtMzEwLDYg KzM3NywxMCBAQCBpbnQgY29tcGF0X2RtX29wKGRvbWlkX3QgZG9taWQsCiAKICAgICByYyA9IGRt X29wKGRvbWlkLCBucl9idWZzLCBuYXQpOwogCisgICAgaWYgKCByYyA9PSAtRVJFU1RBUlQgKQor ICAgICAgICByYyA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKF9fSFlQRVJWSVNPUl9k bV9vcCwgImlpaCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG9taWQsIG5yX2J1ZnMsIGJ1ZnMpOworCiAgb3V0OgogICAgIHhmcmVlKG5hdCk7CiAKQEAgLTMz Miw2ICs0MDMsMTAgQEAgbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogCiAgICAgcmMgPSBk bV9vcChkb21pZCwgbnJfYnVmcywgbmF0KTsKIAorICAgIGlmICggcmMgPT0gLUVSRVNUQVJUICkK KyAgICAgICAgcmMgPSBoeXBlcmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1Jf ZG1fb3AsICJpaWgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWlkLCBucl9idWZzLCBidWZzKTsKKwogICAgIHhmcmVlKG5hdCk7CiAKICAgICByZXR1cm4g cmM7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2 bS9odm0uYwppbmRleCA5MzdlMTZmLi4zMmRjNmQ3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv aHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQ5NjUsNyArNDk2NSw2 IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0odm9pZCkgYXJnKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG1hc2sgPSB+MFVMOwogICAgICAg ICBicmVhazsKLSAgICBjYXNlIEhWTU9QX21vZGlmaWVkX21lbW9yeToKICAgICBjYXNlIEhWTU9Q X3NldF9tZW1fdHlwZToKICAgICAgICAgbWFzayA9IEhWTU9QX29wX21hc2s7CiAgICAgICAgIGJy ZWFrOwpAQCAtNDk5OCw2NSArNDk5Nyw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcg b3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICByYyA9IGd1ZXN0 X2hhbmRsZV9pc19udWxsKGFyZykgPyBodm1vcF9mbHVzaF90bGJfYWxsKCkgOiAtRUlOVkFMOwog ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1BfbW9kaWZpZWRfbWVtb3J5OgotICAgIHsK LSAgICAgICAgc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IGE7Ci0gICAgICAgIHN0cnVj dCBkb21haW4gKmQ7Ci0KLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywgMSkg KQotICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3VfbG9ja19y ZW1vdGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICAgICAgaWYgKCByYyAhPSAwICkK LSAgICAgICAgICAgIHJldHVybiByYzsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAg IGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgZ290byBtb2RtZW1fZmFpbDsK LQotICAgICAgICByYyA9IHhzbV9odm1fY29udHJvbChYU01fRE1fUFJJViwgZCwgb3ApOwotICAg ICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgIGdvdG8gbW9kbWVtX2ZhaWw7Ci0KLSAgICAgICAg cmMgPSAtRUlOVkFMOwotICAgICAgICBpZiAoIGEubnIgPCBzdGFydF9pdGVyIHx8Ci0gICAgICAg ICAgICAgKChhLmZpcnN0X3BmbiArIGEubnIgLSAxKSA8IGEuZmlyc3RfcGZuKSB8fAotICAgICAg ICAgICAgICgoYS5maXJzdF9wZm4gKyBhLm5yIC0gMSkgPiBkb21haW5fZ2V0X21heGltdW1fZ3Bm bihkKSkgKQotICAgICAgICAgICAgZ290byBtb2RtZW1fZmFpbDsKLQotICAgICAgICByYyA9IDA7 Ci0gICAgICAgIGlmICggIXBhZ2luZ19tb2RlX2xvZ19kaXJ0eShkKSApCi0gICAgICAgICAgICBn b3RvIG1vZG1lbV9mYWlsOwotCi0gICAgICAgIHdoaWxlICggYS5uciA+IHN0YXJ0X2l0ZXIgKQot ICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IGEuZmlyc3RfcGZuICsg c3RhcnRfaXRlcjsKLSAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7Ci0KLSAgICAg ICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4sIE5VTEwsIFAyTV9VTlNIQVJF KTsKLSAgICAgICAgICAgIGlmICggcGFnZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgcGFnaW5nX21hcmtfZGlydHkoZCwgX21mbihwYWdlX3RvX21mbihwYWdlKSkpOwotICAgICAg ICAgICAgICAgIC8qIFRoZXNlIGFyZSBtb3N0IHByb2JhYmx5IG5vdCBwYWdlIHRhYmxlcyBhbnkg bW9yZSAqLwotICAgICAgICAgICAgICAgIC8qIGRvbid0IHRha2UgYSBsb25nIHRpbWUgYW5kIGRv bid0IGRpZSBlaXRoZXIgKi8KLSAgICAgICAgICAgICAgICBzaF9yZW1vdmVfc2hhZG93cyhkLCBf bWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSwgMSwgMCk7Ci0gICAgICAgICAgICAgICAgcHV0X3BhZ2Uo cGFnZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIENoZWNrIGZvciBjb250aW51 YXRpb24gaWYgaXQncyBub3QgdGhlIGxhc3QgaW50ZXJhdGlvbiAqLwotICAgICAgICAgICAgaWYg KCBhLm5yID4gKytzdGFydF9pdGVyICYmICEoc3RhcnRfaXRlciAmIEhWTU9QX29wX21hc2spICYm Ci0gICAgICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQotICAgICAgICAg ICAgewotICAgICAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOwotICAgICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICBtb2RtZW1fZmFpbDoKLSAgICAg ICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNh c2UgSFZNT1BfZ2V0X21lbV90eXBlOgogICAgICAgICByYyA9IGh2bW9wX2dldF9tZW1fdHlwZSgK ICAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9nZXRfbWVtX3R5cGVf dCkpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IGE1MmM4ZWEuLjg1MTRjYTQgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2RtX29wLmgKQEAgLTIzNCw2ICsyMzQsMjQgQEAgc3RydWN0IHhlbl9kbV9vcF9zZXRf cGNpX2xpbmtfcm91dGUgewogICAgIHVpbnQ4X3QgIGlzYV9pcnE7CiB9OwogCisvKgorICogWEVO X0RNT1BfbW9kaWZpZWRfbWVtb3J5OiBOb3RpZnkgdGhhdCBhIHNldCBvZiBwYWdlcyB3ZXJlIG1v ZGlmaWVkIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGVtdWxhdG9yLgorICoK KyAqIE5PVEU6IEluIHRoZSBldmVudCBvZiBhIGNvbnRpbnVhdGlvbiwgdGhlIEBmaXJzdF9wZm4g aXMgc2V0IHRvIHRoZQorICogICAgICAgdmFsdWUgb2YgdGhlIHBmbiBvZiB0aGUgcmVtYWluaW5n IHNldCBvZiBwYWdlcyBhbmQgQG5yIHJlZHVjZWQKKyAqICAgICAgIHRvIHRoZSBzaXplIG9mIHRo ZSByZW1haW5pbmcgc2V0LgorICovCisjZGVmaW5lIFhFTl9ETU9QX21vZGlmaWVkX21lbW9yeSAx MQorCitzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSB7CisgICAgLyogSU4gLSBudW1i ZXIgb2YgY29udGlndW91cyBwYWdlcyBtb2RpZmllZCAqLworICAgIHVpbnQzMl90IG5yOworICAg IHVpbnQzMl90IHBhZDsKKyAgICAvKiBJTiAtIGZpcnN0IHBmbiBtb2RpZmllZCAqLworICAgIHVp bnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKwogc3RydWN0IHhlbl9kbV9vcCB7CiAgICAg dWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMjQ4LDYgKzI2Niw3IEBAIHN0cnVj dCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfaW50eF9sZXZl bCBzZXRfcGNpX2ludHhfbGV2ZWw7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9p cnFfbGV2ZWwgc2V0X2lzYV9pcnFfbGV2ZWw7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0 X3BjaV9saW5rX3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsKKyAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9tb2RpZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5OwogICAgIH0gdTsKIH07CiAKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9w dWJsaWMvaHZtL2h2bV9vcC5oCmluZGV4IDdjZjhkNGQuLjc2ZTFiNzggMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2 bS9odm1fb3AuaApAQCAtOTksMTkgKzk5LDYgQEAgdHlwZWRlZiBlbnVtIHsKIC8qIEZvbGxvd2lu ZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYgZGVm aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIE5vdGlmeSB0aGF0 IHNvbWUgcGFnZXMgZ290IG1vZGlmaWVkIGJ5IHRoZSBEZXZpY2UgTW9kZWwuICovCi0jZGVmaW5l IEhWTU9QX21vZGlmaWVkX21lbW9yeSAgICA3Ci1zdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1v cnkgewotICAgIC8qIERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLwotICAgIGRvbWlkX3QgIGRvbWlk OwotICAgIC8qIE51bWJlciBvZiBwYWdlcy4gKi8KLSAgICB1aW50MzJfdCBucjsKLSAgICAvKiBG aXJzdCBwZm4uICovCi0gICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Ci19OwotdHlwZWRl ZiBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnlf dDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5X3QpOwot CiAjZGVmaW5lIEhWTU9QX3NldF9tZW1fdHlwZSAgICA4CiAvKiBOb3RpZnkgdGhhdCBhIHJlZ2lv biBvZiBtZW1vcnkgaXMgdG8gYmUgdHJlYXRlZCBpbiBhIHNwZWNpZmljIHdheS4gKi8KIHN0cnVj dCB4ZW5faHZtX3NldF9tZW1fdHlwZSB7CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmlu ZGV4IDJmMGVkMmQuLjM2MWU3YWEgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2Fj Y2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBA IC0yNjIsNyArMjYyLDcgQEAgY2xhc3MgaHZtCiAgICAgYmluZF9pcnEKICMgWEVOX0RPTUNUTF9w aW5fbWVtX2NhY2hlYXR0cgogICAgIGNhY2hlYXR0cgotIyBIVk1PUF9tb2RpZmllZF9tZW1vcnks IEhWTU9QX2dldF9tZW1fdHlwZSwgSFZNT1Bfc2V0X21lbV90eXBlLAorIyBIVk1PUF9nZXRfbWVt X3R5cGUsIEhWTU9QX3NldF9tZW1fdHlwZSwKICMgSFZNT1Bfc2V0X21lbV9hY2Nlc3MsIEhWTU9Q X2dldF9tZW1fYWNjZXNzLCBIVk1PUF9wYWdldGFibGVfZHlpbmcsCiAjIEhWTU9QX2luamVjdF90 cmFwCiAgICAgaHZtY3RsCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=