From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v6 6/8] dm_op: convert HVMOP_set_mem_type Date: Mon, 23 Jan 2017 10:01:02 +0000 Message-ID: <1485165664-19253-7-git-send-email-paul.durrant@citrix.com> References: <1485165664-19253-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 1cVbRA-0006i2-8c for xen-devel@lists.xenproject.org; Mon, 23 Jan 2017 10:01:20 +0000 In-Reply-To: <1485165664-19253-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: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCByZW1vdmVzIHRoZSBuZWVkIGZvciBoYW5kbGluZyBIVk1PUCByZXN0YXJ0cywg c28gdGhhdAppbmZyYXN0cnVjdHVyZSBpcyByZW1vdmVkLgoKTk9URTogVGhpcyBwYXRjaCBhbHNv IG1vZGlmaWVzIHRoZSB0eXBlIG9mIHRoZSAnbnInIGFyZ3VtZW50IG9mCiAgICAgIHhjX2h2bV9z ZXRfbWVtX3R5cGUoKSBmcm9tIHVpbnQ2NF90IHRvIHVpbnQzMl90LiBJbiBwcmFjdGljZSB0aGUK ICAgICAgdmFsdWUgcGFzc2VkIHdhcyBhbHdheXMgdHJ1bmNhdGVkIHRvIDMyIGJpdHMuCgpTdWdn ZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTog UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNp dHJpeC5jb20+CkFja2VkLWJ5OiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdv dj4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ Ci0tLQpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cgp2NjoKLSBQ YXNzIGJ5IHJlZmVyZW5jZSBhcyByZXF1ZXN0ZWQgYnkgQW5keS4KLSBNb2RpZnkgY29uc3Rfb3Ag YXBwcm9wcmlhdGVseS4KCnY0OgotIEFkZGVkIGluaXRpYWxpemVycyBhcyByZXF1ZXN0ZWQgYnkg SmFuLgoKdjM6Ci0gQWRkcmVzc2VkIG1vcmUgY29tbWVudHMgZnJvbSBKYW4uCgp2MjoKLSBBZGRy ZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9tIEphbi4KLS0tCiB0b29scy9saWJ4Yy9pbmNsdWRl L3hlbmN0cmwuaCAgICAgICB8ICAgMiArLQogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAg ICAgICAgfCAgMjkgKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAgICAg IHwgIDkxICsrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAg ICAgICAgICAgICAgfCAxMzYgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4 ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAgICB8ICAyMiArKysrKysKIHhlbi9pbmNs dWRlL3B1YmxpYy9odm0vaHZtX29wLmggICAgIHwgIDIwIC0tLS0tLQogeGVuL3hzbS9mbGFzay9w b2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgIDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2Vy dGlvbnMoKyksIDE3NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IGE1YzIz NGYuLjEzNDMxYmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCisr KyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xNjM0LDcgKzE2MzQsNyBAQCBp bnQgeGNfaHZtX21vZGlmaWVkX21lbW9yeSgKICAqIEFsbG93ZWQgdHlwZXMgYXJlIEhWTU1FTV9y YW1fcncsIEhWTU1FTV9yYW1fcm8sIEhWTU1FTV9tbWlvX2RtCiAgKi8KIGludCB4Y19odm1fc2V0 X21lbV90eXBlKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaHZtbWVtX3R5 cGVfdCBtZW10eXBlLCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQ2NF90IG5yKTsKKyAgICB4Y19p bnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGh2bW1lbV90eXBlX3QgbWVtdHlwZSwgdWludDY0 X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBucik7CiAKIC8qCiAgKiBJbmplY3RzIGEgaGFyZHdhcmUv c29mdHdhcmUgQ1BVIHRyYXAsIHRvIHRha2UgZWZmZWN0IHRoZSBuZXh0IHRpbWUgdGhlIEhWTSAK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xpYnhjL3hjX21pc2Mu YwppbmRleCA1OTdkZjk5Li41YjA2ZDZiIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19taXNj LmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC01OTAsMzAgKzU5MCwyMSBAQCBpbnQg eGNfaHZtX21vZGlmaWVkX21lbW9yeSgKIH0KIAogaW50IHhjX2h2bV9zZXRfbWVtX3R5cGUoCi0g ICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCBodm1tZW1fdHlwZV90IG1lbV90eXBl LCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQ2NF90IG5yKQorICAgIHhjX2ludGVyZmFjZSAqeGNo LCBkb21pZF90IGRvbSwgaHZtbWVtX3R5cGVfdCBtZW1fdHlwZSwgdWludDY0X3QgZmlyc3RfcGZu LCB1aW50MzJfdCBucikKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoc3RydWN0IHhl bl9odm1fc2V0X21lbV90eXBlLCBhcmcpOwotICAgIGludCByYzsKLQotICAgIGFyZyA9IHhjX2h5 cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBh cmcgPT0gTlVMTCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBhbGxvY2F0ZSBt ZW1vcnkgZm9yIHhjX2h2bV9zZXRfbWVtX3R5cGUgaHlwZXJjYWxsIik7Ci0gICAgICAgIHJldHVy biAtMTsKLSAgICB9CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2Rt X29wX3NldF9tZW1fdHlwZSAqZGF0YTsKIAotICAgIGFyZy0+ZG9taWQgICAgICAgID0gZG9tOwot ICAgIGFyZy0+aHZtbWVtX3R5cGUgID0gbWVtX3R5cGU7Ci0gICAgYXJnLT5maXJzdF9wZm4gICAg PSBmaXJzdF9wZm47Ci0gICAgYXJnLT5uciAgICAgICAgICAgPSBucjsKKyAgICBtZW1zZXQoJm9w LCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBF UlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX3NldF9tZW1fdHlwZSwKLSAg ICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOworICAgIG9wLm9w ID0gWEVOX0RNT1Bfc2V0X21lbV90eXBlOworICAgIGRhdGEgPSAmb3AudS5zZXRfbWVtX3R5cGU7 CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOworICAgIGRhdGEtPm1l bV90eXBlID0gbWVtX3R5cGU7CisgICAgZGF0YS0+Zmlyc3RfcGZuID0gZmlyc3RfcGZuOworICAg IGRhdGEtPm5yID0gbnI7CiAKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGRvX2RtX29wKHhj aCwgZG9tLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBpbnQgeGNfaHZtX2luamVjdF90cmFw KApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2FyY2gveDg2L2h2bS9k bS5jCmluZGV4IGUyOGJkYTQuLmNjNjhiYTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0v ZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTE2MSw2ICsxNjEsODIgQEAgc3Rh dGljIGludCBtb2RpZmllZF9tZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gcmM7 CiB9CiAKK3N0YXRpYyBib29sIGFsbG93X3AybV90eXBlX2NoYW5nZShwMm1fdHlwZV90IG9sZCwg cDJtX3R5cGVfdCBuZXcpCit7CisgICAgcmV0dXJuIHAybV9pc19yYW0ob2xkKSB8fAorICAgICAg ICAgICAocDJtX2lzX2hvbGUob2xkKSAmJiBuZXcgPT0gcDJtX21taW9fZG0pIHx8CisgICAgICAg ICAgIChvbGQgPT0gcDJtX2lvcmVxX3NlcnZlciAmJiBuZXcgPT0gcDJtX3JhbV9ydyk7Cit9CisK K3N0YXRpYyBpbnQgc2V0X21lbV90eXBlKHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSAqZGF0YSkKK3sKKyAgICB4 ZW5fcGZuX3QgbGFzdF9wZm4gPSBkYXRhLT5maXJzdF9wZm4gKyBkYXRhLT5uciAtIDE7CisgICAg dW5zaWduZWQgaW50IGl0ZXIgPSAwOworICAgIGludCByYyA9IDA7CisKKyAgICAvKiBJbnRlcmZh Y2UgdHlwZXMgdG8gaW50ZXJuYWwgcDJtIHR5cGVzICovCisgICAgc3RhdGljIGNvbnN0IHAybV90 eXBlX3QgbWVtdHlwZVtdID0geworICAgICAgICBbSFZNTUVNX3JhbV9yd10gID0gcDJtX3JhbV9y dywKKyAgICAgICAgW0hWTU1FTV9yYW1fcm9dICA9IHAybV9yYW1fcm8sCisgICAgICAgIFtIVk1N RU1fbW1pb19kbV0gPSBwMm1fbW1pb19kbSwKKyAgICAgICAgW0hWTU1FTV91bnVzZWRdID0gcDJt X2ludmFsaWQsCisgICAgICAgIFtIVk1NRU1faW9yZXFfc2VydmVyXSA9IHAybV9pb3JlcV9zZXJ2 ZXIsCisgICAgfTsKKworICAgIGlmICggKGRhdGEtPmZpcnN0X3BmbiA+IGxhc3RfcGZuKSB8fAor ICAgICAgICAgKGxhc3RfcGZuID4gZG9tYWluX2dldF9tYXhpbXVtX2dwZm4oZCkpICkKKyAgICAg ICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIGRhdGEtPm1lbV90eXBlID49IEFSUkFZX1NJ WkUobWVtdHlwZSkgfHwKKyAgICAgICAgIHVubGlrZWx5KGRhdGEtPm1lbV90eXBlID09IEhWTU1F TV91bnVzZWQpICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICB3aGlsZSAoIGl0ZXIg PCBkYXRhLT5uciApCisgICAgeworICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IGRhdGEtPmZp cnN0X3BmbiArIGl0ZXI7CisgICAgICAgIHAybV90eXBlX3QgdDsKKworICAgICAgICBnZXRfZ2Zu X3Vuc2hhcmUoZCwgcGZuLCAmdCk7CisgICAgICAgIGlmICggcDJtX2lzX3BhZ2luZyh0KSApCisg ICAgICAgIHsKKyAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKKyAgICAgICAgICAgIHAybV9t ZW1fcGFnaW5nX3BvcHVsYXRlKGQsIHBmbik7CisgICAgICAgICAgICByZXR1cm4gLUVBR0FJTjsK KyAgICAgICAgfQorCisgICAgICAgIGlmICggcDJtX2lzX3NoYXJlZCh0KSApCisgICAgICAgICAg ICByYyA9IC1FQUdBSU47CisgICAgICAgIGVsc2UgaWYgKCAhYWxsb3dfcDJtX3R5cGVfY2hhbmdl KHQsIG1lbXR5cGVbZGF0YS0+bWVtX3R5cGVdKSApCisgICAgICAgICAgICByYyA9IC1FSU5WQUw7 CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJjID0gcDJtX2NoYW5nZV90eXBlX29uZShkLCBw Zm4sIHQsIG1lbXR5cGVbZGF0YS0+bWVtX3R5cGVdKTsKKworICAgICAgICBwdXRfZ2ZuKGQsIHBm bik7CisKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBp dGVyKys7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hlY2sgZm9yIGNvbnRpbnVhdGlvbiBl dmVyeSAyNTZ0aCBpdGVyYXRpb24gYW5kIGlmIHRoZQorICAgICAgICAgKiBpdGVyYXRpb24gaXMg bm90IHRoZSBsYXN0LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAoaXRlciA8IGRhdGEtPm5y KSAmJiAoKGl0ZXIgJiAweGZmKSA9PSAwKSAmJgorICAgICAgICAgICAgIGh5cGVyY2FsbF9wcmVl bXB0X2NoZWNrKCkgKQorICAgICAgICB7CisgICAgICAgICAgICBkYXRhLT5maXJzdF9wZm4gKz0g aXRlcjsKKyAgICAgICAgICAgIGRhdGEtPm5yIC09IGl0ZXI7CisKKyAgICAgICAgICAgIHJjID0g LUVSRVNUQVJUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBy ZXR1cm4gcmM7Cit9CisKIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAgICAgIHhlbl9kbV9v cF9idWZfdCBidWZzW10pCkBAIC0zNDIsNiArNDE4LDIxIEBAIHN0YXRpYyBpbnQgZG1fb3AoZG9t aWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBYRU5fRE1PUF9z ZXRfbWVtX3R5cGU6CisgICAgeworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlw ZSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5zZXRfbWVtX3R5cGU7CisKKyAgICAgICAgY29u c3Rfb3AgPSBmYWxzZTsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICggZGF0 YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJjID0gc2V0X21lbV90eXBl KGQsIGRhdGEpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZhdWx0OgogICAgICAg ICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDMyZGM2ZDcuLjZi NmYzZWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9odm0uYwpAQCAtNDg0NiwxMzIgKzQ4NDYsMTEgQEAgc3RhdGljIGludCBodm1vcF9n ZXRfbWVtX3R5cGUoCiAgICAgcmV0dXJuIHJjOwogfQogCi0vKgotICogTm90ZSB0aGF0IHRoaXMg dmFsdWUgaXMgZWZmZWN0aXZlbHkgcGFydCBvZiB0aGUgQUJJLCBldmVuIGlmIHdlIGRvbid0IG5l ZWQKLSAqIHRvIG1ha2UgaXQgYSBmb3JtYWwgcGFydCBvZiBpdDogQSBndWVzdCBzdXNwZW5kZWQg Zm9yIG1pZ3JhdGlvbiBpbiB0aGUKLSAqIG1pZGRsZSBvZiBhIGNvbnRpbnVhdGlvbiB3b3VsZCBm YWlsIHRvIHdvcmsgaWYgcmVzdW1lZCBvbiBhIGh5cGVydmlzb3IKLSAqIHVzaW5nIGEgZGlmZmVy ZW50IHZhbHVlLgotICovCi0jZGVmaW5lIEhWTU9QX29wX21hc2sgMHhmZgotCi1zdGF0aWMgYm9v bF90IGh2bV9hbGxvd19wMm1fdHlwZV9jaGFuZ2UocDJtX3R5cGVfdCBvbGQsIHAybV90eXBlX3Qg bmV3KQotewotICAgIGlmICggcDJtX2lzX3JhbShvbGQpIHx8Ci0gICAgICAgICAocDJtX2lzX2hv bGUob2xkKSAmJiBuZXcgPT0gcDJtX21taW9fZG0pIHx8Ci0gICAgICAgICAob2xkID09IHAybV9p b3JlcV9zZXJ2ZXIgJiYgbmV3ID09IHAybV9yYW1fcncpICkKLSAgICAgICAgcmV0dXJuIDE7Ci0K LSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBodm1vcF9zZXRfbWVtX3R5cGUoCi0gICAg WEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5faHZtX3NldF9tZW1fdHlwZV90KSBhcmcsCi0gICAg dW5zaWduZWQgbG9uZyAqaXRlcikKLXsKLSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2l0ZXIgPSAq aXRlcjsKLSAgICBzdHJ1Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUgYTsKLSAgICBzdHJ1Y3QgZG9t YWluICpkOwotICAgIGludCByYzsKLQotICAgIC8qIEludGVyZmFjZSB0eXBlcyB0byBpbnRlcm5h bCBwMm0gdHlwZXMgKi8KLSAgICBzdGF0aWMgY29uc3QgcDJtX3R5cGVfdCBtZW10eXBlW10gPSB7 Ci0gICAgICAgIFtIVk1NRU1fcmFtX3J3XSAgPSBwMm1fcmFtX3J3LAotICAgICAgICBbSFZNTUVN X3JhbV9yb10gID0gcDJtX3JhbV9ybywKLSAgICAgICAgW0hWTU1FTV9tbWlvX2RtXSA9IHAybV9t bWlvX2RtLAotICAgICAgICBbSFZNTUVNX3VudXNlZF0gPSBwMm1faW52YWxpZCwKLSAgICAgICAg W0hWTU1FTV9pb3JlcV9zZXJ2ZXJdID0gcDJtX2lvcmVxX3NlcnZlcgotICAgIH07Ci0KLSAgICBp ZiAoIGNvcHlfZnJvbV9ndWVzdCgmYSwgYXJnLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxU OwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsK LSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5W QUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0g ICAgcmMgPSB4c21faHZtX2NvbnRyb2woWFNNX0RNX1BSSVYsIGQsIEhWTU9QX3NldF9tZW1fdHlw ZSk7Ci0gICAgaWYgKCByYyApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSAtRUlOVkFM OwotICAgIGlmICggYS5uciA8IHN0YXJ0X2l0ZXIgfHwKLSAgICAgICAgICgoYS5maXJzdF9wZm4g KyBhLm5yIC0gMSkgPCBhLmZpcnN0X3BmbikgfHwKLSAgICAgICAgICgoYS5maXJzdF9wZm4gKyBh Lm5yIC0gMSkgPiBkb21haW5fZ2V0X21heGltdW1fZ3BmbihkKSkgKQotICAgICAgICBnb3RvIG91 dDsKLQotICAgIGlmICggYS5odm1tZW1fdHlwZSA+PSBBUlJBWV9TSVpFKG1lbXR5cGUpIHx8Ci0g ICAgICAgICB1bmxpa2VseShhLmh2bW1lbV90eXBlID09IEhWTU1FTV91bnVzZWQpICkKLSAgICAg ICAgZ290byBvdXQ7Ci0KLSAgICB3aGlsZSAoIGEubnIgPiBzdGFydF9pdGVyICkKLSAgICB7Ci0g ICAgICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gYS5maXJzdF9wZm4gKyBzdGFydF9pdGVyOwotICAg ICAgICBwMm1fdHlwZV90IHQ7Ci0KLSAgICAgICAgZ2V0X2dmbl91bnNoYXJlKGQsIHBmbiwgJnQp OwotICAgICAgICBpZiAoIHAybV9pc19wYWdpbmcodCkgKQotICAgICAgICB7Ci0gICAgICAgICAg ICBwdXRfZ2ZuKGQsIHBmbik7Ci0gICAgICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShk LCBwZm4pOwotICAgICAgICAgICAgcmMgPSAtRUFHQUlOOwotICAgICAgICAgICAgZ290byBvdXQ7 Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCBwMm1faXNfc2hhcmVkKHQpICkKLSAgICAgICAgewot ICAgICAgICAgICAgcHV0X2dmbihkLCBwZm4pOwotICAgICAgICAgICAgcmMgPSAtRUFHQUlOOwot ICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCAhaHZtX2FsbG93 X3AybV90eXBlX2NoYW5nZSh0LCBtZW10eXBlW2EuaHZtbWVtX3R5cGVdKSApCi0gICAgICAgIHsK LSAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAg ICAgICB9Ci0KLSAgICAgICAgcmMgPSBwMm1fY2hhbmdlX3R5cGVfb25lKGQsIHBmbiwgdCwgbWVt dHlwZVthLmh2bW1lbV90eXBlXSk7Ci0gICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKLQotICAgICAg ICBpZiAoIHJjICkKLSAgICAgICAgICAgIGdvdG8gb3V0OwotCi0gICAgICAgIC8qIENoZWNrIGZv ciBjb250aW51YXRpb24gaWYgaXQncyBub3QgdGhlIGxhc3QgaW50ZXJhdGlvbiAqLwotICAgICAg ICBpZiAoIGEubnIgPiArK3N0YXJ0X2l0ZXIgJiYgIShzdGFydF9pdGVyICYgSFZNT1Bfb3BfbWFz aykgJiYKLSAgICAgICAgICAgICBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKLSAgICAgICAg ewotICAgICAgICAgICAgcmMgPSAtRVJFU1RBUlQ7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAg ICAgICAgfQotICAgIH0KLSAgICByYyA9IDA7Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21h aW4oZCk7Ci0gICAgKml0ZXIgPSBzdGFydF9pdGVyOwotCi0gICAgcmV0dXJuIHJjOwotfQotCiBs b25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZv aWQpIGFyZykKIHsKLSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2l0ZXIsIG1hc2s7CiAgICAgbG9u ZyByYyA9IDA7CiAKLSAgICBzd2l0Y2ggKCBvcCAmIEhWTU9QX29wX21hc2sgKQotICAgIHsKLSAg ICBkZWZhdWx0OgotICAgICAgICBtYXNrID0gfjBVTDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz ZSBIVk1PUF9zZXRfbWVtX3R5cGU6Ci0gICAgICAgIG1hc2sgPSBIVk1PUF9vcF9tYXNrOwotICAg ICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBzdGFydF9pdGVyID0gb3AgJiB+bWFzazsKLSAgICBz d2l0Y2ggKCBvcCAmPSBtYXNrICkKKyAgICBzd2l0Y2ggKCBvcCApCiAgICAgewogICAgIGNhc2Ug SFZNT1Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yOgogICAgICAgICByYyA9IGh2bW9wX3NldF9l dnRjaG5fdXBjYWxsX3ZlY3RvcigKQEAgLTUwMDIsMTIgKzQ4ODEsNiBAQCBsb25nIGRvX2h2bV9v cCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAg ICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9nZXRfbWVtX3R5cGVfdCkp OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgSFZNT1Bfc2V0X21lbV90eXBlOgotICAgICAg ICByYyA9IGh2bW9wX3NldF9tZW1fdHlwZSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0 KGFyZywgeGVuX2h2bV9zZXRfbWVtX3R5cGVfdCksCi0gICAgICAgICAgICAmc3RhcnRfaXRlcik7 Ci0gICAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBIVk1PUF9wYWdldGFibGVfZHlpbmc6CiAgICAg ewogICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9wYWdldGFibGVfZHlpbmcgYTsKQEAgLTUxMTYsMTMg KzQ5ODksNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHZvaWQpIGFyZykKICAgICB9CiAgICAgfQogCi0gICAgaWYgKCByYyA9PSAtRVJF U1RBUlQgKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCEoc3RhcnRfaXRlciAmIG1hc2spKTsKLSAg ICAgICAgcmMgPSBoeXBlcmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1JfaHZt X29wLCAibGgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w IHwgc3RhcnRfaXRlciwgYXJnKTsKLSAgICB9Ci0KICAgICByZXR1cm4gcmM7CiB9CiAKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vZG1fb3AuaAppbmRleCBmZjk2OTFkLi5kMjY2OTE1IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9wdWJsaWMvaHZtL2RtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9v cC5oCkBAIC0yNTAsNiArMjUwLDI3IEBAIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5 IHsKICAgICB1aW50NjRfYWxpZ25lZF90IGZpcnN0X3BmbjsKIH07CiAKKy8qCisgKiBYRU5fRE1P UF9zZXRfbWVtX3R5cGU6IE5vdGlmeSB0aGF0IGEgcmVnaW9uIG9mIG1lbW9yeSBpcyB0byBiZSB0 cmVhdGVkCisgKiAgICAgICAgICAgICAgICAgICAgICAgIGluIGEgc3BlY2lmaWMgd2F5LiAoU2Vl IGRlZmluaXRpb24gb2YKKyAqICAgICAgICAgICAgICAgICAgICAgICAgaHZtbWVtX3R5cGVfdCku CisgKgorICogTk9URTogSW4gdGhlIGV2ZW50IG9mIGEgY29udGludWF0aW9uIChyZXR1cm4gY29k ZSAtRVJFU1RBUlQpLCB0aGUKKyAqICAgICAgIEBmaXJzdF9wZm4gaXMgc2V0IHRvIHRoZSB2YWx1 ZSBvZiB0aGUgcGZuIG9mIHRoZSByZW1haW5pbmcKKyAqICAgICAgIHJlZ2lvbiBhbmQgQG5yIHJl ZHVjZWQgdG8gdGhlIHNpemUgb2YgdGhlIHJlbWFpbmluZyByZWdpb24uCisgKi8KKyNkZWZpbmUg WEVOX0RNT1Bfc2V0X21lbV90eXBlIDEyCisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBl IHsKKyAgICAvKiBJTiAtIG51bWJlciBvZiBjb250aWd1b3VzIHBhZ2VzICovCisgICAgdWludDMy X3QgbnI7CisgICAgLyogSU4gLSBuZXcgaHZtbWVtX3R5cGVfdCBvZiByZWdpb24gKi8KKyAgICB1 aW50MTZfdCBtZW1fdHlwZTsKKyAgICB1aW50MTZfdCBwYWQ7CisgICAgLyogSU4gLSBmaXJzdCBw Zm4gaW4gcmVnaW9uICovCisgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Cit9OworCiBz dHJ1Y3QgeGVuX2RtX29wIHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7CkBA IC0yNjUsNiArMjg2LDcgQEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4ZW5f ZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwgc2V0X2lzYV9pcnFfbGV2ZWw7CiAgICAgICAgIHN0cnVj dCB4ZW5fZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsKICAgICAg ICAgc3RydWN0IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5OworICAg ICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSBzZXRfbWVtX3R5cGU7CiAgICAgfSB1 OwogfTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCBiL3hl bi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgKaW5kZXggNzZlMWI3OC4uZDdlMmYxMiAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL2h2bV9vcC5oCkBAIC05NiwyNiArOTYsNiBAQCB0eXBlZGVmIGVudW0gewog ICAgIEhWTU1FTV9pb3JlcV9zZXJ2ZXIKIH0gaHZtbWVtX3R5cGVfdDsKIAotLyogRm9sbG93aW5n IHRvb2xzLW9ubHkgaW50ZXJmYWNlcyBtYXkgY2hhbmdlIGluIGZ1dHVyZS4gKi8KLSNpZiBkZWZp bmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKLQotI2RlZmluZSBIVk1PUF9z ZXRfbWVtX3R5cGUgICAgOAotLyogTm90aWZ5IHRoYXQgYSByZWdpb24gb2YgbWVtb3J5IGlzIHRv IGJlIHRyZWF0ZWQgaW4gYSBzcGVjaWZpYyB3YXkuICovCi1zdHJ1Y3QgeGVuX2h2bV9zZXRfbWVt X3R5cGUgewotICAgIC8qIERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLwotICAgIGRvbWlkX3QgZG9t aWQ7Ci0gICAgLyogTWVtb3J5IHR5cGUgKi8KLSAgICB1aW50MTZfdCBodm1tZW1fdHlwZTsKLSAg ICAvKiBOdW1iZXIgb2YgcGFnZXMuICovCi0gICAgdWludDMyX3QgbnI7Ci0gICAgLyogRmlyc3Qg cGZuLiAqLwotICAgIHVpbnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwotfTsKLXR5cGVkZWYgc3Ry dWN0IHhlbl9odm1fc2V0X21lbV90eXBlIHhlbl9odm1fc2V0X21lbV90eXBlX3Q7Ci1ERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3NldF9tZW1fdHlwZV90KTsKLQotI2VuZGlmIC8qIGRl ZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwotCiAvKiBIaW50IGZy b20gUFYgZHJpdmVycyBmb3IgcGFnZXRhYmxlIGRlc3RydWN0aW9uLiAqLwogI2RlZmluZSBIVk1P UF9wYWdldGFibGVfZHlpbmcgICAgICAgIDkKIHN0cnVjdCB4ZW5faHZtX3BhZ2V0YWJsZV9keWlu ZyB7CmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmluZGV4IDM2MWU3YWEuLjM4MWY2NTkg MTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCisrKyBiL3hl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBAIC0yNjIsNyArMjYyLDcgQEAgY2xh c3MgaHZtCiAgICAgYmluZF9pcnEKICMgWEVOX0RPTUNUTF9waW5fbWVtX2NhY2hlYXR0cgogICAg IGNhY2hlYXR0cgotIyBIVk1PUF9nZXRfbWVtX3R5cGUsIEhWTU9QX3NldF9tZW1fdHlwZSwKKyMg SFZNT1BfZ2V0X21lbV90eXBlLAogIyBIVk1PUF9zZXRfbWVtX2FjY2VzcywgSFZNT1BfZ2V0X21l bV9hY2Nlc3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKICMgSFZNT1BfaW5qZWN0X3RyYXAKICAg ICBodm1jdGwKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==