From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 3/8] dm_op: convert HVMOP_track_dirty_vram Date: Thu, 12 Jan 2017 14:58:35 +0000 Message-ID: <1484233120-2015-4-git-send-email-paul.durrant@citrix.com> References: <1484233120-2015-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 1cRgq3-0005Ui-6O for xen-devel@lists.xenproject.org; Thu, 12 Jan 2017 14:58:51 +0000 In-Reply-To: <1484233120-2015-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: 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 YWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNj OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KCnYzOgotIENoZWNrIGQtPm1heF92Y3B1cyByYXRo ZXIgdGhhbiBkLT52Y3B1LCBhcyByZXF1ZXN0ZWQgYnkgSmFuLgotIFRoZSBoYW5kbGUgdHlwZSBj aGFuZ2VzIChmcm9tIHVpbnQ4IHRvIHZvaWQpIGFyZSBzdGlsbCBuZWNlc3NhcnksIGhlbmNlCiAg b21pdHRpbmcgSmFuJ3MgUi1iIHVudGlsIHRoaXMgaXMgY29uZmlybWVkIHRvIGJlIGFjY2VwdGFi bGUuCgp2MjoKLSBBZGRyZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9tIEphbi4KLS0tCiB0b29s cy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYgICB8ICA0ICsrLS0KIHRvb2xzL2xpYnhjL2lu Y2x1ZGUveGVuY3RybC5oICAgICAgIHwgIDIgKy0KIHRvb2xzL2xpYnhjL3hjX21pc2MuYyAgICAg ICAgICAgICAgIHwgMzIgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9o dm0vZG0uYyAgICAgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCA0MSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgICAg ICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgICAgIHwgIDIg Ky0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmggICAgICAgICAgIHwgIDIgKy0KIHhlbi9pbmNs dWRlL2FzbS14ODYvc2hhZG93LmggICAgICAgIHwgIDIgKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9o dm0vZG1fb3AuaCAgICAgIHwgMTggKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMv aHZtL2h2bV9vcC5oICAgICB8IDE2IC0tLS0tLS0tLS0tLS0KIHhlbi94c20vZmxhc2svaG9va3Mu YyAgICAgICAgICAgICAgIHwgIDMgLS0tCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVj dG9ycyB8ICAyIC0tCiAxMyBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA5MSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYg Yi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKaW5kZXggZjkyNTRjMi4uNDVlNWI1 ZiAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmCisrKyBiL3Rv b2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgpAQCAtNTgsNyArNTgsNyBAQCBkZWZpbmUo YGNyZWF0ZV9kb21haW5fY29tbW9uJywgYAogCWFsbG93ICQxICQyOm1tdSB7IG1hcF9yZWFkIG1h cF93cml0ZSBhZGp1c3QgbWVtb3J5bWFwIHBoeXNtYXAgcGlucGFnZSBtbXVleHRfb3AgdXBkYXRl bXAgfTsKIAlhbGxvdyAkMSAkMjpncmFudCBzZXR1cDsKIAlhbGxvdyAkMSAkMjpodm0geyBjYWNo ZWF0dHIgZ2V0cGFyYW0gaHZtY3RsIGlycWxldmVsIHBjaXJvdXRlIHNldGh2bWMKLQkJCXNldHBh cmFtIHBjaWxldmVsIHRyYWNrZGlydHl2cmFtIG5lc3RlZCBhbHRwMm1odm0gYWx0cDJtaHZtX29w IHNlbmRfaXJxIH07CisJCQlzZXRwYXJhbSBwY2lsZXZlbCBuZXN0ZWQgYWx0cDJtaHZtIGFsdHAy bWh2bV9vcCBzZW5kX2lycSB9OwogJykKIAogIyBjcmVhdGVfZG9tYWluKHByaXYsIHRhcmdldCkK QEAgLTE1MSw3ICsxNTEsNyBAQCBkZWZpbmUoYGRldmljZV9tb2RlbCcsIGAKIAogCWFsbG93ICQx ICQyX3RhcmdldDpkb21haW4geyBnZXRkb21haW5pbmZvIHNodXRkb3duIH07CiAJYWxsb3cgJDEg JDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFkIG1hcF93cml0ZSBhZGp1c3QgcGh5c21hcCB0YXJnZXRf aGFjayB9OwotCWFsbG93ICQxICQyX3RhcmdldDpodm0geyBnZXRwYXJhbSBzZXRwYXJhbSB0cmFj a2RpcnR5dnJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgcGNpbGV2ZWwgY2FjaGVhdHRyIHNl bmRfaXJxIGRtIH07CisJYWxsb3cgJDEgJDJfdGFyZ2V0Omh2bSB7IGdldHBhcmFtIHNldHBhcmFt IGh2bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBwY2lsZXZlbCBjYWNoZWF0dHIgc2VuZF9pcnEgZG0g fTsKICcpCiAKICMgbWFrZV9kZXZpY2VfbW9kZWwocHJpdiwgZG1fZG9tLCBodm1fZG9tKQpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaAppbmRleCAyYmE0NmQ3Li5jN2VlNDEyIDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwu aApAQCAtMTYyMCw3ICsxNjIwLDcgQEAgaW50IHhjX2h2bV9pbmplY3RfbXNpKAogICovCiBpbnQg eGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3Qg ZG9tLAotICAgIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDY0X3QgbnIsCisgICAgdWludDY0X3Qg Zmlyc3RfcGZuLCB1aW50MzJfdCBuciwKICAgICB1bnNpZ25lZCBsb25nICpiaXRtYXApOwogCiAv KgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfbWlzYy5jIGIvdG9vbHMvbGlieGMveGNfbWlz Yy5jCmluZGV4IDA2ZTkwZGUuLjRjNDFkNDEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX21p c2MuYworKysgYi90b29scy9saWJ4Yy94Y19taXNjLmMKQEAgLTU4MSwzNCArNTgxLDIyIEBAIGlu dCB4Y19odm1faW5qZWN0X21zaSgKIAogaW50IHhjX2h2bV90cmFja19kaXJ0eV92cmFtKAogICAg IHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwKLSAgICB1aW50NjRfdCBmaXJzdF9wZm4s IHVpbnQ2NF90IG5yLAorICAgIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDMyX3QgbnIsCiAgICAg dW5zaWduZWQgbG9uZyAqZGlydHlfYml0bWFwKQogewotICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JP VU5DRShkaXJ0eV9iaXRtYXAsIChucis3KSAvIDgsIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNF X09VVCk7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3RyYWNr X2RpcnR5X3ZyYW0sIGFyZyk7Ci0gICAgaW50IHJjOworICAgIHN0cnVjdCB4ZW5fZG1fb3Agb3A7 CisgICAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92cmFtICpkYXRhOwogCi0gICAgYXJn ID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9mKCphcmcpKTsKLSAg ICBpZiAoIGFyZyA9PSBOVUxMIHx8IHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhjaCwgZGlydHlf Yml0bWFwKSApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBib3VuY2UgbWVtb3J5 IGZvciB4Y19odm1fdHJhY2tfZGlydHlfdnJhbSBoeXBlcmNhbGwiKTsKLSAgICAgICAgcmMgPSAt MTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQorICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihv cCkpOwogCi0gICAgYXJnLT5kb21pZCAgICAgPSBkb207Ci0gICAgYXJnLT5maXJzdF9wZm4gPSBm aXJzdF9wZm47Ci0gICAgYXJnLT5uciAgICAgICAgPSBucjsKLSAgICBzZXRfeGVuX2d1ZXN0X2hh bmRsZShhcmctPmRpcnR5X2JpdG1hcCwgZGlydHlfYml0bWFwKTsKKyAgICBvcC5vcCA9IFhFTl9E TU9QX3RyYWNrX2RpcnR5X3ZyYW07CisgICAgZGF0YSA9ICZvcC51LnRyYWNrX2RpcnR5X3ZyYW07 CiAKLSAgICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0g ICAgICAgICAgICAgICAgICBIVk1PUF90cmFja19kaXJ0eV92cmFtLAotICAgICAgICAgICAgICAg ICAgSFlQRVJDQUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7CisgICAgZGF0YS0+Zmlyc3RfcGZuID0g Zmlyc3RfcGZuOworICAgIGRhdGEtPm5yID0gbnI7CiAKLW91dDoKLSAgICB4Y19oeXBlcmNhbGxf YnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwotICAgIHhjX2h5cGVyY2FsbF9ib3VuY2VfcG9zdCh4Y2gs IGRpcnR5X2JpdG1hcCk7Ci0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gs IGRvbSwgMiwgJm9wLCBzaXplb2Yob3ApLAorICAgICAgICAgICAgICAgICAgICBkaXJ0eV9iaXRt YXAsIChuciArIDcpIC8gOCk7CiB9CiAKIGludCB4Y19odm1fbW9kaWZpZWRfbWVtb3J5KApkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCmlu ZGV4IDRiOTRkODUuLmQ1MDFkNTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwor KysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTE4LDcgKzE4LDkgQEAKICNpbmNsdWRlIDx4 ZW4vaHlwZXJjYWxsLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAKKyNpbmNsdWRlIDxhc20v aGFwLmg+CiAjaW5jbHVkZSA8YXNtL2h2bS9pb3JlcS5oPgorI2luY2x1ZGUgPGFzbS9zaGFkb3cu aD4KIAogI2luY2x1ZGUgPHhzbS94c20uaD4KIApAQCAtNjgsNiArNzAsMzUgQEAgc3RhdGljIGlu dCBjb3B5X2J1Zl90b19ndWVzdChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kbV9vcF9idWZf dCkgYnVmcywKICAgICByZXR1cm4gY29weV90b19ndWVzdChidWYuaCwgc3JjLCBzaXplKSA/IC1F RkFVTFQgOiAwOwogfQogCitzdGF0aWMgaW50IHRyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFp biAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9k bV9vcF9idWZfdCkgYnVmcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3Qg Zmlyc3RfcGZuLCB1bnNpZ25lZCBpbnQgbnIpCit7CisgICAgc3RydWN0IHhlbl9kbV9vcF9idWYg YnVmOworICAgIGludCByYzsKKworICAgIGlmICggbnIgPiAoR0IoMSkgPj4gUEFHRV9TSElGVCkg KQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggZC0+aXNfZHlpbmcgKQorICAg ICAgICByZXR1cm4gLUVTUkNIOworCisgICAgaWYgKCAhZC0+bWF4X3ZjcHVzIHx8ICFkLT52Y3B1 WzBdICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICByYyA9IGdldF9idWYoYnVmcywg bnJfYnVmcywgMSwgJmJ1Zik7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKwor ICAgIGlmICggKChuciArIDcpIC8gOCkgPiBidWYuc2l6ZSApCisgICAgICAgIHJldHVybiAtRUlO VkFMOworCisgICAgcmV0dXJuIHNoYWRvd19tb2RlX2VuYWJsZWQoZCkgPworICAgICAgICBzaGFk b3dfdHJhY2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4sIG5yLCBidWYuaCkgOgorICAgICAgICBo YXBfdHJhY2tfZGlydHlfdnJhbShkLCBmaXJzdF9wZm4sIG5yLCBidWYuaCk7Cit9CisKIGxvbmcg ZG9fZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1 ZnMsCiAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90 KSBidWZzKQpAQCAtMTgyLDYgKzIxMywyMCBAQCBsb25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQs CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgWEVOX0RNT1BfdHJhY2tfZGlydHlf dnJhbToKKyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGlydHlf dnJhbSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS50cmFja19kaXJ0eV92cmFtOworCisgICAg ICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYgKCBkYXRhLT5wYWQgKQorICAgICAgICAgICAg YnJlYWs7CisKKyAgICAgICAgcmMgPSB0cmFja19kaXJ0eV92cmFtKGQsIG5yX2J1ZnMsIGJ1ZnMs IGRhdGEtPmZpcnN0X3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm5y KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAt RU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZt L2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAxMzhjYjQ2Li44MGQxYWQ2IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKQEAgLTU1MTYsNDcgKzU1MTYsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25n IG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgcmMgPSBndWVz dF9oYW5kbGVfaXNfbnVsbChhcmcpID8gaHZtb3BfZmx1c2hfdGxiX2FsbCgpIDogLUVJTlZBTDsK ICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW06Ci0gICAg ewotICAgICAgICBzdHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFtIGE7Ci0gICAgICAgIHN0 cnVjdCBkb21haW4gKmQ7Ci0KLSAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywg MSkgKQotICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICAgICAgcmMgPSByY3VfbG9j a19yZW1vdGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICAgICAgaWYgKCByYyAhPSAw ICkKLSAgICAgICAgICAgIHJldHVybiByYzsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAg ICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICAgICAgZ290byB0ZHZfZmFpbDsK LQotICAgICAgICBpZiAoIGEubnIgPiBHQigxKSA+PiBQQUdFX1NISUZUICkKLSAgICAgICAgICAg IGdvdG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSB4c21faHZtX2NvbnRyb2woWFNNX0RNX1BS SVYsIGQsIG9wKTsKLSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICBnb3RvIHRkdl9mYWls OwotCi0gICAgICAgIHJjID0gLUVTUkNIOwotICAgICAgICBpZiAoIGQtPmlzX2R5aW5nICkKLSAg ICAgICAgICAgIGdvdG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRUlOVkFMOwotICAgICAg ICBpZiAoIGQtPnZjcHUgPT0gTlVMTCB8fCBkLT52Y3B1WzBdID09IE5VTEwgKQotICAgICAgICAg ICAgZ290byB0ZHZfZmFpbDsKLQotICAgICAgICBpZiAoIHNoYWRvd19tb2RlX2VuYWJsZWQoZCkg KQotICAgICAgICAgICAgcmMgPSBzaGFkb3dfdHJhY2tfZGlydHlfdnJhbShkLCBhLmZpcnN0X3Bm biwgYS5uciwgYS5kaXJ0eV9iaXRtYXApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByYyA9 IGhhcF90cmFja19kaXJ0eV92cmFtKGQsIGEuZmlyc3RfcGZuLCBhLm5yLCBhLmRpcnR5X2JpdG1h cCk7Ci0KLSAgICB0ZHZfZmFpbDoKLSAgICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAg ICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2UgSFZNT1BfbW9kaWZpZWRfbWVtb3J5OgogICAg IHsKICAgICAgICAgc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IGE7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwpp bmRleCBlNmRjMDg4Li42ZGJiM2NjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hh cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKQEAgLTY4LDcgKzY4LDcgQEAKIGlu dCBoYXBfdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYmVnaW5fcGZuLAogICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNU X0hBTkRMRV82NCh1aW50OCkgZ3Vlc3RfZGlydHlfYml0bWFwKQorICAgICAgICAgICAgICAgICAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZ3Vlc3RfZGlydHlfYml0bWFwKQog ewogICAgIGxvbmcgcmMgPSAwOwogICAgIHN0cnVjdCBzaF9kaXJ0eV92cmFtICpkaXJ0eV92cmFt OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyBiL3hlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKaW5kZXggNDExMzM1MS4uMDA3OTIzOCAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYvbW0v c2hhZG93L2NvbW1vbi5jCkBAIC0zNjA0LDcgKzM2MDQsNyBAQCBzdGF0aWMgdm9pZCBzaF9jbGVh bl9kaXJ0eV9iaXRtYXAoc3RydWN0IGRvbWFpbiAqZCkKIGludCBzaGFkb3dfdHJhY2tfZGlydHlf dnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgYmVnaW5fcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82 NCh1aW50OCkgZ3Vlc3RfZGlydHlfYml0bWFwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZ3Vlc3RfZGlydHlfYml0bWFwKQogewogICAg IGludCByYyA9IDA7CiAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gYmVnaW5fcGZuICsgbnI7 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2hhcC5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9oYXAuaAppbmRleCBkZWRiNGIxLi44ODU4N2M0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L2hhcC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmgKQEAgLTQzLDcg KzQzLDcgQEAgdm9pZCAgaGFwX3ZjcHVfaW5pdChzdHJ1Y3QgdmNwdSAqdik7CiBpbnQgICBoYXBf dHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBiZWdpbl9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIG5yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNU X0hBTkRMRV82NCh1aW50OCkgZGlydHlfYml0bWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgZGlydHlfYml0bWFwKTsKIAogZXh0ZXJu IGNvbnN0IHN0cnVjdCBwYWdpbmdfbW9kZSAqaGFwX3BhZ2luZ19nZXRfbW9kZShzdHJ1Y3QgdmNw dSAqKTsKIGludCBoYXBfc2V0X2FsbG9jYXRpb24oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg aW50IHBhZ2VzLCBib29sICpwcmVlbXB0ZWQpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9zaGFkb3cuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc2hhZG93LmgKaW5kZXggYmFjOTUy Zi4uN2UxZWQzYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9zaGFkb3cuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3NoYWRvdy5oCkBAIC02Myw3ICs2Myw3IEBAIGludCBzaGFk b3dfZW5hYmxlKHN0cnVjdCBkb21haW4gKmQsIHUzMiBtb2RlKTsKIGludCBzaGFkb3dfdHJhY2tf ZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgZmlyc3RfcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgbnIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hB TkRMRV82NCh1aW50OCkgZGlydHlfYml0bWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGRpcnR5X2JpdG1hcCk7CiAKIC8qIEhhbmRs ZXIgZm9yIHNoYWRvdyBjb250cm9sIG9wczogb3BlcmF0aW9ucyBmcm9tIHVzZXItc3BhY2UgdG8g ZW5hYmxlCiAgKiBhbmQgZGlzYWJsZSBlcGhlbWVyYWwgc2hhZG93IG1vZGVzICh0ZXN0IG1vZGUg YW5kIGxvZy1kaXJ0eSBtb2RlKSBhbmQKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9o dm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAppbmRleCBiNWM3YzI5 Li5mYjljZjE3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysr IGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0xNzQsNiArMTc0LDIzIEBAIHN0 cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgewogICAgIHVpbnQxNl90IHBhZDsK IH07CiAKKy8qCisgKiBYRU5fRE1PUF90cmFja19kaXJ0eV92cmFtOiBUcmFjayBtb2RpZmljYXRp b25zIHRvIHRoZSBzcGVjaWZpZWQgcGZuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy YW5nZS4KKyAqCisgKiBOT1RFOiBUaGUgYml0bWFwIHBhc3NlZCBiYWNrIHRvIHRoZSBjYWxsZXIg aXMgcGFzc2VkIGluIGEKKyAqICAgICAgIHNlY29uZGFyeSBidWZmZXIuCisgKi8KKyNkZWZpbmUg WEVOX0RNT1BfdHJhY2tfZGlydHlfdnJhbSA3CisKK3N0cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGly dHlfdnJhbSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgcGFnZXMgdG8gYmUgdHJhY2tlZCAqLwor ICAgIHVpbnQzMl90IG5yOworICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBJTiAtIGZpcnN0IHBm biB0byB0cmFjayAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKwogc3Ry dWN0IHhlbl9kbV9vcCB7CiAgICAgdWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAt MTg0LDYgKzIwMSw3IEBAIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2Rt X29wX2lvcmVxX3NlcnZlcl9yYW5nZSB1bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjsK ICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHNldF9pb3Jl cV9zZXJ2ZXJfc3RhdGU7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3JlcV9z ZXJ2ZXIgZGVzdHJveV9pb3JlcV9zZXJ2ZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfdHJh Y2tfZGlydHlfdnJhbSB0cmFja19kaXJ0eV92cmFtOwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv aHZtL2h2bV9vcC5oCmluZGV4IDZmY2Q4NmQuLjQ3ZTgzNmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1f b3AuaApAQCAtOTUsMjIgKzk1LDYgQEAgdHlwZWRlZiBlbnVtIHsKIC8qIEZvbGxvd2luZyB0b29s cy1vbmx5IGludGVyZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCiAjaWYgZGVmaW5lZChf X1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCiAKLS8qIFRyYWNrIGRpcnR5IFZSQU0u ICovCi0jZGVmaW5lIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW0gICAgNgotc3RydWN0IHhlbl9odm1f dHJhY2tfZGlydHlfdnJhbSB7Ci0gICAgLyogRG9tYWluIHRvIGJlIHRyYWNrZWQuICovCi0gICAg ZG9taWRfdCAgZG9taWQ7Ci0gICAgLyogTnVtYmVyIG9mIHBhZ2VzIHRvIHRyYWNrLiAqLwotICAg IHVpbnQzMl90IG5yOwotICAgIC8qIEZpcnN0IHBmbiB0byB0cmFjay4gKi8KLSAgICB1aW50NjRf YWxpZ25lZF90IGZpcnN0X3BmbjsKLSAgICAvKiBPVVQgdmFyaWFibGUuICovCi0gICAgLyogRGly dHkgYml0bWFwIGJ1ZmZlci4gKi8KLSAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBkaXJ0 eV9iaXRtYXA7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFtIHhl bl9odm1fdHJhY2tfZGlydHlfdnJhbV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2 bV90cmFja19kaXJ0eV92cmFtX3QpOwotCiAvKiBOb3RpZnkgdGhhdCBzb21lIHBhZ2VzIGdvdCBt b2RpZmllZCBieSB0aGUgRGV2aWNlIE1vZGVsLiAqLwogI2RlZmluZSBIVk1PUF9tb2RpZmllZF9t ZW1vcnkgICAgNwogc3RydWN0IHhlbl9odm1fbW9kaWZpZWRfbWVtb3J5IHsKZGlmZiAtLWdpdCBh L3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3MuYwppbmRleCAxY2U4 YTM2Li5hNDI3MmQ3IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrIGIveGVu L3hzbS9mbGFzay9ob29rcy5jCkBAIC0xMTgwLDkgKzExODAsNiBAQCBzdGF0aWMgaW50IGZsYXNr X2h2bV9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIG9wKQogICAgIGNhc2Ug SFZNT1BfZ2V0X3BhcmFtOgogICAgICAgICBwZXJtID0gSFZNX19HRVRQQVJBTTsKICAgICAgICAg YnJlYWs7Ci0gICAgY2FzZSBIVk1PUF90cmFja19kaXJ0eV92cmFtOgotICAgICAgICBwZXJtID0g SFZNX19UUkFDS0RJUlRZVlJBTTsKLSAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg ICAgcGVybSA9IEhWTV9fSFZNQ1RMOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2sv cG9saWN5L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3Rv cnMKaW5kZXggOTJlNmRhOS4uNDdjZTU4OSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xp Y3kvYWNjZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3Rv cnMKQEAgLTI2OCw4ICsyNjgsNiBAQCBjbGFzcyBodm0KICAgICBiaW5kX2lycQogIyBYRU5fRE9N Q1RMX3Bpbl9tZW1fY2FjaGVhdHRyCiAgICAgY2FjaGVhdHRyCi0jIEhWTU9QX3RyYWNrX2RpcnR5 X3ZyYW0KLSAgICB0cmFja2RpcnR5dnJhbQogIyBIVk1PUF9tb2RpZmllZF9tZW1vcnksIEhWTU9Q X2dldF9tZW1fdHlwZSwgSFZNT1Bfc2V0X21lbV90eXBlLAogIyBIVk1PUF9zZXRfbWVtX2FjY2Vz cywgSFZNT1BfZ2V0X21lbV9hY2Nlc3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKICMgSFZNT1Bf aW5qZWN0X3RyYXAKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==