From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 3/8] dm_op: convert HVMOP_track_dirty_vram Date: Tue, 6 Dec 2016 13:46:14 +0000 Message-ID: <1481031979-4751-4-git-send-email-paul.durrant@citrix.com> References: <1481031979-4751-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 1cEGQL-0007xN-9n for xen-devel@lists.xenproject.org; Tue, 06 Dec 2016 14:08:49 +0000 In-Reply-To: <1481031979-4751-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: Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhlIGhhbmRsZSB0eXBlIHBhc3NlZCB0byB0aGUgdW5kZXJseWluZyBzaGFkb3cgYW5kIGhhcCBm dW5jdGlvbnMgaXMKY2hhbmdlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBuZXcgaHlwZXJj YWxsIGJ1ZmZlci4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyB0aGUgdHlwZSBvZiB0 aGUgJ25yJyBwYXJhbWV0ZXIgb2YKICAgICAgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oKSBmcm9t IHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZQogICAgICB0aGUgdmFsdWUgcGFzc2Vk IHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs LmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5j b20+CkNjOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KQ2M6IElhbiBK YWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJA Y2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBUaW0g RGVlZ2FuIDx0aW1AeGVuLm9yZz4KCnYyOgotIEFkZHJlc3NlZCBzZXZlcmFsIGNvbW1lbnRzIGZy b20gSmFuLgotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiAgIHwgIDQgKyst LQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgMiArLQogdG9vbHMvbGli eGMveGNfbWlzYy5jICAgICAgICAgICAgICAgfCAzMiArKysrKysrKystLS0tLS0tLS0tLS0tLS0t LQogeGVuL2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAgICAgICAgfCA0NSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAg ICAgICB8IDQxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2 L21tL2hhcC9oYXAuYyAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9j b21tb24uYyAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9oYXAuaCAgICAgICAgICAg fCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9zaGFkb3cuaCAgICAgICAgfCAgMiArLQogeGVu L2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAgICAgfCAxOCArKysrKysrKysrKysrKysKIHhl bi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggICAgIHwgMTYgLS0tLS0tLS0tLS0tLQogeGVu L3hzbS9mbGFzay9ob29rcy5jICAgICAgICAgICAgICAgfCAgMyAtLS0KIHhlbi94c20vZmxhc2sv cG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgIDIgLS0KIDEzIGZpbGVzIGNoYW5nZWQsIDgwIGluc2Vy dGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGlj eS9tb2R1bGVzL3hlbi5pZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgppbmRl eCA3NzkyMzJlLi4zNjYyNzNlIDEwMDY0NAotLS0gYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxl cy94ZW4uaWYKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmCkBAIC01OCw3 ICs1OCw3IEBAIGRlZmluZShgY3JlYXRlX2RvbWFpbl9jb21tb24nLCBgCiAJYWxsb3cgJDEgJDI6 bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBtZW1vcnltYXAgcGh5c21hcCBwaW5wYWdl IG1tdWV4dF9vcCB1cGRhdGVtcCB9OwogCWFsbG93ICQxICQyOmdyYW50IHNldHVwOwogCWFsbG93 ICQxICQyOmh2bSB7IGNhY2hlYXR0ciBnZXRwYXJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUg c2V0aHZtYwotCQkJc2V0cGFyYW0gcGNpbGV2ZWwgdHJhY2tkaXJ0eXZyYW0gbmVzdGVkIGFsdHAy bWh2bSBhbHRwMm1odm1fb3AgfTsKKwkJCXNldHBhcmFtIHBjaWxldmVsIG5lc3RlZCBhbHRwMm1o dm0gYWx0cDJtaHZtX29wIH07CiAnKQogCiAjIGNyZWF0ZV9kb21haW4ocHJpdiwgdGFyZ2V0KQpA QCAtMTUxLDcgKzE1MSw3IEBAIGRlZmluZShgZGV2aWNlX21vZGVsJywgYAogCiAJYWxsb3cgJDEg JDJfdGFyZ2V0OmRvbWFpbiB7IGdldGRvbWFpbmluZm8gc2h1dGRvd24gfTsKIAlhbGxvdyAkMSAk Ml90YXJnZXQ6bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBwaHlzbWFwIHRhcmdldF9o YWNrIH07Ci0JYWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBhcmFtIHRyYWNr ZGlydHl2cmFtIGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBwY2lsZXZlbCBjYWNoZWF0dHIgc2Vu ZF9pcnEgZG0gfTsKKwlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsgZ2V0cGFyYW0gc2V0cGFyYW0g aHZtY3RsIGlycWxldmVsIHBjaXJvdXRlIHBjaWxldmVsIGNhY2hlYXR0ciBzZW5kX2lycSBkbSB9 OwogJykKIAogIyBtYWtlX2RldmljZV9tb2RlbChwcml2LCBkbV9kb20sIGh2bV9kb20pCmRpZmYg LS1naXQgYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1 ZGUveGVuY3RybC5oCmluZGV4IGNjMzc3NTIuLmE2ZTI2YzIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhjL2luY2x1ZGUveGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5o CkBAIC0xNjIwLDcgKzE2MjAsNyBAQCBpbnQgeGNfaHZtX2luamVjdF9tc2koCiAgKi8KIGludCB4 Y19odm1fdHJhY2tfZGlydHlfdnJhbSgKICAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBk b20sCi0gICAgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50NjRfdCBuciwKKyAgICB1aW50NjRfdCBm aXJzdF9wZm4sIHVpbnQzMl90IG5yLAogICAgIHVuc2lnbmVkIGxvbmcgKmJpdG1hcCk7CiAKIC8q CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19taXNj LmMKaW5kZXggMDZlOTBkZS4uNGM0MWQ0MSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWlz Yy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNTgxLDM0ICs1ODEsMjIgQEAgaW50 IHhjX2h2bV9pbmplY3RfbXNpKAogCiBpbnQgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAgICAg eGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLAotICAgIHVpbnQ2NF90IGZpcnN0X3Bmbiwg dWludDY0X3QgbnIsCisgICAgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBuciwKICAgICB1 bnNpZ25lZCBsb25nICpkaXJ0eV9iaXRtYXApCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQk9V TkNFKGRpcnR5X2JpdG1hcCwgKG5yKzcpIC8gOCwgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VOQ0Vf T1VUKTsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhlbl9odm1fdHJhY2tf ZGlydHlfdnJhbSwgYXJnKTsKLSAgICBpbnQgcmM7CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsK KyAgICBzdHJ1Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gKmRhdGE7CiAKLSAgICBhcmcg PSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAg IGlmICggYXJnID09IE5VTEwgfHwgeGNfaHlwZXJjYWxsX2JvdW5jZV9wcmUoeGNoLCBkaXJ0eV9i aXRtYXApICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigiQ291bGQgbm90IGJvdW5jZSBtZW1vcnkg Zm9yIHhjX2h2bV90cmFja19kaXJ0eV92cmFtIGh5cGVyY2FsbCIpOwotICAgICAgICByYyA9IC0x OwotICAgICAgICBnb3RvIG91dDsKLSAgICB9CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9w KSk7CiAKLSAgICBhcmctPmRvbWlkICAgICA9IGRvbTsKLSAgICBhcmctPmZpcnN0X3BmbiA9IGZp cnN0X3BmbjsKLSAgICBhcmctPm5yICAgICAgICA9IG5yOwotICAgIHNldF94ZW5fZ3Vlc3RfaGFu ZGxlKGFyZy0+ZGlydHlfYml0bWFwLCBkaXJ0eV9iaXRtYXApOworICAgIG9wLm9wID0gWEVOX0RN T1BfdHJhY2tfZGlydHlfdnJhbTsKKyAgICBkYXRhID0gJm9wLnUudHJhY2tfZGlydHlfdnJhbTsK IAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAg ICAgICAgICAgICAgICAgIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0sCi0gICAgICAgICAgICAgICAg ICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBkYXRhLT5maXJzdF9wZm4gPSBm aXJzdF9wZm47CisgICAgZGF0YS0+bnIgPSBucjsKIAotb3V0OgotICAgIHhjX2h5cGVyY2FsbF9i dWZmZXJfZnJlZSh4Y2gsIGFyZyk7Ci0gICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwg ZGlydHlfYml0bWFwKTsKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhjaCwg ZG9tLCAyLCAmb3AsIHNpemVvZihvcCksCisgICAgICAgICAgICAgICAgICAgIGRpcnR5X2JpdG1h cCwgKG5yICsgNykgLyA4KTsKIH0KIAogaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5k ZXggYjlkNzBkMS4uMWFiZTY0MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAtMTgsNyArMTgsOSBAQAogI2luY2x1ZGUgPHhl bi9oeXBlcmNhbGwuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KIAorI2luY2x1ZGUgPGFzbS9o YXAuaD4KICNpbmNsdWRlIDxhc20vaHZtL2lvcmVxLmg+CisjaW5jbHVkZSA8YXNtL3NoYWRvdy5o PgogCiAjaW5jbHVkZSA8eHNtL3hzbS5oPgogCkBAIC02OCw2ICs3MCwzNSBAQCBzdGF0aWMgaW50 IGNvcHlfYnVmX3RvX2d1ZXN0KFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90 KSBidWZzLAogICAgIHJldHVybiBjb3B5X3RvX2d1ZXN0KGJ1Zi5oLCBzcmMsIHNpemUpID8gLUVG QVVMVCA6IDA7CiB9CiAKK3N0YXRpYyBpbnQgdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWlu ICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBucl9idWZzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2Rt X29wX2J1Zl90KSBidWZzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCBm aXJzdF9wZm4sIHVuc2lnbmVkIGludCBucikKK3sKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX2J1ZiBi dWY7CisgICAgaW50IHJjOworCisgICAgaWYgKCBuciA+IChHQigxKSA+PiBQQUdFX1NISUZUKSAp CisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCBkLT5pc19keWluZyApCisgICAg ICAgIHJldHVybiAtRVNSQ0g7CisKKyAgICBpZiAoICFkLT52Y3B1IHx8ICFkLT52Y3B1WzBdICkK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICByYyA9IGdldF9idWYoYnVmcywgbnJfYnVm cywgMSwgJmJ1Zik7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIGlm ICggKChuciArIDcpIC8gOCkgPiBidWYuc2l6ZSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOwor CisgICAgcmV0dXJuIHNoYWRvd19tb2RlX2VuYWJsZWQoZCkgPworICAgICAgICBzaGFkb3dfdHJh Y2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4sIG5yLCBidWYuaCkgOgorICAgICAgICBoYXBfdHJh Y2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4sIG5yLCBidWYuaCk7Cit9CisKIGxvbmcgZG9fZG1f b3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAg ICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90KSBidWZz KQpAQCAtMTgyLDYgKzIxMywyMCBAQCBsb25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQsCiAgICAg ICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgWEVOX0RNT1BfdHJhY2tfZGlydHlfdnJhbToK KyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGlydHlfdnJhbSAq ZGF0YSA9CisgICAgICAgICAgICAmb3AudS50cmFja19kaXJ0eV92cmFtOworCisgICAgICAgIHJj ID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBkYXRhLT5wYWQgKQorICAgICAgICAgICAgYnJlYWs7 CisKKyAgICAgICAgcmMgPSB0cmFja19kaXJ0eV92cmFtKGQsIG5yX2J1ZnMsIGJ1ZnMsIGRhdGEt PmZpcnN0X3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm5yKTsKKyAg ICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9U U1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j IGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAzMDA5NDQ5Li5lMGU5OTQwIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMK QEAgLTU1NTQsNDcgKzU1NTQsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBY RU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgcmMgPSBndWVzdF9oYW5k bGVfaXNfbnVsbChhcmcpID8gaHZtb3BfZmx1c2hfdGxiX2FsbCgpIDogLUVJTlZBTDsKICAgICAg ICAgYnJlYWs7CiAKLSAgICBjYXNlIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW06Ci0gICAgewotICAg ICAgICBzdHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFtIGE7Ci0gICAgICAgIHN0cnVjdCBk b21haW4gKmQ7Ci0KLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywgMSkgKQot ICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3VfbG9ja19yZW1v dGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICAgICAgaWYgKCByYyAhPSAwICkKLSAg ICAgICAgICAgIHJldHVybiByYzsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgIGlm ICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgZ290byB0ZHZfZmFpbDsKLQotICAg ICAgICBpZiAoIGEubnIgPiBHQigxKSA+PiBQQUdFX1NISUZUICkKLSAgICAgICAgICAgIGdvdG8g dGR2X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSB4c21faHZtX2NvbnRyb2woWFNNX0RNX1BSSVYsIGQs IG9wKTsKLSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICBnb3RvIHRkdl9mYWlsOwotCi0g ICAgICAgIHJjID0gLUVTUkNIOwotICAgICAgICBpZiAoIGQtPmlzX2R5aW5nICkKLSAgICAgICAg ICAgIGdvdG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAgICBpZiAo IGQtPnZjcHUgPT0gTlVMTCB8fCBkLT52Y3B1WzBdID09IE5VTEwgKQotICAgICAgICAgICAgZ290 byB0ZHZfZmFpbDsKLQotICAgICAgICBpZiAoIHNoYWRvd19tb2RlX2VuYWJsZWQoZCkgKQotICAg ICAgICAgICAgcmMgPSBzaGFkb3dfdHJhY2tfZGlydHlfdnJhbShkLCBhLmZpcnN0X3BmbiwgYS5u ciwgYS5kaXJ0eV9iaXRtYXApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByYyA9IGhhcF90 cmFja19kaXJ0eV92cmFtKGQsIGEuZmlyc3RfcGZuLCBhLm5yLCBhLmRpcnR5X2JpdG1hcCk7Ci0K LSAgICB0ZHZfZmFpbDoKLSAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgICAgIGJy ZWFrOwotICAgIH0KLQogICAgIGNhc2UgSFZNT1BfbW9kaWZpZWRfbWVtb3J5OgogICAgIHsKICAg ICAgICAgc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IGE7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0vaGFwL2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwppbmRleCBl NmRjMDg4Li42ZGJiM2NjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCisr KyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKQEAgLTY4LDcgKzY4LDcgQEAKIGludCBoYXBf dHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgYmVnaW5fcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRM RV82NCh1aW50OCkgZ3Vlc3RfZGlydHlfYml0bWFwKQorICAgICAgICAgICAgICAgICAgICAgICAg IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZ3Vlc3RfZGlydHlfYml0bWFwKQogewogICAg IGxvbmcgcmMgPSAwOwogICAgIHN0cnVjdCBzaF9kaXJ0eV92cmFtICpkaXJ0eV92cmFtOwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvY29tbW9uLmMKaW5kZXggMzliZTU2NC4uNTcwZmIyNSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93 L2NvbW1vbi5jCkBAIC0zNjc3LDcgKzM2NzcsNyBAQCBzdGF0aWMgdm9pZCBzaF9jbGVhbl9kaXJ0 eV9iaXRtYXAoc3RydWN0IGRvbWFpbiAqZCkKIGludCBzaGFkb3dfdHJhY2tfZGlydHlfdnJhbShz dHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgYmVnaW5fcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg bnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NCh1aW50 OCkgZ3Vlc3RfZGlydHlfYml0bWFwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZ3Vlc3RfZGlydHlfYml0bWFwKQogewogICAgIGludCBy YyA9IDA7CiAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gYmVnaW5fcGZuICsgbnI7CmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2hhcC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o YXAuaAppbmRleCBkZWRiNGIxLi44ODU4N2M0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20t eDg2L2hhcC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmgKQEAgLTQzLDcgKzQzLDcg QEAgdm9pZCAgaGFwX3ZjcHVfaW5pdChzdHJ1Y3QgdmNwdSAqdik7CiBpbnQgICBoYXBfdHJhY2tf ZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBiZWdpbl9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRM RV82NCh1aW50OCkgZGlydHlfYml0bWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZGlydHlfYml0bWFwKTsKIAogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBwYWdpbmdfbW9kZSAqaGFwX3BhZ2luZ19nZXRfbW9kZShzdHJ1Y3QgdmNwdSAqKTsK IGludCBoYXBfc2V0X2FsbG9jYXRpb24oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHBh Z2VzLCBib29sICpwcmVlbXB0ZWQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9z aGFkb3cuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc2hhZG93LmgKaW5kZXggYmFjOTUyZi4uN2Ux ZWQzYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9zaGFkb3cuaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L3NoYWRvdy5oCkBAIC02Myw3ICs2Myw3IEBAIGludCBzaGFkb3dfZW5h YmxlKHN0cnVjdCBkb21haW4gKmQsIHUzMiBtb2RlKTsKIGludCBzaGFkb3dfdHJhY2tfZGlydHlf dnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgZmlyc3RfcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82 NCh1aW50OCkgZGlydHlfYml0bWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGRpcnR5X2JpdG1hcCk7CiAKIC8qIEhhbmRsZXIgZm9y IHNoYWRvdyBjb250cm9sIG9wczogb3BlcmF0aW9ucyBmcm9tIHVzZXItc3BhY2UgdG8gZW5hYmxl CiAgKiBhbmQgZGlzYWJsZSBlcGhlbWVyYWwgc2hhZG93IG1vZGVzICh0ZXN0IG1vZGUgYW5kIGxv Zy1kaXJ0eSBtb2RlKSBhbmQKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1f b3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCAyYjIyMDc3Li4yNDlm ZDFmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysrIGIveGVu L2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0xNzQsNiArMTc0LDIzIEBAIHN0cnVjdCB4 ZW5fZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgewogICAgIHVpbnQxNl90IHBhZDsKIH07CiAK Ky8qCisgKiBYRU5fRE1PUF90cmFja19kaXJ0eV92cmFtOiBUcmFjayBtb2RpZmljYXRpb25zIHRv IHRoZSBzcGVjaWZpZWQgcGZuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZS4K KyAqCisgKiBOT1RFOiBUaGUgYml0bWFwIHBhc3NlZCBiYWNrIHRvIHRoZSBjYWxsZXIgaXMgcGFz c2VkIGluIGEKKyAqICAgICAgIHNlY29uZGFyeSBidWZmZXIuCisgKi8KKyNkZWZpbmUgWEVOX0RN T1BfdHJhY2tfZGlydHlfdnJhbSA3CisKK3N0cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGlydHlfdnJh bSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgcGFnZXMgdG8gYmUgdHJhY2tlZCAqLworICAgIHVp bnQzMl90IG5yOworICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBJTiAtIGZpcnN0IHBmbiB0byB0 cmFjayAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKwogc3RydWN0IHhl bl9kbV9vcCB7CiAgICAgdWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMTg0LDYg KzIwMSw3IEBAIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX2lv cmVxX3NlcnZlcl9yYW5nZSB1bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjsKICAgICAg ICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHNldF9pb3JlcV9zZXJ2 ZXJfc3RhdGU7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIg ZGVzdHJveV9pb3JlcV9zZXJ2ZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGly dHlfdnJhbSB0cmFja19kaXJ0eV92cmFtOwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2 bV9vcC5oCmluZGV4IDZmY2Q4NmQuLjQ3ZTgzNmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1 YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaApA QCAtOTUsMjIgKzk1LDYgQEAgdHlwZWRlZiBlbnVtIHsKIC8qIEZvbGxvd2luZyB0b29scy1vbmx5 IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYgZGVmaW5lZChfX1hFTl9f KSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIFRyYWNrIGRpcnR5IFZSQU0uICovCi0j ZGVmaW5lIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0gICAgNgotc3RydWN0IHhlbl9odm1fdHJhY2tf ZGlydHlfdnJhbSB7Ci0gICAgLyogRG9tYWluIHRvIGJlIHRyYWNrZWQuICovCi0gICAgZG9taWRf dCAgZG9taWQ7Ci0gICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRvIHRyYWNrLiAqLwotICAgIHVpbnQz Ml90IG5yOwotICAgIC8qIEZpcnN0IHBmbiB0byB0cmFjay4gKi8KLSAgICB1aW50NjRfYWxpZ25l ZF90IGZpcnN0X3BmbjsKLSAgICAvKiBPVVQgdmFyaWFibGUuICovCi0gICAgLyogRGlydHkgYml0 bWFwIGJ1ZmZlci4gKi8KLSAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBkaXJ0eV9iaXRt YXA7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFtIHhlbl9odm1f dHJhY2tfZGlydHlfdnJhbV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV90cmFj a19kaXJ0eV92cmFtX3QpOwotCiAvKiBOb3RpZnkgdGhhdCBzb21lIHBhZ2VzIGdvdCBtb2RpZmll ZCBieSB0aGUgRGV2aWNlIE1vZGVsLiAqLwogI2RlZmluZSBIVk1PUF9tb2RpZmllZF9tZW1vcnkg ICAgNwogc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IHsKZGlmZiAtLWdpdCBhL3hlbi94 c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCAxNDdiZWQ3Li5l ZmZjODBlIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIveGVuL3hzbS9m bGFzay9ob29rcy5jCkBAIC0xMTc3LDkgKzExNzcsNiBAQCBzdGF0aWMgaW50IGZsYXNrX2h2bV9w YXJhbShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIG9wKQogICAgIGNhc2UgSFZNT1Bf Z2V0X3BhcmFtOgogICAgICAgICBwZXJtID0gSFZNX19HRVRQQVJBTTsKICAgICAgICAgYnJlYWs7 Ci0gICAgY2FzZSBIVk1PUF90cmFja19kaXJ0eV92cmFtOgotICAgICAgICBwZXJtID0gSFZNX19U UkFDS0RJUlRZVlJBTTsKLSAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcGVy bSA9IEhWTV9fSFZNQ1RMOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5 L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5k ZXggNDljOWE5ZS4uNWFmNDI3ZiAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNj ZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAg LTI2Niw4ICsyNjYsNiBAQCBjbGFzcyBodm0KICAgICBiaW5kX2lycQogIyBYRU5fRE9NQ1RMX3Bp bl9tZW1fY2FjaGVhdHRyCiAgICAgY2FjaGVhdHRyCi0jIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0K LSAgICB0cmFja2RpcnR5dnJhbQogIyBIVk1PUF9tb2RpZmllZF9tZW1vcnksIEhWTU9QX2dldF9t ZW1fdHlwZSwgSFZNT1Bfc2V0X21lbV90eXBlLAogIyBIVk1PUF9zZXRfbWVtX2FjY2VzcywgSFZN T1BfZ2V0X21lbV9hY2Nlc3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKICMgSFZNT1BfaW5qZWN0 X3RyYXAKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==