From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 3/8] dm_op: convert HVMOP_track_dirty_vram Date: Tue, 24 Jan 2017 15:27:05 +0000 Message-ID: <1485271630-1860-4-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 1cW30R-0000Zk-Ov for xen-devel@lists.xenproject.org; Tue, 24 Jan 2017 15:27:35 +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 VGhlIGhhbmRsZSB0eXBlIHBhc3NlZCB0byB0aGUgdW5kZXJseWluZyBzaGFkb3cgYW5kIGhhcCBm dW5jdGlvbnMgaXMKY2hhbmdlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBuZXcgaHlwZXJj YWxsIGJ1ZmZlci4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyB0aGUgdHlwZSBvZiB0 aGUgJ25yJyBwYXJhbWV0ZXIgb2YKICAgICAgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oKSBmcm9t IHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZQogICAgICB0aGUgdmFsdWUgcGFzc2Vk IHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs LmR1cnJhbnRAY2l0cml4LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5j b20+CkFja2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+ CkFja2VkLWJ5OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQWNrZWQtYnk6IERhbmllbCBEZSBH cmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4 LmNvbT4KCnY4OgotIEFkZCBDSEVDSyBtYWNyby4KCnY0OgotIEtub2NrLW9uIGNoYW5nZXMgZnJv bSBjb21wYXQgY29kZSBpbiBkbS5jLiBOb3QgYWRkaW5nIEphbidzIFItYiBzaW5jZQogIHRoZSBw YXRjaCBoYXMgZnVuZGFtZW50YWxseSBjaGFuZ2VkLgoKdjM6Ci0gQ2hlY2sgZC0+bWF4X3ZjcHVz IHJhdGhlciB0aGFuIGQtPnZjcHUsIGFzIHJlcXVlc3RlZCBieSBKYW4uCi0gVGhlIGhhbmRsZSB0 eXBlIGNoYW5nZXMgKGZyb20gdWludDggdG8gdm9pZCkgYXJlIHN0aWxsIG5lY2Vzc2FyeSwgaGVu Y2UKICBvbWl0dGluZyBKYW4ncyBSLWIgdW50aWwgdGhpcyBpcyBjb25maXJtZWQgdG8gYmUgYWNj ZXB0YWJsZS4KCnYyOgotIEFkZHJlc3NlZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20gSmFuLgotLS0K IHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiAgIHwgIDQgKystLQogdG9vbHMvbGli eGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgMiArLQogdG9vbHMvbGlieGMveGNfbWlzYy5j ICAgICAgICAgICAgICAgfCAzMiArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L2h2bS9kbS5jICAgICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICB8IDQx IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9o YXAvaGFwLmMgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9u LmMgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmggICAgICAgICAgIHwgIDIg Ky0KIHhlbi9pbmNsdWRlL2FzbS14ODYvc2hhZG93LmggICAgICAgIHwgIDIgKy0KIHhlbi9pbmNs dWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgICAgIHwgMTggKysrKysrKysrKysrKysrKwogeGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCAgICAgfCAxNiAtLS0tLS0tLS0tLS0tLS0KIHhlbi9p bmNsdWRlL3hsYXQubHN0ICAgICAgICAgICAgICAgIHwgIDEgKwogeGVuL3hzbS9mbGFzay9ob29r cy5jICAgICAgICAgICAgICAgfCAgMyAtLS0KIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192 ZWN0b3JzIHwgIDIgLS0KIDE0IGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKyksIDkyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5p ZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgppbmRleCBmOTI1NGMyLi40NWU1 YjVmIDEwMDY0NAotLS0gYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKKysrIGIv dG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmCkBAIC01OCw3ICs1OCw3IEBAIGRlZmlu ZShgY3JlYXRlX2RvbWFpbl9jb21tb24nLCBgCiAJYWxsb3cgJDEgJDI6bW11IHsgbWFwX3JlYWQg bWFwX3dyaXRlIGFkanVzdCBtZW1vcnltYXAgcGh5c21hcCBwaW5wYWdlIG1tdWV4dF9vcCB1cGRh dGVtcCB9OwogCWFsbG93ICQxICQyOmdyYW50IHNldHVwOwogCWFsbG93ICQxICQyOmh2bSB7IGNh Y2hlYXR0ciBnZXRwYXJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgc2V0aHZtYwotCQkJc2V0 cGFyYW0gcGNpbGV2ZWwgdHJhY2tkaXJ0eXZyYW0gbmVzdGVkIGFsdHAybWh2bSBhbHRwMm1odm1f b3Agc2VuZF9pcnEgfTsKKwkJCXNldHBhcmFtIHBjaWxldmVsIG5lc3RlZCBhbHRwMm1odm0gYWx0 cDJtaHZtX29wIHNlbmRfaXJxIH07CiAnKQogCiAjIGNyZWF0ZV9kb21haW4ocHJpdiwgdGFyZ2V0 KQpAQCAtMTUxLDcgKzE1MSw3IEBAIGRlZmluZShgZGV2aWNlX21vZGVsJywgYAogCiAJYWxsb3cg JDEgJDJfdGFyZ2V0OmRvbWFpbiB7IGdldGRvbWFpbmluZm8gc2h1dGRvd24gfTsKIAlhbGxvdyAk MSAkMl90YXJnZXQ6bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBwaHlzbWFwIHRhcmdl dF9oYWNrIH07Ci0JYWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIHRy YWNrZGlydHl2cmFtIGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBwY2lsZXZlbCBjYWNoZWF0dHIg c2VuZF9pcnEgZG0gfTsKKwlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsgZ2V0cGFyYW0gc2V0cGFy YW0gaHZtY3RsIGlycWxldmVsIHBjaXJvdXRlIHBjaWxldmVsIGNhY2hlYXR0ciBzZW5kX2lycSBk bSB9OwogJykKIAogIyBtYWtlX2RldmljZV9tb2RlbChwcml2LCBkbV9kb20sIGh2bV9kb20pCmRp ZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2lu Y2x1ZGUveGVuY3RybC5oCmluZGV4IGNmMzY1MjEuLjBjZjFiNDggMTAwNjQ0Ci0tLSBhL3Rvb2xz L2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3Ry bC5oCkBAIC0xNjIwLDcgKzE2MjAsNyBAQCBpbnQgeGNfaHZtX2luamVjdF9tc2koCiAgKi8KIGlu dCB4Y19odm1fdHJhY2tfZGlydHlfdnJhbSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRf dCBkb20sCi0gICAgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50NjRfdCBuciwKKyAgICB1aW50NjRf dCBmaXJzdF9wZm4sIHVpbnQzMl90IG5yLAogICAgIHVuc2lnbmVkIGxvbmcgKmJpdG1hcCk7CiAK IC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19t aXNjLmMKaW5kZXggMDZlOTBkZS4uNGM0MWQ0MSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNf bWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNTgxLDM0ICs1ODEsMjIgQEAg aW50IHhjX2h2bV9pbmplY3RfbXNpKAogCiBpbnQgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAg ICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLAotICAgIHVpbnQ2NF90IGZpcnN0X3Bm biwgdWludDY0X3QgbnIsCisgICAgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBuciwKICAg ICB1bnNpZ25lZCBsb25nICpkaXJ0eV9iaXRtYXApCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExf Qk9VTkNFKGRpcnR5X2JpdG1hcCwgKG5yKzcpIC8gOCwgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VO Q0VfT1VUKTsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1fdHJh Y2tfZGlydHlfdnJhbSwgYXJnKTsKLSAgICBpbnQgcmM7CisgICAgc3RydWN0IHhlbl9kbV9vcCBv cDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gKmRhdGE7CiAKLSAgICBh cmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwot ICAgIGlmICggYXJnID09IE5VTEwgfHwgeGNfaHlwZXJjYWxsX2JvdW5jZV9wcmUoeGNoLCBkaXJ0 eV9iaXRtYXApICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90IGJvdW5jZSBtZW1v cnkgZm9yIHhjX2h2bV90cmFja19kaXJ0eV92cmFtIGh5cGVyY2FsbCIpOwotICAgICAgICByYyA9 IC0xOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9m KG9wKSk7CiAKLSAgICBhcmctPmRvbWlkICAgICA9IGRvbTsKLSAgICBhcmctPmZpcnN0X3BmbiA9 IGZpcnN0X3BmbjsKLSAgICBhcmctPm5yICAgICAgICA9IG5yOwotICAgIHNldF94ZW5fZ3Vlc3Rf aGFuZGxlKGFyZy0+ZGlydHlfYml0bWFwLCBkaXJ0eV9iaXRtYXApOworICAgIG9wLm9wID0gWEVO X0RNT1BfdHJhY2tfZGlydHlfdnJhbTsKKyAgICBkYXRhID0gJm9wLnUudHJhY2tfZGlydHlfdnJh bTsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwK LSAgICAgICAgICAgICAgICAgIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0sCi0gICAgICAgICAgICAg ICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBkYXRhLT5maXJzdF9wZm4g PSBmaXJzdF9wZm47CisgICAgZGF0YS0+bnIgPSBucjsKIAotb3V0OgotICAgIHhjX2h5cGVyY2Fs bF9idWZmZXJfZnJlZSh4Y2gsIGFyZyk7Ci0gICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhj aCwgZGlydHlfYml0bWFwKTsKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhj aCwgZG9tLCAyLCAmb3AsIHNpemVvZihvcCksCisgICAgICAgICAgICAgICAgICAgIGRpcnR5X2Jp dG1hcCwgKG5yICsgNykgLyA4KTsKIH0KIAogaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMK aW5kZXggNzRiMGE0Yi4uYmFhOTFiMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAtMTgsNyArMTgsOSBAQAogI2luY2x1ZGUg PHhlbi9oeXBlcmNhbGwuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KIAorI2luY2x1ZGUgPGFz bS9oYXAuaD4KICNpbmNsdWRlIDxhc20vaHZtL2lvcmVxLmg+CisjaW5jbHVkZSA8YXNtL3NoYWRv dy5oPgogCiAjaW5jbHVkZSA8eHNtL3hzbS5oPgogCkBAIC01Miw2ICs1NCwyNiBAQCBzdGF0aWMg Ym9vbCBjb3B5X2J1Zl90b19ndWVzdCh4ZW5fZG1fb3BfYnVmX3QgYnVmc1tdLAogICAgIHJldHVy biAhY29weV90b19ndWVzdChidWZzW2lkeF0uaCwgc3JjLCBzaXplKTsKIH0KIAorc3RhdGljIGlu dCB0cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsIHhlbl9wZm5fdCBmaXJzdF9wZm4s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yLCBzdHJ1Y3QgeGVu X2RtX29wX2J1ZiAqYnVmKQoreworICAgIGlmICggbnIgPiAoR0IoMSkgPj4gUEFHRV9TSElGVCkg KQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggZC0+aXNfZHlpbmcgKQorICAg ICAgICByZXR1cm4gLUVTUkNIOworCisgICAgaWYgKCAhZC0+bWF4X3ZjcHVzIHx8ICFkLT52Y3B1 WzBdICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoICgobnIgKyA3KSAvIDgp ID4gYnVmLT5zaXplICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICByZXR1cm4gc2hh ZG93X21vZGVfZW5hYmxlZChkKSA/CisgICAgICAgIHNoYWRvd190cmFja19kaXJ0eV92cmFtKGQs IGZpcnN0X3BmbiwgbnIsIGJ1Zi0+aCkgOgorICAgICAgICBoYXBfdHJhY2tfZGlydHlfdnJhbShk LCBmaXJzdF9wZm4sIG5yLCBidWYtPmgpOworfQorCiBzdGF0aWMgaW50IGRtX29wKGRvbWlkX3Qg ZG9taWQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9idWZzLAogICAgICAgICAg ICAgICAgICB4ZW5fZG1fb3BfYnVmX3QgYnVmc1tdKQpAQCAtMTczLDYgKzE5NSwyMiBAQCBzdGF0 aWMgaW50IGRtX29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAg IGNhc2UgWEVOX0RNT1BfdHJhY2tfZGlydHlfdnJhbToKKyAgICB7CisgICAgICAgIGNvbnN0IHN0 cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGlydHlfdnJhbSAqZGF0YSA9CisgICAgICAgICAgICAmb3Au dS50cmFja19kaXJ0eV92cmFtOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYg KCBkYXRhLT5wYWQgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgaWYgKCBucl9idWZz IDwgMiApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByYyA9IHRyYWNrX2RpcnR5X3Zy YW0oZCwgZGF0YS0+Zmlyc3RfcGZuLCBkYXRhLT5uciwgJmJ1ZnNbMV0pOworICAgICAgICBicmVh azsKKyAgICB9CisKICAgICBkZWZhdWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAg ICAgICBicmVhazsKQEAgLTE5NCw4ICsyMzIsOSBAQCBDSEVDS19kbV9vcF9nZXRfaW9yZXFfc2Vy dmVyX2luZm87CiBDSEVDS19kbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2U7CiBDSEVDS19kbV9vcF9z ZXRfaW9yZXFfc2VydmVyX3N0YXRlOwogQ0hFQ0tfZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXI7 CitDSEVDS19kbV9vcF90cmFja19kaXJ0eV92cmFtOwogCi0jZGVmaW5lIE1BWF9OUl9CVUZTIDEK KyNkZWZpbmUgTUFYX05SX0JVRlMgMgogCiBpbnQgY29tcGF0X2RtX29wKGRvbWlkX3QgZG9taWQs CiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9idWZzLApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggM2JjYWFi OC4uOGZlOWU2YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4v YXJjaC94ODYvaHZtL2h2bS5jCkBAIC01MTM0LDQ3ICs1MTM0LDYgQEAgbG9uZyBkb19odm1fb3Ao dW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAg ICAgIHJjID0gZ3Vlc3RfaGFuZGxlX2lzX251bGwoYXJnKSA/IGh2bW9wX2ZsdXNoX3RsYl9hbGwo KSA6IC1FSU5WQUw7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBIVk1PUF90cmFja19kaXJ0 eV92cmFtOgotICAgIHsKLSAgICAgICAgc3RydWN0IHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbSBh OwotICAgICAgICBzdHJ1Y3QgZG9tYWluICpkOwotCi0gICAgICAgIGlmICggY29weV9mcm9tX2d1 ZXN0KCZhLCBhcmcsIDEpICkKLSAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0gICAgICAg IHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChhLmRvbWlkLCAmZCk7Ci0gICAgICAg IGlmICggcmMgIT0gMCApCi0gICAgICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICAgICAgcmMgPSAt RUlOVkFMOwotICAgICAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgICAgIGdv dG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgaWYgKCBhLm5yID4gR0IoMSkgPj4gUEFHRV9TSElGVCAp Ci0gICAgICAgICAgICBnb3RvIHRkdl9mYWlsOwotCi0gICAgICAgIHJjID0geHNtX2h2bV9jb250 cm9sKFhTTV9ETV9QUklWLCBkLCBvcCk7Ci0gICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAg Z290byB0ZHZfZmFpbDsKLQotICAgICAgICByYyA9IC1FU1JDSDsKLSAgICAgICAgaWYgKCBkLT5p c19keWluZyApCi0gICAgICAgICAgICBnb3RvIHRkdl9mYWlsOwotCi0gICAgICAgIHJjID0gLUVJ TlZBTDsKLSAgICAgICAgaWYgKCBkLT52Y3B1ID09IE5VTEwgfHwgZC0+dmNwdVswXSA9PSBOVUxM ICkKLSAgICAgICAgICAgIGdvdG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgaWYgKCBzaGFkb3dfbW9k ZV9lbmFibGVkKGQpICkKLSAgICAgICAgICAgIHJjID0gc2hhZG93X3RyYWNrX2RpcnR5X3ZyYW0o ZCwgYS5maXJzdF9wZm4sIGEubnIsIGEuZGlydHlfYml0bWFwKTsKLSAgICAgICAgZWxzZQotICAg ICAgICAgICAgcmMgPSBoYXBfdHJhY2tfZGlydHlfdnJhbShkLCBhLmZpcnN0X3BmbiwgYS5uciwg YS5kaXJ0eV9iaXRtYXApOwotCi0gICAgdGR2X2ZhaWw6Ci0gICAgICAgIHJjdV91bmxvY2tfZG9t YWluKGQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAgICBjYXNlIEhWTU9QX21vZGlmaWVk X21lbW9yeToKICAgICB7CiAgICAgICAgIHN0cnVjdCB4ZW5faHZtX21vZGlmaWVkX21lbW9yeSBh OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyBiL3hlbi9hcmNoL3g4Ni9t bS9oYXAvaGFwLmMKaW5kZXggZTZkYzA4OC4uNmRiYjNjYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L21tL2hhcC9oYXAuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCkBAIC02OCw3 ICs2OCw3IEBACiBpbnQgaGFwX3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFpbiAqZCwKICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJlZ2luX3BmbiwKICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgpIGd1ZXN0X2RpcnR5X2JpdG1hcCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGd1ZXN0X2Rp cnR5X2JpdG1hcCkKIHsKICAgICBsb25nIHJjID0gMDsKICAgICBzdHJ1Y3Qgc2hfZGlydHlfdnJh bSAqZGlydHlfdnJhbTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9u LmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4IGU0Y2NmOTIuLmE2MTlk NjUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKKysrIGIveGVu L2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwpAQCAtMzYwNCw3ICszNjA0LDcgQEAgc3RhdGlj IHZvaWQgc2hfY2xlYW5fZGlydHlfYml0bWFwKHN0cnVjdCBkb21haW4gKmQpCiBpbnQgc2hhZG93 X3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGJlZ2luX3BmbiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9H VUVTVF9IQU5ETEVfNjQodWludDgpIGd1ZXN0X2RpcnR5X2JpdG1hcCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGd1ZXN0X2RpcnR5X2Jp dG1hcCkKIHsKICAgICBpbnQgcmMgPSAwOwogICAgIHVuc2lnbmVkIGxvbmcgZW5kX3BmbiA9IGJl Z2luX3BmbiArIG5yOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9oYXAuaCBiL3hl bi9pbmNsdWRlL2FzbS14ODYvaGFwLmgKaW5kZXggZGVkYjRiMS4uODg1ODdjNCAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9oYXAuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2hh cC5oCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgIGhhcF92Y3B1X2luaXQoc3RydWN0IHZjcHUgKnYp OwogaW50ICAgaGFwX3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYmVnaW5fcGZuLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgpIGRpcnR5X2JpdG1hcCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGRpcnR5X2JpdG1h cCk7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgcGFnaW5nX21vZGUgKmhhcF9wYWdpbmdfZ2V0X21v ZGUoc3RydWN0IHZjcHUgKik7CiBpbnQgaGFwX3NldF9hbGxvY2F0aW9uKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGludCBwYWdlcywgYm9vbCAqcHJlZW1wdGVkKTsKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS14ODYvc2hhZG93LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3NoYWRvdy5o CmluZGV4IGJhYzk1MmYuLjdlMWVkM2IgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv c2hhZG93LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9zaGFkb3cuaApAQCAtNjMsNyArNjMs NyBAQCBpbnQgc2hhZG93X2VuYWJsZShzdHJ1Y3QgZG9tYWluICpkLCB1MzIgbW9kZSk7CiBpbnQg c2hhZG93X3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZpcnN0X3BmbiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgpIGRpcnR5X2JpdG1hcCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBkaXJ0eV9iaXRtYXAp OwogCiAvKiBIYW5kbGVyIGZvciBzaGFkb3cgY29udHJvbCBvcHM6IG9wZXJhdGlvbnMgZnJvbSB1 c2VyLXNwYWNlIHRvIGVuYWJsZQogICogYW5kIGRpc2FibGUgZXBoZW1lcmFsIHNoYWRvdyBtb2Rl cyAodGVzdCBtb2RlIGFuZCBsb2ctZGlydHkgbW9kZSkgYW5kCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9wdWJsaWMvaHZtL2RtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgK aW5kZXggZGNkNDA3Yi4uZmVmMDFkMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2 bS9kbV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtMTc3LDYg KzE3NywyMyBAQCBzdHJ1Y3QgeGVuX2RtX29wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIHsKICAgICB1 aW50MTZfdCBwYWQ7CiB9OwogCisvKgorICogWEVOX0RNT1BfdHJhY2tfZGlydHlfdnJhbTogVHJh Y2sgbW9kaWZpY2F0aW9ucyB0byB0aGUgc3BlY2lmaWVkIHBmbgorICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmFuZ2UuCisgKgorICogTk9URTogVGhlIGJpdG1hcCBwYXNzZWQgYmFjayB0 byB0aGUgY2FsbGVyIGlzIHBhc3NlZCBpbiBhCisgKiAgICAgICBzZWNvbmRhcnkgYnVmZmVyLgor ICovCisjZGVmaW5lIFhFTl9ETU9QX3RyYWNrX2RpcnR5X3ZyYW0gNworCitzdHJ1Y3QgeGVuX2Rt X29wX3RyYWNrX2RpcnR5X3ZyYW0geworICAgIC8qIElOIC0gbnVtYmVyIG9mIHBhZ2VzIHRvIGJl IHRyYWNrZWQgKi8KKyAgICB1aW50MzJfdCBucjsKKyAgICB1aW50MzJfdCBwYWQ7CisgICAgLyog SU4gLSBmaXJzdCBwZm4gdG8gdHJhY2sgKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0X3Bm bjsKK307CisKIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgIHVpbnQzMl90IG9wOwogICAgIHVpbnQz Ml90IHBhZDsKQEAgLTE4Nyw2ICsyMDQsNyBAQCBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICAgICAg c3RydWN0IHhlbl9kbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2UgdW5tYXBfaW9fcmFuZ2VfZnJvbV9p b3JlcV9zZXJ2ZXI7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9z dGF0ZSBzZXRfaW9yZXFfc2VydmVyX3N0YXRlOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2Rl c3Ryb3lfaW9yZXFfc2VydmVyIGRlc3Ryb3lfaW9yZXFfc2VydmVyOworICAgICAgICBzdHJ1Y3Qg eGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gdHJhY2tfZGlydHlfdnJhbTsKICAgICB9IHU7CiB9 OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCA2ZmNkODZkLi40N2U4MzZjIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9odm0vaHZtX29wLmgKQEAgLTk1LDIyICs5NSw2IEBAIHR5cGVkZWYgZW51bSB7CiAvKiBG b2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1heSBjaGFuZ2UgaW4gZnV0dXJlLiAqLwog I2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQogCi0vKiBUcmFj ayBkaXJ0eSBWUkFNLiAqLwotI2RlZmluZSBIVk1PUF90cmFja19kaXJ0eV92cmFtICAgIDYKLXN0 cnVjdCB4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW0gewotICAgIC8qIERvbWFpbiB0byBiZSB0cmFj a2VkLiAqLwotICAgIGRvbWlkX3QgIGRvbWlkOwotICAgIC8qIE51bWJlciBvZiBwYWdlcyB0byB0 cmFjay4gKi8KLSAgICB1aW50MzJfdCBucjsKLSAgICAvKiBGaXJzdCBwZm4gdG8gdHJhY2suICov Ci0gICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Ci0gICAgLyogT1VUIHZhcmlhYmxlLiAq LwotICAgIC8qIERpcnR5IGJpdG1hcCBidWZmZXIuICovCi0gICAgWEVOX0dVRVNUX0hBTkRMRV82 NCh1aW50OCkgZGlydHlfYml0bWFwOwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9odm1fdHJhY2tf ZGlydHlfdnJhbSB4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW1fdDsKLURFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbV90KTsKLQogLyogTm90aWZ5IHRoYXQgc29t ZSBwYWdlcyBnb3QgbW9kaWZpZWQgYnkgdGhlIERldmljZSBNb2RlbC4gKi8KICNkZWZpbmUgSFZN T1BfbW9kaWZpZWRfbWVtb3J5ICAgIDcKIHN0cnVjdCB4ZW5faHZtX21vZGlmaWVkX21lbW9yeSB7 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94bGF0LmxzdCBiL3hlbi9pbmNsdWRlL3hsYXQubHN0 CmluZGV4IDZiNDgyOTAuLjU1YWM1ZmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hsYXQubHN0 CisrKyBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CkBAIC02Miw2ICs2Miw3IEBACiA/CWRtX29wX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbwlodm0vZG1fb3AuaAogPwlkbV9vcF9pb3JlcV9zZXJ2ZXJfcmFu Z2UJaHZtL2RtX29wLmgKID8JZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZQlodm0vZG1fb3Au aAorPwlkbV9vcF90cmFja19kaXJ0eV92cmFtCQlodm0vZG1fb3AuaAogPwl2Y3B1X2h2bV9jb250 ZXh0CQlodm0vaHZtX3ZjcHUuaAogPwl2Y3B1X2h2bV94ODZfMzIJCQlodm0vaHZtX3ZjcHUuaAog Pwl2Y3B1X2h2bV94ODZfNjQJCQlodm0vaHZtX3ZjcHUuaApkaWZmIC0tZ2l0IGEveGVuL3hzbS9m bGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IDFjZThhMzYuLmE0Mjcy ZDcgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNr L2hvb2tzLmMKQEAgLTExODAsOSArMTE4MCw2IEBAIHN0YXRpYyBpbnQgZmxhc2tfaHZtX3BhcmFt KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgb3ApCiAgICAgY2FzZSBIVk1PUF9nZXRf cGFyYW06CiAgICAgICAgIHBlcm0gPSBIVk1fX0dFVFBBUkFNOwogICAgICAgICBicmVhazsKLSAg ICBjYXNlIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW06Ci0gICAgICAgIHBlcm0gPSBIVk1fX1RSQUNL RElSVFlWUkFNOwotICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBwZXJtID0g SFZNX19IVk1DVEw7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNj ZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCA5 MmU2ZGE5Li40N2NlNTg5IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3Nf dmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjY4 LDggKzI2OCw2IEBAIGNsYXNzIGh2bQogICAgIGJpbmRfaXJxCiAjIFhFTl9ET01DVExfcGluX21l bV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKLSMgSFZNT1BfdHJhY2tfZGlydHlfdnJhbQotICAg IHRyYWNrZGlydHl2cmFtCiAjIEhWTU9QX21vZGlmaWVkX21lbW9yeSwgSFZNT1BfZ2V0X21lbV90 eXBlLCBIVk1PUF9zZXRfbWVtX3R5cGUsCiAjIEhWTU9QX3NldF9tZW1fYWNjZXNzLCBIVk1PUF9n ZXRfbWVtX2FjY2VzcywgSFZNT1BfcGFnZXRhYmxlX2R5aW5nLAogIyBIVk1PUF9pbmplY3RfdHJh cAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK