From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 6/8] dm_op: convert HVMOP_set_mem_type Date: Tue, 17 Jan 2017 17:29:54 +0000 Message-ID: <1484674196-19951-7-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 1cTXa7-0000VS-Cp for xen-devel@lists.xenproject.org; Tue, 17 Jan 2017 17:30:03 +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 List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW1vdmVzIHRoZSBuZWVkIGZvciBoYW5kbGluZyBIVk1PUCByZXN0YXJ0cywg c28gdGhhdAppbmZyYXN0cnVjdHVyZSBpcyByZW1vdmVkLgoKTk9URTogVGhpcyBwYXRjaCBhbHNv IG1vZGlmaWVzIHRoZSB0eXBlIG9mIHRoZSAnbnInIGFyZ3VtZW50IG9mCiAgICAgIHhjX2h2bV9z ZXRfbWVtX3R5cGUoKSBmcm9tIHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZSB0aGUK ICAgICAgdmFsdWUgcGFzc2VkIHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdn ZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTog UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tClJldmlld2VkLWJ5OiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tz b25AZXUuY2l0cml4LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+ CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogRGFuaWVs IERlIEdyYWFmIDxkZ2RlZ3JhQHR5Y2hvLm5zYS5nb3Y+Cgp2NDoKLSBBZGRlZCBpbml0aWFsaXpl cnMgYXMgcmVxdWVzdGVkIGJ5IEphbi4KCnYzOgotIEFkZHJlc3NlZCBtb3JlIGNvbW1lbnRzIGZy b20gSmFuLgoKdjI6Ci0gQWRkcmVzc2VkIHNldmVyYWwgY29tbWVudHMgZnJvbSBKYW4uCi0tLQog dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggICAgICAgfCAgIDIgKy0KIHRvb2xzL2xpYnhj L3hjX21pc2MuYyAgICAgICAgICAgICAgIHwgIDI5ICsrKy0tLS0tCiB4ZW4vYXJjaC94ODYvaHZt L2RtLmMgICAgICAgICAgICAgICB8ICA5MCArKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9h cmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgIHwgMTM2ICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oICAgICAgfCAg MjIgKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oICAgICB8ICAyMCAtLS0t LS0KIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgICAyICstCiA3IGZpbGVz IGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCAxNzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hl bmN0cmwuaAppbmRleCBhNWMyMzRmLi4xMzQzMWJiIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9p bmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAt MTYzNCw3ICsxNjM0LDcgQEAgaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoCiAgKiBBbGxvd2Vk IHR5cGVzIGFyZSBIVk1NRU1fcmFtX3J3LCBIVk1NRU1fcmFtX3JvLCBIVk1NRU1fbW1pb19kbQog ICovCiBpbnQgeGNfaHZtX3NldF9tZW1fdHlwZSgKLSAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9t aWRfdCBkb20sIGh2bW1lbV90eXBlX3QgbWVtdHlwZSwgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50 NjRfdCBucik7CisgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCBodm1tZW1fdHlw ZV90IG1lbXR5cGUsIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDMyX3QgbnIpOwogCiAvKgogICog SW5qZWN0cyBhIGhhcmR3YXJlL3NvZnR3YXJlIENQVSB0cmFwLCB0byB0YWtlIGVmZmVjdCB0aGUg bmV4dCB0aW1lIHRoZSBIVk0gCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19taXNjLmMgYi90 b29scy9saWJ4Yy94Y19taXNjLmMKaW5kZXggNTk3ZGY5OS4uNWIwNmQ2YiAxMDA2NDQKLS0tIGEv dG9vbHMvbGlieGMveGNfbWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21pc2MuYwpAQCAtNTkw LDMwICs1OTAsMjEgQEAgaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoCiB9CiAKIGludCB4Y19o dm1fc2V0X21lbV90eXBlKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaHZt bWVtX3R5cGVfdCBtZW1fdHlwZSwgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50NjRfdCBucikKKyAg ICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGh2bW1lbV90eXBlX3QgbWVtX3R5cGUs IHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDMyX3QgbnIpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNB TExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3NldF9tZW1fdHlwZSwgYXJnKTsKLSAgICBpbnQgcmM7 Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJnLCBzaXplb2Yo KmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsKLSAgICAgICAgUEVSUk9SKCJD b3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1fc2V0X21lbV90eXBlIGh5cGVyY2Fs bCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAgIHN0cnVjdCB4ZW5fZG1fb3Agb3A7 CisgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgKmRhdGE7CiAKLSAgICBhcmctPmRv bWlkICAgICAgICA9IGRvbTsKLSAgICBhcmctPmh2bW1lbV90eXBlICA9IG1lbV90eXBlOwotICAg IGFyZy0+Zmlyc3RfcGZuICAgID0gZmlyc3RfcGZuOwotICAgIGFyZy0+bnIgICAgICAgICAgID0g bnI7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICByYyA9IHhlbmNhbGwy KHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1P UF9zZXRfbWVtX3R5cGUsCi0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FS RyhhcmcpKTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX3NldF9tZW1fdHlwZTsKKyAgICBkYXRhID0g Jm9wLnUuc2V0X21lbV90eXBlOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwg YXJnKTsKKyAgICBkYXRhLT5tZW1fdHlwZSA9IG1lbV90eXBlOworICAgIGRhdGEtPmZpcnN0X3Bm biA9IGZpcnN0X3BmbjsKKyAgICBkYXRhLT5uciA9IG5yOwogCi0gICAgcmV0dXJuIHJjOworICAg IHJldHVybiBkb19kbV9vcCh4Y2gsIGRvbSwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50 IHhjX2h2bV9pbmplY3RfdHJhcCgKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBi L3hlbi9hcmNoL3g4Ni9odm0vZG0uYwppbmRleCBkZDgxMTE2Li5iM2M5MWY4IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0x NTksNiArMTU5LDgyIEBAIHN0YXRpYyBpbnQgbW9kaWZpZWRfbWVtb3J5KHN0cnVjdCBkb21haW4g KmQsIHhlbl9wZm5fdCAqZmlyc3RfcGZuLAogICAgIHJldHVybiByYzsKIH0KIAorc3RhdGljIGJv b2wgYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHAybV90eXBlX3Qgb2xkLCBwMm1fdHlwZV90IG5ldykK K3sKKyAgICByZXR1cm4gcDJtX2lzX3JhbShvbGQpIHx8CisgICAgICAgICAgIChwMm1faXNfaG9s ZShvbGQpICYmIG5ldyA9PSBwMm1fbW1pb19kbSkgfHwKKyAgICAgICAgICAgKG9sZCA9PSBwMm1f aW9yZXFfc2VydmVyICYmIG5ldyA9PSBwMm1fcmFtX3J3KTsKK30KKworc3RhdGljIGludCBzZXRf bWVtX3R5cGUoc3RydWN0IGRvbWFpbiAqZCwgaHZtbWVtX3R5cGVfdCBtZW1fdHlwZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCAqZmlyc3RfcGZuLCB1bnNpZ25lZCBpbnQgKm5y KQoreworICAgIHhlbl9wZm5fdCBsYXN0X3BmbiA9ICpmaXJzdF9wZm4gKyAqbnIgLSAxOworICAg IHVuc2lnbmVkIGludCBpdGVyID0gMDsKKyAgICBpbnQgcmMgPSAwOworCisgICAgLyogSW50ZXJm YWNlIHR5cGVzIHRvIGludGVybmFsIHAybSB0eXBlcyAqLworICAgIHN0YXRpYyBjb25zdCBwMm1f dHlwZV90IG1lbXR5cGVbXSA9IHsKKyAgICAgICAgW0hWTU1FTV9yYW1fcnddICA9IHAybV9yYW1f cncsCisgICAgICAgIFtIVk1NRU1fcmFtX3JvXSAgPSBwMm1fcmFtX3JvLAorICAgICAgICBbSFZN TUVNX21taW9fZG1dID0gcDJtX21taW9fZG0sCisgICAgICAgIFtIVk1NRU1fdW51c2VkXSA9IHAy bV9pbnZhbGlkLAorICAgICAgICBbSFZNTUVNX2lvcmVxX3NlcnZlcl0gPSBwMm1faW9yZXFfc2Vy dmVyCisgICAgfTsKKworICAgIGlmICggKCpmaXJzdF9wZm4gPiBsYXN0X3BmbikgfHwKKyAgICAg ICAgIChsYXN0X3BmbiA+IGRvbWFpbl9nZXRfbWF4aW11bV9ncGZuKGQpKSApCisgICAgICAgIHJl dHVybiAtRUlOVkFMOworCisgICAgaWYgKCBtZW1fdHlwZSA+PSBBUlJBWV9TSVpFKG1lbXR5cGUp IHx8CisgICAgICAgICB1bmxpa2VseShtZW1fdHlwZSA9PSBIVk1NRU1fdW51c2VkKSApCisgICAg ICAgIHJldHVybiAtRUlOVkFMOworCisgICAgd2hpbGUgKCBpdGVyIDwgKm5yICkKKyAgICB7Cisg ICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gKmZpcnN0X3BmbiArIGl0ZXI7CisgICAgICAgIHAy bV90eXBlX3QgdDsKKworICAgICAgICBnZXRfZ2ZuX3Vuc2hhcmUoZCwgcGZuLCAmdCk7CisgICAg ICAgIGlmICggcDJtX2lzX3BhZ2luZyh0KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHB1dF9n Zm4oZCwgcGZuKTsKKyAgICAgICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKGQsIHBmbik7 CisgICAgICAgICAgICByZXR1cm4gLUVBR0FJTjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgg cDJtX2lzX3NoYXJlZCh0KSApCisgICAgICAgICAgICByYyA9IC1FQUdBSU47CisgICAgICAgIGVs c2UgaWYgKCAhYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHQsIG1lbXR5cGVbbWVtX3R5cGVdKSApCisg ICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJjID0g cDJtX2NoYW5nZV90eXBlX29uZShkLCBwZm4sIHQsIG1lbXR5cGVbbWVtX3R5cGVdKTsKKworICAg ICAgICBwdXRfZ2ZuKGQsIHBmbik7CisKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBi cmVhazsKKworICAgICAgICBpdGVyKys7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hlY2sg Zm9yIGNvbnRpbnVhdGlvbiBldmVyeSAyNTZ0aCBpdGVyYXRpb24gYW5kIGlmIHRoZQorICAgICAg ICAgKiBpdGVyYXRpb24gaXMgbm90IHRoZSBsYXN0LgorICAgICAgICAgKi8KKyAgICAgICAgaWYg KCAoaXRlciA8ICpucikgJiYgKChpdGVyICYgMHhmZikgPT0gMCkgJiYKKyAgICAgICAgICAgICBo eXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKKyAgICAgICAgeworICAgICAgICAgICAgKmZpcnN0 X3BmbiArPSBpdGVyOworICAgICAgICAgICAgKm5yIC09IGl0ZXI7CisKKyAgICAgICAgICAgIHJj ID0gLUVSRVNUQVJUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAg ICByZXR1cm4gcmM7Cit9CisKIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAgICAgIHhlbl9k bV9vcF9idWZfdCBidWZzW10pCkBAIC0zMzMsNiArNDA5LDIwIEBAIHN0YXRpYyBpbnQgZG1fb3Ao ZG9taWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBYRU5fRE1P UF9zZXRfbWVtX3R5cGU6CisgICAgeworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1f dHlwZSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5zZXRfbWVtX3R5cGU7CisKKyAgICAgICAg cmMgPSAtRUlOVkFMOworICAgICAgICBpZiAoIGRhdGEtPnBhZCApCisgICAgICAgICAgICBicmVh azsKKworICAgICAgICByYyA9IHNldF9tZW1fdHlwZShkLCBkYXRhLT5tZW1fdHlwZSwgJmRhdGEt PmZpcnN0X3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEtPm5yKTsKKyAgICAg ICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQ UDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAzMmRjNmQ3Li42YjZmM2VlIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAg LTQ4NDYsMTMyICs0ODQ2LDExIEBAIHN0YXRpYyBpbnQgaHZtb3BfZ2V0X21lbV90eXBlKAogICAg IHJldHVybiByYzsKIH0KIAotLyoKLSAqIE5vdGUgdGhhdCB0aGlzIHZhbHVlIGlzIGVmZmVjdGl2 ZWx5IHBhcnQgb2YgdGhlIEFCSSwgZXZlbiBpZiB3ZSBkb24ndCBuZWVkCi0gKiB0byBtYWtlIGl0 IGEgZm9ybWFsIHBhcnQgb2YgaXQ6IEEgZ3Vlc3Qgc3VzcGVuZGVkIGZvciBtaWdyYXRpb24gaW4g dGhlCi0gKiBtaWRkbGUgb2YgYSBjb250aW51YXRpb24gd291bGQgZmFpbCB0byB3b3JrIGlmIHJl c3VtZWQgb24gYSBoeXBlcnZpc29yCi0gKiB1c2luZyBhIGRpZmZlcmVudCB2YWx1ZS4KLSAqLwot I2RlZmluZSBIVk1PUF9vcF9tYXNrIDB4ZmYKLQotc3RhdGljIGJvb2xfdCBodm1fYWxsb3dfcDJt X3R5cGVfY2hhbmdlKHAybV90eXBlX3Qgb2xkLCBwMm1fdHlwZV90IG5ldykKLXsKLSAgICBpZiAo IHAybV9pc19yYW0ob2xkKSB8fAotICAgICAgICAgKHAybV9pc19ob2xlKG9sZCkgJiYgbmV3ID09 IHAybV9tbWlvX2RtKSB8fAotICAgICAgICAgKG9sZCA9PSBwMm1faW9yZXFfc2VydmVyICYmIG5l dyA9PSBwMm1fcmFtX3J3KSApCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgcmV0dXJuIDA7Ci19 Ci0KLXN0YXRpYyBpbnQgaHZtb3Bfc2V0X21lbV90eXBlKAotICAgIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oeGVuX2h2bV9zZXRfbWVtX3R5cGVfdCkgYXJnLAotICAgIHVuc2lnbmVkIGxvbmcgKml0 ZXIpCi17Ci0gICAgdW5zaWduZWQgbG9uZyBzdGFydF9pdGVyID0gKml0ZXI7Ci0gICAgc3RydWN0 IHhlbl9odm1fc2V0X21lbV90eXBlIGE7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQg cmM7Ci0KLSAgICAvKiBJbnRlcmZhY2UgdHlwZXMgdG8gaW50ZXJuYWwgcDJtIHR5cGVzICovCi0g ICAgc3RhdGljIGNvbnN0IHAybV90eXBlX3QgbWVtdHlwZVtdID0gewotICAgICAgICBbSFZNTUVN X3JhbV9yd10gID0gcDJtX3JhbV9ydywKLSAgICAgICAgW0hWTU1FTV9yYW1fcm9dICA9IHAybV9y YW1fcm8sCi0gICAgICAgIFtIVk1NRU1fbW1pb19kbV0gPSBwMm1fbW1pb19kbSwKLSAgICAgICAg W0hWTU1FTV91bnVzZWRdID0gcDJtX2ludmFsaWQsCi0gICAgICAgIFtIVk1NRU1faW9yZXFfc2Vy dmVyXSA9IHAybV9pb3JlcV9zZXJ2ZXIKLSAgICB9OwotCi0gICAgaWYgKCBjb3B5X2Zyb21fZ3Vl c3QoJmEsIGFyZywgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIHJjID0gcmN1 X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChhLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAw ICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlz X2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9j b250cm9sKFhTTV9ETV9QUklWLCBkLCBIVk1PUF9zZXRfbWVtX3R5cGUpOwotICAgIGlmICggcmMg KQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAoIGEubnIg PCBzdGFydF9pdGVyIHx8Ci0gICAgICAgICAoKGEuZmlyc3RfcGZuICsgYS5uciAtIDEpIDwgYS5m aXJzdF9wZm4pIHx8Ci0gICAgICAgICAoKGEuZmlyc3RfcGZuICsgYS5uciAtIDEpID4gZG9tYWlu X2dldF9tYXhpbXVtX2dwZm4oZCkpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICBpZiAoIGEu aHZtbWVtX3R5cGUgPj0gQVJSQVlfU0laRShtZW10eXBlKSB8fAotICAgICAgICAgdW5saWtlbHko YS5odm1tZW1fdHlwZSA9PSBIVk1NRU1fdW51c2VkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0g ICAgd2hpbGUgKCBhLm5yID4gc3RhcnRfaXRlciApCi0gICAgewotICAgICAgICB1bnNpZ25lZCBs b25nIHBmbiA9IGEuZmlyc3RfcGZuICsgc3RhcnRfaXRlcjsKLSAgICAgICAgcDJtX3R5cGVfdCB0 OwotCi0gICAgICAgIGdldF9nZm5fdW5zaGFyZShkLCBwZm4sICZ0KTsKLSAgICAgICAgaWYgKCBw Mm1faXNfcGFnaW5nKHQpICkKLSAgICAgICAgewotICAgICAgICAgICAgcHV0X2dmbihkLCBwZm4p OwotICAgICAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgcGZuKTsKLSAgICAgICAg ICAgIHJjID0gLUVBR0FJTjsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0gICAg ICAgIGlmICggcDJtX2lzX3NoYXJlZCh0KSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHB1dF9n Zm4oZCwgcGZuKTsKLSAgICAgICAgICAgIHJjID0gLUVBR0FJTjsKLSAgICAgICAgICAgIGdvdG8g b3V0OwotICAgICAgICB9Ci0gICAgICAgIGlmICggIWh2bV9hbGxvd19wMm1fdHlwZV9jaGFuZ2Uo dCwgbWVtdHlwZVthLmh2bW1lbV90eXBlXSkgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwdXRf Z2ZuKGQsIHBmbik7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotCi0gICAgICAg IHJjID0gcDJtX2NoYW5nZV90eXBlX29uZShkLCBwZm4sIHQsIG1lbXR5cGVbYS5odm1tZW1fdHlw ZV0pOwotICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7Ci0KLSAgICAgICAgaWYgKCByYyApCi0gICAg ICAgICAgICBnb3RvIG91dDsKLQotICAgICAgICAvKiBDaGVjayBmb3IgY29udGludWF0aW9uIGlm IGl0J3Mgbm90IHRoZSBsYXN0IGludGVyYXRpb24gKi8KLSAgICAgICAgaWYgKCBhLm5yID4gKytz dGFydF9pdGVyICYmICEoc3RhcnRfaXRlciAmIEhWTU9QX29wX21hc2spICYmCi0gICAgICAgICAg ICAgaHlwZXJjYWxsX3ByZWVtcHRfY2hlY2soKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJj ID0gLUVSRVNUQVJUOwotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0g ICAgcmMgPSAwOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAgICppdGVy ID0gc3RhcnRfaXRlcjsKLQotICAgIHJldHVybiByYzsKLX0KLQogbG9uZyBkb19odm1fb3AodW5z aWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiB7Ci0gICAg dW5zaWduZWQgbG9uZyBzdGFydF9pdGVyLCBtYXNrOwogICAgIGxvbmcgcmMgPSAwOwogCi0gICAg c3dpdGNoICggb3AgJiBIVk1PUF9vcF9tYXNrICkKLSAgICB7Ci0gICAgZGVmYXVsdDoKLSAgICAg ICAgbWFzayA9IH4wVUw7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSFZNT1Bfc2V0X21lbV90 eXBlOgotICAgICAgICBtYXNrID0gSFZNT1Bfb3BfbWFzazsKLSAgICAgICAgYnJlYWs7Ci0gICAg fQotCi0gICAgc3RhcnRfaXRlciA9IG9wICYgfm1hc2s7Ci0gICAgc3dpdGNoICggb3AgJj0gbWFz ayApCisgICAgc3dpdGNoICggb3AgKQogICAgIHsKICAgICBjYXNlIEhWTU9QX3NldF9ldnRjaG5f dXBjYWxsX3ZlY3RvcjoKICAgICAgICAgcmMgPSBodm1vcF9zZXRfZXZ0Y2huX3VwY2FsbF92ZWN0 b3IoCkBAIC01MDAyLDEyICs0ODgxLDYgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBv cCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAgICAgICBndWVzdF9o YW5kbGVfY2FzdChhcmcsIHhlbl9odm1fZ2V0X21lbV90eXBlX3QpKTsKICAgICAgICAgYnJlYWs7 CiAKLSAgICBjYXNlIEhWTU9QX3NldF9tZW1fdHlwZToKLSAgICAgICAgcmMgPSBodm1vcF9zZXRf bWVtX3R5cGUoCi0gICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fc2V0 X21lbV90eXBlX3QpLAotICAgICAgICAgICAgJnN0YXJ0X2l0ZXIpOwotICAgICAgICBicmVhazsK LQogICAgIGNhc2UgSFZNT1BfcGFnZXRhYmxlX2R5aW5nOgogICAgIHsKICAgICAgICAgc3RydWN0 IHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nIGE7CkBAIC01MTE2LDEzICs0OTg5LDYgQEAgbG9uZyBk b19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBh cmcpCiAgICAgfQogICAgIH0KIAotICAgIGlmICggcmMgPT0gLUVSRVNUQVJUICkKLSAgICB7Ci0g ICAgICAgIEFTU0VSVCghKHN0YXJ0X2l0ZXIgJiBtYXNrKSk7Ci0gICAgICAgIHJjID0gaHlwZXJj YWxsX2NyZWF0ZV9jb250aW51YXRpb24oX19IWVBFUlZJU09SX2h2bV9vcCwgImxoIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcCB8IHN0YXJ0X2l0ZXIsIGFy Zyk7Ci0gICAgfQotCiAgICAgcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL2RtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5k ZXggODUxNGNhNC4uOGU5YmVmMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9k bV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtMjUyLDYgKzI1 MiwyNyBAQCBzdHJ1Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSB7CiAgICAgdWludDY0X2Fs aWduZWRfdCBmaXJzdF9wZm47CiB9OwogCisvKgorICogWEVOX0RNT1Bfc2V0X21lbV90eXBlOiBO b3RpZnkgdGhhdCBhIHJlZ2lvbiBvZiBtZW1vcnkgaXMgdG8gYmUgdHJlYXRlZAorICogICAgICAg ICAgICAgICAgICAgICAgICBpbiBhIHNwZWNpZmljIHdheS4gKFNlZSBkZWZpbml0aW9uIG9mCisg KiAgICAgICAgICAgICAgICAgICAgICAgIGh2bW1lbV90eXBlX3QpLgorICoKKyAqIE5PVEU6IElu IHRoZSBldmVudCBvZiBhIGNvbnRpbnVhdGlvbiAocmV0dXJuIGNvZGUgLUVSRVNUQVJUKSwgdGhl CisgKiAgICAgICBAZmlyc3RfcGZuIGlzIHNldCB0byB0aGUgdmFsdWUgb2YgdGhlIHBmbiBvZiB0 aGUgcmVtYWluaW5nCisgKiAgICAgICByZWdpb24gYW5kIEBuciByZWR1Y2VkIHRvIHRoZSBzaXpl IG9mIHRoZSByZW1haW5pbmcgcmVnaW9uLgorICovCisjZGVmaW5lIFhFTl9ETU9QX3NldF9tZW1f dHlwZSAxMgorCitzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSB7CisgICAgLyogSU4gLSBu dW1iZXIgb2YgY29udGlndW91cyBwYWdlcyAqLworICAgIHVpbnQzMl90IG5yOworICAgIC8qIElO IC0gbmV3IGh2bW1lbV90eXBlX3Qgb2YgcmVnaW9uICovCisgICAgdWludDE2X3QgbWVtX3R5cGU7 CisgICAgdWludDE2X3QgcGFkOworICAgIC8qIElOIC0gZmlyc3QgcGZuIGluIHJlZ2lvbiAqLwor ICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOworfTsKKwogc3RydWN0IHhlbl9kbV9vcCB7 CiAgICAgdWludDMyX3Qgb3A7CiAgICAgdWludDMyX3QgcGFkOwpAQCAtMjY3LDYgKzI4OCw3IEBA IHN0cnVjdCB4ZW5fZG1fb3AgewogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9pc2FfaXJx X2xldmVsIHNldF9pc2FfaXJxX2xldmVsOwogICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9w Y2lfbGlua19yb3V0ZSBzZXRfcGNpX2xpbmtfcm91dGU7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1f b3BfbW9kaWZpZWRfbWVtb3J5IG1vZGlmaWVkX21lbW9yeTsKKyAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9zZXRfbWVtX3R5cGUgc2V0X21lbV90eXBlOwogICAgIH0gdTsKIH07CiAKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv aHZtL2h2bV9vcC5oCmluZGV4IDc2ZTFiNzguLmQ3ZTJmMTIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vaHZtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1f b3AuaApAQCAtOTYsMjYgKzk2LDYgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBIVk1NRU1faW9yZXFf c2VydmVyCiB9IGh2bW1lbV90eXBlX3Q7CiAKLS8qIEZvbGxvd2luZyB0b29scy1vbmx5IGludGVy ZmFjZXMgbWF5IGNoYW5nZSBpbiBmdXR1cmUuICovCi0jaWYgZGVmaW5lZChfX1hFTl9fKSB8fCBk ZWZpbmVkKF9fWEVOX1RPT0xTX18pCi0KLSNkZWZpbmUgSFZNT1Bfc2V0X21lbV90eXBlICAgIDgK LS8qIE5vdGlmeSB0aGF0IGEgcmVnaW9uIG9mIG1lbW9yeSBpcyB0byBiZSB0cmVhdGVkIGluIGEg c3BlY2lmaWMgd2F5LiAqLwotc3RydWN0IHhlbl9odm1fc2V0X21lbV90eXBlIHsKLSAgICAvKiBE b21haW4gdG8gYmUgdXBkYXRlZC4gKi8KLSAgICBkb21pZF90IGRvbWlkOwotICAgIC8qIE1lbW9y eSB0eXBlICovCi0gICAgdWludDE2X3QgaHZtbWVtX3R5cGU7Ci0gICAgLyogTnVtYmVyIG9mIHBh Z2VzLiAqLwotICAgIHVpbnQzMl90IG5yOwotICAgIC8qIEZpcnN0IHBmbi4gKi8KLSAgICB1aW50 NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX3NldF9t ZW1fdHlwZSB4ZW5faHZtX3NldF9tZW1fdHlwZV90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo eGVuX2h2bV9zZXRfbWVtX3R5cGVfdCk7Ci0KLSNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8 IGRlZmluZWQoX19YRU5fVE9PTFNfXykgKi8KLQogLyogSGludCBmcm9tIFBWIGRyaXZlcnMgZm9y IHBhZ2V0YWJsZSBkZXN0cnVjdGlvbi4gKi8KICNkZWZpbmUgSFZNT1BfcGFnZXRhYmxlX2R5aW5n ICAgICAgICA5CiBzdHJ1Y3QgeGVuX2h2bV9wYWdldGFibGVfZHlpbmcgewpkaWZmIC0tZ2l0IGEv eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycwppbmRleCAzNjFlN2FhLi4zODFmNjU5IDEwMDY0NAotLS0gYS94ZW4v eHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjYyLDcgKzI2Miw3IEBAIGNsYXNzIGh2bQogICAgIGJpbmRf aXJxCiAjIFhFTl9ET01DVExfcGluX21lbV9jYWNoZWF0dHIKICAgICBjYWNoZWF0dHIKLSMgSFZN T1BfZ2V0X21lbV90eXBlLCBIVk1PUF9zZXRfbWVtX3R5cGUsCisjIEhWTU9QX2dldF9tZW1fdHlw ZSwKICMgSFZNT1Bfc2V0X21lbV9hY2Nlc3MsIEhWTU9QX2dldF9tZW1fYWNjZXNzLCBIVk1PUF9w YWdldGFibGVfZHlpbmcsCiAjIEhWTU9QX2luamVjdF90cmFwCiAgICAgaHZtY3RsCi0tIAoyLjEu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=