From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 6/8] dm_op: convert HVMOP_set_mem_type Date: Tue, 24 Jan 2017 15:27:08 +0000 Message-ID: <1485271630-1860-7-git-send-email-paul.durrant@citrix.com> References: <1485271630-1860-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 1cW30R-0000Zu-2t for xen-devel@lists.xenproject.org; Tue, 24 Jan 2017 15:27:35 +0000 In-Reply-To: <1485271630-1860-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+Cgp2ODoKLSBB ZGQgQ0hFQ0sgbWFjcm8uCgp2NjoKLSBQYXNzIGJ5IHJlZmVyZW5jZSBhcyByZXF1ZXN0ZWQgYnkg QW5keS4KLSBNb2RpZnkgY29uc3Rfb3AgYXBwcm9wcmlhdGVseS4KCnY0OgotIEFkZGVkIGluaXRp YWxpemVycyBhcyByZXF1ZXN0ZWQgYnkgSmFuLgoKdjM6Ci0gQWRkcmVzc2VkIG1vcmUgY29tbWVu dHMgZnJvbSBKYW4uCgp2MjoKLSBBZGRyZXNzZWQgc2V2ZXJhbCBjb21tZW50cyBmcm9tIEphbi4K LS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICB8ICAgMiArLQogdG9vbHMv bGlieGMveGNfbWlzYy5jICAgICAgICAgICAgICAgfCAgMjkgKysrLS0tLS0KIHhlbi9hcmNoL3g4 Ni9odm0vZG0uYyAgICAgICAgICAgICAgIHwgIDkyICsrKysrKysrKysrKysrKysrKysrKysrKwog eGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCAxMzYgKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggICAg ICB8ICAyMiArKysrKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggICAgIHwgIDIw IC0tLS0tLQogeGVuL2luY2x1ZGUveGxhdC5sc3QgICAgICAgICAgICAgICAgfCAgIDEgKwogeGVu L3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgIDIgKy0KIDggZmlsZXMgY2hhbmdl ZCwgMTI4IGluc2VydGlvbnMoKyksIDE3NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29s cy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5o CmluZGV4IDVmZjUzZWQuLjY2NDg2NzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUv eGVuY3RybC5oCisrKyBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCkBAIC0xNjM0LDcg KzE2MzQsNyBAQCBpbnQgeGNfaHZtX21vZGlmaWVkX21lbW9yeSgKICAqIEFsbG93ZWQgdHlwZXMg YXJlIEhWTU1FTV9yYW1fcncsIEhWTU1FTV9yYW1fcm8sIEhWTU1FTV9tbWlvX2RtCiAgKi8KIGlu dCB4Y19odm1fc2V0X21lbV90eXBlKAotICAgIHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRv bSwgaHZtbWVtX3R5cGVfdCBtZW10eXBlLCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQ2NF90IG5y KTsKKyAgICB4Y19pbnRlcmZhY2UgKnhjaCwgZG9taWRfdCBkb20sIGh2bW1lbV90eXBlX3QgbWVt dHlwZSwgdWludDY0X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBucik7CiAKIC8qCiAgKiBJbmplY3Rz IGEgaGFyZHdhcmUvc29mdHdhcmUgQ1BVIHRyYXAsIHRvIHRha2UgZWZmZWN0IHRoZSBuZXh0IHRp bWUgdGhlIEhWTSAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xzL2xp YnhjL3hjX21pc2MuYwppbmRleCA1OTdkZjk5Li41YjA2ZDZiIDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy94Y19taXNjLmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC01OTAsMzAgKzU5 MCwyMSBAQCBpbnQgeGNfaHZtX21vZGlmaWVkX21lbW9yeSgKIH0KIAogaW50IHhjX2h2bV9zZXRf bWVtX3R5cGUoCi0gICAgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9tLCBodm1tZW1fdHlw ZV90IG1lbV90eXBlLCB1aW50NjRfdCBmaXJzdF9wZm4sIHVpbnQ2NF90IG5yKQorICAgIHhjX2lu dGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbSwgaHZtbWVtX3R5cGVfdCBtZW1fdHlwZSwgdWludDY0 X3QgZmlyc3RfcGZuLCB1aW50MzJfdCBucikKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZG RVIoc3RydWN0IHhlbl9odm1fc2V0X21lbV90eXBlLCBhcmcpOwotICAgIGludCByYzsKLQotICAg IGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7 Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0gICAgewotICAgICAgICBQRVJST1IoIkNvdWxkIG5v dCBhbGxvY2F0ZSBtZW1vcnkgZm9yIHhjX2h2bV9zZXRfbWVtX3R5cGUgaHlwZXJjYWxsIik7Ci0g ICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKKyAgICBz dHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSAqZGF0YTsKIAotICAgIGFyZy0+ZG9taWQgICAg ICAgID0gZG9tOwotICAgIGFyZy0+aHZtbWVtX3R5cGUgID0gbWVtX3R5cGU7Ci0gICAgYXJnLT5m aXJzdF9wZm4gICAgPSBmaXJzdF9wZm47Ci0gICAgYXJnLT5uciAgICAgICAgICAgPSBucjsKKyAg ICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54 Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX3NldF9t ZW1fdHlwZSwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykp OworICAgIG9wLm9wID0gWEVOX0RNT1Bfc2V0X21lbV90eXBlOworICAgIGRhdGEgPSAmb3AudS5z ZXRfbWVtX3R5cGU7CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwor ICAgIGRhdGEtPm1lbV90eXBlID0gbWVtX3R5cGU7CisgICAgZGF0YS0+Zmlyc3RfcGZuID0gZmly c3RfcGZuOworICAgIGRhdGEtPm5yID0gbnI7CiAKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJu IGRvX2RtX29wKHhjaCwgZG9tLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBpbnQgeGNfaHZt X2luamVjdF90cmFwKApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9kbS5jIGIveGVuL2Fy Y2gveDg2L2h2bS9kbS5jCmluZGV4IGFkNWQ0YzMuLjFmZGVlMGEgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vZG0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKQEAgLTE3MSw2ICsx NzEsODIgQEAgc3RhdGljIGludCBtb2RpZmllZF9tZW1vcnkoc3RydWN0IGRvbWFpbiAqZCwKICAg ICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBib29sIGFsbG93X3AybV90eXBlX2NoYW5nZShwMm1f dHlwZV90IG9sZCwgcDJtX3R5cGVfdCBuZXcpCit7CisgICAgcmV0dXJuIHAybV9pc19yYW0ob2xk KSB8fAorICAgICAgICAgICAocDJtX2lzX2hvbGUob2xkKSAmJiBuZXcgPT0gcDJtX21taW9fZG0p IHx8CisgICAgICAgICAgIChvbGQgPT0gcDJtX2lvcmVxX3NlcnZlciAmJiBuZXcgPT0gcDJtX3Jh bV9ydyk7Cit9CisKK3N0YXRpYyBpbnQgc2V0X21lbV90eXBlKHN0cnVjdCBkb21haW4gKmQsCisg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RtX29wX3NldF9tZW1fdHlwZSAqZGF0 YSkKK3sKKyAgICB4ZW5fcGZuX3QgbGFzdF9wZm4gPSBkYXRhLT5maXJzdF9wZm4gKyBkYXRhLT5u ciAtIDE7CisgICAgdW5zaWduZWQgaW50IGl0ZXIgPSAwOworICAgIGludCByYyA9IDA7CisKKyAg ICAvKiBJbnRlcmZhY2UgdHlwZXMgdG8gaW50ZXJuYWwgcDJtIHR5cGVzICovCisgICAgc3RhdGlj IGNvbnN0IHAybV90eXBlX3QgbWVtdHlwZVtdID0geworICAgICAgICBbSFZNTUVNX3JhbV9yd10g ID0gcDJtX3JhbV9ydywKKyAgICAgICAgW0hWTU1FTV9yYW1fcm9dICA9IHAybV9yYW1fcm8sCisg ICAgICAgIFtIVk1NRU1fbW1pb19kbV0gPSBwMm1fbW1pb19kbSwKKyAgICAgICAgW0hWTU1FTV91 bnVzZWRdID0gcDJtX2ludmFsaWQsCisgICAgICAgIFtIVk1NRU1faW9yZXFfc2VydmVyXSA9IHAy bV9pb3JlcV9zZXJ2ZXIsCisgICAgfTsKKworICAgIGlmICggKGRhdGEtPmZpcnN0X3BmbiA+IGxh c3RfcGZuKSB8fAorICAgICAgICAgKGxhc3RfcGZuID4gZG9tYWluX2dldF9tYXhpbXVtX2dwZm4o ZCkpICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIGRhdGEtPm1lbV90eXBl ID49IEFSUkFZX1NJWkUobWVtdHlwZSkgfHwKKyAgICAgICAgIHVubGlrZWx5KGRhdGEtPm1lbV90 eXBlID09IEhWTU1FTV91bnVzZWQpICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICB3 aGlsZSAoIGl0ZXIgPCBkYXRhLT5uciApCisgICAgeworICAgICAgICB1bnNpZ25lZCBsb25nIHBm biA9IGRhdGEtPmZpcnN0X3BmbiArIGl0ZXI7CisgICAgICAgIHAybV90eXBlX3QgdDsKKworICAg ICAgICBnZXRfZ2ZuX3Vuc2hhcmUoZCwgcGZuLCAmdCk7CisgICAgICAgIGlmICggcDJtX2lzX3Bh Z2luZyh0KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKKyAgICAg ICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKGQsIHBmbik7CisgICAgICAgICAgICByZXR1 cm4gLUVBR0FJTjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggcDJtX2lzX3NoYXJlZCh0KSAp CisgICAgICAgICAgICByYyA9IC1FQUdBSU47CisgICAgICAgIGVsc2UgaWYgKCAhYWxsb3dfcDJt X3R5cGVfY2hhbmdlKHQsIG1lbXR5cGVbZGF0YS0+bWVtX3R5cGVdKSApCisgICAgICAgICAgICBy YyA9IC1FSU5WQUw7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJjID0gcDJtX2NoYW5nZV90 eXBlX29uZShkLCBwZm4sIHQsIG1lbXR5cGVbZGF0YS0+bWVtX3R5cGVdKTsKKworICAgICAgICBw dXRfZ2ZuKGQsIHBmbik7CisKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBicmVhazsK KworICAgICAgICBpdGVyKys7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hlY2sgZm9yIGNv bnRpbnVhdGlvbiBldmVyeSAyNTZ0aCBpdGVyYXRpb24gYW5kIGlmIHRoZQorICAgICAgICAgKiBp dGVyYXRpb24gaXMgbm90IHRoZSBsYXN0LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAoaXRl ciA8IGRhdGEtPm5yKSAmJiAoKGl0ZXIgJiAweGZmKSA9PSAwKSAmJgorICAgICAgICAgICAgIGh5 cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQorICAgICAgICB7CisgICAgICAgICAgICBkYXRhLT5m aXJzdF9wZm4gKz0gaXRlcjsKKyAgICAgICAgICAgIGRhdGEtPm5yIC09IGl0ZXI7CisKKyAgICAg ICAgICAgIHJjID0gLUVSRVNUQVJUOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg ICB9CisKKyAgICByZXR1cm4gcmM7Cit9CisKIHN0YXRpYyBpbnQgZG1fb3AoZG9taWRfdCBkb21p ZCwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX2J1ZnMsCiAgICAgICAgICAgICAg ICAgIHhlbl9kbV9vcF9idWZfdCBidWZzW10pCkBAIC0zNTIsNiArNDI4LDIxIEBAIHN0YXRpYyBp bnQgZG1fb3AoZG9taWRfdCBkb21pZCwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2Fz ZSBYRU5fRE1PUF9zZXRfbWVtX3R5cGU6CisgICAgeworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29w X3NldF9tZW1fdHlwZSAqZGF0YSA9CisgICAgICAgICAgICAmb3AudS5zZXRfbWVtX3R5cGU7CisK KyAgICAgICAgY29uc3Rfb3AgPSBmYWxzZTsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAg ICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJjID0g c2V0X21lbV90eXBlKGQsIGRhdGEpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBkZWZh dWx0OgogICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwogICAgICAgICBicmVhazsKQEAgLTM3OCw2 ICs0NjksNyBAQCBDSEVDS19kbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWw7CiBDSEVDS19kbV9vcF9z ZXRfaXNhX2lycV9sZXZlbDsKIENIRUNLX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZTsKIENIRUNL X2RtX29wX21vZGlmaWVkX21lbW9yeTsKK0NIRUNLX2RtX29wX3NldF9tZW1fdHlwZTsKIAogI2Rl ZmluZSBNQVhfTlJfQlVGUyAyCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IGIyOWMwNDIuLjVkNDc5MjMgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpA QCAtNDg0NiwxMzIgKzQ4NDYsMTEgQEAgc3RhdGljIGludCBodm1vcF9nZXRfbWVtX3R5cGUoCiAg ICAgcmV0dXJuIHJjOwogfQogCi0vKgotICogTm90ZSB0aGF0IHRoaXMgdmFsdWUgaXMgZWZmZWN0 aXZlbHkgcGFydCBvZiB0aGUgQUJJLCBldmVuIGlmIHdlIGRvbid0IG5lZWQKLSAqIHRvIG1ha2Ug aXQgYSBmb3JtYWwgcGFydCBvZiBpdDogQSBndWVzdCBzdXNwZW5kZWQgZm9yIG1pZ3JhdGlvbiBp biB0aGUKLSAqIG1pZGRsZSBvZiBhIGNvbnRpbnVhdGlvbiB3b3VsZCBmYWlsIHRvIHdvcmsgaWYg cmVzdW1lZCBvbiBhIGh5cGVydmlzb3IKLSAqIHVzaW5nIGEgZGlmZmVyZW50IHZhbHVlLgotICov Ci0jZGVmaW5lIEhWTU9QX29wX21hc2sgMHhmZgotCi1zdGF0aWMgYm9vbF90IGh2bV9hbGxvd19w Mm1fdHlwZV9jaGFuZ2UocDJtX3R5cGVfdCBvbGQsIHAybV90eXBlX3QgbmV3KQotewotICAgIGlm ICggcDJtX2lzX3JhbShvbGQpIHx8Ci0gICAgICAgICAocDJtX2lzX2hvbGUob2xkKSAmJiBuZXcg PT0gcDJtX21taW9fZG0pIHx8Ci0gICAgICAgICAob2xkID09IHAybV9pb3JlcV9zZXJ2ZXIgJiYg bmV3ID09IHAybV9yYW1fcncpICkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICByZXR1cm4gMDsK LX0KLQotc3RhdGljIGludCBodm1vcF9zZXRfbWVtX3R5cGUoCi0gICAgWEVOX0dVRVNUX0hBTkRM RV9QQVJBTSh4ZW5faHZtX3NldF9tZW1fdHlwZV90KSBhcmcsCi0gICAgdW5zaWduZWQgbG9uZyAq aXRlcikKLXsKLSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2l0ZXIgPSAqaXRlcjsKLSAgICBzdHJ1 Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUgYTsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGlu dCByYzsKLQotICAgIC8qIEludGVyZmFjZSB0eXBlcyB0byBpbnRlcm5hbCBwMm0gdHlwZXMgKi8K LSAgICBzdGF0aWMgY29uc3QgcDJtX3R5cGVfdCBtZW10eXBlW10gPSB7Ci0gICAgICAgIFtIVk1N RU1fcmFtX3J3XSAgPSBwMm1fcmFtX3J3LAotICAgICAgICBbSFZNTUVNX3JhbV9yb10gID0gcDJt X3JhbV9ybywKLSAgICAgICAgW0hWTU1FTV9tbWlvX2RtXSA9IHAybV9tbWlvX2RtLAotICAgICAg ICBbSFZNTUVNX3VudXNlZF0gPSBwMm1faW52YWxpZCwKLSAgICAgICAgW0hWTU1FTV9pb3JlcV9z ZXJ2ZXJdID0gcDJtX2lvcmVxX3NlcnZlcgotICAgIH07Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9n dWVzdCgmYSwgYXJnLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0gICAgcmMgPSBy Y3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKGEuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9 IDAgKQotICAgICAgICByZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAh aXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZt X2NvbnRyb2woWFNNX0RNX1BSSVYsIGQsIEhWTU9QX3NldF9tZW1fdHlwZSk7Ci0gICAgaWYgKCBy YyApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggYS5u ciA8IHN0YXJ0X2l0ZXIgfHwKLSAgICAgICAgICgoYS5maXJzdF9wZm4gKyBhLm5yIC0gMSkgPCBh LmZpcnN0X3BmbikgfHwKLSAgICAgICAgICgoYS5maXJzdF9wZm4gKyBhLm5yIC0gMSkgPiBkb21h aW5fZ2V0X21heGltdW1fZ3BmbihkKSkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIGlmICgg YS5odm1tZW1fdHlwZSA+PSBBUlJBWV9TSVpFKG1lbXR5cGUpIHx8Ci0gICAgICAgICB1bmxpa2Vs eShhLmh2bW1lbV90eXBlID09IEhWTU1FTV91bnVzZWQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0K LSAgICB3aGlsZSAoIGEubnIgPiBzdGFydF9pdGVyICkKLSAgICB7Ci0gICAgICAgIHVuc2lnbmVk IGxvbmcgcGZuID0gYS5maXJzdF9wZm4gKyBzdGFydF9pdGVyOwotICAgICAgICBwMm1fdHlwZV90 IHQ7Ci0KLSAgICAgICAgZ2V0X2dmbl91bnNoYXJlKGQsIHBmbiwgJnQpOwotICAgICAgICBpZiAo IHAybV9pc19wYWdpbmcodCkgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwdXRfZ2ZuKGQsIHBm bik7Ci0gICAgICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBwZm4pOwotICAgICAg ICAgICAgcmMgPSAtRUFHQUlOOwotICAgICAgICAgICAgZ290byBvdXQ7Ci0gICAgICAgIH0KLSAg ICAgICAgaWYgKCBwMm1faXNfc2hhcmVkKHQpICkKLSAgICAgICAgewotICAgICAgICAgICAgcHV0 X2dmbihkLCBwZm4pOwotICAgICAgICAgICAgcmMgPSAtRUFHQUlOOwotICAgICAgICAgICAgZ290 byBvdXQ7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCAhaHZtX2FsbG93X3AybV90eXBlX2NoYW5n ZSh0LCBtZW10eXBlW2EuaHZtbWVtX3R5cGVdKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHB1 dF9nZm4oZCwgcGZuKTsKLSAgICAgICAgICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0KLSAgICAg ICAgcmMgPSBwMm1fY2hhbmdlX3R5cGVfb25lKGQsIHBmbiwgdCwgbWVtdHlwZVthLmh2bW1lbV90 eXBlXSk7Ci0gICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKLQotICAgICAgICBpZiAoIHJjICkKLSAg ICAgICAgICAgIGdvdG8gb3V0OwotCi0gICAgICAgIC8qIENoZWNrIGZvciBjb250aW51YXRpb24g aWYgaXQncyBub3QgdGhlIGxhc3QgaW50ZXJhdGlvbiAqLwotICAgICAgICBpZiAoIGEubnIgPiAr K3N0YXJ0X2l0ZXIgJiYgIShzdGFydF9pdGVyICYgSFZNT1Bfb3BfbWFzaykgJiYKLSAgICAgICAg ICAgICBoeXBlcmNhbGxfcHJlZW1wdF9jaGVjaygpICkKLSAgICAgICAgewotICAgICAgICAgICAg cmMgPSAtRVJFU1RBUlQ7Ci0gICAgICAgICAgICBnb3RvIG91dDsKLSAgICAgICAgfQotICAgIH0K LSAgICByYyA9IDA7Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgKml0 ZXIgPSBzdGFydF9pdGVyOwotCi0gICAgcmV0dXJuIHJjOwotfQotCiBsb25nIGRvX2h2bV9vcCh1 bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKIHsKLSAg ICB1bnNpZ25lZCBsb25nIHN0YXJ0X2l0ZXIsIG1hc2s7CiAgICAgbG9uZyByYyA9IDA7CiAKLSAg ICBzd2l0Y2ggKCBvcCAmIEhWTU9QX29wX21hc2sgKQotICAgIHsKLSAgICBkZWZhdWx0OgotICAg ICAgICBtYXNrID0gfjBVTDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBIVk1PUF9zZXRfbWVt X3R5cGU6Ci0gICAgICAgIG1hc2sgPSBIVk1PUF9vcF9tYXNrOwotICAgICAgICBicmVhazsKLSAg ICB9Ci0KLSAgICBzdGFydF9pdGVyID0gb3AgJiB+bWFzazsKLSAgICBzd2l0Y2ggKCBvcCAmPSBt YXNrICkKKyAgICBzd2l0Y2ggKCBvcCApCiAgICAgewogICAgIGNhc2UgSFZNT1Bfc2V0X2V2dGNo bl91cGNhbGxfdmVjdG9yOgogICAgICAgICByYyA9IGh2bW9wX3NldF9ldnRjaG5fdXBjYWxsX3Zl Y3RvcigKQEAgLTUwMDIsMTIgKzQ4ODEsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25n IG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgICAgIGd1ZXN0 X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9nZXRfbWVtX3R5cGVfdCkpOwogICAgICAgICBicmVh azsKIAotICAgIGNhc2UgSFZNT1Bfc2V0X21lbV90eXBlOgotICAgICAgICByYyA9IGh2bW9wX3Nl dF9tZW1fdHlwZSgKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9z ZXRfbWVtX3R5cGVfdCksCi0gICAgICAgICAgICAmc3RhcnRfaXRlcik7Ci0gICAgICAgIGJyZWFr OwotCiAgICAgY2FzZSBIVk1PUF9wYWdldGFibGVfZHlpbmc6CiAgICAgewogICAgICAgICBzdHJ1 Y3QgeGVuX2h2bV9wYWdldGFibGVfZHlpbmcgYTsKQEAgLTUxMTYsMTMgKzQ5ODksNiBAQCBsb25n IGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQp IGFyZykKICAgICB9CiAgICAgfQogCi0gICAgaWYgKCByYyA9PSAtRVJFU1RBUlQgKQotICAgIHsK LSAgICAgICAgQVNTRVJUKCEoc3RhcnRfaXRlciAmIG1hc2spKTsKLSAgICAgICAgcmMgPSBoeXBl cmNhbGxfY3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1JfaHZtX29wLCAibGgiLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wIHwgc3RhcnRfaXRlciwg YXJnKTsKLSAgICB9Ci0KICAgICByZXR1cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vZG1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApp bmRleCBmZDA5NWNjLi4wNmM2N2I4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9kbV9vcC5oCkBAIC0yNTEsNiAr MjUxLDI3IEBAIHN0cnVjdCB4ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5IHsKICAgICB1aW50NjRf YWxpZ25lZF90IGZpcnN0X3BmbjsKIH07CiAKKy8qCisgKiBYRU5fRE1PUF9zZXRfbWVtX3R5cGU6 IE5vdGlmeSB0aGF0IGEgcmVnaW9uIG9mIG1lbW9yeSBpcyB0byBiZSB0cmVhdGVkCisgKiAgICAg ICAgICAgICAgICAgICAgICAgIGluIGEgc3BlY2lmaWMgd2F5LiAoU2VlIGRlZmluaXRpb24gb2YK KyAqICAgICAgICAgICAgICAgICAgICAgICAgaHZtbWVtX3R5cGVfdCkuCisgKgorICogTk9URTog SW4gdGhlIGV2ZW50IG9mIGEgY29udGludWF0aW9uIChyZXR1cm4gY29kZSAtRVJFU1RBUlQpLCB0 aGUKKyAqICAgICAgIEBmaXJzdF9wZm4gaXMgc2V0IHRvIHRoZSB2YWx1ZSBvZiB0aGUgcGZuIG9m IHRoZSByZW1haW5pbmcKKyAqICAgICAgIHJlZ2lvbiBhbmQgQG5yIHJlZHVjZWQgdG8gdGhlIHNp emUgb2YgdGhlIHJlbWFpbmluZyByZWdpb24uCisgKi8KKyNkZWZpbmUgWEVOX0RNT1Bfc2V0X21l bV90eXBlIDEyCisKK3N0cnVjdCB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlIHsKKyAgICAvKiBJTiAt IG51bWJlciBvZiBjb250aWd1b3VzIHBhZ2VzICovCisgICAgdWludDMyX3QgbnI7CisgICAgLyog SU4gLSBuZXcgaHZtbWVtX3R5cGVfdCBvZiByZWdpb24gKi8KKyAgICB1aW50MTZfdCBtZW1fdHlw ZTsKKyAgICB1aW50MTZfdCBwYWQ7CisgICAgLyogSU4gLSBmaXJzdCBwZm4gaW4gcmVnaW9uICov CisgICAgdWludDY0X2FsaWduZWRfdCBmaXJzdF9wZm47Cit9OworCiBzdHJ1Y3QgeGVuX2RtX29w IHsKICAgICB1aW50MzJfdCBvcDsKICAgICB1aW50MzJfdCBwYWQ7CkBAIC0yNjYsNiArMjg3LDcg QEAgc3RydWN0IHhlbl9kbV9vcCB7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lzYV9p cnFfbGV2ZWwgc2V0X2lzYV9pcnFfbGV2ZWw7CiAgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0 X3BjaV9saW5rX3JvdXRlIHNldF9wY2lfbGlua19yb3V0ZTsKICAgICAgICAgc3RydWN0IHhlbl9k bV9vcF9tb2RpZmllZF9tZW1vcnkgbW9kaWZpZWRfbWVtb3J5OworICAgICAgICBzdHJ1Y3QgeGVu X2RtX29wX3NldF9tZW1fdHlwZSBzZXRfbWVtX3R5cGU7CiAgICAgfSB1OwogfTsKIApkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vaHZtX29wLmgKaW5kZXggNzZlMWI3OC4uZDdlMmYxMiAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9odm1fb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2 bV9vcC5oCkBAIC05NiwyNiArOTYsNiBAQCB0eXBlZGVmIGVudW0gewogICAgIEhWTU1FTV9pb3Jl cV9zZXJ2ZXIKIH0gaHZtbWVtX3R5cGVfdDsKIAotLyogRm9sbG93aW5nIHRvb2xzLW9ubHkgaW50 ZXJmYWNlcyBtYXkgY2hhbmdlIGluIGZ1dHVyZS4gKi8KLSNpZiBkZWZpbmVkKF9fWEVOX18pIHx8 IGRlZmluZWQoX19YRU5fVE9PTFNfXykKLQotI2RlZmluZSBIVk1PUF9zZXRfbWVtX3R5cGUgICAg OAotLyogTm90aWZ5IHRoYXQgYSByZWdpb24gb2YgbWVtb3J5IGlzIHRvIGJlIHRyZWF0ZWQgaW4g YSBzcGVjaWZpYyB3YXkuICovCi1zdHJ1Y3QgeGVuX2h2bV9zZXRfbWVtX3R5cGUgewotICAgIC8q IERvbWFpbiB0byBiZSB1cGRhdGVkLiAqLwotICAgIGRvbWlkX3QgZG9taWQ7Ci0gICAgLyogTWVt b3J5IHR5cGUgKi8KLSAgICB1aW50MTZfdCBodm1tZW1fdHlwZTsKLSAgICAvKiBOdW1iZXIgb2Yg cGFnZXMuICovCi0gICAgdWludDMyX3QgbnI7Ci0gICAgLyogRmlyc3QgcGZuLiAqLwotICAgIHVp bnQ2NF9hbGlnbmVkX3QgZmlyc3RfcGZuOwotfTsKLXR5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0 X21lbV90eXBlIHhlbl9odm1fc2V0X21lbV90eXBlX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM RSh4ZW5faHZtX3NldF9tZW1fdHlwZV90KTsKLQotI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykg fHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwotCiAvKiBIaW50IGZyb20gUFYgZHJpdmVycyBm b3IgcGFnZXRhYmxlIGRlc3RydWN0aW9uLiAqLwogI2RlZmluZSBIVk1PUF9wYWdldGFibGVfZHlp bmcgICAgICAgIDkKIHN0cnVjdCB4ZW5faHZtX3BhZ2V0YWJsZV9keWluZyB7CmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS94bGF0LmxzdCBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CmluZGV4IDcwOGEy N2MuLjE1OGQ0ZjAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hsYXQubHN0CisrKyBiL3hlbi9p bmNsdWRlL3hsYXQubHN0CkBAIC02NCw2ICs2NCw3IEBACiA/CWRtX29wX21vZGlmaWVkX21lbW9y eQkJaHZtL2RtX29wLmgKID8JZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZQlodm0vZG1fb3Au aAogPwlkbV9vcF9zZXRfaXNhX2lycV9sZXZlbAkJaHZtL2RtX29wLmgKKz8JZG1fb3Bfc2V0X21l bV90eXBlCQlodm0vZG1fb3AuaAogPwlkbV9vcF9zZXRfcGNpX2ludHhfbGV2ZWwJaHZtL2RtX29w LmgKID8JZG1fb3Bfc2V0X3BjaV9saW5rX3JvdXRlCWh2bS9kbV9vcC5oCiA/CWRtX29wX3RyYWNr X2RpcnR5X3ZyYW0JCWh2bS9kbV9vcC5oCmRpZmYgLS1naXQgYS94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCmlu ZGV4IDM2MWU3YWEuLjM4MWY2NTkgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svcG9saWN5L2Fj Y2Vzc192ZWN0b3JzCisrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzCkBA IC0yNjIsNyArMjYyLDcgQEAgY2xhc3MgaHZtCiAgICAgYmluZF9pcnEKICMgWEVOX0RPTUNUTF9w aW5fbWVtX2NhY2hlYXR0cgogICAgIGNhY2hlYXR0cgotIyBIVk1PUF9nZXRfbWVtX3R5cGUsIEhW TU9QX3NldF9tZW1fdHlwZSwKKyMgSFZNT1BfZ2V0X21lbV90eXBlLAogIyBIVk1PUF9zZXRfbWVt X2FjY2VzcywgSFZNT1BfZ2V0X21lbV9hY2Nlc3MsIEhWTU9QX3BhZ2V0YWJsZV9keWluZywKICMg SFZNT1BfaW5qZWN0X3RyYXAKICAgICBodm1jdGwKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==