From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH-for-4.9 v1 3/8] dm_op: convert HVMOP_track_dirty_vram Date: Fri, 18 Nov 2016 17:13:59 +0000 Message-ID: <1479489244-2201-4-git-send-email-paul.durrant@citrix.com> References: <1479489244-2201-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c7n4y-00056d-Ak for xen-devel@lists.xenproject.org; Fri, 18 Nov 2016 17:36:00 +0000 In-Reply-To: <1479489244-2201-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 , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGhhbmRsZSB0eXBlIHBhc3NlZCB0byB0aGUgdW5kZXJseWlu ZyBzaGFkb3cgYW5kIGhhcApmdW5jdGlvbnMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgbmV3 IGh5cGVyY2FsbCBidWZmZXIuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4 LmNvbT4KLS0tCkNjOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KQ2M6 IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+CkNjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNj OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KLS0tCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxl cy94ZW4uaWYgICB8ICA0ICsrLS0KIHRvb2xzL2xpYnhjL3hjX21pc2MuYyAgICAgICAgICAgICAg IHwgMzEgKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vZG0uYyAg ICAgICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQog eGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCA0MSAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyAgICAgICAgICAg fCAgMiArLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyAgICAgfCAgMiArLQogeGVu L2luY2x1ZGUvYXNtLXg4Ni9oYXAuaCAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNt LXg4Ni9zaGFkb3cuaCAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9v cC5oICAgICAgfCAxNiArKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1f b3AuaCAgICAgfCAgNCArKysrCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICB8 ICAzIC0tLQogeGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgMiAtLQogMTIg ZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgNzYgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmIGIvdG9vbHMvZmxhc2svcG9s aWN5L21vZHVsZXMveGVuLmlmCmluZGV4IDc3OTIzMmUuLjM2NjI3M2UgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgorKysgYi90b29scy9mbGFzay9wb2xpY3kv bW9kdWxlcy94ZW4uaWYKQEAgLTU4LDcgKzU4LDcgQEAgZGVmaW5lKGBjcmVhdGVfZG9tYWluX2Nv bW1vbicsIGAKIAlhbGxvdyAkMSAkMjptbXUgeyBtYXBfcmVhZCBtYXBfd3JpdGUgYWRqdXN0IG1l bW9yeW1hcCBwaHlzbWFwIHBpbnBhZ2UgbW11ZXh0X29wIHVwZGF0ZW1wIH07CiAJYWxsb3cgJDEg JDI6Z3JhbnQgc2V0dXA7CiAJYWxsb3cgJDEgJDI6aHZtIHsgY2FjaGVhdHRyIGdldHBhcmFtIGh2 bWN0bCBpcnFsZXZlbCBwY2lyb3V0ZSBzZXRodm1jCi0JCQlzZXRwYXJhbSBwY2lsZXZlbCB0cmFj a2RpcnR5dnJhbSBuZXN0ZWQgYWx0cDJtaHZtIGFsdHAybWh2bV9vcCB9OworCQkJc2V0cGFyYW0g cGNpbGV2ZWwgbmVzdGVkIGFsdHAybWh2bSBhbHRwMm1odm1fb3AgfTsKICcpCiAKICMgY3JlYXRl X2RvbWFpbihwcml2LCB0YXJnZXQpCkBAIC0xNTEsNyArMTUxLDcgQEAgZGVmaW5lKGBkZXZpY2Vf bW9kZWwnLCBgCiAKIAlhbGxvdyAkMSAkMl90YXJnZXQ6ZG9tYWluIHsgZ2V0ZG9tYWluaW5mbyBz aHV0ZG93biB9OwogCWFsbG93ICQxICQyX3RhcmdldDptbXUgeyBtYXBfcmVhZCBtYXBfd3JpdGUg YWRqdXN0IHBoeXNtYXAgdGFyZ2V0X2hhY2sgfTsKLQlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsg Z2V0cGFyYW0gc2V0cGFyYW0gdHJhY2tkaXJ0eXZyYW0gaHZtY3RsIGlycWxldmVsIHBjaXJvdXRl IHBjaWxldmVsIGNhY2hlYXR0ciBzZW5kX2lycSBkbSB9OworCWFsbG93ICQxICQyX3RhcmdldDpo dm0geyBnZXRwYXJhbSBzZXRwYXJhbSBodm1jdGwgaXJxbGV2ZWwgcGNpcm91dGUgcGNpbGV2ZWwg Y2FjaGVhdHRyIHNlbmRfaXJxIGRtIH07CiAnKQogCiAjIG1ha2VfZGV2aWNlX21vZGVsKHByaXYs IGRtX2RvbSwgaHZtX2RvbSkKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rv b2xzL2xpYnhjL3hjX21pc2MuYwppbmRleCAwNmU5MGRlLi4zNjUxY2FiIDEwMDY0NAotLS0gYS90 b29scy9saWJ4Yy94Y19taXNjLmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC01ODQs MzEgKzU4NCwxOCBAQCBpbnQgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oCiAgICAgdWludDY0X3Qg Zmlyc3RfcGZuLCB1aW50NjRfdCBuciwKICAgICB1bnNpZ25lZCBsb25nICpkaXJ0eV9iaXRtYXAp CiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQk9VTkNFKGRpcnR5X2JpdG1hcCwgKG5yKzcpIC8g OCwgWENfSFlQRVJDQUxMX0JVRkZFUl9CT1VOQ0VfT1VUKTsKLSAgICBERUNMQVJFX0hZUEVSQ0FM TF9CVUZGRVIoc3RydWN0IHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbSwgYXJnKTsKLSAgICBpbnQg cmM7CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX3RyYWNr X2RpcnR5X3ZyYW0gKmRhdGE7CiAKLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9j KHhjaCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgfHwgeGNfaHlw ZXJjYWxsX2JvdW5jZV9wcmUoeGNoLCBkaXJ0eV9iaXRtYXApICkKLSAgICB7Ci0gICAgICAgIFBF UlJPUigiQ291bGQgbm90IGJvdW5jZSBtZW1vcnkgZm9yIHhjX2h2bV90cmFja19kaXJ0eV92cmFt IGh5cGVyY2FsbCIpOwotICAgICAgICByYyA9IC0xOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9 Ci0KLSAgICBhcmctPmRvbWlkICAgICA9IGRvbTsKLSAgICBhcmctPmZpcnN0X3BmbiA9IGZpcnN0 X3BmbjsKLSAgICBhcmctPm5yICAgICAgICA9IG5yOwotICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxl KGFyZy0+ZGlydHlfYml0bWFwLCBkaXJ0eV9iaXRtYXApOworICAgIG9wLm9wID0gRE1PUF90cmFj a19kaXJ0eV92cmFtOworICAgIGRhdGEgPSAmb3AudS50cmFja19kaXJ0eV92cmFtOwogCi0gICAg cmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAg ICAgICAgICAgSFZNT1BfdHJhY2tfZGlydHlfdnJhbSwKLSAgICAgICAgICAgICAgICAgIEhZUEVS Q0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOworICAgIGRhdGEtPmZpcnN0X3BmbiA9IGZpcnN0X3Bm bjsKKyAgICAvKiBOT1RFOiBUaGUgZm9sbG93aW5nIGFzc2lnbm1lbnQgdHJ1bmNhdGVzIG5yIHRv IDMyLWJpdHMgKi8KKyAgICBkYXRhLT5uciA9IG5yOwogCi1vdXQ6Ci0gICAgeGNfaHlwZXJjYWxs X2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKLSAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNo LCBkaXJ0eV9iaXRtYXApOwotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNo LCBkb20sIDIsICZvcCwgc2l6ZW9mKG9wKSwKKyAgICAgICAgICAgICAgICAgICAgZGlydHlfYml0 bWFwLCAobnIgKyA3KSAvIDgpOwogfQogCiBpbnQgeGNfaHZtX21vZGlmaWVkX21lbW9yeSgKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpp bmRleCBjNzE4YTc2Li43OGRkNmU3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMK KysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0xOCw2ICsxOCw4IEBACiAjaW5jbHVkZSA8 eGVuL2d1ZXN0X2FjY2Vzcy5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUgPGFz bS9odm0vaW9yZXEuaD4KKyNpbmNsdWRlIDxhc20vaGFwLmg+CisjaW5jbHVkZSA8YXNtL3NoYWRv dy5oPgogI2luY2x1ZGUgPHhzbS94c20uaD4KIAogc3RhdGljIGludCBkbV9vcF9nZXRfYnVmKFhF Tl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90KSBidWZzLApAQCAtNzQsNiArNzYs MzUgQEAgc3RhdGljIGludCBkbV9vcF9jb3B5X2J1Zl90b19ndWVzdChYRU5fR1VFU1RfSEFORExF X1BBUkFNKHhlbl9kbV9vcF9idWZfdCkgYnVmcywKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGlj IGludCBkbV9vcF90cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG1fb3Bf YnVmX3QpIGJ1ZnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90 IGZpcnN0X3BmbiwgdW5zaWduZWQgaW50IG5yKQoreworICAgIHN0cnVjdCB4ZW5fZG1fb3BfYnVm IGJ1ZjsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoIG5yID4gR0IoMSkgPj4gUEFHRV9TSElGVCAp CisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCBkLT5pc19keWluZyApCisgICAg ICAgIHJldHVybiAtRVNSQ0g7CisKKyAgICBpZiAoIGQtPnZjcHUgPT0gTlVMTCB8fCBkLT52Y3B1 WzBdID09IE5VTEwgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIHJjID0gZG1fb3Bf Z2V0X2J1ZihidWZzLCBucl9idWZzLCAxLCAmYnVmKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAg cmV0dXJuIHJjOworCisgICAgaWYgKCAoKG5yICsgNykgLyA4KSA+IGJ1Zi5zaXplICkKKyAgICAg ICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICByZXR1cm4gc2hhZG93X21vZGVfZW5hYmxlZChkKSA/ CisgICAgICAgIHNoYWRvd190cmFja19kaXJ0eV92cmFtKGQsIGZpcnN0X3BmbiwgbnIsIGJ1Zi5o KSA6CisgICAgICAgIGhhcF90cmFja19kaXJ0eV92cmFtKGQsIGZpcnN0X3BmbiwgbnIsIGJ1Zi5o KTsKK30KKwogbG9uZyBkb19kbV9vcChkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgbnJfYnVmcywKICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 ZW5fZG1fb3BfYnVmX3QpIGJ1ZnMpCkBAIC0xNTcsMTEgKzE4OCwxOSBAQCBsb25nIGRvX2RtX29w KGRvbWlkX3QgZG9taWQsCiAgICAgICAgIHJjID0gaHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKGQs IGRhdGEtPmlkKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgRE1PUF90cmFja19k aXJ0eV92cmFtOgorICAgIHsKKyAgICAgICAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92 cmFtICpkYXRhID0KKyAgICAgICAgICAgICZvcC51LnRyYWNrX2RpcnR5X3ZyYW07CisKKyAgICAg ICAgcmMgPSBkbV9vcF90cmFja19kaXJ0eV92cmFtKGQsIG5yX2J1ZnMsIGJ1ZnMsIGRhdGEtPmZp cnN0X3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm5yKTsK KyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJjID0gLUVPUE5P VFNVUFA7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLQogICAgIGlmICggcmMgPT0gLUVSRVNUQVJU ICkKICAgICAgICAgcmVzdGFydCA9IHRydWU7CiAKQEAgLTE3OCw3ICsyMTcsNyBAQCBvdXQ6CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWQsIG5yX2J1ZnMs IGJ1ZnMpOwogCiAgICAgcmV0dXJuIHJjOwotfQorICAgIH0KIAogLyoKICAqIExvY2FsIHZhcmlh YmxlczoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYv aHZtL2h2bS5jCmluZGV4IGIyYTc3NzIuLjBjYTljYTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtNTUzNyw0NyArNTUz Nyw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0odm9pZCkgYXJnKQogICAgICAgICByYyA9IGd1ZXN0X2hhbmRsZV9pc19udWxsKGFyZykg PyBodm1vcF9mbHVzaF90bGJfYWxsKCkgOiAtRUlOVkFMOwogICAgICAgICBicmVhazsKIAotICAg IGNhc2UgSFZNT1BfdHJhY2tfZGlydHlfdnJhbToKLSAgICB7Ci0gICAgICAgIHN0cnVjdCB4ZW5f aHZtX3RyYWNrX2RpcnR5X3ZyYW0gYTsKLSAgICAgICAgc3RydWN0IGRvbWFpbiAqZDsKLQotICAg ICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmYSwgYXJnLCAxKSApCi0gICAgICAgICAgICByZXR1 cm4gLUVGQVVMVDsKLQotICAgICAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQo YS5kb21pZCwgJmQpOwotICAgICAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICAgICAgcmV0dXJu IHJjOwotCi0gICAgICAgIHJjID0gLUVJTlZBTDsKLSAgICAgICAgaWYgKCAhaXNfaHZtX2RvbWFp bihkKSApCi0gICAgICAgICAgICBnb3RvIHRkdl9mYWlsOwotCi0gICAgICAgIGlmICggYS5uciA+ IEdCKDEpID4+IFBBR0VfU0hJRlQgKQotICAgICAgICAgICAgZ290byB0ZHZfZmFpbDsKLQotICAg ICAgICByYyA9IHhzbV9odm1fY29udHJvbChYU01fRE1fUFJJViwgZCwgb3ApOwotICAgICAgICBp ZiAoIHJjICkKLSAgICAgICAgICAgIGdvdG8gdGR2X2ZhaWw7Ci0KLSAgICAgICAgcmMgPSAtRVNS Q0g7Ci0gICAgICAgIGlmICggZC0+aXNfZHlpbmcgKQotICAgICAgICAgICAgZ290byB0ZHZfZmFp bDsKLQotICAgICAgICByYyA9IC1FSU5WQUw7Ci0gICAgICAgIGlmICggZC0+dmNwdSA9PSBOVUxM IHx8IGQtPnZjcHVbMF0gPT0gTlVMTCApCi0gICAgICAgICAgICBnb3RvIHRkdl9mYWlsOwotCi0g ICAgICAgIGlmICggc2hhZG93X21vZGVfZW5hYmxlZChkKSApCi0gICAgICAgICAgICByYyA9IHNo YWRvd190cmFja19kaXJ0eV92cmFtKGQsIGEuZmlyc3RfcGZuLCBhLm5yLCBhLmRpcnR5X2JpdG1h cCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJjID0gaGFwX3RyYWNrX2RpcnR5X3ZyYW0o ZCwgYS5maXJzdF9wZm4sIGEubnIsIGEuZGlydHlfYml0bWFwKTsKLQotICAgIHRkdl9mYWlsOgot ICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAg ICAgY2FzZSBIVk1PUF9tb2RpZmllZF9tZW1vcnk6CiAgICAgewogICAgICAgICBzdHJ1Y3QgeGVu X2h2bV9tb2RpZmllZF9tZW1vcnkgYTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAv aGFwLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCmluZGV4IDMyMThmYTIuLjQ3ODhlMDMg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKKysrIGIveGVuL2FyY2gveDg2 L21tL2hhcC9oYXAuYwpAQCAtNjgsNyArNjgsNyBAQAogaW50IGhhcF90cmFja19kaXJ0eV92cmFt KHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBiZWdpbl9wZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwK LSAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBndWVz dF9kaXJ0eV9iaXRtYXApCisgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh2b2lkKSBndWVzdF9kaXJ0eV9iaXRtYXApCiB7CiAgICAgbG9uZyByYyA9IDA7CiAg ICAgc3RydWN0IHNoX2RpcnR5X3ZyYW0gKmRpcnR5X3ZyYW07CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24u YwppbmRleCBjZWQyMzEzLi5iOTlhYTU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hh ZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKQEAgLTM2 NzcsNyArMzY3Nyw3IEBAIHN0YXRpYyB2b2lkIHNoX2NsZWFuX2RpcnR5X2JpdG1hcChzdHJ1Y3Qg ZG9tYWluICpkKQogaW50IHNoYWRvd190cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBiZWdpbl9wZm4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBndWVzdF9kaXJ0eV9i aXRtYXApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJB TSh2b2lkKSBndWVzdF9kaXJ0eV9iaXRtYXApCiB7CiAgICAgaW50IHJjID0gMDsKICAgICB1bnNp Z25lZCBsb25nIGVuZF9wZm4gPSBiZWdpbl9wZm4gKyBucjsKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS14ODYvaGFwLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2hhcC5oCmluZGV4IGM2MTM4 MzYuLmRiZjFkYTIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaGFwLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9oYXAuaApAQCAtNDMsNyArNDMsNyBAQCB2b2lkICBoYXBfdmNw dV9pbml0KHN0cnVjdCB2Y3B1ICp2KTsKIGludCAgIGhhcF90cmFja19kaXJ0eV92cmFtKHN0cnVj dCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJl Z2luX3BmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBkaXJ0 eV9iaXRtYXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh2b2lkKSBkaXJ0eV9iaXRtYXApOwogCiBleHRlcm4gY29uc3Qgc3RydWN0IHBhZ2luZ19t b2RlICpoYXBfcGFnaW5nX2dldF9tb2RlKHN0cnVjdCB2Y3B1ICopOwogdm9pZCBoYXBfc2V0X2Fs bG9jX2Zvcl9wdmhfZG9tMChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIG51bV9wYWdl cyk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3NoYWRvdy5oIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9zaGFkb3cuaAppbmRleCA2ZDBhZWZiLi5jMzA1MTcxIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L3NoYWRvdy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc2hh ZG93LmgKQEAgLTYzLDcgKzYzLDcgQEAgaW50IHNoYWRvd19lbmFibGUoc3RydWN0IGRvbWFpbiAq ZCwgdTMyIG1vZGUpOwogaW50IHNoYWRvd190cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4g KmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmaXJzdF9wZm4s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBkaXJ0eV9iaXRt YXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o dm9pZCkgZGlydHlfYml0bWFwKTsKIAogLyogSGFuZGxlciBmb3Igc2hhZG93IGNvbnRyb2wgb3Bz OiBvcGVyYXRpb25zIGZyb20gdXNlci1zcGFjZSB0byBlbmFibGUKICAqIGFuZCBkaXNhYmxlIGVw aGVtZXJhbCBzaGFkb3cgbW9kZXMgKHRlc3QgbW9kZSBhbmQgbG9nLWRpcnR5IG1vZGUpIGFuZApk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVuL2luY2x1ZGUv cHVibGljL2h2bS9kbV9vcC5oCmluZGV4IGRjMWQyYWQuLmMxNTU3ZWIgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmgKQEAgLTE3OSw2ICsxNzksMjEgQEAgc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lv cmVxX3NlcnZlciB7CiAgICAgaW9zZXJ2aWRfdCBpZDsKIH07CiAKKy8qCisgKiBETU9QX3RyYWNr X2RpcnR5X3ZyYW06IFRyYWNrIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHNwZWNpZmllZCBwZm4gcmFu Z2UuCisgKgorICogTk9URTogVGhlIGJpdG1hcCBwYXNzZWQgYmFjayB0byB0aGUgY2FsbGVyIGlz IHBhc3NlZCBpbiBhCisgKiAgICAgICBzZWNvbmRhcnkgYnVmZmVyLgorICovCisjZGVmaW5lIERN T1BfdHJhY2tfZGlydHlfdnJhbSA3CisKK3N0cnVjdCB4ZW5fZG1fb3BfdHJhY2tfZGlydHlfdnJh bSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgcGFnZXMgdG8gYmUgdHJhY2tlZCAqLworICAgIHVp bnQzMl90IG5yOworICAgIC8qIElOIC0gZmlyc3QgcGZuIHRvIHRyYWNrICovCisgICAgdWludDY0 X2FsaWduZWRfdCBmaXJzdF9wZm47Cit9OworCiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50 MzJfdCBvcDsKICAgICB1bmlvbiB7CkBAIC0xODgsNiArMjAzLDcgQEAgc3RydWN0IHhlbl9kbV9v cCB7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlIHVubWFwX2lv X3JhbmdlX2Zyb21faW9yZXFfc2VydmVyOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9p b3JlcV9zZXJ2ZXJfc3RhdGUgc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZTsKICAgICAgICAgc3RydWN0 IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciBkZXN0cm95X2lvcmVxX3NlcnZlcjsKKyAg ICAgICAgc3RydWN0IHhlbl9kbV9vcF90cmFja19kaXJ0eV92cmFtIHRyYWNrX2RpcnR5X3ZyYW07 CiAgICAgfSB1OwogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1f b3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKaW5kZXggY2Y1ZTU5YS4uMWJi NTIyMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94 ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCkBAIC05Niw2ICs5Niw4IEBAIHR5cGVkZWYg ZW51bSB7CiAvKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1heSBjaGFuZ2UgaW4g ZnV0dXJlLiAqLwogI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19f KQogCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAKKwogLyogVHJh Y2sgZGlydHkgVlJBTS4gKi8KICNkZWZpbmUgSFZNT1BfdHJhY2tfZGlydHlfdnJhbSAgICA2CiBz dHJ1Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFtIHsKQEAgLTExMiw2ICsxMTQsOCBAQCBzdHJ1 Y3QgeGVuX2h2bV90cmFja19kaXJ0eV92cmFtIHsKIHR5cGVkZWYgc3RydWN0IHhlbl9odm1fdHJh Y2tfZGlydHlfdnJhbSB4ZW5faHZtX3RyYWNrX2RpcnR5X3ZyYW1fdDsKIERFRklORV9YRU5fR1VF U1RfSEFORExFKHhlbl9odm1fdHJhY2tfZGlydHlfdnJhbV90KTsKIAorI2VuZGlmIC8qIF9fWEVO X0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwOTAwICovCisKIC8qIE5vdGlmeSB0aGF0IHNv bWUgcGFnZXMgZ290IG1vZGlmaWVkIGJ5IHRoZSBEZXZpY2UgTW9kZWwuICovCiAjZGVmaW5lIEhW TU9QX21vZGlmaWVkX21lbW9yeSAgICA3CiBzdHJ1Y3QgeGVuX2h2bV9tb2RpZmllZF9tZW1vcnkg ewpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29r cy5jCmluZGV4IGQ2MGM5NmQuLjc5NzI1NDYgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9v a3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTExNzcsOSArMTE3Nyw2IEBAIHN0 YXRpYyBpbnQgZmxhc2tfaHZtX3BhcmFtKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg b3ApCiAgICAgY2FzZSBIVk1PUF9nZXRfcGFyYW06CiAgICAgICAgIHBlcm0gPSBIVk1fX0dFVFBB UkFNOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEhWTU9QX3RyYWNrX2RpcnR5X3ZyYW06Ci0g ICAgICAgIHBlcm0gPSBIVk1fX1RSQUNLRElSVFlWUkFNOwotICAgICAgICBicmVhazsKICAgICBk ZWZhdWx0OgogICAgICAgICBwZXJtID0gSFZNX19IVk1DVEw7CiAgICAgfQpkaWZmIC0tZ2l0IGEv eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycwppbmRleCA0OWM5YTllLi41YWY0MjdmIDEwMDY0NAotLS0gYS94ZW4v eHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjY2LDggKzI2Niw2IEBAIGNsYXNzIGh2bQogICAgIGJpbmRf aXJxCiAjIFhFTl9ET01DVExfcGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKLSMgSFZN T1BfdHJhY2tfZGlydHlfdnJhbQotICAgIHRyYWNrZGlydHl2cmFtCiAjIEhWTU9QX21vZGlmaWVk X21lbW9yeSwgSFZNT1BfZ2V0X21lbV90eXBlLCBIVk1PUF9zZXRfbWVtX3R5cGUsCiAjIEhWTU9Q X3NldF9tZW1fYWNjZXNzLCBIVk1PUF9nZXRfbWVtX2FjY2VzcywgSFZNT1BfcGFnZXRhYmxlX2R5 aW5nLAogIyBIVk1PUF9pbmplY3RfdHJhcAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK