From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 5/8] dm_op: convert HVMOP_modified_memory Date: Tue, 24 Jan 2017 15:27:07 +0000 Message-ID: <1485271630-1860-6-git-send-email-paul.durrant@citrix.com> References: <1485271630-1860-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 1cW30S-0000aD-2R for xen-devel@lists.xenproject.org; Tue, 24 Jan 2017 15:27:36 +0000 In-Reply-To: <1485271630-1860-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: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGNvZGUgdG8gaGFuZGxlIERNT1AgY29udGludWF0aW9ucy4K Ck5PVEU6IFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyB0aGUgdHlwZSBvZiB0aGUgJ25yJyBhcmd1 bWVudCBvZgogICAgICB4Y19odm1fbW9kaWZpZWRfbWVtb3J5KCkgZnJvbSB1aW50NjRfdCB0byB1 aW50MzJfdC4gSW4gcHJhY3RpY2UgdGhlCiAgICAgIHZhbHVlIHBhc3NlZCB3YXMgYWx3YXlzIHRy dW5jYXRlZCB0byAzMiBiaXRzLgoKU3VnZ2VzdGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hA c3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJp eC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpBY2tlZC1ieTog RGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3JhQHR5Y2hvLm5zYS5nb3Y+ClJldmlld2VkLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3Nv bkBldS5jaXRyaXguY29tPgoKdjg6Ci0gQWRkIENIRUNLIG1hY3JvLgoKdjY6Ci0gUGFzcyBieSBw b2ludGVyIGFzIHJlcXVlc3RlZCBieSBBbmR5LgotIE1vZGlmeSBjb25zdF9vcCBhcHByb3ByaWF0 ZWx5LgoKdjQ6Ci0gQ29udGludWF0aW9uIGNvZGUgaW4gZG0uYyBtb2RpZmllZCBhcyBrbm9jay1v biBmcm9tIGNvbXBhdCBjb2RlLiBOb3QKICBhZGRpbmcgSmFuJ3MgUi1iIHNpbmNlIHBhdGNoIGhh cyBmdW5kYW1lbnRhbGx5IGNoYW5nZWQuCgp2MzoKLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBm cm9tIEphbi4KCnYyOgotIEFkZHJlc3NlZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20gSmFuLCBpbmNs dWRpbmcuLi4KLSBBZGRlZCBleHBsYW5hdG9yeSBub3RlIG9uIGNvbnRpbnVhdGlvbiBoYW5kbGlu ZwotLS0KIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgIHwgIDIgKy0KIHRvb2xz L2xpYnhjL3hjX21pc2MuYyAgICAgICAgICAgICAgIHwgMjcgKysrKy0tLS0tLS0KIHhlbi9hcmNo L3g4Ni9odm0vZG0uYyAgICAgICAgICAgICAgIHwgOTAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCA2MCAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgg ICAgICB8IDE5ICsrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oICAgICB8 IDEzIC0tLS0tLQogeGVuL2luY2x1ZGUveGxhdC5sc3QgICAgICAgICAgICAgICAgfCAgMSArCiB4 ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICAyICstCiA4IGZpbGVzIGNoYW5n ZWQsIDExOCBpbnNlcnRpb25zKCspLCA5NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29s cy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5o CmluZGV4IDZhYjdlMjAuLjVmZjUzZWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xNjI3LDcg KzE2MjcsNyBAQCBpbnQgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAgKiBOb3RpZnkgdGhhdCBz b21lIHBhZ2VzIGdvdCBtb2RpZmllZCBieSB0aGUgRGV2aWNlIE1vZGVsCiAgKi8KIGludCB4Y19o dm1fbW9kaWZpZWRfbWVtb3J5KAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwg dWludDY0X3QgZmlyc3RfcGZuLCB1aW50NjRfdCBucik7CisgICAgeGNfaW50ZXJmYWNlICp4Y2gs IGRvbWlkX3QgZG9tLCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQzMl90IG5yKTsKIAogLyoKICAq IFNldCBhIHJhbmdlIG9mIG1lbW9yeSB0byBhIHNwZWNpZmljIHR5cGUuCmRpZmYgLS1naXQgYS90 b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19taXNjLmMKaW5kZXggZGRlYTJi Yi4uNTk3ZGY5OSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWlzYy5jCisrKyBiL3Rvb2xz L2xpYnhjL3hjX21pc2MuYwpAQCAtNTczLDI5ICs1NzMsMjAgQEAgaW50IHhjX2h2bV90cmFja19k aXJ0eV92cmFtKAogfQogCiBpbnQgeGNfaHZtX21vZGlmaWVkX21lbW9yeSgKLSAgICB4Y19pbnRl cmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDY0X3QgbnIp CisgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCB1aW50NjRfdCBmaXJzdF9wZm4s IHVpbnQzMl90IG5yKQogewotICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JVRkZFUihzdHJ1Y3QgeGVu X2h2bV9tb2RpZmllZF9tZW1vcnksIGFyZyk7Ci0gICAgaW50IHJjOwotCi0gICAgYXJnID0geGNf aHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9mKCphcmcpKTsKLSAgICBpZiAo IGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90IGFsbG9jYXRl IG1lbW9yeSBmb3IgeGNfaHZtX21vZGlmaWVkX21lbW9yeSBoeXBlcmNhbGwiKTsKLSAgICAgICAg cmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4 ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5ICpkYXRhOwogCi0gICAgYXJnLT5kb21pZCAgICAgPSBk b207Ci0gICAgYXJnLT5maXJzdF9wZm4gPSBmaXJzdF9wZm47Ci0gICAgYXJnLT5uciAgICAgICAg PSBucjsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJjID0geGVuY2Fs bDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhW TU9QX21vZGlmaWVkX21lbW9yeSwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJf QVNfQVJHKGFyZykpOworICAgIG9wLm9wID0gWEVOX0RNT1BfbW9kaWZpZWRfbWVtb3J5OworICAg IGRhdGEgPSAmb3AudS5tb2RpZmllZF9tZW1vcnk7CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVy X2ZyZWUoeGNoLCBhcmcpOworICAgIGRhdGEtPmZpcnN0X3BmbiA9IGZpcnN0X3BmbjsKKyAgICBk YXRhLT5uciA9IG5yOwogCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gs IGRvbSwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUo CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2Rt LmMKaW5kZXggOTk1NjE5NC4uYWQ1ZDRjMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9k bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAtMTQsNiArMTQsNyBAQAogICogdGhp cyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAg Ki8KIAorI2luY2x1ZGUgPHhlbi9ldmVudC5oPgogI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3Mu aD4KICNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CkBA IC0xMTcsNiArMTE4LDU5IEBAIHN0YXRpYyBpbnQgc2V0X2lzYV9pcnFfbGV2ZWwoc3RydWN0IGRv bWFpbiAqZCwgdWludDhfdCBpc2FfaXJxLAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50 IG1vZGlmaWVkX21lbW9yeShzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgKmRhdGEpCit7CisgICAgeGVu X3Bmbl90IGxhc3RfcGZuID0gZGF0YS0+Zmlyc3RfcGZuICsgZGF0YS0+bnIgLSAxOworICAgIHVu c2lnbmVkIGludCBpdGVyID0gMDsKKyAgICBpbnQgcmMgPSAwOworCisgICAgaWYgKCAoZGF0YS0+ Zmlyc3RfcGZuID4gbGFzdF9wZm4pIHx8CisgICAgICAgICAobGFzdF9wZm4gPiBkb21haW5fZ2V0 X21heGltdW1fZ3BmbihkKSkgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICgg IXBhZ2luZ19tb2RlX2xvZ19kaXJ0eShkKSApCisgICAgICAgIHJldHVybiAwOworCisgICAgd2hp bGUgKCBpdGVyIDwgZGF0YS0+bnIgKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBwZm4g PSBkYXRhLT5maXJzdF9wZm4gKyBpdGVyOworICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdl OworCisgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4sIE5VTEwsIFAyTV9V TlNIQVJFKTsKKyAgICAgICAgaWYgKCBwYWdlICkKKyAgICAgICAgeworICAgICAgICAgICAgbWZu X3QgZ21mbiA9IF9tZm4ocGFnZV90b19tZm4ocGFnZSkpOworCisgICAgICAgICAgICBwYWdpbmdf bWFya19kaXJ0eShkLCBnbWZuKTsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaGVz ZSBhcmUgbW9zdCBwcm9iYWJseSBub3QgcGFnZSB0YWJsZXMgYW55IG1vcmUKKyAgICAgICAgICAg ICAqIGRvbid0IHRha2UgYSBsb25nIHRpbWUgYW5kIGRvbid0IGRpZSBlaXRoZXIuCisgICAgICAg ICAgICAgKi8KKyAgICAgICAgICAgIHNoX3JlbW92ZV9zaGFkb3dzKGQsIGdtZm4sIDEsIDApOwor ICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyKys7 CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hlY2sgZm9yIGNvbnRpbnVhdGlvbiBldmVyeSAy NTZ0aCBpdGVyYXRpb24gYW5kIGlmIHRoZQorICAgICAgICAgKiBpdGVyYXRpb24gaXMgbm90IHRo ZSBsYXN0LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAoaXRlciA8IGRhdGEtPm5yKSAmJiAo KGl0ZXIgJiAweGZmKSA9PSAwKSAmJgorICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVlbXB0X2No ZWNrKCkgKQorICAgICAgICB7CisgICAgICAgICAgICBkYXRhLT5maXJzdF9wZm4gKz0gaXRlcjsK KyAgICAgICAgICAgIGRhdGEtPm5yIC09IGl0ZXI7CisKKyAgICAgICAgICAgIHJjID0gLUVSRVNU QVJUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g cmM7Cit9CisKIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAgICAgIHhlbl9kbV9vcF9idWZf dCBidWZzW10pCkBAIC0yODMsMTIgKzMzNywyNyBAQCBzdGF0aWMgaW50IGRtX29wKGRvbWlkX3Qg ZG9taWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgWEVOX0RNT1BfbW9kaWZp ZWRfbWVtb3J5OgorICAgIHsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1v cnkgKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUubW9kaWZpZWRfbWVtb3J5OworCisgICAgICAg IGNvbnN0X29wID0gZmFsc2U7CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAo IGRhdGEtPnBhZCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByYyA9IG1vZGlmaWVk X21lbW9yeShkLCBkYXRhKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoK ICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAg aWYgKCAhcmMgJiYKKyAgICBpZiAoICghcmMgfHwgcmMgPT0gLUVSRVNUQVJUKSAmJgogICAgICAg ICAgIWNvbnN0X29wICYmCiAgICAgICAgICAhY29weV9idWZfdG9fZ3Vlc3QoYnVmcywgbnJfYnVm cywgMCwgJm9wLCBzaXplb2Yob3ApKSApCiAgICAgICAgIHJjID0gLUVGQVVMVDsKQEAgLTMwOCw2 ICszNzcsNyBAQCBDSEVDS19kbV9vcF90cmFja19kaXJ0eV92cmFtOwogQ0hFQ0tfZG1fb3Bfc2V0 X3BjaV9pbnR4X2xldmVsOwogQ0hFQ0tfZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWw7CiBDSEVDS19k bV9vcF9zZXRfcGNpX2xpbmtfcm91dGU7CitDSEVDS19kbV9vcF9tb2RpZmllZF9tZW1vcnk7CiAK ICNkZWZpbmUgTUFYX05SX0JVRlMgMgogCkBAIC0zMTcsNiArMzg3LDcgQEAgaW50IGNvbXBhdF9k bV9vcChkb21pZF90IGRvbWlkLAogewogICAgIHN0cnVjdCB4ZW5fZG1fb3BfYnVmIG5hdFtNQVhf TlJfQlVGU107CiAgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJjOwogCiAgICAgaWYgKCBu cl9idWZzID4gTUFYX05SX0JVRlMgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTMzNiw3 ICs0MDcsMTMgQEAgaW50IGNvbXBhdF9kbV9vcChkb21pZF90IGRvbWlkLAogI3VuZGVmIFhMQVRf ZG1fb3BfYnVmX0hORExfaAogICAgIH0KIAotICAgIHJldHVybiBkbV9vcChkb21pZCwgbnJfYnVm cywgbmF0KTsKKyAgICByYyA9IGRtX29wKGRvbWlkLCBucl9idWZzLCBuYXQpOworCisgICAgaWYg KCByYyA9PSAtRVJFU1RBUlQgKQorICAgICAgICByYyA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGlu dWF0aW9uKF9fSFlQRVJWSVNPUl9kbV9vcCwgImlpaCIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9taWQsIG5yX2J1ZnMsIGJ1ZnMpOworCisgICAgcmV0dXJu IHJjOwogfQogCiBsb25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQsCkBAIC0zNDQsNiArNDIxLDcg QEAgbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHhlbl9kbV9vcF9idWZfdCkgYnVmcykKIHsKICAgICBzdHJ1Y3QgeGVuX2Rt X29wX2J1ZiBuYXRbTUFYX05SX0JVRlNdOworICAgIGludCByYzsKIAogICAgIGlmICggbnJfYnVm cyA+IE1BWF9OUl9CVUZTICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC0zNTEsNyArNDI5 LDEzIEBAIGxvbmcgZG9fZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICBpZiAoIGNvcHlfZnJvbV9n dWVzdF9vZmZzZXQobmF0LCBidWZzLCAwLCBucl9idWZzKSApCiAgICAgICAgIHJldHVybiAtRUZB VUxUOwogCi0gICAgcmV0dXJuIGRtX29wKGRvbWlkLCBucl9idWZzLCBuYXQpOworICAgIHJjID0g ZG1fb3AoZG9taWQsIG5yX2J1ZnMsIG5hdCk7CisKKyAgICBpZiAoIHJjID09IC1FUkVTVEFSVCAp CisgICAgICAgIHJjID0gaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRpb24oX19IWVBFUlZJU09S X2RtX29wLCAiaWloIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb21pZCwgbnJfYnVmcywgYnVmcyk7CisKKyAgICByZXR1cm4gcmM7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpp bmRleCAzOGEyYTQ2Li5iMjljMDQyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQ5NjUsNyArNDk2NSw2IEBAIGxvbmcg ZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkg YXJnKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG1hc2sgPSB+MFVMOwogICAgICAgICBicmVhazsK LSAgICBjYXNlIEhWTU9QX21vZGlmaWVkX21lbW9yeToKICAgICBjYXNlIEhWTU9QX3NldF9tZW1f dHlwZToKICAgICAgICAgbWFzayA9IEhWTU9QX29wX21hc2s7CiAgICAgICAgIGJyZWFrOwpAQCAt NDk5OCw2NSArNDk5Nyw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICByYyA9IGd1ZXN0X2hhbmRsZV9p c19udWxsKGFyZykgPyBodm1vcF9mbHVzaF90bGJfYWxsKCkgOiAtRUlOVkFMOwogICAgICAgICBi cmVhazsKIAotICAgIGNhc2UgSFZNT1BfbW9kaWZpZWRfbWVtb3J5OgotICAgIHsKLSAgICAgICAg c3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IGE7Ci0gICAgICAgIHN0cnVjdCBkb21haW4g KmQ7Ci0KLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywgMSkgKQotICAgICAg ICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9t YWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICAgICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAg ICAgIHJldHVybiByYzsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgIGlmICggIWlz X2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgZ290byBtb2RtZW1fZmFpbDsKLQotICAgICAg ICByYyA9IHhzbV9odm1fY29udHJvbChYU01fRE1fUFJJViwgZCwgb3ApOwotICAgICAgICBpZiAo IHJjICkKLSAgICAgICAgICAgIGdvdG8gbW9kbWVtX2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRUlO VkFMOwotICAgICAgICBpZiAoIGEubnIgPCBzdGFydF9pdGVyIHx8Ci0gICAgICAgICAgICAgKChh LmZpcnN0X3BmbiArIGEubnIgLSAxKSA8IGEuZmlyc3RfcGZuKSB8fAotICAgICAgICAgICAgICgo YS5maXJzdF9wZm4gKyBhLm5yIC0gMSkgPiBkb21haW5fZ2V0X21heGltdW1fZ3BmbihkKSkgKQot ICAgICAgICAgICAgZ290byBtb2RtZW1fZmFpbDsKLQotICAgICAgICByYyA9IDA7Ci0gICAgICAg IGlmICggIXBhZ2luZ19tb2RlX2xvZ19kaXJ0eShkKSApCi0gICAgICAgICAgICBnb3RvIG1vZG1l bV9mYWlsOwotCi0gICAgICAgIHdoaWxlICggYS5uciA+IHN0YXJ0X2l0ZXIgKQotICAgICAgICB7 Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IGEuZmlyc3RfcGZuICsgc3RhcnRfaXRl cjsKLSAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7Ci0KLSAgICAgICAgICAgIHBh Z2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4sIE5VTEwsIFAyTV9VTlNIQVJFKTsKLSAgICAg ICAgICAgIGlmICggcGFnZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcGFnaW5n X21hcmtfZGlydHkoZCwgX21mbihwYWdlX3RvX21mbihwYWdlKSkpOwotICAgICAgICAgICAgICAg IC8qIFRoZXNlIGFyZSBtb3N0IHByb2JhYmx5IG5vdCBwYWdlIHRhYmxlcyBhbnkgbW9yZSAqLwot ICAgICAgICAgICAgICAgIC8qIGRvbid0IHRha2UgYSBsb25nIHRpbWUgYW5kIGRvbid0IGRpZSBl aXRoZXIgKi8KLSAgICAgICAgICAgICAgICBzaF9yZW1vdmVfc2hhZG93cyhkLCBfbWZuKHBhZ2Vf dG9fbWZuKHBhZ2UpKSwgMSwgMCk7Ci0gICAgICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7Ci0g ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIENoZWNrIGZvciBjb250aW51YXRpb24gaWYg aXQncyBub3QgdGhlIGxhc3QgaW50ZXJhdGlvbiAqLwotICAgICAgICAgICAgaWYgKCBhLm5yID4g KytzdGFydF9pdGVyICYmICEoc3RhcnRfaXRlciAmIEhWTU9QX29wX21hc2spICYmCi0gICAgICAg ICAgICAgICAgIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQotICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg ICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICBtb2RtZW1fZmFpbDoKLSAgICAgICAgcmN1X3Vu bG9ja19kb21haW4oZCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgSFZNT1Bf Z2V0X21lbV90eXBlOgogICAgICAgICByYyA9IGh2bW9wX2dldF9tZW1fdHlwZSgKICAgICAgICAg ICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9nZXRfbWVtX3R5cGVfdCkpOwpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVi bGljL2h2bS9kbV9vcC5oCmluZGV4IDE3Y2I4MzAuLmZkMDk1Y2MgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2Rt X29wLmgKQEAgLTIzMyw2ICsyMzMsMjQgQEAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtf cm91dGUgewogICAgIHVpbnQ4X3QgIGlzYV9pcnE7CiB9OwogCisvKgorICogWEVOX0RNT1BfbW9k aWZpZWRfbWVtb3J5OiBOb3RpZnkgdGhhdCBhIHNldCBvZiBwYWdlcyB3ZXJlIG1vZGlmaWVkIGJ5 CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGVtdWxhdG9yLgorICoKKyAqIE5PVEU6 IEluIHRoZSBldmVudCBvZiBhIGNvbnRpbnVhdGlvbiwgdGhlIEBmaXJzdF9wZm4gaXMgc2V0IHRv IHRoZQorICogICAgICAgdmFsdWUgb2YgdGhlIHBmbiBvZiB0aGUgcmVtYWluaW5nIHNldCBvZiBw YWdlcyBhbmQgQG5yIHJlZHVjZWQKKyAqICAgICAgIHRvIHRoZSBzaXplIG9mIHRoZSByZW1haW5p bmcgc2V0LgorICovCisjZGVmaW5lIFhFTl9ETU9QX21vZGlmaWVkX21lbW9yeSAxMQorCitzdHJ1 Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgY29u dGlndW91cyBwYWdlcyBtb2RpZmllZCAqLworICAgIHVpbnQzMl90IG5yOworICAgIHVpbnQzMl90 IHBhZDsKKyAgICAvKiBJTiAtIGZpcnN0IHBmbiBtb2RpZmllZCAqLworICAgIHVpbnQ2NF9hbGln bmVkX3QgZmlyc3RfcGZuOworfTsKKwogc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgdWludDMyX3Qg b3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMjQ3LDYgKzI2NSw3IEBAIHN0cnVjdCB4ZW5fZG1f b3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfaW50eF9sZXZlbCBzZXRfcGNp X2ludHhfbGV2ZWw7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwg c2V0X2lzYV9pcnFfbGV2ZWw7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5r X3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9tb2Rp ZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5OwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2h2bV9vcC5oCmluZGV4IDdjZjhkNGQuLjc2ZTFiNzggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3Au aApAQCAtOTksMTkgKzk5LDYgQEAgdHlwZWRlZiBlbnVtIHsKIC8qIEZvbGxvd2luZyB0b29scy1v bmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYgZGVmaW5lZChfX1hF Tl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIE5vdGlmeSB0aGF0IHNvbWUgcGFn ZXMgZ290IG1vZGlmaWVkIGJ5IHRoZSBEZXZpY2UgTW9kZWwuICovCi0jZGVmaW5lIEhWTU9QX21v ZGlmaWVkX21lbW9yeSAgICA3Ci1zdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgewotICAg IC8qIERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLwotICAgIGRvbWlkX3QgIGRvbWlkOwotICAgIC8q IE51bWJlciBvZiBwYWdlcy4gKi8KLSAgICB1aW50MzJfdCBucjsKLSAgICAvKiBGaXJzdCBwZm4u ICovCi0gICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Ci19OwotdHlwZWRlZiBzdHJ1Y3Qg eGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnlfdDsKLURFRklO RV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5X3QpOwotCiAjZGVmaW5l IEhWTU9QX3NldF9tZW1fdHlwZSAgICA4CiAvKiBOb3RpZnkgdGhhdCBhIHJlZ2lvbiBvZiBtZW1v cnkgaXMgdG8gYmUgdHJlYXRlZCBpbiBhIHNwZWNpZmljIHdheS4gKi8KIHN0cnVjdCB4ZW5faHZt X3NldF9tZW1fdHlwZSB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94bGF0LmxzdCBiL3hlbi9p bmNsdWRlL3hsYXQubHN0CmluZGV4IDAzMzA5YTUuLjcwOGEyN2MgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hsYXQubHN0CisrKyBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CkBAIC02MSw2ICs2MSw3 IEBACiA/CWRtX29wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyCWh2bS9kbV9vcC5oCiA/CWRtX29wX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbwlodm0vZG1fb3AuaAogPwlkbV9vcF9pb3JlcV9zZXJ2ZXJfcmFu Z2UJaHZtL2RtX29wLmgKKz8JZG1fb3BfbW9kaWZpZWRfbWVtb3J5CQlodm0vZG1fb3AuaAogPwlk bV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlCWh2bS9kbV9vcC5oCiA/CWRtX29wX3NldF9pc2Ff aXJxX2xldmVsCQlodm0vZG1fb3AuaAogPwlkbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwJaHZtL2Rt X29wLmgKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIGIv eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggMmYwZWQyZC4uMzYxZTdh YSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKKysrIGIv eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAgLTI2Miw3ICsyNjIsNyBAQCBj bGFzcyBodm0KICAgICBiaW5kX2lycQogIyBYRU5fRE9NQ1RMX3Bpbl9tZW1fY2FjaGVhdHRyCiAg ICAgY2FjaGVhdHRyCi0jIEhWTU9QX21vZGlmaWVkX21lbW9yeSwgSFZNT1BfZ2V0X21lbV90eXBl LCBIVk1PUF9zZXRfbWVtX3R5cGUsCisjIEhWTU9QX2dldF9tZW1fdHlwZSwgSFZNT1Bfc2V0X21l bV90eXBlLAogIyBIVk1PUF9zZXRfbWVtX2FjY2VzcywgSFZNT1BfZ2V0X21lbV9hY2Nlc3MsIEhW TU9QX3BhZ2V0YWJsZV9keWluZywKICMgSFZNT1BfaW5qZWN0X3RyYXAKICAgICBodm1jdGwKLS0g CjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==