From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 3/8] dm_op: convert HVMOP_track_dirty_vram Date: Mon, 23 Jan 2017 13:59:44 +0000 Message-ID: <1485179989-1763-4-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cVfA3-0006ue-6T for xen-devel@lists.xenproject.org; Mon, 23 Jan 2017 13:59:55 +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 VGhlIGhhbmRsZSB0eXBlIHBhc3NlZCB0byB0aGUgdW5kZXJseWluZyBzaGFkb3cgYW5kIGhhcCBm dW5jdGlvbnMgaXMKY2hhbmdlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBuZXcgaHlwZXJj YWxsIGJ1ZmZlci4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyB0aGUgdHlwZSBvZiB0 aGUgJ25yJyBwYXJhbWV0ZXIgb2YKICAgICAgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oKSBmcm9t IHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZQogICAgICB0aGUgdmFsdWUgcGFzc2Vk IHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs LmR1cnJhbnRAY2l0cml4LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5j b20+CkFja2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+ CkFja2VkLWJ5OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQWNrZWQtYnk6IERhbmllbCBEZSBH cmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3Bl cjNAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4 LmNvbT4KCnY0OgotIEtub2NrLW9uIGNoYW5nZXMgZnJvbSBjb21wYXQgY29kZSBpbiBkbS5jLiBO b3QgYWRkaW5nIEphbidzIFItYiBzaW5jZQogIHRoZSBwYXRjaCBoYXMgZnVuZGFtZW50YWxseSBj aGFuZ2VkLgoKdjM6Ci0gQ2hlY2sgZC0+bWF4X3ZjcHVzIHJhdGhlciB0aGFuIGQtPnZjcHUsIGFz IHJlcXVlc3RlZCBieSBKYW4uCi0gVGhlIGhhbmRsZSB0eXBlIGNoYW5nZXMgKGZyb20gdWludDgg dG8gdm9pZCkgYXJlIHN0aWxsIG5lY2Vzc2FyeSwgaGVuY2UKICBvbWl0dGluZyBKYW4ncyBSLWIg dW50aWwgdGhpcyBpcyBjb25maXJtZWQgdG8gYmUgYWNjZXB0YWJsZS4KCnYyOgotIEFkZHJlc3Nl ZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20gSmFuLgotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1 bGVzL3hlbi5pZiAgIHwgIDQgKystLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAg ICAgfCAgMiArLQogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICAgICAgfCAzMiArKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAg ICAgICAgfCA0MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9hcmNo L3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgIHwgNDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyAgICAgICAgICAgfCAgMiAr LQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyAgICAgfCAgMiArLQogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9oYXAuaCAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9z aGFkb3cuaCAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAg ICAgfCAxOCArKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5o ICAgICB8IDE2IC0tLS0tLS0tLS0tLS0tLQogeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAg ICAgICAgfCAgMyAtLS0KIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgIDIg LS0KIDEzIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDkyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiBiL3Rvb2xzL2Zs YXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgppbmRleCBmOTI1NGMyLi40NWU1YjVmIDEwMDY0NAot LS0gYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKKysrIGIvdG9vbHMvZmxhc2sv cG9saWN5L21vZHVsZXMveGVuLmlmCkBAIC01OCw3ICs1OCw3IEBAIGRlZmluZShgY3JlYXRlX2Rv bWFpbl9jb21tb24nLCBgCiAJYWxsb3cgJDEgJDI6bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFk anVzdCBtZW1vcnltYXAgcGh5c21hcCBwaW5wYWdlIG1tdWV4dF9vcCB1cGRhdGVtcCB9OwogCWFs bG93ICQxICQyOmdyYW50IHNldHVwOwogCWFsbG93ICQxICQyOmh2bSB7IGNhY2hlYXR0ciBnZXRw YXJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgc2V0aHZtYwotCQkJc2V0cGFyYW0gcGNpbGV2 ZWwgdHJhY2tkaXJ0eXZyYW0gbmVzdGVkIGFsdHAybWh2bSBhbHRwMm1odm1fb3Agc2VuZF9pcnEg fTsKKwkJCXNldHBhcmFtIHBjaWxldmVsIG5lc3RlZCBhbHRwMm1odm0gYWx0cDJtaHZtX29wIHNl bmRfaXJxIH07CiAnKQogCiAjIGNyZWF0ZV9kb21haW4ocHJpdiwgdGFyZ2V0KQpAQCAtMTUxLDcg KzE1MSw3IEBAIGRlZmluZShgZGV2aWNlX21vZGVsJywgYAogCiAJYWxsb3cgJDEgJDJfdGFyZ2V0 OmRvbWFpbiB7IGdldGRvbWFpbmluZm8gc2h1dGRvd24gfTsKIAlhbGxvdyAkMSAkMl90YXJnZXQ6 bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBwaHlzbWFwIHRhcmdldF9oYWNrIH07Ci0J YWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIHRyYWNrZGlydHl2cmFt IGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBwY2lsZXZlbCBjYWNoZWF0dHIgc2VuZF9pcnEgZG0g fTsKKwlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsgZ2V0cGFyYW0gc2V0cGFyYW0gaHZtY3RsIGly cWxldmVsIHBjaXJvdXRlIHBjaWxldmVsIGNhY2hlYXR0ciBzZW5kX2lycSBkbSB9OwogJykKIAog IyBtYWtlX2RldmljZV9tb2RlbChwcml2LCBkbV9kb20sIGh2bV9kb20pCmRpZmYgLS1naXQgYS90 b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3Ry bC5oCmluZGV4IGNmMzY1MjEuLjBjZjFiNDggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xNjIw LDcgKzE2MjAsNyBAQCBpbnQgeGNfaHZtX2luamVjdF9tc2koCiAgKi8KIGludCB4Y19odm1fdHJh Y2tfZGlydHlfdnJhbSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sCi0gICAg dWludDY0X3QgZmlyc3RfcGZuLCB1aW50NjRfdCBuciwKKyAgICB1aW50NjRfdCBmaXJzdF9wZm4s IHVpbnQzMl90IG5yLAogICAgIHVuc2lnbmVkIGxvbmcgKmJpdG1hcCk7CiAKIC8qCmRpZmYgLS1n aXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19taXNjLmMKaW5kZXgg MDZlOTBkZS4uNGM0MWQ0MSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWlzYy5jCisrKyBi L3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNTgxLDM0ICs1ODEsMjIgQEAgaW50IHhjX2h2bV9p bmplY3RfbXNpKAogCiBpbnQgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAgICAgeGNfaW50ZXJm YWNlICp4Y2gsIGRvbWlkX3QgZG9tLAotICAgIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDY0X3Qg bnIsCisgICAgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBuciwKICAgICB1bnNpZ25lZCBs b25nICpkaXJ0eV9iaXRtYXApCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQk9VTkNFKGRpcnR5 X2JpdG1hcCwgKG5yKzcpIC8gOCwgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VOQ0VfT1VUKTsKLSAg ICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1fdHJhY2tfZGlydHlfdnJh bSwgYXJnKTsKLSAgICBpbnQgcmM7CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1 Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gKmRhdGE7CiAKLSAgICBhcmcgPSB4Y19oeXBl cmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJn ID09IE5VTEwgfHwgeGNfaHlwZXJjYWxsX2JvdW5jZV9wcmUoeGNoLCBkaXJ0eV9iaXRtYXApICkK LSAgICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90IGJvdW5jZSBtZW1vcnkgZm9yIHhjX2h2 bV90cmFja19kaXJ0eV92cmFtIGh5cGVyY2FsbCIpOwotICAgICAgICByYyA9IC0xOwotICAgICAg ICBnb3RvIG91dDsKLSAgICB9CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAg ICBhcmctPmRvbWlkICAgICA9IGRvbTsKLSAgICBhcmctPmZpcnN0X3BmbiA9IGZpcnN0X3BmbjsK LSAgICBhcmctPm5yICAgICAgICA9IG5yOwotICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKGFyZy0+ ZGlydHlfYml0bWFwLCBkaXJ0eV9iaXRtYXApOworICAgIG9wLm9wID0gWEVOX0RNT1BfdHJhY2tf ZGlydHlfdnJhbTsKKyAgICBkYXRhID0gJm9wLnUudHJhY2tfZGlydHlfdnJhbTsKIAotICAgIHJj ID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAg ICAgICAgIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0sCi0gICAgICAgICAgICAgICAgICBIWVBFUkNB TExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBkYXRhLT5maXJzdF9wZm4gPSBmaXJzdF9wZm47 CisgICAgZGF0YS0+bnIgPSBucjsKIAotb3V0OgotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJl ZSh4Y2gsIGFyZyk7Ci0gICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgZGlydHlfYml0 bWFwKTsKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9tLCAyLCAm b3AsIHNpemVvZihvcCksCisgICAgICAgICAgICAgICAgICAgIGRpcnR5X2JpdG1hcCwgKG5yICsg NykgLyA4KTsKIH0KIAogaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggNzJjYjMz YS4uYjA5MDhmNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9odm0vZG0uYwpAQCAtMTgsNyArMTgsOSBAQAogI2luY2x1ZGUgPHhlbi9oeXBlcmNh bGwuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KIAorI2luY2x1ZGUgPGFzbS9oYXAuaD4KICNp bmNsdWRlIDxhc20vaHZtL2lvcmVxLmg+CisjaW5jbHVkZSA8YXNtL3NoYWRvdy5oPgogCiAjaW5j bHVkZSA8eHNtL3hzbS5oPgogCkBAIC00Miw2ICs0NCwyNiBAQCBzdGF0aWMgYm9vbCBjb3B5X2J1 Zl90b19ndWVzdCh4ZW5fZG1fb3BfYnVmX3QgYnVmc1tdLAogICAgIHJldHVybiAhY29weV90b19n dWVzdChidWZzW2lkeF0uaCwgc3JjLCBidWZzW2lkeF0uc2l6ZSk7CiB9CiAKK3N0YXRpYyBpbnQg dHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fcGZuX3QgZmlyc3RfcGZuLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuciwgc3RydWN0IHhlbl9k bV9vcF9idWYgKmJ1ZikKK3sKKyAgICBpZiAoIG5yID4gKEdCKDEpID4+IFBBR0VfU0hJRlQpICkK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIGQtPmlzX2R5aW5nICkKKyAgICAg ICAgcmV0dXJuIC1FU1JDSDsKKworICAgIGlmICggIWQtPm1heF92Y3B1cyB8fCAhZC0+dmNwdVsw XSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCAoKG5yICsgNykgLyA4KSA+ IGJ1Zi0+c2l6ZSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgcmV0dXJuIHNoYWRv d19tb2RlX2VuYWJsZWQoZCkgPworICAgICAgICBzaGFkb3dfdHJhY2tfZGlydHlfdnJhbShkLCBm aXJzdF9wZm4sIG5yLCBidWYtPmgpIDoKKyAgICAgICAgaGFwX3RyYWNrX2RpcnR5X3ZyYW0oZCwg Zmlyc3RfcGZuLCBuciwgYnVmLT5oKTsKK30KKwogc3RhdGljIGludCBkbV9vcChkb21pZF90IGRv bWlkLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKICAgICAgICAgICAg ICAgICAgeGVuX2RtX29wX2J1Zl90IGJ1ZnNbXSkKQEAgLTE2Myw2ICsxODUsMjIgQEAgc3RhdGlj IGludCBkbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBj YXNlIFhFTl9ETU9QX3RyYWNrX2RpcnR5X3ZyYW06CisgICAgeworICAgICAgICBjb25zdCBzdHJ1 Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUu dHJhY2tfZGlydHlfdnJhbTsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICgg ZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmICggbnJfYnVmcyA8 IDIgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSB0cmFja19kaXJ0eV92cmFt KGQsIGRhdGEtPmZpcnN0X3BmbiwgZGF0YS0+bnIsICZidWZzWzFdKTsKKyAgICAgICAgYnJlYWs7 CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAg ICAgYnJlYWs7CkBAIC0xNzksNyArMjE3LDcgQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90IGRv bWlkLAogICAgIHJldHVybiByYzsKIH0KIAotI2RlZmluZSBNQVhfTlJfQlVGUyAxCisjZGVmaW5l IE1BWF9OUl9CVUZTIDIKIAogaW50IGNvbXBhdF9kbV9vcChkb21pZF90IGRvbWlkLAogICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDNiY2FhYjguLjhmZTll NmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYwpAQCAtNTEzNCw0NyArNTEzNCw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVk IGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICByYyA9 IGd1ZXN0X2hhbmRsZV9pc19udWxsKGFyZykgPyBodm1vcF9mbHVzaF90bGJfYWxsKCkgOiAtRUlO VkFMOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1BfdHJhY2tfZGlydHlfdnJhbToK LSAgICB7Ci0gICAgICAgIHN0cnVjdCB4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW0gYTsKLSAgICAg ICAgc3RydWN0IGRvbWFpbiAqZDsKLQotICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmYSwg YXJnLCAxKSApCi0gICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgICAgICByYyA9IHJj dV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQoYS5kb21pZCwgJmQpOwotICAgICAgICBpZiAoIHJj ICE9IDAgKQotICAgICAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgICAgIHJjID0gLUVJTlZBTDsK LSAgICAgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgICAgICBnb3RvIHRkdl9m YWlsOwotCi0gICAgICAgIGlmICggYS5uciA+IEdCKDEpID4+IFBBR0VfU0hJRlQgKQotICAgICAg ICAgICAgZ290byB0ZHZfZmFpbDsKLQotICAgICAgICByYyA9IHhzbV9odm1fY29udHJvbChYU01f RE1fUFJJViwgZCwgb3ApOwotICAgICAgICBpZiAoIHJjICkKLSAgICAgICAgICAgIGdvdG8gdGR2 X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRVNSQ0g7Ci0gICAgICAgIGlmICggZC0+aXNfZHlpbmcg KQotICAgICAgICAgICAgZ290byB0ZHZfZmFpbDsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0g ICAgICAgIGlmICggZC0+dmNwdSA9PSBOVUxMIHx8IGQtPnZjcHVbMF0gPT0gTlVMTCApCi0gICAg ICAgICAgICBnb3RvIHRkdl9mYWlsOwotCi0gICAgICAgIGlmICggc2hhZG93X21vZGVfZW5hYmxl ZChkKSApCi0gICAgICAgICAgICByYyA9IHNoYWRvd190cmFja19kaXJ0eV92cmFtKGQsIGEuZmly c3RfcGZuLCBhLm5yLCBhLmRpcnR5X2JpdG1hcCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg IHJjID0gaGFwX3RyYWNrX2RpcnR5X3ZyYW0oZCwgYS5maXJzdF9wZm4sIGEubnIsIGEuZGlydHlf Yml0bWFwKTsKLQotICAgIHRkdl9mYWlsOgotICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsK LSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBIVk1PUF9tb2RpZmllZF9tZW1vcnk6 CiAgICAgewogICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgYTsKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hh cC5jCmluZGV4IGU2ZGMwODguLjZkYmIzY2MgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9o YXAvaGFwLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwpAQCAtNjgsNyArNjgsNyBA QAogaW50IGhhcF90cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBiZWdpbl9wZm4sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f R1VFU1RfSEFORExFXzY0KHVpbnQ4KSBndWVzdF9kaXJ0eV9iaXRtYXApCisgICAgICAgICAgICAg ICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBndWVzdF9kaXJ0eV9iaXRt YXApCiB7CiAgICAgbG9uZyByYyA9IDA7CiAgICAgc3RydWN0IHNoX2RpcnR5X3ZyYW0gKmRpcnR5 X3ZyYW07CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVu L2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwppbmRleCBlNGNjZjkyLi5hNjE5ZDY1IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvY29tbW9uLmMKQEAgLTM2MDQsNyArMzYwNCw3IEBAIHN0YXRpYyB2b2lkIHNo X2NsZWFuX2RpcnR5X2JpdG1hcChzdHJ1Y3QgZG9tYWluICpkKQogaW50IHNoYWRvd190cmFja19k aXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBiZWdpbl9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFO RExFXzY0KHVpbnQ4KSBndWVzdF9kaXJ0eV9iaXRtYXApCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBndWVzdF9kaXJ0eV9iaXRtYXApCiB7 CiAgICAgaW50IHJjID0gMDsKICAgICB1bnNpZ25lZCBsb25nIGVuZF9wZm4gPSBiZWdpbl9wZm4g KyBucjsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmggYi94ZW4vaW5jbHVk ZS9hc20teDg2L2hhcC5oCmluZGV4IGRlZGI0YjEuLjg4NTg3YzQgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaGFwLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9oYXAuaApAQCAt NDMsNyArNDMsNyBAQCB2b2lkICBoYXBfdmNwdV9pbml0KHN0cnVjdCB2Y3B1ICp2KTsKIGludCAg IGhhcF90cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJlZ2luX3BmbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f R1VFU1RfSEFORExFXzY0KHVpbnQ4KSBkaXJ0eV9iaXRtYXApOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBkaXJ0eV9iaXRtYXApOwogCiBl eHRlcm4gY29uc3Qgc3RydWN0IHBhZ2luZ19tb2RlICpoYXBfcGFnaW5nX2dldF9tb2RlKHN0cnVj dCB2Y3B1ICopOwogaW50IGhhcF9zZXRfYWxsb2NhdGlvbihzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBpbnQgcGFnZXMsIGJvb2wgKnByZWVtcHRlZCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L3NoYWRvdy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9zaGFkb3cuaAppbmRleCBi YWM5NTJmLi43ZTFlZDNiIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3NoYWRvdy5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc2hhZG93LmgKQEAgLTYzLDcgKzYzLDcgQEAgaW50 IHNoYWRvd19lbmFibGUoc3RydWN0IGRvbWFpbiAqZCwgdTMyIG1vZGUpOwogaW50IHNoYWRvd190 cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBmaXJzdF9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VF U1RfSEFORExFXzY0KHVpbnQ4KSBkaXJ0eV9iaXRtYXApOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZGlydHlfYml0bWFwKTsKIAogLyog SGFuZGxlciBmb3Igc2hhZG93IGNvbnRyb2wgb3BzOiBvcGVyYXRpb25zIGZyb20gdXNlci1zcGFj ZSB0byBlbmFibGUKICAqIGFuZCBkaXNhYmxlIGVwaGVtZXJhbCBzaGFkb3cgbW9kZXMgKHRlc3Qg bW9kZSBhbmQgbG9nLWRpcnR5IG1vZGUpIGFuZApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi bGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IGRj ZDQwN2IuLmZlZjAxZDIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3Au aAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKQEAgLTE3Nyw2ICsxNzcsMjMg QEAgc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciB7CiAgICAgdWludDE2X3Qg cGFkOwogfTsKIAorLyoKKyAqIFhFTl9ETU9QX3RyYWNrX2RpcnR5X3ZyYW06IFRyYWNrIG1vZGlm aWNhdGlvbnMgdG8gdGhlIHNwZWNpZmllZCBwZm4KKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJhbmdlLgorICoKKyAqIE5PVEU6IFRoZSBiaXRtYXAgcGFzc2VkIGJhY2sgdG8gdGhlIGNh bGxlciBpcyBwYXNzZWQgaW4gYQorICogICAgICAgc2Vjb25kYXJ5IGJ1ZmZlci4KKyAqLworI2Rl ZmluZSBYRU5fRE1PUF90cmFja19kaXJ0eV92cmFtIDcKKworc3RydWN0IHhlbl9kbV9vcF90cmFj a19kaXJ0eV92cmFtIHsKKyAgICAvKiBJTiAtIG51bWJlciBvZiBwYWdlcyB0byBiZSB0cmFja2Vk ICovCisgICAgdWludDMyX3QgbnI7CisgICAgdWludDMyX3QgcGFkOworICAgIC8qIElOIC0gZmly c3QgcGZuIHRvIHRyYWNrICovCisgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Cit9Owor CiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7 CkBAIC0xODcsNiArMjA0LDcgQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4 ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlIHVubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2Vy dmVyOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgc2V0 X2lvcmVxX3NlcnZlcl9zdGF0ZTsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lv cmVxX3NlcnZlciBkZXN0cm95X2lvcmVxX3NlcnZlcjsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9v cF90cmFja19kaXJ0eV92cmFtIHRyYWNrX2RpcnR5X3ZyYW07CiAgICAgfSB1OwogfTsKIApkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9odm0vaHZtX29wLmgKaW5kZXggNmZjZDg2ZC4uNDdlODM2YyAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2h2bV9vcC5oCkBAIC05NSwyMiArOTUsNiBAQCB0eXBlZGVmIGVudW0gewogLyogRm9sbG93aW5n IHRvb2xzLW9ubHkgaW50ZXJmYWNlcyBtYXkgY2hhbmdlIGluIGZ1dHVyZS4gKi8KICNpZiBkZWZp bmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKIAotLyogVHJhY2sgZGlydHkg VlJBTS4gKi8KLSNkZWZpbmUgSFZNT1BfdHJhY2tfZGlydHlfdnJhbSAgICA2Ci1zdHJ1Y3QgeGVu X2h2bV90cmFja19kaXJ0eV92cmFtIHsKLSAgICAvKiBEb21haW4gdG8gYmUgdHJhY2tlZC4gKi8K LSAgICBkb21pZF90ICBkb21pZDsKLSAgICAvKiBOdW1iZXIgb2YgcGFnZXMgdG8gdHJhY2suICov Ci0gICAgdWludDMyX3QgbnI7Ci0gICAgLyogRmlyc3QgcGZuIHRvIHRyYWNrLiAqLwotICAgIHVp bnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwotICAgIC8qIE9VVCB2YXJpYWJsZS4gKi8KLSAgICAv KiBEaXJ0eSBiaXRtYXAgYnVmZmVyLiAqLwotICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgp IGRpcnR5X2JpdG1hcDsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3RyYWNrX2RpcnR5X3Zy YW0geGVuX2h2bV90cmFja19kaXJ0eV92cmFtX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4 ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW1fdCk7Ci0KIC8qIE5vdGlmeSB0aGF0IHNvbWUgcGFnZXMg Z290IG1vZGlmaWVkIGJ5IHRoZSBEZXZpY2UgTW9kZWwuICovCiAjZGVmaW5lIEhWTU9QX21vZGlm aWVkX21lbW9yeSAgICA3CiBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkgewpkaWZmIC0t Z2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4 IDFjZThhMzYuLmE0MjcyZDcgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysg Yi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTExODAsOSArMTE4MCw2IEBAIHN0YXRpYyBpbnQg Zmxhc2tfaHZtX3BhcmFtKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgb3ApCiAgICAg Y2FzZSBIVk1PUF9nZXRfcGFyYW06CiAgICAgICAgIHBlcm0gPSBIVk1fX0dFVFBBUkFNOwogICAg ICAgICBicmVhazsKLSAgICBjYXNlIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW06Ci0gICAgICAgIHBl cm0gPSBIVk1fX1RSQUNLRElSVFlWUkFNOwotICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog ICAgICAgICBwZXJtID0gSFZNX19IVk1DVEw7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9m bGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3Nf dmVjdG9ycwppbmRleCA5MmU2ZGE5Li40N2NlNTg5IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNr L3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3Nf dmVjdG9ycwpAQCAtMjY4LDggKzI2OCw2IEBAIGNsYXNzIGh2bQogICAgIGJpbmRfaXJxCiAjIFhF Tl9ET01DVExfcGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKLSMgSFZNT1BfdHJhY2tf ZGlydHlfdnJhbQotICAgIHRyYWNrZGlydHl2cmFtCiAjIEhWTU9QX21vZGlmaWVkX21lbW9yeSwg SFZNT1BfZ2V0X21lbV90eXBlLCBIVk1PUF9zZXRfbWVtX3R5cGUsCiAjIEhWTU9QX3NldF9tZW1f YWNjZXNzLCBIVk1PUF9nZXRfbWVtX2FjY2VzcywgSFZNT1BfcGFnZXRhYmxlX2R5aW5nLAogIyBI Vk1PUF9pbmplY3RfdHJhcAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK