From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 5/8] dm_op: convert HVMOP_modified_memory Date: Mon, 23 Jan 2017 13:59:46 +0000 Message-ID: <1485179989-1763-6-git-send-email-paul.durrant@citrix.com> References: <1485179989-1763-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cVfA5-0006vJ-E0 for xen-devel@lists.xenproject.org; Mon, 23 Jan 2017 13:59:57 +0000 In-Reply-To: <1485179989-1763-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 bkBldS5jaXRyaXguY29tPgoKdjY6Ci0gUGFzcyBieSBwb2ludGVyIGFzIHJlcXVlc3RlZCBieSBB bmR5LgotIE1vZGlmeSBjb25zdF9vcCBhcHByb3ByaWF0ZWx5LgoKdjQ6Ci0gQ29udGludWF0aW9u IGNvZGUgaW4gZG0uYyBtb2RpZmllZCBhcyBrbm9jay1vbiBmcm9tIGNvbXBhdCBjb2RlLiBOb3QK ICBhZGRpbmcgSmFuJ3MgUi1iIHNpbmNlIHBhdGNoIGhhcyBmdW5kYW1lbnRhbGx5IGNoYW5nZWQu Cgp2MzoKLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmcm9tIEphbi4KCnYyOgotIEFkZHJlc3Nl ZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20gSmFuLCBpbmNsdWRpbmcuLi4KLSBBZGRlZCBleHBsYW5h dG9yeSBub3RlIG9uIGNvbnRpbnVhdGlvbiBoYW5kbGluZwotLS0KIHRvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oICAgICAgIHwgIDIgKy0KIHRvb2xzL2xpYnhjL3hjX21pc2MuYyAgICAgICAg ICAgICAgIHwgMjcgKysrKy0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAg ICAgIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogeGVuL2FyY2gv eDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCA2MCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICB8IDE5ICsrKysrKysrCiB4ZW4v aW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oICAgICB8IDEzIC0tLS0tLQogeGVuL3hzbS9mbGFz ay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgMiArLQogNyBmaWxlcyBjaGFuZ2VkLCAxMTYgaW5z ZXJ0aW9ucygrKSwgOTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5j bHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCA2YWI3 ZTIwLi41ZmY1M2VkIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAor KysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTYyNyw3ICsxNjI3LDcgQEAg aW50IHhjX2h2bV90cmFja19kaXJ0eV92cmFtKAogICogTm90aWZ5IHRoYXQgc29tZSBwYWdlcyBn b3QgbW9kaWZpZWQgYnkgdGhlIERldmljZSBNb2RlbAogICovCiBpbnQgeGNfaHZtX21vZGlmaWVk X21lbW9yeSgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIHVpbnQ2NF90IGZp cnN0X3BmbiwgdWludDY0X3QgbnIpOworICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRv bSwgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBucik7CiAKIC8qCiAgKiBTZXQgYSByYW5n ZSBvZiBtZW1vcnkgdG8gYSBzcGVjaWZpYyB0eXBlLgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMv eGNfbWlzYy5jIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCmluZGV4IGRkZWEyYmIuLjU5N2RmOTkg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYworKysgYi90b29scy9saWJ4Yy94Y19t aXNjLmMKQEAgLTU3MywyOSArNTczLDIwIEBAIGludCB4Y19odm1fdHJhY2tfZGlydHlfdnJhbSgK IH0KIAogaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoCi0gICAgeGNfaW50ZXJmYWNlICp4Y2gs IGRvbWlkX3QgZG9tLCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQ2NF90IG5yKQorICAgIHhjX2lu dGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBu cikKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1fbW9kaWZp ZWRfbWVtb3J5LCBhcmcpOwotICAgIGludCByYzsKLQotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9i dWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVM TCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9y IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkgaHlwZXJjYWxsIik7Ci0gICAgICAgIHJldHVybiAtMTsK LSAgICB9CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX21v ZGlmaWVkX21lbW9yeSAqZGF0YTsKIAotICAgIGFyZy0+ZG9taWQgICAgID0gZG9tOwotICAgIGFy Zy0+Zmlyc3RfcGZuID0gZmlyc3RfcGZuOwotICAgIGFyZy0+bnIgICAgICAgID0gbnI7CisgICAg bWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICByYyA9IHhlbmNhbGwyKHhjaC0+eGNh bGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1PUF9tb2RpZmll ZF9tZW1vcnksCi0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcp KTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX21vZGlmaWVkX21lbW9yeTsKKyAgICBkYXRhID0gJm9w LnUubW9kaWZpZWRfbWVtb3J5OwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwg YXJnKTsKKyAgICBkYXRhLT5maXJzdF9wZm4gPSBmaXJzdF9wZm47CisgICAgZGF0YS0+bnIgPSBu cjsKIAotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZv cCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19odm1fc2V0X21lbV90eXBlKApkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCmluZGV4IGQ4 NDc4OTIuLmUyOGJkYTQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYworKysgYi94 ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqIHRoaXMgcHJvZ3JhbTsg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogICovCiAKKyNpbmNs dWRlIDx4ZW4vZXZlbnQuaD4KICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVk ZSA8eGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgpAQCAtMTA3LDYgKzEw OCw1OSBAQCBzdGF0aWMgaW50IHNldF9pc2FfaXJxX2xldmVsKHN0cnVjdCBkb21haW4gKmQsIHVp bnQ4X3QgaXNhX2lycSwKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBtb2RpZmllZF9t ZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5ICpkYXRhKQoreworICAgIHhlbl9wZm5fdCBsYXN0 X3BmbiA9IGRhdGEtPmZpcnN0X3BmbiArIGRhdGEtPm5yIC0gMTsKKyAgICB1bnNpZ25lZCBpbnQg aXRlciA9IDA7CisgICAgaW50IHJjID0gMDsKKworICAgIGlmICggKGRhdGEtPmZpcnN0X3BmbiA+ IGxhc3RfcGZuKSB8fAorICAgICAgICAgKGxhc3RfcGZuID4gZG9tYWluX2dldF9tYXhpbXVtX2dw Zm4oZCkpICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoICFwYWdpbmdfbW9k ZV9sb2dfZGlydHkoZCkgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHdoaWxlICggaXRlciA8 IGRhdGEtPm5yICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gZGF0YS0+Zmly c3RfcGZuICsgaXRlcjsKKyAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKworICAgICAg ICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgcGZuLCBOVUxMLCBQMk1fVU5TSEFSRSk7Cisg ICAgICAgIGlmICggcGFnZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIG1mbl90IGdtZm4gPSBf bWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKTsKKworICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHko ZCwgZ21mbik7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogVGhlc2UgYXJlIG1vc3Qg cHJvYmFibHkgbm90IHBhZ2UgdGFibGVzIGFueSBtb3JlCisgICAgICAgICAgICAgKiBkb24ndCB0 YWtlIGEgbG9uZyB0aW1lIGFuZCBkb24ndCBkaWUgZWl0aGVyLgorICAgICAgICAgICAgICovCisg ICAgICAgICAgICBzaF9yZW1vdmVfc2hhZG93cyhkLCBnbWZuLCAxLCAwKTsKKyAgICAgICAgICAg IHB1dF9wYWdlKHBhZ2UpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcisrOworCisgICAgICAg IC8qCisgICAgICAgICAqIENoZWNrIGZvciBjb250aW51YXRpb24gZXZlcnkgMjU2dGggaXRlcmF0 aW9uIGFuZCBpZiB0aGUKKyAgICAgICAgICogaXRlcmF0aW9uIGlzIG5vdCB0aGUgbGFzdC4KKyAg ICAgICAgICovCisgICAgICAgIGlmICggKGl0ZXIgPCBkYXRhLT5ucikgJiYgKChpdGVyICYgMHhm ZikgPT0gMCkgJiYKKyAgICAgICAgICAgICBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKKyAg ICAgICAgeworICAgICAgICAgICAgZGF0YS0+Zmlyc3RfcGZuICs9IGl0ZXI7CisgICAgICAgICAg ICBkYXRhLT5uciAtPSBpdGVyOworCisgICAgICAgICAgICByYyA9IC1FUkVTVEFSVDsKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQorCiBz dGF0aWMgaW50IGRtX29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBucl9idWZzLAogICAgICAgICAgICAgICAgICB4ZW5fZG1fb3BfYnVmX3QgYnVmc1tdKQpA QCAtMjczLDEyICszMjcsMjcgQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90IGRvbWlkLAogICAg ICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFhFTl9ETU9QX21vZGlmaWVkX21lbW9yeToK KyAgICB7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5ICpkYXRhID0K KyAgICAgICAgICAgICZvcC51Lm1vZGlmaWVkX21lbW9yeTsKKworICAgICAgICBjb25zdF9vcCA9 IGZhbHNlOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBkYXRhLT5wYWQg KQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSBtb2RpZmllZF9tZW1vcnkoZCwg ZGF0YSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJj ID0gLUVPUE5PVFNVUFA7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmICggIXJjICYm CisgICAgaWYgKCAoIXJjIHx8IHJjID09IC1FUkVTVEFSVCkgJiYKICAgICAgICAgICFjb25zdF9v cCAmJgogICAgICAgICAgIWNvcHlfYnVmX3RvX2d1ZXN0KGJ1ZnMsIG5yX2J1ZnMsIDAsICZvcCwg c2l6ZW9mKG9wKSkgKQogICAgICAgICByYyA9IC1FRkFVTFQ7CkBAIC0yOTcsNiArMzY2LDcgQEAg aW50IGNvbXBhdF9kbV9vcChkb21pZF90IGRvbWlkLAogewogICAgIHN0cnVjdCB4ZW5fZG1fb3Bf YnVmIG5hdFtNQVhfTlJfQlVGU107CiAgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJjOwog CiAgICAgaWYgKCBucl9idWZzID4gTUFYX05SX0JVRlMgKQogICAgICAgICByZXR1cm4gLUVJTlZB TDsKQEAgLTMxNiw3ICszODYsMTMgQEAgaW50IGNvbXBhdF9kbV9vcChkb21pZF90IGRvbWlkLAog I3VuZGVmIFhMQVRfZG1fb3BfYnVmX0hORExfaAogICAgIH0KIAotICAgIHJldHVybiBkbV9vcChk b21pZCwgbnJfYnVmcywgbmF0KTsKKyAgICByYyA9IGRtX29wKGRvbWlkLCBucl9idWZzLCBuYXQp OworCisgICAgaWYgKCByYyA9PSAtRVJFU1RBUlQgKQorICAgICAgICByYyA9IGh5cGVyY2FsbF9j cmVhdGVfY29udGludWF0aW9uKF9fSFlQRVJWSVNPUl9kbV9vcCwgImlpaCIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWQsIG5yX2J1ZnMsIGJ1ZnMpOwor CisgICAgcmV0dXJuIHJjOwogfQogCiBsb25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQsCkBAIC0z MjQsNiArNDAwLDcgQEAgbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAg ICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kbV9vcF9idWZfdCkgYnVmcykKIHsKICAgICBz dHJ1Y3QgeGVuX2RtX29wX2J1ZiBuYXRbTUFYX05SX0JVRlNdOworICAgIGludCByYzsKIAogICAg IGlmICggbnJfYnVmcyA+IE1BWF9OUl9CVUZTICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBA IC0zMzEsNyArNDA4LDEzIEBAIGxvbmcgZG9fZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICBpZiAo IGNvcHlfZnJvbV9ndWVzdF9vZmZzZXQobmF0LCBidWZzLCAwLCBucl9idWZzKSApCiAgICAgICAg IHJldHVybiAtRUZBVUxUOwogCi0gICAgcmV0dXJuIGRtX29wKGRvbWlkLCBucl9idWZzLCBuYXQp OworICAgIHJjID0gZG1fb3AoZG9taWQsIG5yX2J1ZnMsIG5hdCk7CisKKyAgICBpZiAoIHJjID09 IC1FUkVTVEFSVCApCisgICAgICAgIHJjID0gaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRpb24o X19IWVBFUlZJU09SX2RtX29wLCAiaWloIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkb21pZCwgbnJfYnVmcywgYnVmcyk7CisKKyAgICByZXR1cm4gcmM7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwppbmRleCAzOGEyYTQ2Li5iMjljMDQyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQ5NjUsNyArNDk2 NSw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0odm9pZCkgYXJnKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIG1hc2sgPSB+MFVMOwogICAg ICAgICBicmVhazsKLSAgICBjYXNlIEhWTU9QX21vZGlmaWVkX21lbW9yeToKICAgICBjYXNlIEhW TU9QX3NldF9tZW1fdHlwZToKICAgICAgICAgbWFzayA9IEhWTU9QX29wX21hc2s7CiAgICAgICAg IGJyZWFrOwpAQCAtNDk5OCw2NSArNDk5Nyw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxv bmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICByYyA9IGd1 ZXN0X2hhbmRsZV9pc19udWxsKGFyZykgPyBodm1vcF9mbHVzaF90bGJfYWxsKCkgOiAtRUlOVkFM OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1BfbW9kaWZpZWRfbWVtb3J5OgotICAg IHsKLSAgICAgICAgc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IGE7Ci0gICAgICAgIHN0 cnVjdCBkb21haW4gKmQ7Ci0KLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywg MSkgKQotICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3VfbG9j a19yZW1vdGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICAgICAgaWYgKCByYyAhPSAw ICkKLSAgICAgICAgICAgIHJldHVybiByYzsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAg ICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgZ290byBtb2RtZW1fZmFp bDsKLQotICAgICAgICByYyA9IHhzbV9odm1fY29udHJvbChYU01fRE1fUFJJViwgZCwgb3ApOwot ICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgIGdvdG8gbW9kbWVtX2ZhaWw7Ci0KLSAgICAg ICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBpZiAoIGEubnIgPCBzdGFydF9pdGVyIHx8Ci0gICAg ICAgICAgICAgKChhLmZpcnN0X3BmbiArIGEubnIgLSAxKSA8IGEuZmlyc3RfcGZuKSB8fAotICAg ICAgICAgICAgICgoYS5maXJzdF9wZm4gKyBhLm5yIC0gMSkgPiBkb21haW5fZ2V0X21heGltdW1f Z3BmbihkKSkgKQotICAgICAgICAgICAgZ290byBtb2RtZW1fZmFpbDsKLQotICAgICAgICByYyA9 IDA7Ci0gICAgICAgIGlmICggIXBhZ2luZ19tb2RlX2xvZ19kaXJ0eShkKSApCi0gICAgICAgICAg ICBnb3RvIG1vZG1lbV9mYWlsOwotCi0gICAgICAgIHdoaWxlICggYS5uciA+IHN0YXJ0X2l0ZXIg KQotICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IGEuZmlyc3RfcGZu ICsgc3RhcnRfaXRlcjsKLSAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7Ci0KLSAg ICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4sIE5VTEwsIFAyTV9VTlNI QVJFKTsKLSAgICAgICAgICAgIGlmICggcGFnZSApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgX21mbihwYWdlX3RvX21mbihwYWdlKSkpOwotICAg ICAgICAgICAgICAgIC8qIFRoZXNlIGFyZSBtb3N0IHByb2JhYmx5IG5vdCBwYWdlIHRhYmxlcyBh bnkgbW9yZSAqLwotICAgICAgICAgICAgICAgIC8qIGRvbid0IHRha2UgYSBsb25nIHRpbWUgYW5k IGRvbid0IGRpZSBlaXRoZXIgKi8KLSAgICAgICAgICAgICAgICBzaF9yZW1vdmVfc2hhZG93cyhk LCBfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSwgMSwgMCk7Ci0gICAgICAgICAgICAgICAgcHV0X3Bh Z2UocGFnZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIENoZWNrIGZvciBjb250 aW51YXRpb24gaWYgaXQncyBub3QgdGhlIGxhc3QgaW50ZXJhdGlvbiAqLwotICAgICAgICAgICAg aWYgKCBhLm5yID4gKytzdGFydF9pdGVyICYmICEoc3RhcnRfaXRlciAmIEhWTU9QX29wX21hc2sp ICYmCi0gICAgICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQotICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOwotICAgICAgICAgICAgICAg IGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICBtb2RtZW1fZmFpbDoKLSAg ICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAg IGNhc2UgSFZNT1BfZ2V0X21lbV90eXBlOgogICAgICAgICByYyA9IGh2bW9wX2dldF9tZW1fdHlw ZSgKICAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9nZXRfbWVtX3R5 cGVfdCkpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVu L2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IDE3Y2I4MzAuLmZkMDk1Y2MgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9w dWJsaWMvaHZtL2RtX29wLmgKQEAgLTIzMyw2ICsyMzMsMjQgQEAgc3RydWN0IHhlbl9kbV9vcF9z ZXRfcGNpX2xpbmtfcm91dGUgewogICAgIHVpbnQ4X3QgIGlzYV9pcnE7CiB9OwogCisvKgorICog WEVOX0RNT1BfbW9kaWZpZWRfbWVtb3J5OiBOb3RpZnkgdGhhdCBhIHNldCBvZiBwYWdlcyB3ZXJl IG1vZGlmaWVkIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGVtdWxhdG9yLgor ICoKKyAqIE5PVEU6IEluIHRoZSBldmVudCBvZiBhIGNvbnRpbnVhdGlvbiwgdGhlIEBmaXJzdF9w Zm4gaXMgc2V0IHRvIHRoZQorICogICAgICAgdmFsdWUgb2YgdGhlIHBmbiBvZiB0aGUgcmVtYWlu aW5nIHNldCBvZiBwYWdlcyBhbmQgQG5yIHJlZHVjZWQKKyAqICAgICAgIHRvIHRoZSBzaXplIG9m IHRoZSByZW1haW5pbmcgc2V0LgorICovCisjZGVmaW5lIFhFTl9ETU9QX21vZGlmaWVkX21lbW9y eSAxMQorCitzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSB7CisgICAgLyogSU4gLSBu dW1iZXIgb2YgY29udGlndW91cyBwYWdlcyBtb2RpZmllZCAqLworICAgIHVpbnQzMl90IG5yOwor ICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBJTiAtIGZpcnN0IHBmbiBtb2RpZmllZCAqLworICAg IHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKwogc3RydWN0IHhlbl9kbV9vcCB7CiAg ICAgdWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMjQ3LDYgKzI2NSw3IEBAIHN0 cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9wY2lfaW50eF9s ZXZlbCBzZXRfcGNpX2ludHhfbGV2ZWw7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lz YV9pcnFfbGV2ZWwgc2V0X2lzYV9pcnFfbGV2ZWw7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bf c2V0X3BjaV9saW5rX3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsKKyAgICAgICAgc3RydWN0IHhl bl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5OwogICAgIH0gdTsKIH07CiAK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL2h2bV9vcC5oCmluZGV4IDdjZjhkNGQuLjc2ZTFiNzggMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGlj L2h2bS9odm1fb3AuaApAQCAtOTksMTkgKzk5LDYgQEAgdHlwZWRlZiBlbnVtIHsKIC8qIEZvbGxv d2luZyB0b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYg ZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIE5vdGlmeSB0 aGF0IHNvbWUgcGFnZXMgZ290IG1vZGlmaWVkIGJ5IHRoZSBEZXZpY2UgTW9kZWwuICovCi0jZGVm aW5lIEhWTU9QX21vZGlmaWVkX21lbW9yeSAgICA3Ci1zdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9t ZW1vcnkgewotICAgIC8qIERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLwotICAgIGRvbWlkX3QgIGRv bWlkOwotICAgIC8qIE51bWJlciBvZiBwYWdlcy4gKi8KLSAgICB1aW50MzJfdCBucjsKLSAgICAv KiBGaXJzdCBwZm4uICovCi0gICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Ci19OwotdHlw ZWRlZiBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgeGVuX2h2bV9tb2RpZmllZF9tZW1v cnlfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5X3Qp OwotCiAjZGVmaW5lIEhWTU9QX3NldF9tZW1fdHlwZSAgICA4CiAvKiBOb3RpZnkgdGhhdCBhIHJl Z2lvbiBvZiBtZW1vcnkgaXMgdG8gYmUgdHJlYXRlZCBpbiBhIHNwZWNpZmljIHdheS4gKi8KIHN0 cnVjdCB4ZW5faHZtX3NldF9tZW1fdHlwZSB7CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3Bv bGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3Jz CmluZGV4IDJmMGVkMmQuLjM2MWU3YWEgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5 L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3Jz CkBAIC0yNjIsNyArMjYyLDcgQEAgY2xhc3MgaHZtCiAgICAgYmluZF9pcnEKICMgWEVOX0RPTUNU TF9waW5fbWVtX2NhY2hlYXR0cgogICAgIGNhY2hlYXR0cgotIyBIVk1PUF9tb2RpZmllZF9tZW1v cnksIEhWTU9QX2dldF9tZW1fdHlwZSwgSFZNT1Bfc2V0X21lbV90eXBlLAorIyBIVk1PUF9nZXRf bWVtX3R5cGUsIEhWTU9QX3NldF9tZW1fdHlwZSwKICMgSFZNT1Bfc2V0X21lbV9hY2Nlc3MsIEhW TU9QX2dldF9tZW1fYWNjZXNzLCBIVk1PUF9wYWdldGFibGVfZHlpbmcsCiAjIEhWTU9QX2luamVj dF90cmFwCiAgICAgaHZtY3RsCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=