From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 6/8] dm_op: convert HVMOP_set_mem_type Date: Tue, 6 Dec 2016 13:46:17 +0000 Message-ID: <1481031979-4751-7-git-send-email-paul.durrant@citrix.com> References: <1481031979-4751-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 1cEGQM-0007yC-8e for xen-devel@lists.xenproject.org; Tue, 06 Dec 2016 14:08:50 +0000 In-Reply-To: <1481031979-4751-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 , Andrew Cooper , Ian Jackson , Paul Durrant , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW1vdmVzIHRoZSBuZWVkIGZvciBoYW5kbGluZyBIVk1PUCByZXN0YXJ0cywg c28gdGhhdAppbmZyYXN0cnVjdHVyZSBpcyByZW1vdmVkLgoKTk9URTogVGhpcyBwYXRjaCBhbHNv IG1vZGlmaWVzIHRoZSB0eXBlIG9mIHRoZSAnbnInIGFyZ3VtZW50IG9mCiAgICAgIHhjX2h2bV9z ZXRfbWVtX3R5cGUoKSBmcm9tIHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZSB0aGUK ICAgICAgdmFsdWUgcGFzc2VkIHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdn ZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTog UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0 cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogRGFuaWVsIERlIEdyYWFmIDxkZ2Rl Z3JhQHR5Y2hvLm5zYS5nb3Y+Cgp2MjoKLSBBZGRyZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9t IEphbi4KLS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICB8ICAgMiArLQog dG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICAgICAgfCAgMjkgKysrLS0tLS0KIHhlbi9h cmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAgICAgIHwgIDk1ICsrKysrKysrKysrKysrKysrKysr KysrKysKIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgICAgIHwgMTM2ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9v cC5oICAgICAgfCAgMjIgKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oICAg ICB8ICAyMCAtLS0tLS0KIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIHwgICAy ICstCiA3IGZpbGVzIGNoYW5nZWQsIDEzMCBpbnNlcnRpb25zKCspLCAxNzYgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4 Yy9pbmNsdWRlL3hlbmN0cmwuaAppbmRleCA5OTUwNjkwLi4zMmExZTllIDEwMDY0NAotLS0gYS90 b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hl bmN0cmwuaApAQCAtMTYzNCw3ICsxNjM0LDcgQEAgaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnko CiAgKiBBbGxvd2VkIHR5cGVzIGFyZSBIVk1NRU1fcmFtX3J3LCBIVk1NRU1fcmFtX3JvLCBIVk1N RU1fbW1pb19kbQogICovCiBpbnQgeGNfaHZtX3NldF9tZW1fdHlwZSgKLSAgICB4Y19pbnRlcmZh Y2UgKnhjaCwgZG9taWRfdCBkb20sIGh2bW1lbV90eXBlX3QgbWVtdHlwZSwgdWludDY0X3QgZmly c3RfcGZuLCB1aW50NjRfdCBucik7CisgICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9t LCBodm1tZW1fdHlwZV90IG1lbXR5cGUsIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDMyX3QgbnIp OwogCiAvKgogICogSW5qZWN0cyBhIGhhcmR3YXJlL3NvZnR3YXJlIENQVSB0cmFwLCB0byB0YWtl IGVmZmVjdCB0aGUgbmV4dCB0aW1lIHRoZSBIVk0gCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19taXNjLmMgYi90b29scy9saWJ4Yy94Y19taXNjLmMKaW5kZXggNTk3ZGY5OS4uNWIwNmQ2YiAx MDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfbWlzYy5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX21p c2MuYwpAQCAtNTkwLDMwICs1OTAsMjEgQEAgaW50IHhjX2h2bV9tb2RpZmllZF9tZW1vcnkoCiB9 CiAKIGludCB4Y19odm1fc2V0X21lbV90eXBlKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21p ZF90IGRvbSwgaHZtbWVtX3R5cGVfdCBtZW1fdHlwZSwgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50 NjRfdCBucikKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGh2bW1lbV90eXBl X3QgbWVtX3R5cGUsIHVpbnQ2NF90IGZpcnN0X3BmbiwgdWludDMyX3QgbnIpCiB7Ci0gICAgREVD TEFSRV9IWVBFUkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5faHZtX3NldF9tZW1fdHlwZSwgYXJnKTsK LSAgICBpbnQgcmM7Ci0KLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwg YXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgIHsKLSAgICAg ICAgUEVSUk9SKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciB4Y19odm1fc2V0X21lbV90 eXBlIGh5cGVyY2FsbCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAgIHN0cnVjdCB4 ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9zZXRfbWVtX3R5cGUgKmRhdGE7CiAK LSAgICBhcmctPmRvbWlkICAgICAgICA9IGRvbTsKLSAgICBhcmctPmh2bW1lbV90eXBlICA9IG1l bV90eXBlOwotICAgIGFyZy0+Zmlyc3RfcGZuICAgID0gZmlyc3RfcGZuOwotICAgIGFyZy0+bnIg ICAgICAgICAgID0gbnI7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICBy YyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAg ICAgICAgICBIVk1PUF9zZXRfbWVtX3R5cGUsCi0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExf QlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX3NldF9tZW1fdHlwZTsK KyAgICBkYXRhID0gJm9wLnUuc2V0X21lbV90eXBlOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZl cl9mcmVlKHhjaCwgYXJnKTsKKyAgICBkYXRhLT5tZW1fdHlwZSA9IG1lbV90eXBlOworICAgIGRh dGEtPmZpcnN0X3BmbiA9IGZpcnN0X3BmbjsKKyAgICBkYXRhLT5uciA9IG5yOwogCi0gICAgcmV0 dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gsIGRvbSwgMSwgJm9wLCBzaXplb2Yob3Ap KTsKIH0KIAogaW50IHhjX2h2bV9pbmplY3RfdHJhcCgKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwppbmRleCA0ZTdkOGY5Li4zNzM3Mzcy IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9kbS5jCkBAIC0xOTksNiArMTk5LDg3IEBAIHN0YXRpYyBpbnQgbW9kaWZpZWRfbWVtb3J5KHN0 cnVjdCBkb21haW4gKmQsIHhlbl9wZm5fdCAqZmlyc3RfcGZuLAogICAgIHJldHVybiByYzsKIH0K IAorc3RhdGljIGJvb2wgYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHAybV90eXBlX3Qgb2xkLCBwMm1f dHlwZV90IG5ldykKK3sKKyAgICByZXR1cm4gKCBwMm1faXNfcmFtKG9sZCkgfHwKKyAgICAgICAg ICAgICAocDJtX2lzX2hvbGUob2xkKSAmJiBuZXcgPT0gcDJtX21taW9fZG0pIHx8CisgICAgICAg ICAgICAgKG9sZCA9PSBwMm1faW9yZXFfc2VydmVyICYmIG5ldyA9PSBwMm1fcmFtX3J3KSApOwor fQorCitzdGF0aWMgaW50IHNldF9tZW1fdHlwZShzdHJ1Y3QgZG9tYWluICpkLCBodm1tZW1fdHlw ZV90IG1lbV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90ICpmaXJzdF9w Zm4sIHVuc2lnbmVkIGludCAqbnIpCit7CisgICAgeGVuX3Bmbl90IGxhc3RfcGZuID0gKmZpcnN0 X3BmbiArICpuciAtIDE7CisgICAgdW5zaWduZWQgaW50IGl0ZXI7CisgICAgaW50IHJjOworCisg ICAgLyogSW50ZXJmYWNlIHR5cGVzIHRvIGludGVybmFsIHAybSB0eXBlcyAqLworICAgIHN0YXRp YyBjb25zdCBwMm1fdHlwZV90IG1lbXR5cGVbXSA9IHsKKyAgICAgICAgW0hWTU1FTV9yYW1fcndd ICA9IHAybV9yYW1fcncsCisgICAgICAgIFtIVk1NRU1fcmFtX3JvXSAgPSBwMm1fcmFtX3JvLAor ICAgICAgICBbSFZNTUVNX21taW9fZG1dID0gcDJtX21taW9fZG0sCisgICAgICAgIFtIVk1NRU1f dW51c2VkXSA9IHAybV9pbnZhbGlkLAorICAgICAgICBbSFZNTUVNX2lvcmVxX3NlcnZlcl0gPSBw Mm1faW9yZXFfc2VydmVyCisgICAgfTsKKworICAgIGlmICggKCpmaXJzdF9wZm4gPiBsYXN0X3Bm bikgfHwKKyAgICAgICAgIChsYXN0X3BmbiA+IGRvbWFpbl9nZXRfbWF4aW11bV9ncGZuKGQpKSAp CisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCBtZW1fdHlwZSA+PSBBUlJBWV9T SVpFKG1lbXR5cGUpIHx8CisgICAgICAgICB1bmxpa2VseShtZW1fdHlwZSA9PSBIVk1NRU1fdW51 c2VkKSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaXRlciA9IDA7CisgICAgcmMg PSAwOworICAgIHdoaWxlICggaXRlciA8ICpuciApCisgICAgeworICAgICAgICB1bnNpZ25lZCBs b25nIHBmbiA9ICpmaXJzdF9wZm4gKyBpdGVyOworICAgICAgICBwMm1fdHlwZV90IHQ7CisKKyAg ICAgICAgZ2V0X2dmbl91bnNoYXJlKGQsIHBmbiwgJnQpOworICAgICAgICBpZiAoIHAybV9pc19w YWdpbmcodCkgKQorICAgICAgICB7CisgICAgICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7CisgICAg ICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBwZm4pOworICAgICAgICAgICAgcmV0 dXJuIC1FQUdBSU47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIHAybV9pc19zaGFyZWQodCkg KQorICAgICAgICAgICAgcmMgPSAtRUFHQUlOOworICAgICAgICBlbHNlIGlmICggIWFsbG93X3Ay bV90eXBlX2NoYW5nZSh0LCBtZW10eXBlW21lbV90eXBlXSkgKQorICAgICAgICAgICAgcmMgPSAt RUlOVkFMOworICAgICAgICBlbHNlCisgICAgICAgICAgICByYyA9IHAybV9jaGFuZ2VfdHlwZV9v bmUoZCwgcGZuLCB0LCBtZW10eXBlW21lbV90eXBlXSk7CisKKyAgICAgICAgcHV0X2dmbihkLCBw Zm4pOworCisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg aXRlcisrOworCisgICAgICAgIC8qCisgICAgICAgICAqIENoZWNrIGZvciBjb250aW51YXRpb24g ZXZlcnkgMjU2dGggaXRlcmF0aW9uIGFuZCBpZiB0aGUKKyAgICAgICAgICogaXRlcmF0aW9uIGlz IG5vdCB0aGUgbGFzdC4KKyAgICAgICAgICovCisgICAgICAgIGlmICggKGl0ZXIgPCAqbnIpICYm ICgoaXRlciAmIDB4ZmYpID09IDApICYmCisgICAgICAgICAgICAgaHlwZXJjYWxsX3ByZWVtcHRf Y2hlY2soKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOworICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIHJjID09IC1FUkVTVEFS VCApCisgICAgeworICAgICAgICAqZmlyc3RfcGZuICs9IGl0ZXI7CisgICAgICAgICpuciAtPSBp dGVyOworICAgIH0KKworICAgIHJldHVybiByYzsKK30KKwogbG9uZyBkb19kbV9vcChkb21pZF90 IGRvbWlkLAogICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfYnVmcywKICAgICAgICAgICAg ICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG1fb3BfYnVmX3QpIGJ1ZnMpCkBAIC0zODQs NiArNDY1LDIwIEBAIGxvbmcgZG9fZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7 CiAgICAgfQogCisgICAgY2FzZSBYRU5fRE1PUF9zZXRfbWVtX3R5cGU6CisgICAgeworICAgICAg ICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSAqZGF0YSA9CisgICAgICAgICAgICAmb3Au dS5zZXRfbWVtX3R5cGU7CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAoIGRh dGEtPnBhZCApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICByYyA9IHNldF9tZW1fdHlw ZShkLCBkYXRhLT5tZW1fdHlwZSwgJmRhdGEtPmZpcnN0X3BmbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgJmRhdGEtPm5yKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVs dDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAz NzYwZTBiLi40YTI0ZTRlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTUyNjYsMTMyICs1MjY2LDExIEBAIHN0YXRpYyBp bnQgaHZtb3BfZ2V0X21lbV90eXBlKAogICAgIHJldHVybiByYzsKIH0KIAotLyoKLSAqIE5vdGUg dGhhdCB0aGlzIHZhbHVlIGlzIGVmZmVjdGl2ZWx5IHBhcnQgb2YgdGhlIEFCSSwgZXZlbiBpZiB3 ZSBkb24ndCBuZWVkCi0gKiB0byBtYWtlIGl0IGEgZm9ybWFsIHBhcnQgb2YgaXQ6IEEgZ3Vlc3Qg c3VzcGVuZGVkIGZvciBtaWdyYXRpb24gaW4gdGhlCi0gKiBtaWRkbGUgb2YgYSBjb250aW51YXRp b24gd291bGQgZmFpbCB0byB3b3JrIGlmIHJlc3VtZWQgb24gYSBoeXBlcnZpc29yCi0gKiB1c2lu ZyBhIGRpZmZlcmVudCB2YWx1ZS4KLSAqLwotI2RlZmluZSBIVk1PUF9vcF9tYXNrIDB4ZmYKLQot c3RhdGljIGJvb2xfdCBodm1fYWxsb3dfcDJtX3R5cGVfY2hhbmdlKHAybV90eXBlX3Qgb2xkLCBw Mm1fdHlwZV90IG5ldykKLXsKLSAgICBpZiAoIHAybV9pc19yYW0ob2xkKSB8fAotICAgICAgICAg KHAybV9pc19ob2xlKG9sZCkgJiYgbmV3ID09IHAybV9tbWlvX2RtKSB8fAotICAgICAgICAgKG9s ZCA9PSBwMm1faW9yZXFfc2VydmVyICYmIG5ldyA9PSBwMm1fcmFtX3J3KSApCi0gICAgICAgIHJl dHVybiAxOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaHZtb3Bfc2V0X21lbV90 eXBlKAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9zZXRfbWVtX3R5cGVfdCkg YXJnLAotICAgIHVuc2lnbmVkIGxvbmcgKml0ZXIpCi17Ci0gICAgdW5zaWduZWQgbG9uZyBzdGFy dF9pdGVyID0gKml0ZXI7Ci0gICAgc3RydWN0IHhlbl9odm1fc2V0X21lbV90eXBlIGE7Ci0gICAg c3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICAvKiBJbnRlcmZhY2UgdHlwZXMg dG8gaW50ZXJuYWwgcDJtIHR5cGVzICovCi0gICAgc3RhdGljIGNvbnN0IHAybV90eXBlX3QgbWVt dHlwZVtdID0gewotICAgICAgICBbSFZNTUVNX3JhbV9yd10gID0gcDJtX3JhbV9ydywKLSAgICAg ICAgW0hWTU1FTV9yYW1fcm9dICA9IHAybV9yYW1fcm8sCi0gICAgICAgIFtIVk1NRU1fbW1pb19k bV0gPSBwMm1fbW1pb19kbSwKLSAgICAgICAgW0hWTU1FTV91bnVzZWRdID0gcDJtX2ludmFsaWQs Ci0gICAgICAgIFtIVk1NRU1faW9yZXFfc2VydmVyXSA9IHAybV9pb3JlcV9zZXJ2ZXIKLSAgICB9 OwotCi0gICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJmEsIGFyZywgMSkgKQotICAgICAgICByZXR1 cm4gLUVGQVVMVDsKLQotICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChhLmRv bWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAg cmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3Rv IG91dDsKLQotICAgIHJjID0geHNtX2h2bV9jb250cm9sKFhTTV9ETV9QUklWLCBkLCBIVk1PUF9z ZXRfbWVtX3R5cGUpOwotICAgIGlmICggcmMgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJj ID0gLUVJTlZBTDsKLSAgICBpZiAoIGEubnIgPCBzdGFydF9pdGVyIHx8Ci0gICAgICAgICAoKGEu Zmlyc3RfcGZuICsgYS5uciAtIDEpIDwgYS5maXJzdF9wZm4pIHx8Ci0gICAgICAgICAoKGEuZmly c3RfcGZuICsgYS5uciAtIDEpID4gZG9tYWluX2dldF9tYXhpbXVtX2dwZm4oZCkpICkKLSAgICAg ICAgZ290byBvdXQ7Ci0KLSAgICBpZiAoIGEuaHZtbWVtX3R5cGUgPj0gQVJSQVlfU0laRShtZW10 eXBlKSB8fAotICAgICAgICAgdW5saWtlbHkoYS5odm1tZW1fdHlwZSA9PSBIVk1NRU1fdW51c2Vk KSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgd2hpbGUgKCBhLm5yID4gc3RhcnRfaXRlciAp Ci0gICAgewotICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IGEuZmlyc3RfcGZuICsgc3RhcnRf aXRlcjsKLSAgICAgICAgcDJtX3R5cGVfdCB0OwotCi0gICAgICAgIGdldF9nZm5fdW5zaGFyZShk LCBwZm4sICZ0KTsKLSAgICAgICAgaWYgKCBwMm1faXNfcGFnaW5nKHQpICkKLSAgICAgICAgewot ICAgICAgICAgICAgcHV0X2dmbihkLCBwZm4pOwotICAgICAgICAgICAgcDJtX21lbV9wYWdpbmdf cG9wdWxhdGUoZCwgcGZuKTsKLSAgICAgICAgICAgIHJjID0gLUVBR0FJTjsKLSAgICAgICAgICAg IGdvdG8gb3V0OwotICAgICAgICB9Ci0gICAgICAgIGlmICggcDJtX2lzX3NoYXJlZCh0KSApCi0g ICAgICAgIHsKLSAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKLSAgICAgICAgICAgIHJjID0g LUVBR0FJTjsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0gICAgICAgIGlmICgg IWh2bV9hbGxvd19wMm1fdHlwZV9jaGFuZ2UodCwgbWVtdHlwZVthLmh2bW1lbV90eXBlXSkgKQot ICAgICAgICB7Ci0gICAgICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7Ci0gICAgICAgICAgICBnb3Rv IG91dDsKLSAgICAgICAgfQotCi0gICAgICAgIHJjID0gcDJtX2NoYW5nZV90eXBlX29uZShkLCBw Zm4sIHQsIG1lbXR5cGVbYS5odm1tZW1fdHlwZV0pOwotICAgICAgICBwdXRfZ2ZuKGQsIHBmbik7 Ci0KLSAgICAgICAgaWYgKCByYyApCi0gICAgICAgICAgICBnb3RvIG91dDsKLQotICAgICAgICAv KiBDaGVjayBmb3IgY29udGludWF0aW9uIGlmIGl0J3Mgbm90IHRoZSBsYXN0IGludGVyYXRpb24g Ki8KLSAgICAgICAgaWYgKCBhLm5yID4gKytzdGFydF9pdGVyICYmICEoc3RhcnRfaXRlciAmIEhW TU9QX29wX21hc2spICYmCi0gICAgICAgICAgICAgaHlwZXJjYWxsX3ByZWVtcHRfY2hlY2soKSAp Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOwotICAgICAgICAgICAgZ290 byBvdXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmMgPSAwOwotCi0gb3V0OgotICAgIHJjdV91 bmxvY2tfZG9tYWluKGQpOwotICAgICppdGVyID0gc3RhcnRfaXRlcjsKLQotICAgIHJldHVybiBy YzsKLX0KLQogbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh2b2lkKSBhcmcpCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBzdGFydF9pdGVyLCBtYXNr OwogICAgIGxvbmcgcmMgPSAwOwogCi0gICAgc3dpdGNoICggb3AgJiBIVk1PUF9vcF9tYXNrICkK LSAgICB7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgbWFzayA9IH4wVUw7Ci0gICAgICAgIGJyZWFr OwotICAgIGNhc2UgSFZNT1Bfc2V0X21lbV90eXBlOgotICAgICAgICBtYXNrID0gSFZNT1Bfb3Bf bWFzazsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgc3RhcnRfaXRlciA9IG9wICYgfm1h c2s7Ci0gICAgc3dpdGNoICggb3AgJj0gbWFzayApCisgICAgc3dpdGNoICggb3AgKQogICAgIHsK ICAgICBjYXNlIEhWTU9QX3NldF9ldnRjaG5fdXBjYWxsX3ZlY3RvcjoKICAgICAgICAgcmMgPSBo dm1vcF9zZXRfZXZ0Y2huX3VwY2FsbF92ZWN0b3IoCkBAIC01NDIyLDEyICs1MzAxLDYgQEAgbG9u ZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lk KSBhcmcpCiAgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1fZ2V0X21l bV90eXBlX3QpKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIEhWTU9QX3NldF9tZW1fdHlw ZToKLSAgICAgICAgcmMgPSBodm1vcF9zZXRfbWVtX3R5cGUoCi0gICAgICAgICAgICBndWVzdF9o YW5kbGVfY2FzdChhcmcsIHhlbl9odm1fc2V0X21lbV90eXBlX3QpLAotICAgICAgICAgICAgJnN0 YXJ0X2l0ZXIpOwotICAgICAgICBicmVhazsKLQogICAgIGNhc2UgSFZNT1BfcGFnZXRhYmxlX2R5 aW5nOgogICAgIHsKICAgICAgICAgc3RydWN0IHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nIGE7CkBA IC01NTM2LDEzICs1NDA5LDYgQEAgbG9uZyBkb19odm1fb3AodW5zaWduZWQgbG9uZyBvcCwgWEVO X0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgfQogICAgIH0KIAotICAgIGlmICgg cmMgPT0gLUVSRVNUQVJUICkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghKHN0YXJ0X2l0ZXIgJiBt YXNrKSk7Ci0gICAgICAgIHJjID0gaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRpb24oX19IWVBF UlZJU09SX2h2bV9vcCwgImxoIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvcCB8IHN0YXJ0X2l0ZXIsIGFyZyk7Ci0gICAgfQotCiAgICAgcmV0dXJuIHJjOwog fQogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggYi94ZW4vaW5j bHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKaW5kZXggMWExYjc4NC4uNGI3NGM5MSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vZG1fb3AuaApAQCAtMjUxLDYgKzI1MSwyNyBAQCBzdHJ1Y3QgeGVuX2RtX29wX21vZGlm aWVkX21lbW9yeSB7CiAgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47CiB9OwogCisvKgor ICogWEVOX0RNT1Bfc2V0X21lbV90eXBlOiBOb3RpZnkgdGhhdCBhIHJlZ2lvbiBvZiBtZW1vcnkg aXMgdG8gYmUgdHJlYXRlZAorICogICAgICAgICAgICAgICAgICAgICAgICBpbiBhIHNwZWNpZmlj IHdheS4gKFNlZSBkZWZpbml0aW9uIG9mCisgKiAgICAgICAgICAgICAgICAgICAgICAgIGh2bW1l bV90eXBlX3QpLgorICoKKyAqIE5PVEU6IEluIHRoZSBldmVudCBvZiBhIGNvbnRpbnVhdGlvbiAo cmV0dXJuIGNvZGUgLUVSRVNUQVJUKSwgdGhlCisgKiAgICAgICBAZmlyc3RfcGZuIGlzIHNldCB0 byB0aGUgdmFsdWUgb2YgdGhlIHBmbiBvZiB0aGUgcmVtYWluaW5nCisgKiAgICAgICByZWdpb24g YW5kIEBuciByZWR1Y2VkIHRvIHRoZSBzaXplIG9mIHRoZSByZW1haW5pbmcgcmVnaW9uLgorICov CisjZGVmaW5lIFhFTl9ETU9QX3NldF9tZW1fdHlwZSAxMgorCitzdHJ1Y3QgeGVuX2RtX29wX3Nl dF9tZW1fdHlwZSB7CisgICAgLyogSU4gLSBudW1iZXIgb2YgY29udGlndW91cyBwYWdlcyAqLwor ICAgIHVpbnQzMl90IG5yOworICAgIC8qIElOIC0gbmV3IGh2bW1lbV90eXBlX3Qgb2YgcmVnaW9u ICovCisgICAgdWludDE2X3QgbWVtX3R5cGU7CisgICAgdWludDE2X3QgcGFkOworICAgIC8qIElO IC0gZmlyc3QgcGZuIGluIHJlZ2lvbiAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZu OworfTsKKwogCiBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKQEAgLTI2Nyw2 ICsyODgsNyBAQCBzdHJ1Y3QgeGVuX2RtX29wIHsKICAgICAgICAgc3RydWN0IHhlbl9kbV9vcF9z ZXRfaXNhX2lycV9sZXZlbCBzZXRfaXNhX2lycV9sZXZlbDsKICAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9zZXRfcGNpX2xpbmtfcm91dGUgc2V0X3BjaV9saW5rX3JvdXRlOwogICAgICAgICBzdHJ1 Y3QgeGVuX2RtX29wX21vZGlmaWVkX21lbW9yeSBtb2RpZmllZF9tZW1vcnk7CisgICAgICAgIHN0 cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHNldF9tZW1fdHlwZTsKICAgICB9IHU7CiB9Owog CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oIGIveGVuL2luY2x1 ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCA3NmUxYjc4Li5kN2UyZjEyIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vaHZtX29wLmgKQEAgLTk2LDI2ICs5Niw2IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgSFZN TUVNX2lvcmVxX3NlcnZlcgogfSBodm1tZW1fdHlwZV90OwogCi0vKiBGb2xsb3dpbmcgdG9vbHMt b25seSBpbnRlcmZhY2VzIG1heSBjaGFuZ2UgaW4gZnV0dXJlLiAqLwotI2lmIGRlZmluZWQoX19Y RU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKQotCi0jZGVmaW5lIEhWTU9QX3NldF9tZW1f dHlwZSAgICA4Ci0vKiBOb3RpZnkgdGhhdCBhIHJlZ2lvbiBvZiBtZW1vcnkgaXMgdG8gYmUgdHJl YXRlZCBpbiBhIHNwZWNpZmljIHdheS4gKi8KLXN0cnVjdCB4ZW5faHZtX3NldF9tZW1fdHlwZSB7 Ci0gICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCi0gICAgZG9taWRfdCBkb21pZDsKLSAg ICAvKiBNZW1vcnkgdHlwZSAqLwotICAgIHVpbnQxNl90IGh2bW1lbV90eXBlOwotICAgIC8qIE51 bWJlciBvZiBwYWdlcy4gKi8KLSAgICB1aW50MzJfdCBucjsKLSAgICAvKiBGaXJzdCBwZm4uICov Ci0gICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Ci19OwotdHlwZWRlZiBzdHJ1Y3QgeGVu X2h2bV9zZXRfbWVtX3R5cGUgeGVuX2h2bV9zZXRfbWVtX3R5cGVfdDsKLURFRklORV9YRU5fR1VF U1RfSEFORExFKHhlbl9odm1fc2V0X21lbV90eXBlX3QpOwotCi0jZW5kaWYgLyogZGVmaW5lZChf X1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCi0KIC8qIEhpbnQgZnJvbSBQViBk cml2ZXJzIGZvciBwYWdldGFibGUgZGVzdHJ1Y3Rpb24uICovCiAjZGVmaW5lIEhWTU9QX3BhZ2V0 YWJsZV9keWluZyAgICAgICAgOQogc3RydWN0IHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nIHsKZGlm ZiAtLWdpdCBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzIGIveGVuL3hzbS9m bGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKaW5kZXggMjA0MWNhNS4uMTI1MjEwYiAxMDA2NDQK LS0tIGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKKysrIGIveGVuL3hzbS9m bGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMKQEAgLTI2MCw3ICsyNjAsNyBAQCBjbGFzcyBodm0K ICAgICBiaW5kX2lycQogIyBYRU5fRE9NQ1RMX3Bpbl9tZW1fY2FjaGVhdHRyCiAgICAgY2FjaGVh dHRyCi0jIEhWTU9QX2dldF9tZW1fdHlwZSwgSFZNT1Bfc2V0X21lbV90eXBlLAorIyBIVk1PUF9n ZXRfbWVtX3R5cGUsCiAjIEhWTU9QX3NldF9tZW1fYWNjZXNzLCBIVk1PUF9nZXRfbWVtX2FjY2Vz cywgSFZNT1BfcGFnZXRhYmxlX2R5aW5nLAogIyBIVk1PUF9pbmplY3RfdHJhcAogICAgIGh2bWN0 bAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK