From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 6/8] dm_op: convert HVMOP_set_mem_type Date: Thu, 12 Jan 2017 14:58:38 +0000 Message-ID: <1484233120-2015-7-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cRgq2-0005UJ-Lu for xen-devel@lists.xenproject.org; Thu, 12 Jan 2017 14:58:50 +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: Andrew Cooper , Daniel De Graaf , Paul Durrant , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW1vdmVzIHRoZSBuZWVkIGZvciBoYW5kbGluZyBIVk1PUCByZXN0YXJ0cywg c28gdGhhdAppbmZyYXN0cnVjdHVyZSBpcyByZW1vdmVkLgoKTk9URTogVGhpcyBwYXRjaCBhbHNv IG1vZGlmaWVzIHRoZSB0eXBlIG9mIHRoZSAnbnInIGFyZ3VtZW50IG9mCiAgICAgIHhjX2h2bV9z ZXRfbWVtX3R5cGUoKSBmcm9tIHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZSB0aGUK ICAgICAgdmFsdWUgcGFzc2VkIHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdn ZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTog UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0 cml4LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogRGFuaWVsIERlIEdyYWFm IDxkZ2RlZ3JhQHR5Y2hvLm5zYS5nb3Y+Cgp2MzoKLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBm cm9tIEphbi4KCnYyOgotIEFkZHJlc3NlZCBzZXZlcmFsIGNvbW1lbnRzIGZyb20gSmFuLgotLS0K IHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oICAgICAgIHwgICAyICstCiB0b29scy9saWJ4 Yy94Y19taXNjLmMgICAgICAgICAgICAgICB8ICAyOSArKystLS0tLQogeGVuL2FyY2gveDg2L2h2 bS9kbS5jICAgICAgICAgICAgICAgfCAgOTIgKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4v YXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICB8IDEzNiArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCAgICAgIHwg IDIyICsrKysrKwogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCAgICAgfCAgMjAgLS0t LS0tCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICAgMiArLQogNyBmaWxl cyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMTc2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94 ZW5jdHJsLmgKaW5kZXggYTVjMjM0Zi4uMTM0MzFiYiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMv aW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKQEAg LTE2MzQsNyArMTYzNCw3IEBAIGludCB4Y19odm1fbW9kaWZpZWRfbWVtb3J5KAogICogQWxsb3dl ZCB0eXBlcyBhcmUgSFZNTUVNX3JhbV9ydywgSFZNTUVNX3JhbV9ybywgSFZNTUVNX21taW9fZG0K ICAqLwogaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUoCi0gICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRv bWlkX3QgZG9tLCBodm1tZW1fdHlwZV90IG1lbXR5cGUsIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWlu dDY0X3QgbnIpOworICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaHZtbWVtX3R5 cGVfdCBtZW10eXBlLCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQzMl90IG5yKTsKIAogLyoKICAq IEluamVjdHMgYSBoYXJkd2FyZS9zb2Z0d2FyZSBDUFUgdHJhcCwgdG8gdGFrZSBlZmZlY3QgdGhl IG5leHQgdGltZSB0aGUgSFZNIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfbWlzYy5jIGIv dG9vbHMvbGlieGMveGNfbWlzYy5jCmluZGV4IDU5N2RmOTkuLjViMDZkNmIgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2xpYnhjL3hjX21pc2MuYworKysgYi90b29scy9saWJ4Yy94Y19taXNjLmMKQEAgLTU5 MCwzMCArNTkwLDIxIEBAIGludCB4Y19odm1fbW9kaWZpZWRfbWVtb3J5KAogfQogCiBpbnQgeGNf aHZtX3NldF9tZW1fdHlwZSgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGh2 bW1lbV90eXBlX3QgbWVtX3R5cGUsIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDY0X3QgbnIpCisg ICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCBodm1tZW1fdHlwZV90IG1lbV90eXBl LCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQzMl90IG5yKQogewotICAgIERFQ0xBUkVfSFlQRVJD QUxMX0JVRkZFUihzdHJ1Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUsIGFyZyk7Ci0gICAgaW50IHJj OwotCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6ZW9m KCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICB7Ci0gICAgICAgIFBFUlJPUigi Q291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgeGNfaHZtX3NldF9tZW1fdHlwZSBoeXBlcmNh bGwiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9w OworICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlICpkYXRhOwogCi0gICAgYXJnLT5k b21pZCAgICAgICAgPSBkb207Ci0gICAgYXJnLT5odm1tZW1fdHlwZSAgPSBtZW1fdHlwZTsKLSAg ICBhcmctPmZpcnN0X3BmbiAgICA9IGZpcnN0X3BmbjsKLSAgICBhcmctPm5yICAgICAgICAgICA9 IG5yOworICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgcmMgPSB4ZW5jYWxs Mih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAgICAgICAgICAgICAgSFZN T1Bfc2V0X21lbV90eXBlLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxMX0JVRkZFUl9BU19B UkcoYXJnKSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9zZXRfbWVtX3R5cGU7CisgICAgZGF0YSA9 ICZvcC51LnNldF9tZW1fdHlwZTsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gs IGFyZyk7CisgICAgZGF0YS0+bWVtX3R5cGUgPSBtZW1fdHlwZTsKKyAgICBkYXRhLT5maXJzdF9w Zm4gPSBmaXJzdF9wZm47CisgICAgZGF0YS0+bnIgPSBucjsKIAotICAgIHJldHVybiByYzsKKyAg ICByZXR1cm4gZG9fZG1fb3AoeGNoLCBkb20sIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGlu dCB4Y19odm1faW5qZWN0X3RyYXAoCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggMWE3YzkxMy4uOTdjMWYwNyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpAQCAt MTk4LDYgKzE5OCw4NCBAQCBzdGF0aWMgaW50IG1vZGlmaWVkX21lbW9yeShzdHJ1Y3QgZG9tYWlu ICpkLCB4ZW5fcGZuX3QgKmZpcnN0X3BmbiwKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBi b29sIGFsbG93X3AybV90eXBlX2NoYW5nZShwMm1fdHlwZV90IG9sZCwgcDJtX3R5cGVfdCBuZXcp Cit7CisgICAgcmV0dXJuIHAybV9pc19yYW0ob2xkKSB8fAorICAgICAgICAgICAocDJtX2lzX2hv bGUob2xkKSAmJiBuZXcgPT0gcDJtX21taW9fZG0pIHx8CisgICAgICAgICAgIChvbGQgPT0gcDJt X2lvcmVxX3NlcnZlciAmJiBuZXcgPT0gcDJtX3JhbV9ydyk7Cit9CisKK3N0YXRpYyBpbnQgc2V0 X21lbV90eXBlKHN0cnVjdCBkb21haW4gKmQsIGh2bW1lbV90eXBlX3QgbWVtX3R5cGUsCisgICAg ICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgKmZpcnN0X3BmbiwgdW5zaWduZWQgaW50ICpu cikKK3sKKyAgICB4ZW5fcGZuX3QgbGFzdF9wZm4gPSAqZmlyc3RfcGZuICsgKm5yIC0gMTsKKyAg ICB1bnNpZ25lZCBpbnQgaXRlcjsKKyAgICBpbnQgcmM7CisKKyAgICAvKiBJbnRlcmZhY2UgdHlw ZXMgdG8gaW50ZXJuYWwgcDJtIHR5cGVzICovCisgICAgc3RhdGljIGNvbnN0IHAybV90eXBlX3Qg bWVtdHlwZVtdID0geworICAgICAgICBbSFZNTUVNX3JhbV9yd10gID0gcDJtX3JhbV9ydywKKyAg ICAgICAgW0hWTU1FTV9yYW1fcm9dICA9IHAybV9yYW1fcm8sCisgICAgICAgIFtIVk1NRU1fbW1p b19kbV0gPSBwMm1fbW1pb19kbSwKKyAgICAgICAgW0hWTU1FTV91bnVzZWRdID0gcDJtX2ludmFs aWQsCisgICAgICAgIFtIVk1NRU1faW9yZXFfc2VydmVyXSA9IHAybV9pb3JlcV9zZXJ2ZXIKKyAg ICB9OworCisgICAgaWYgKCAoKmZpcnN0X3BmbiA+IGxhc3RfcGZuKSB8fAorICAgICAgICAgKGxh c3RfcGZuID4gZG9tYWluX2dldF9tYXhpbXVtX2dwZm4oZCkpICkKKyAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisKKyAgICBpZiAoIG1lbV90eXBlID49IEFSUkFZX1NJWkUobWVtdHlwZSkgfHwKKyAg ICAgICAgIHVubGlrZWx5KG1lbV90eXBlID09IEhWTU1FTV91bnVzZWQpICkKKyAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CisKKyAgICBpdGVyID0gMDsKKyAgICByYyA9IDA7CisgICAgd2hpbGUgKCBp dGVyIDwgKm5yICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gKmZpcnN0X3Bm biArIGl0ZXI7CisgICAgICAgIHAybV90eXBlX3QgdDsKKworICAgICAgICBnZXRfZ2ZuX3Vuc2hh cmUoZCwgcGZuLCAmdCk7CisgICAgICAgIGlmICggcDJtX2lzX3BhZ2luZyh0KSApCisgICAgICAg IHsKKyAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKKyAgICAgICAgICAgIHAybV9tZW1fcGFn aW5nX3BvcHVsYXRlKGQsIHBmbik7CisgICAgICAgICAgICByZXR1cm4gLUVBR0FJTjsKKyAgICAg ICAgfQorCisgICAgICAgIGlmICggcDJtX2lzX3NoYXJlZCh0KSApCisgICAgICAgICAgICByYyA9 IC1FQUdBSU47CisgICAgICAgIGVsc2UgaWYgKCAhYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHQsIG1l bXR5cGVbbWVtX3R5cGVdKSApCisgICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGVs c2UKKyAgICAgICAgICAgIHJjID0gcDJtX2NoYW5nZV90eXBlX29uZShkLCBwZm4sIHQsIG1lbXR5 cGVbbWVtX3R5cGVdKTsKKworICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7CisKKyAgICAgICAgaWYg KCByYyApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpdGVyKys7CisKKyAgICAgICAg LyoKKyAgICAgICAgICogQ2hlY2sgZm9yIGNvbnRpbnVhdGlvbiBldmVyeSAyNTZ0aCBpdGVyYXRp b24gYW5kIGlmIHRoZQorICAgICAgICAgKiBpdGVyYXRpb24gaXMgbm90IHRoZSBsYXN0LgorICAg ICAgICAgKi8KKyAgICAgICAgaWYgKCAoaXRlciA8ICpucikgJiYgKChpdGVyICYgMHhmZikgPT0g MCkgJiYKKyAgICAgICAgICAgICBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAg eworICAgICAgICAgICAgKmZpcnN0X3BmbiArPSBpdGVyOworICAgICAgICAgICAgKm5yIC09IGl0 ZXI7CisKKyAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOworICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGxvbmcgZG9fZG1fb3AoZG9t aWRfdCBkb21pZCwKICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAg ICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RtX29wX2J1Zl90KSBidWZzKQpAQCAt MzY5LDYgKzQ0NywyMCBAQCBsb25nIGRvX2RtX29wKGRvbWlkX3QgZG9taWQsCiAgICAgICAgIGJy ZWFrOwogICAgIH0KIAorICAgIGNhc2UgWEVOX0RNT1Bfc2V0X21lbV90eXBlOgorICAgIHsKKyAg ICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgKmRhdGEgPQorICAgICAgICAgICAg Jm9wLnUuc2V0X21lbV90eXBlOworCisgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgaWYg KCBkYXRhLT5wYWQgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgcmMgPSBzZXRfbWVt X3R5cGUoZCwgZGF0YS0+bWVtX3R5cGUsICZkYXRhLT5maXJzdF9wZm4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICZkYXRhLT5ucik7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGRl ZmF1bHQ6CiAgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5k ZXggYjRkYWNhZS4uYTRjMjU4NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYwor KysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC01MjI4LDEzMiArNTIyOCwxMSBAQCBzdGF0 aWMgaW50IGh2bW9wX2dldF9tZW1fdHlwZSgKICAgICByZXR1cm4gcmM7CiB9CiAKLS8qCi0gKiBO b3RlIHRoYXQgdGhpcyB2YWx1ZSBpcyBlZmZlY3RpdmVseSBwYXJ0IG9mIHRoZSBBQkksIGV2ZW4g aWYgd2UgZG9uJ3QgbmVlZAotICogdG8gbWFrZSBpdCBhIGZvcm1hbCBwYXJ0IG9mIGl0OiBBIGd1 ZXN0IHN1c3BlbmRlZCBmb3IgbWlncmF0aW9uIGluIHRoZQotICogbWlkZGxlIG9mIGEgY29udGlu dWF0aW9uIHdvdWxkIGZhaWwgdG8gd29yayBpZiByZXN1bWVkIG9uIGEgaHlwZXJ2aXNvcgotICog dXNpbmcgYSBkaWZmZXJlbnQgdmFsdWUuCi0gKi8KLSNkZWZpbmUgSFZNT1Bfb3BfbWFzayAweGZm Ci0KLXN0YXRpYyBib29sX3QgaHZtX2FsbG93X3AybV90eXBlX2NoYW5nZShwMm1fdHlwZV90IG9s ZCwgcDJtX3R5cGVfdCBuZXcpCi17Ci0gICAgaWYgKCBwMm1faXNfcmFtKG9sZCkgfHwKLSAgICAg ICAgIChwMm1faXNfaG9sZShvbGQpICYmIG5ldyA9PSBwMm1fbW1pb19kbSkgfHwKLSAgICAgICAg IChvbGQgPT0gcDJtX2lvcmVxX3NlcnZlciAmJiBuZXcgPT0gcDJtX3JhbV9ydykgKQotICAgICAg ICByZXR1cm4gMTsKLQotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGh2bW9wX3NldF9t ZW1fdHlwZSgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X21lbV90eXBl X3QpIGFyZywKLSAgICB1bnNpZ25lZCBsb25nICppdGVyKQotewotICAgIHVuc2lnbmVkIGxvbmcg c3RhcnRfaXRlciA9ICppdGVyOwotICAgIHN0cnVjdCB4ZW5faHZtX3NldF9tZW1fdHlwZSBhOwot ICAgIHN0cnVjdCBkb21haW4gKmQ7Ci0gICAgaW50IHJjOwotCi0gICAgLyogSW50ZXJmYWNlIHR5 cGVzIHRvIGludGVybmFsIHAybSB0eXBlcyAqLwotICAgIHN0YXRpYyBjb25zdCBwMm1fdHlwZV90 IG1lbXR5cGVbXSA9IHsKLSAgICAgICAgW0hWTU1FTV9yYW1fcnddICA9IHAybV9yYW1fcncsCi0g ICAgICAgIFtIVk1NRU1fcmFtX3JvXSAgPSBwMm1fcmFtX3JvLAotICAgICAgICBbSFZNTUVNX21t aW9fZG1dID0gcDJtX21taW9fZG0sCi0gICAgICAgIFtIVk1NRU1fdW51c2VkXSA9IHAybV9pbnZh bGlkLAotICAgICAgICBbSFZNTUVNX2lvcmVxX3NlcnZlcl0gPSBwMm1faW9yZXFfc2VydmVyCi0g ICAgfTsKLQotICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZhLCBhcmcsIDEpICkKLSAgICAgICAg cmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQo YS5kb21pZCwgJmQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQot ICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAg Z290byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9odm1fY29udHJvbChYU01fRE1fUFJJViwgZCwgSFZN T1Bfc2V0X21lbV90eXBlKTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAg ICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCBhLm5yIDwgc3RhcnRfaXRlciB8fAotICAgICAgICAg KChhLmZpcnN0X3BmbiArIGEubnIgLSAxKSA8IGEuZmlyc3RfcGZuKSB8fAotICAgICAgICAgKChh LmZpcnN0X3BmbiArIGEubnIgLSAxKSA+IGRvbWFpbl9nZXRfbWF4aW11bV9ncGZuKGQpKSApCi0g ICAgICAgIGdvdG8gb3V0OwotCi0gICAgaWYgKCBhLmh2bW1lbV90eXBlID49IEFSUkFZX1NJWkUo bWVtdHlwZSkgfHwKLSAgICAgICAgIHVubGlrZWx5KGEuaHZtbWVtX3R5cGUgPT0gSFZNTUVNX3Vu dXNlZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHdoaWxlICggYS5uciA+IHN0YXJ0X2l0 ZXIgKQotICAgIHsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBwZm4gPSBhLmZpcnN0X3BmbiArIHN0 YXJ0X2l0ZXI7Ci0gICAgICAgIHAybV90eXBlX3QgdDsKLQotICAgICAgICBnZXRfZ2ZuX3Vuc2hh cmUoZCwgcGZuLCAmdCk7Ci0gICAgICAgIGlmICggcDJtX2lzX3BhZ2luZyh0KSApCi0gICAgICAg IHsKLSAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKLSAgICAgICAgICAgIHAybV9tZW1fcGFn aW5nX3BvcHVsYXRlKGQsIHBmbik7Ci0gICAgICAgICAgICByYyA9IC1FQUdBSU47Ci0gICAgICAg ICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIHAybV9pc19zaGFyZWQodCkg KQotICAgICAgICB7Ci0gICAgICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7Ci0gICAgICAgICAgICBy YyA9IC1FQUdBSU47Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAgICAgICBp ZiAoICFodm1fYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHQsIG1lbXR5cGVbYS5odm1tZW1fdHlwZV0p ICkKLSAgICAgICAgewotICAgICAgICAgICAgcHV0X2dmbihkLCBwZm4pOwotICAgICAgICAgICAg Z290byBvdXQ7Ci0gICAgICAgIH0KLQotICAgICAgICByYyA9IHAybV9jaGFuZ2VfdHlwZV9vbmUo ZCwgcGZuLCB0LCBtZW10eXBlW2EuaHZtbWVtX3R5cGVdKTsKLSAgICAgICAgcHV0X2dmbihkLCBw Zm4pOwotCi0gICAgICAgIGlmICggcmMgKQotICAgICAgICAgICAgZ290byBvdXQ7Ci0KLSAgICAg ICAgLyogQ2hlY2sgZm9yIGNvbnRpbnVhdGlvbiBpZiBpdCdzIG5vdCB0aGUgbGFzdCBpbnRlcmF0 aW9uICovCi0gICAgICAgIGlmICggYS5uciA+ICsrc3RhcnRfaXRlciAmJiAhKHN0YXJ0X2l0ZXIg JiBIVk1PUF9vcF9tYXNrKSAmJgotICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNr KCkgKQotICAgICAgICB7Ci0gICAgICAgICAgICByYyA9IC1FUkVTVEFSVDsKLSAgICAgICAgICAg IGdvdG8gb3V0OwotICAgICAgICB9Ci0gICAgfQotICAgIHJjID0gMDsKLQotIG91dDoKLSAgICBy Y3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICAqaXRlciA9IHN0YXJ0X2l0ZXI7Ci0KLSAgICByZXR1 cm4gcmM7Ci19Ci0KIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0odm9pZCkgYXJnKQogewotICAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfaXRlciwg bWFzazsKICAgICBsb25nIHJjID0gMDsKIAotICAgIHN3aXRjaCAoIG9wICYgSFZNT1Bfb3BfbWFz ayApCi0gICAgewotICAgIGRlZmF1bHQ6Ci0gICAgICAgIG1hc2sgPSB+MFVMOwotICAgICAgICBi cmVhazsKLSAgICBjYXNlIEhWTU9QX3NldF9tZW1fdHlwZToKLSAgICAgICAgbWFzayA9IEhWTU9Q X29wX21hc2s7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHN0YXJ0X2l0ZXIgPSBvcCAm IH5tYXNrOwotICAgIHN3aXRjaCAoIG9wICY9IG1hc2sgKQorICAgIHN3aXRjaCAoIG9wICkKICAg ICB7CiAgICAgY2FzZSBIVk1PUF9zZXRfZXZ0Y2huX3VwY2FsbF92ZWN0b3I6CiAgICAgICAgIHJj ID0gaHZtb3Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yKApAQCAtNTM4NCwxMiArNTI2Myw2IEBA IGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o dm9pZCkgYXJnKQogICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX2dl dF9tZW1fdHlwZV90KSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBIVk1PUF9zZXRfbWVt X3R5cGU6Ci0gICAgICAgIHJjID0gaHZtb3Bfc2V0X21lbV90eXBlKAotICAgICAgICAgICAgZ3Vl c3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX3NldF9tZW1fdHlwZV90KSwKLSAgICAgICAgICAg ICZzdGFydF9pdGVyKTsKLSAgICAgICAgYnJlYWs7Ci0KICAgICBjYXNlIEhWTU9QX3BhZ2V0YWJs ZV9keWluZzoKICAgICB7CiAgICAgICAgIHN0cnVjdCB4ZW5faHZtX3BhZ2V0YWJsZV9keWluZyBh OwpAQCAtNTQ5OCwxMyArNTM3MSw2IEBAIGxvbmcgZG9faHZtX29wKHVuc2lnbmVkIGxvbmcgb3As IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgIH0KICAgICB9CiAKLSAgICBp ZiAoIHJjID09IC1FUkVTVEFSVCApCi0gICAgewotICAgICAgICBBU1NFUlQoIShzdGFydF9pdGVy ICYgbWFzaykpOwotICAgICAgICByYyA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKF9f SFlQRVJWSVNPUl9odm1fb3AsICJsaCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3AgfCBzdGFydF9pdGVyLCBhcmcpOwotICAgIH0KLQogICAgIHJldHVybiBy YzsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oIGIveGVu L2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCmluZGV4IDZhMmZiMzkuLjRlYWIwOGIgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9w dWJsaWMvaHZtL2RtX29wLmgKQEAgLTI0OCw2ICsyNDgsMjcgQEAgc3RydWN0IHhlbl9kbV9vcF9t b2RpZmllZF9tZW1vcnkgewogICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwogfTsKIAor LyoKKyAqIFhFTl9ETU9QX3NldF9tZW1fdHlwZTogTm90aWZ5IHRoYXQgYSByZWdpb24gb2YgbWVt b3J5IGlzIHRvIGJlIHRyZWF0ZWQKKyAqICAgICAgICAgICAgICAgICAgICAgICAgaW4gYSBzcGVj aWZpYyB3YXkuIChTZWUgZGVmaW5pdGlvbiBvZgorICogICAgICAgICAgICAgICAgICAgICAgICBo dm1tZW1fdHlwZV90KS4KKyAqCisgKiBOT1RFOiBJbiB0aGUgZXZlbnQgb2YgYSBjb250aW51YXRp b24gKHJldHVybiBjb2RlIC1FUkVTVEFSVCksIHRoZQorICogICAgICAgQGZpcnN0X3BmbiBpcyBz ZXQgdG8gdGhlIHZhbHVlIG9mIHRoZSBwZm4gb2YgdGhlIHJlbWFpbmluZworICogICAgICAgcmVn aW9uIGFuZCBAbnIgcmVkdWNlZCB0byB0aGUgc2l6ZSBvZiB0aGUgcmVtYWluaW5nIHJlZ2lvbi4K KyAqLworI2RlZmluZSBYRU5fRE1PUF9zZXRfbWVtX3R5cGUgMTIKKworc3RydWN0IHhlbl9kbV9v cF9zZXRfbWVtX3R5cGUgeworICAgIC8qIElOIC0gbnVtYmVyIG9mIGNvbnRpZ3VvdXMgcGFnZXMg Ki8KKyAgICB1aW50MzJfdCBucjsKKyAgICAvKiBJTiAtIG5ldyBodm1tZW1fdHlwZV90IG9mIHJl Z2lvbiAqLworICAgIHVpbnQxNl90IG1lbV90eXBlOworICAgIHVpbnQxNl90IHBhZDsKKyAgICAv KiBJTiAtIGZpcnN0IHBmbiBpbiByZWdpb24gKi8KKyAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0 X3BmbjsKK307CisKIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgIHVpbnQzMl90IG9wOwogICAgIHVp bnQzMl90IHBhZDsKQEAgLTI2Myw2ICsyODQsNyBAQCBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICAg ICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfaXNhX2lycV9sZXZlbCBzZXRfaXNhX2lycV9sZXZlbDsK ICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgc2V0X3BjaV9saW5r X3JvdXRlOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSBtb2RpZmll ZF9tZW1vcnk7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHNldF9tZW1f dHlwZTsKICAgICB9IHU7CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2h2bV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCA3NmUxYjc4 Li5kN2UyZjEyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCisr KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKQEAgLTk2LDI2ICs5Niw2IEBAIHR5 cGVkZWYgZW51bSB7CiAgICAgSFZNTUVNX2lvcmVxX3NlcnZlcgogfSBodm1tZW1fdHlwZV90Owog Ci0vKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1heSBjaGFuZ2UgaW4gZnV0dXJl LiAqLwotI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQotCi0j ZGVmaW5lIEhWTU9QX3NldF9tZW1fdHlwZSAgICA4Ci0vKiBOb3RpZnkgdGhhdCBhIHJlZ2lvbiBv ZiBtZW1vcnkgaXMgdG8gYmUgdHJlYXRlZCBpbiBhIHNwZWNpZmljIHdheS4gKi8KLXN0cnVjdCB4 ZW5faHZtX3NldF9tZW1fdHlwZSB7Ci0gICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCi0g ICAgZG9taWRfdCBkb21pZDsKLSAgICAvKiBNZW1vcnkgdHlwZSAqLwotICAgIHVpbnQxNl90IGh2 bW1lbV90eXBlOwotICAgIC8qIE51bWJlciBvZiBwYWdlcy4gKi8KLSAgICB1aW50MzJfdCBucjsK LSAgICAvKiBGaXJzdCBwZm4uICovCi0gICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Ci19 OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUgeGVuX2h2bV9zZXRfbWVtX3R5 cGVfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0X21lbV90eXBlX3QpOwot Ci0jZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICov Ci0KIC8qIEhpbnQgZnJvbSBQViBkcml2ZXJzIGZvciBwYWdldGFibGUgZGVzdHJ1Y3Rpb24uICov CiAjZGVmaW5lIEhWTU9QX3BhZ2V0YWJsZV9keWluZyAgICAgICAgOQogc3RydWN0IHhlbl9odm1f cGFnZXRhYmxlX2R5aW5nIHsKZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vz c192ZWN0b3JzIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggMzYx ZTdhYS4uMzgxZjY1OSAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3Zl Y3RvcnMKKysrIGIveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAgLTI2Miw3 ICsyNjIsNyBAQCBjbGFzcyBodm0KICAgICBiaW5kX2lycQogIyBYRU5fRE9NQ1RMX3Bpbl9tZW1f Y2FjaGVhdHRyCiAgICAgY2FjaGVhdHRyCi0jIEhWTU9QX2dldF9tZW1fdHlwZSwgSFZNT1Bfc2V0 X21lbV90eXBlLAorIyBIVk1PUF9nZXRfbWVtX3R5cGUsCiAjIEhWTU9QX3NldF9tZW1fYWNjZXNz LCBIVk1PUF9nZXRfbWVtX2FjY2VzcywgSFZNT1BfcGFnZXRhYmxlX2R5aW5nLAogIyBIVk1PUF9p bmplY3RfdHJhcAogICAgIGh2bWN0bAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK