From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 3/8] dm_op: convert HVMOP_track_dirty_vram Date: Tue, 17 Jan 2017 17:29:51 +0000 Message-ID: <1484674196-19951-4-git-send-email-paul.durrant@citrix.com> References: <1484674196-19951-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 1cTXa6-0000VS-LN for xen-devel@lists.xenproject.org; Tue, 17 Jan 2017 17:30:02 +0000 In-Reply-To: <1484674196-19951-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: Andrew Cooper , Daniel De Graaf , Paul Durrant , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGhhbmRsZSB0eXBlIHBhc3NlZCB0byB0aGUgdW5kZXJseWluZyBzaGFkb3cgYW5kIGhhcCBm dW5jdGlvbnMgaXMKY2hhbmdlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBuZXcgaHlwZXJj YWxsIGJ1ZmZlci4KCk5PVEU6IFRoaXMgcGF0Y2ggYWxzbyBtb2RpZmllcyB0aGUgdHlwZSBvZiB0 aGUgJ25yJyBwYXJhbWV0ZXIgb2YKICAgICAgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oKSBmcm9t IHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZQogICAgICB0aGUgdmFsdWUgcGFzc2Vk IHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVs LmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5j b20+CkNjOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KQ2M6IElhbiBK YWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+CkFja2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5j b20+CkFja2VkLWJ5OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KCnY0OgotIEtub2NrLW9uIGNo YW5nZXMgZnJvbSBjb21wYXQgY29kZSBpbiBkbS5jLiBOb3QgYWRkaW5nIEphbidzIFItYiBzaW5j ZQogIHRoZSBwYXRjaCBoYXMgZnVuZGFtZW50YWxseSBjaGFuZ2VkLgoKdjM6Ci0gQ2hlY2sgZC0+ bWF4X3ZjcHVzIHJhdGhlciB0aGFuIGQtPnZjcHUsIGFzIHJlcXVlc3RlZCBieSBKYW4uCi0gVGhl IGhhbmRsZSB0eXBlIGNoYW5nZXMgKGZyb20gdWludDggdG8gdm9pZCkgYXJlIHN0aWxsIG5lY2Vz c2FyeSwgaGVuY2UKICBvbWl0dGluZyBKYW4ncyBSLWIgdW50aWwgdGhpcyBpcyBjb25maXJtZWQg dG8gYmUgYWNjZXB0YWJsZS4KCnYyOgotIEFkZHJlc3NlZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20g SmFuLgotLS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiAgIHwgIDQgKystLQog dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgMiArLQogdG9vbHMvbGlieGMv eGNfbWlzYy5jICAgICAgICAgICAgICAgfCAzMiArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LQogeGVuL2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAgICAgICAgfCAzOCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAg ICB8IDQxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9tbS9oYXAvaGFwLmMgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cv Y29tbW9uLmMgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmggICAgICAgICAg IHwgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvc2hhZG93LmggICAgICAgIHwgIDIgKy0KIHhl bi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgICAgIHwgMTggKysrKysrKysrKysrKysrKwog eGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCAgICAgfCAxNiAtLS0tLS0tLS0tLS0tLS0K IHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAgIHwgIDMgLS0tCiB4ZW4veHNtL2Zs YXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICAyIC0tCiAxMyBmaWxlcyBjaGFuZ2VkLCA3MyBp bnNlcnRpb25zKCspLCA5MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYK aW5kZXggZjkyNTRjMi4uNDVlNWI1ZiAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L21v ZHVsZXMveGVuLmlmCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgpAQCAt NTgsNyArNTgsNyBAQCBkZWZpbmUoYGNyZWF0ZV9kb21haW5fY29tbW9uJywgYAogCWFsbG93ICQx ICQyOm1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBhZGp1c3QgbWVtb3J5bWFwIHBoeXNtYXAgcGlu cGFnZSBtbXVleHRfb3AgdXBkYXRlbXAgfTsKIAlhbGxvdyAkMSAkMjpncmFudCBzZXR1cDsKIAlh bGxvdyAkMSAkMjpodm0geyBjYWNoZWF0dHIgZ2V0cGFyYW0gaHZtY3RsIGlycWxldmVsIHBjaXJv dXRlIHNldGh2bWMKLQkJCXNldHBhcmFtIHBjaWxldmVsIHRyYWNrZGlydHl2cmFtIG5lc3RlZCBh bHRwMm1odm0gYWx0cDJtaHZtX29wIHNlbmRfaXJxIH07CisJCQlzZXRwYXJhbSBwY2lsZXZlbCBu ZXN0ZWQgYWx0cDJtaHZtIGFsdHAybWh2bV9vcCBzZW5kX2lycSB9OwogJykKIAogIyBjcmVhdGVf ZG9tYWluKHByaXYsIHRhcmdldCkKQEAgLTE1MSw3ICsxNTEsNyBAQCBkZWZpbmUoYGRldmljZV9t b2RlbCcsIGAKIAogCWFsbG93ICQxICQyX3RhcmdldDpkb21haW4geyBnZXRkb21haW5pbmZvIHNo dXRkb3duIH07CiAJYWxsb3cgJDEgJDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBh ZGp1c3QgcGh5c21hcCB0YXJnZXRfaGFjayB9OwotCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBn ZXRwYXJhbSBzZXRwYXJhbSB0cmFja2RpcnR5dnJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUg cGNpbGV2ZWwgY2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CisJYWxsb3cgJDEgJDJfdGFyZ2V0Omh2 bSB7IGdldHBhcmFtIHNldHBhcmFtIGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBwY2lsZXZlbCBj YWNoZWF0dHIgc2VuZF9pcnEgZG0gfTsKICcpCiAKICMgbWFrZV9kZXZpY2VfbW9kZWwocHJpdiwg ZG1fZG9tLCBodm1fZG9tKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJs LmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCAyYmE0NmQ3Li5jN2VlNDEy IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTYyMCw3ICsxNjIwLDcgQEAgaW50IHhjX2h2bV9p bmplY3RfbXNpKAogICovCiBpbnQgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAgICAgeGNfaW50 ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLAotICAgIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDY0 X3QgbnIsCisgICAgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBuciwKICAgICB1bnNpZ25l ZCBsb25nICpiaXRtYXApOwogCiAvKgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfbWlzYy5j IGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCmluZGV4IDA2ZTkwZGUuLjRjNDFkNDEgMTAwNjQ0Ci0t LSBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYworKysgYi90b29scy9saWJ4Yy94Y19taXNjLmMKQEAg LTU4MSwzNCArNTgxLDIyIEBAIGludCB4Y19odm1faW5qZWN0X21zaSgKIAogaW50IHhjX2h2bV90 cmFja19kaXJ0eV92cmFtKAogICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwKLSAg ICB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQ2NF90IG5yLAorICAgIHVpbnQ2NF90IGZpcnN0X3Bm biwgdWludDMyX3QgbnIsCiAgICAgdW5zaWduZWQgbG9uZyAqZGlydHlfYml0bWFwKQogewotICAg IERFQ0xBUkVfSFlQRVJDQUxMX0JPVU5DRShkaXJ0eV9iaXRtYXAsIChucis3KSAvIDgsIFhDX0hZ UEVSQ0FMTF9CVUZGRVJfQk9VTkNFX09VVCk7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVS KHN0cnVjdCB4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW0sIGFyZyk7Ci0gICAgaW50IHJjOworICAg IHN0cnVjdCB4ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92 cmFtICpkYXRhOwogCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFy Zywgc2l6ZW9mKCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMIHx8IHhjX2h5cGVyY2FsbF9i b3VuY2VfcHJlKHhjaCwgZGlydHlfYml0bWFwKSApCi0gICAgewotICAgICAgICBQRVJST1IoIkNv dWxkIG5vdCBib3VuY2UgbWVtb3J5IGZvciB4Y19odm1fdHJhY2tfZGlydHlfdnJhbSBoeXBlcmNh bGwiKTsKLSAgICAgICAgcmMgPSAtMTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQorICAgIG1l bXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgYXJnLT5kb21pZCAgICAgPSBkb207Ci0g ICAgYXJnLT5maXJzdF9wZm4gPSBmaXJzdF9wZm47Ci0gICAgYXJnLT5uciAgICAgICAgPSBucjsK LSAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShhcmctPmRpcnR5X2JpdG1hcCwgZGlydHlfYml0bWFw KTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX3RyYWNrX2RpcnR5X3ZyYW07CisgICAgZGF0YSA9ICZv cC51LnRyYWNrX2RpcnR5X3ZyYW07CiAKLSAgICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9f SFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1PUF90cmFja19kaXJ0eV92 cmFtLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7Cisg ICAgZGF0YS0+Zmlyc3RfcGZuID0gZmlyc3RfcGZuOworICAgIGRhdGEtPm5yID0gbnI7CiAKLW91 dDoKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwotICAgIHhjX2h5cGVy Y2FsbF9ib3VuY2VfcG9zdCh4Y2gsIGRpcnR5X2JpdG1hcCk7Ci0gICAgcmV0dXJuIHJjOworICAg IHJldHVybiBkb19kbV9vcCh4Y2gsIGRvbSwgMiwgJm9wLCBzaXplb2Yob3ApLAorICAgICAgICAg ICAgICAgICAgICBkaXJ0eV9iaXRtYXAsIChuciArIDcpIC8gOCk7CiB9CiAKIGludCB4Y19odm1f bW9kaWZpZWRfbWVtb3J5KApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVu L2FyY2gveDg2L2h2bS9kbS5jCmluZGV4IDhmYTVkZDUuLjg5OTRjMjUgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTE4LDcg KzE4LDkgQEAKICNpbmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVk Lmg+CiAKKyNpbmNsdWRlIDxhc20vaGFwLmg+CiAjaW5jbHVkZSA8YXNtL2h2bS9pb3JlcS5oPgor I2luY2x1ZGUgPGFzbS9zaGFkb3cuaD4KIAogI2luY2x1ZGUgPHhzbS94c20uaD4KIApAQCAtNDAs NiArNDIsMjYgQEAgc3RhdGljIGJvb2wgY29weV9idWZfdG9fZ3Vlc3QoeGVuX2RtX29wX2J1Zl90 IGJ1ZnNbXSwKICAgICByZXR1cm4gIWNvcHlfdG9fZ3Vlc3QoYnVmc1tpZHhdLmgsIHNyYywgc2l6 ZSk7CiB9CiAKK3N0YXRpYyBpbnQgdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLCB4 ZW5fcGZuX3QgZmlyc3RfcGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBuciwgc3RydWN0IHhlbl9kbV9vcF9idWYgKmJ1ZikKK3sKKyAgICBpZiAoIG5yID4gKEdC KDEpID4+IFBBR0VfU0hJRlQpICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAo IGQtPmlzX2R5aW5nICkKKyAgICAgICAgcmV0dXJuIC1FU1JDSDsKKworICAgIGlmICggIWQtPm1h eF92Y3B1cyB8fCAhZC0+dmNwdVswXSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAg aWYgKCAoKG5yICsgNykgLyA4KSA+IGJ1Zi0+c2l6ZSApCisgICAgICAgIHJldHVybiAtRUlOVkFM OworCisgICAgcmV0dXJuIHNoYWRvd19tb2RlX2VuYWJsZWQoZCkgPworICAgICAgICBzaGFkb3df dHJhY2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4sIG5yLCBidWYtPmgpIDoKKyAgICAgICAgaGFw X3RyYWNrX2RpcnR5X3ZyYW0oZCwgZmlyc3RfcGZuLCBuciwgYnVmLT5oKTsKK30KKwogc3RhdGlj IGludCBkbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg bnJfYnVmcywKICAgICAgICAgICAgICAgICAgeGVuX2RtX29wX2J1Zl90IGJ1ZnNbXSkKQEAgLTE1 Niw2ICsxNzgsMjIgQEAgc3RhdGljIGludCBkbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICBi cmVhazsKICAgICB9CiAKKyAgICBjYXNlIFhFTl9ETU9QX3RyYWNrX2RpcnR5X3ZyYW06CisgICAg eworICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0gKmRhdGEg PQorICAgICAgICAgICAgJm9wLnUudHJhY2tfZGlydHlfdnJhbTsKKworICAgICAgICByYyA9IC1F SU5WQUw7CisgICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisg ICAgICAgIGlmICggbnJfYnVmcyA8IDIgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg cmMgPSB0cmFja19kaXJ0eV92cmFtKGQsIGRhdGEtPmZpcnN0X3BmbiwgZGF0YS0+bnIsICZidWZz WzFdKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMg PSAtRU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCBmZDBlMThhLi41YTViNzcy IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vaHZtLmMKQEAgLTUxMzQsNDcgKzUxMzQsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBs b25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgcmMgPSBn dWVzdF9oYW5kbGVfaXNfbnVsbChhcmcpID8gaHZtb3BfZmx1c2hfdGxiX2FsbCgpIDogLUVJTlZB TDsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW06Ci0g ICAgewotICAgICAgICBzdHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFtIGE7Ci0gICAgICAg IHN0cnVjdCBkb21haW4gKmQ7Ci0KLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFy ZywgMSkgKQotICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3Vf bG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICAgICAgaWYgKCByYyAh PSAwICkKLSAgICAgICAgICAgIHJldHVybiByYzsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0g ICAgICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgZ290byB0ZHZfZmFp bDsKLQotICAgICAgICBpZiAoIGEubnIgPiBHQigxKSA+PiBQQUdFX1NISUZUICkKLSAgICAgICAg ICAgIGdvdG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSB4c21faHZtX2NvbnRyb2woWFNNX0RN X1BSSVYsIGQsIG9wKTsKLSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICBnb3RvIHRkdl9m YWlsOwotCi0gICAgICAgIHJjID0gLUVTUkNIOwotICAgICAgICBpZiAoIGQtPmlzX2R5aW5nICkK LSAgICAgICAgICAgIGdvdG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAg ICAgICBpZiAoIGQtPnZjcHUgPT0gTlVMTCB8fCBkLT52Y3B1WzBdID09IE5VTEwgKQotICAgICAg ICAgICAgZ290byB0ZHZfZmFpbDsKLQotICAgICAgICBpZiAoIHNoYWRvd19tb2RlX2VuYWJsZWQo ZCkgKQotICAgICAgICAgICAgcmMgPSBzaGFkb3dfdHJhY2tfZGlydHlfdnJhbShkLCBhLmZpcnN0 X3BmbiwgYS5uciwgYS5kaXJ0eV9iaXRtYXApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBy YyA9IGhhcF90cmFja19kaXJ0eV92cmFtKGQsIGEuZmlyc3RfcGZuLCBhLm5yLCBhLmRpcnR5X2Jp dG1hcCk7Ci0KLSAgICB0ZHZfZmFpbDoKLSAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0g ICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgSFZNT1BfbW9kaWZpZWRfbWVtb3J5Ogog ICAgIHsKICAgICAgICAgc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IGE7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAu YwppbmRleCBlNmRjMDg4Li42ZGJiM2NjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFw L2hhcC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKQEAgLTY4LDcgKzY4LDcgQEAK IGludCBoYXBfdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYmVnaW5fcGZuLAogICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dV RVNUX0hBTkRMRV82NCh1aW50OCkgZ3Vlc3RfZGlydHlfYml0bWFwKQorICAgICAgICAgICAgICAg ICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZ3Vlc3RfZGlydHlfYml0bWFw KQogewogICAgIGxvbmcgcmMgPSAwOwogICAgIHN0cnVjdCBzaF9kaXJ0eV92cmFtICpkaXJ0eV92 cmFtOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyBiL3hlbi9h cmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKaW5kZXggNDExMzM1MS4uMDA3OTIzOCAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYv bW0vc2hhZG93L2NvbW1vbi5jCkBAIC0zNjA0LDcgKzM2MDQsNyBAQCBzdGF0aWMgdm9pZCBzaF9j bGVhbl9kaXJ0eV9iaXRtYXAoc3RydWN0IGRvbWFpbiAqZCkKIGludCBzaGFkb3dfdHJhY2tfZGly dHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgYmVnaW5fcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRM RV82NCh1aW50OCkgZ3Vlc3RfZGlydHlfYml0bWFwKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZ3Vlc3RfZGlydHlfYml0bWFwKQogewog ICAgIGludCByYyA9IDA7CiAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gYmVnaW5fcGZuICsg bnI7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2hhcC5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9oYXAuaAppbmRleCBkZWRiNGIxLi44ODU4N2M0IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2hhcC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmgKQEAgLTQz LDcgKzQzLDcgQEAgdm9pZCAgaGFwX3ZjcHVfaW5pdChzdHJ1Y3QgdmNwdSAqdik7CiBpbnQgICBo YXBfdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBiZWdpbl9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dV RVNUX0hBTkRMRV82NCh1aW50OCkgZGlydHlfYml0bWFwKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZGlydHlfYml0bWFwKTsKIAogZXh0 ZXJuIGNvbnN0IHN0cnVjdCBwYWdpbmdfbW9kZSAqaGFwX3BhZ2luZ19nZXRfbW9kZShzdHJ1Y3Qg dmNwdSAqKTsKIGludCBoYXBfc2V0X2FsbG9jYXRpb24oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu ZWQgaW50IHBhZ2VzLCBib29sICpwcmVlbXB0ZWQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9zaGFkb3cuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc2hhZG93LmgKaW5kZXggYmFj OTUyZi4uN2UxZWQzYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9zaGFkb3cuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3NoYWRvdy5oCkBAIC02Myw3ICs2Myw3IEBAIGludCBz aGFkb3dfZW5hYmxlKHN0cnVjdCBkb21haW4gKmQsIHUzMiBtb2RlKTsKIGludCBzaGFkb3dfdHJh Y2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZmlyc3RfcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNU X0hBTkRMRV82NCh1aW50OCkgZGlydHlfYml0bWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGRpcnR5X2JpdG1hcCk7CiAKIC8qIEhh bmRsZXIgZm9yIHNoYWRvdyBjb250cm9sIG9wczogb3BlcmF0aW9ucyBmcm9tIHVzZXItc3BhY2Ug dG8gZW5hYmxlCiAgKiBhbmQgZGlzYWJsZSBlcGhlbWVyYWwgc2hhZG93IG1vZGVzICh0ZXN0IG1v ZGUgYW5kIGxvZy1kaXJ0eSBtb2RlKSBhbmQKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCAxZGM4 NmY5Li4xMGM0OGE0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgK KysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0xNzgsNiArMTc4LDIzIEBA IHN0cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgewogICAgIHVpbnQxNl90IHBh ZDsKIH07CiAKKy8qCisgKiBYRU5fRE1PUF90cmFja19kaXJ0eV92cmFtOiBUcmFjayBtb2RpZmlj YXRpb25zIHRvIHRoZSBzcGVjaWZpZWQgcGZuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICByYW5nZS4KKyAqCisgKiBOT1RFOiBUaGUgYml0bWFwIHBhc3NlZCBiYWNrIHRvIHRoZSBjYWxs ZXIgaXMgcGFzc2VkIGluIGEKKyAqICAgICAgIHNlY29uZGFyeSBidWZmZXIuCisgKi8KKyNkZWZp bmUgWEVOX0RNT1BfdHJhY2tfZGlydHlfdnJhbSA3CisKK3N0cnVjdCB4ZW5fZG1fb3BfdHJhY2tf ZGlydHlfdnJhbSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgcGFnZXMgdG8gYmUgdHJhY2tlZCAq LworICAgIHVpbnQzMl90IG5yOworICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBJTiAtIGZpcnN0 IHBmbiB0byB0cmFjayAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKwog c3RydWN0IHhlbl9kbV9vcCB7CiAgICAgdWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpA QCAtMTg4LDYgKzIwNSw3IEBAIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVu X2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSB1bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZl cjsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHNldF9p b3JlcV9zZXJ2ZXJfc3RhdGU7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3Jl cV9zZXJ2ZXIgZGVzdHJveV9pb3JlcV9zZXJ2ZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bf dHJhY2tfZGlydHlfdnJhbSB0cmFja19kaXJ0eV92cmFtOwogICAgIH0gdTsKIH07CiAKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJs aWMvaHZtL2h2bV9vcC5oCmluZGV4IDZmY2Q4NmQuLjQ3ZTgzNmMgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9o dm1fb3AuaApAQCAtOTUsMjIgKzk1LDYgQEAgdHlwZWRlZiBlbnVtIHsKIC8qIEZvbGxvd2luZyB0 b29scy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYgZGVmaW5l ZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIFRyYWNrIGRpcnR5IFZS QU0uICovCi0jZGVmaW5lIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0gICAgNgotc3RydWN0IHhlbl9o dm1fdHJhY2tfZGlydHlfdnJhbSB7Ci0gICAgLyogRG9tYWluIHRvIGJlIHRyYWNrZWQuICovCi0g ICAgZG9taWRfdCAgZG9taWQ7Ci0gICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRvIHRyYWNrLiAqLwot ICAgIHVpbnQzMl90IG5yOwotICAgIC8qIEZpcnN0IHBmbiB0byB0cmFjay4gKi8KLSAgICB1aW50 NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKLSAgICAvKiBPVVQgdmFyaWFibGUuICovCi0gICAgLyog RGlydHkgYml0bWFwIGJ1ZmZlci4gKi8KLSAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBk aXJ0eV9iaXRtYXA7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFt IHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu X2h2bV90cmFja19kaXJ0eV92cmFtX3QpOwotCiAvKiBOb3RpZnkgdGhhdCBzb21lIHBhZ2VzIGdv dCBtb2RpZmllZCBieSB0aGUgRGV2aWNlIE1vZGVsLiAqLwogI2RlZmluZSBIVk1PUF9tb2RpZmll ZF9tZW1vcnkgICAgNwogc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IHsKZGlmZiAtLWdp dCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCAx Y2U4YTM2Li5hNDI3MmQ3IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIv eGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC0xMTgwLDkgKzExODAsNiBAQCBzdGF0aWMgaW50IGZs YXNrX2h2bV9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIG9wKQogICAgIGNh c2UgSFZNT1BfZ2V0X3BhcmFtOgogICAgICAgICBwZXJtID0gSFZNX19HRVRQQVJBTTsKICAgICAg ICAgYnJlYWs7Ci0gICAgY2FzZSBIVk1PUF90cmFja19kaXJ0eV92cmFtOgotICAgICAgICBwZXJt ID0gSFZNX19UUkFDS0RJUlRZVlJBTTsKLSAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAg ICAgICAgcGVybSA9IEhWTV9fSFZNQ1RMOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi94c20vZmxh c2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3Zl Y3RvcnMKaW5kZXggOTJlNmRhOS4uNDdjZTU4OSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9w b2xpY3kvYWNjZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3Zl Y3RvcnMKQEAgLTI2OCw4ICsyNjgsNiBAQCBjbGFzcyBodm0KICAgICBiaW5kX2lycQogIyBYRU5f RE9NQ1RMX3Bpbl9tZW1fY2FjaGVhdHRyCiAgICAgY2FjaGVhdHRyCi0jIEhWTU9QX3RyYWNrX2Rp cnR5X3ZyYW0KLSAgICB0cmFja2RpcnR5dnJhbQogIyBIVk1PUF9tb2RpZmllZF9tZW1vcnksIEhW TU9QX2dldF9tZW1fdHlwZSwgSFZNT1Bfc2V0X21lbV90eXBlLAogIyBIVk1PUF9zZXRfbWVtX2Fj Y2VzcywgSFZNT1BfZ2V0X21lbV9hY2Nlc3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKICMgSFZN T1BfaW5qZWN0X3RyYXAKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==