From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21DDDC47082 for ; Tue, 8 Jun 2021 09:03:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F213B6124B for ; Tue, 8 Jun 2021 09:02:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230268AbhFHJEv (ORCPT ); Tue, 8 Jun 2021 05:04:51 -0400 Received: from smtp-fw-6001.amazon.com ([52.95.48.154]:13267 "EHLO smtp-fw-6001.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229942AbhFHJEv (ORCPT ); Tue, 8 Jun 2021 05:04:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1623142979; x=1654678979; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=RoPehTi+gxSPBB98YYz1eflzVTJmVmJIn2KFRSWg9ck=; b=gp5kO8WBxv+dMaQ0JaMHEdqucm3Fh/4ZQFiV7VnwNgRxLll3wwJvv3t3 A9lwYoDGHBiWwL0dXImheRVjO2LHt0X3vuFk+Oshm7ZvYRMgfO2go3wN1 OQwGfh+UbwoczLRdzz12o2hTDn2zo9UvUANKWo4s6GJAIPSwrgwGFPbVh o=; X-IronPort-AV: E=Sophos;i="5.83,257,1616457600"; d="scan'208";a="118724200" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-2c-2225282c.us-west-2.amazon.com) ([10.43.8.6]) by smtp-border-fw-6001.iad6.amazon.com with ESMTP; 08 Jun 2021 09:02:51 +0000 Received: from EX13MTAUWC002.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-2c-2225282c.us-west-2.amazon.com (Postfix) with ESMTPS id 5D152A25DD; Tue, 8 Jun 2021 09:02:50 +0000 (UTC) Received: from EX13D20UWC001.ant.amazon.com (10.43.162.244) by EX13MTAUWC002.ant.amazon.com (10.43.162.240) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 8 Jun 2021 09:02:49 +0000 Received: from [192.168.19.4] (10.43.161.57) by EX13D20UWC001.ant.amazon.com (10.43.162.244) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 8 Jun 2021 09:02:47 +0000 Message-ID: <7235ab66-8741-efff-727c-74d31089be5b@amazon.com> Date: Tue, 8 Jun 2021 11:02:45 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:90.0) Gecko/20100101 Thunderbird/90.0 Subject: Re: [PATCH 6/6] hyper-v: Handle hypercall code page as an overlay page Content-Language: en-US To: Siddharth Chandrasekaran , Paolo Bonzini , Marcelo Tosatti CC: Siddharth Chandrasekaran , Evgeny Iakovlev , Liran Alon , Ioannis Aslanidis , , References: <8f62de7363c68b52200d864c8e0139221617dba2.1621885749.git.sidcha@amazon.de> From: Alexander Graf In-Reply-To: <8f62de7363c68b52200d864c8e0139221617dba2.1621885749.git.sidcha@amazon.de> X-Originating-IP: [10.43.161.57] X-ClientProxiedBy: EX13D27UWA001.ant.amazon.com (10.43.160.19) To EX13D20UWC001.ant.amazon.com (10.43.162.244) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org CgpPbiAyNC4wNS4yMSAyMjowMiwgU2lkZGhhcnRoIENoYW5kcmFzZWthcmFuIHdyb3RlOgo+IEh5 cGVyY2FsbCBjb2RlIHBhZ2UgaXMgc3BlY2lmaWVkIGluIHRoZSBIeXBlci1WIFRMRlMgdG8gYmUg YW4gb3ZlcmxheQo+IHBhZ2UsIGllLiwgZ3Vlc3QgY2hvb3NlcyBhIEdQQSBhbmQgdGhlIGhvc3Qg X3BsYWNlc18gYSBwYWdlIGF0IHRoYXQKPiBsb2NhdGlvbiwgbWFraW5nIGl0IHZpc2libGUgdG8g dGhlIGd1ZXN0IGFuZCB0aGUgZXhpc3RpbmcgcGFnZSBiZWNvbWVzCj4gaW5hY2Nlc3NpYmxlLiBT aW1pbGFybHkgd2hlbiBkaXNhYmxlZCwgdGhlIGhvc3Qgc2hvdWxkIF9yZW1vdmVfIHRoZQo+IG92 ZXJsYXkgYW5kIHRoZSBvbGQgcGFnZSBzaG91bGQgYmVjb21lIHZpc2libGUgdG8gdGhlIGd1ZXN0 Lgo+IAo+IFVudGlsIG5vdywgS1ZNIHBhdGNoZWQgdGhlIGh5cGVyY2FsbCBjb2RlIGRpcmVjdGx5 IGludG8gdGhlIGd1ZXN0Cj4gY2hvc2VuIEdQQSB3aGljaCBpcyBpbmNvcnJlY3Q7IGluc3RlYWQs IHVzZSB0aGUgbmV3IHVzZXIgc3BhY2UgTVNSCj4gZmlsdGVyaW5nIGZlYXR1cmUgdG8gdHJhcCBo eXBlcmNhbGwgcGFnZSBNU1Igd3JpdGVzLCBvdmVybGF5IGl0IGFzCj4gcmVxdWVzdGVkIGFuZCB0 aGVuIGludm9rZSBhIEtWTV9TRVRfTVNSIGZyb20gdXNlciBzcGFjZSB0byBib3VuY2UgYmFjawo+ IGNvbnRyb2wgS1ZNLiBUaGlzIGJvdW5jZSBiYWNrIGlzIG5lZWRlZCBhcyBLVk0gbWF5IGhhdmUg dG8gd3JpdGUgZGF0YQo+IGludG8gdGhlIG5ld2x5IG92ZXJsYWlkIHBhZ2UuCj4gCj4gU2lnbmVk LW9mZi1ieTogU2lkZGhhcnRoIENoYW5kcmFzZWthcmFuIDxzaWRjaGFAYW1hem9uLmRlPgo+IC0t LQo+ICAgaHcvaHlwZXJ2L2h5cGVydi5jICAgICAgICAgfCAxMCArKysrLQo+ICAgaW5jbHVkZS9o dy9oeXBlcnYvaHlwZXJ2LmggfCAgNSArKysKPiAgIHRhcmdldC9pMzg2L2t2bS9oeXBlcnYuYyAg IHwgODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIHRhcmdldC9p Mzg2L2t2bS9oeXBlcnYuaCAgIHwgIDQgKysKPiAgIHRhcmdldC9pMzg2L2t2bS9rdm0uYyAgICAg IHwgMjYgKysrKysrKysrKystCj4gICA1IGZpbGVzIGNoYW5nZWQsIDEyNyBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9ody9oeXBlcnYvaHlwZXJ2LmMgYi9o dy9oeXBlcnYvaHlwZXJ2LmMKPiBpbmRleCBhYzQ1ZThlMTM5Li5hYTVhYzUyMjZlIDEwMDY0NAo+ IC0tLSBhL2h3L2h5cGVydi9oeXBlcnYuYwo+ICsrKyBiL2h3L2h5cGVydi9oeXBlcnYuYwo+IEBA IC0zNiw2ICszNiw3IEBAIHN0cnVjdCBTeW5JQ1N0YXRlIHsKPiAgIE9CSkVDVF9ERUNMQVJFX1NJ TVBMRV9UWVBFKFN5bklDU3RhdGUsIFNZTklDKQo+ICAgCj4gICBzdGF0aWMgYm9vbCBzeW5pY19l bmFibGVkOwo+ICtzdHJ1Y3QgaHlwZXJ2X292ZXJsYXlfcGFnZSBoY2FsbF9wYWdlOwo+ICAgCj4g ICBzdGF0aWMgdm9pZCBhbGxvY19vdmVybGF5X3BhZ2Uoc3RydWN0IGh5cGVydl9vdmVybGF5X3Bh Z2UgKm92ZXJsYXksCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICpv d25lciwgY29uc3QgY2hhciAqbmFtZSkKPiBAQCAtNTAsNyArNTEsNyBAQCBzdGF0aWMgdm9pZCBh bGxvY19vdmVybGF5X3BhZ2Uoc3RydWN0IGh5cGVydl9vdmVybGF5X3BhZ2UgKm92ZXJsYXksCj4g ICAgKiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCB3aXRoIGlvdGhyZWFkIGxvY2sgdGFrZW4g YXMgaXQgbW9kaWZpZXMKPiAgICAqIHRoZSBtZW1vcnkgaGllcmFyY2h5Lgo+ICAgICovCj4gLXN0 YXRpYyB2b2lkIGh5cGVydl9vdmVybGF5X3VwZGF0ZShzdHJ1Y3QgaHlwZXJ2X292ZXJsYXlfcGFn ZSAqb3ZlcmxheSwgaHdhZGRyIGFkZHIpCj4gK3ZvaWQgaHlwZXJ2X292ZXJsYXlfdXBkYXRlKHN0 cnVjdCBoeXBlcnZfb3ZlcmxheV9wYWdlICpvdmVybGF5LCBod2FkZHIgYWRkcikKPiAgIHsKPiAg ICAgICBpZiAoYWRkciAhPSBIWVBFUlZfSU5WQUxJRF9PVkVSTEFZX0dQQSkgewo+ICAgICAgICAg ICAvKiBjaGVjayBpZiBvdmVybGF5IHBhZ2UgaXMgZW5hYmxlZCAqLwo+IEBAIC03MCw2ICs3MSwx MyBAQCBzdGF0aWMgdm9pZCBoeXBlcnZfb3ZlcmxheV91cGRhdGUoc3RydWN0IGh5cGVydl9vdmVy bGF5X3BhZ2UgKm92ZXJsYXksIGh3YWRkciBhZAo+ICAgICAgIH0KPiAgIH0KPiAgIAo+ICt2b2lk IGh5cGVydl9vdmVybGF5X2luaXQodm9pZCkKPiArewo+ICsgICAgbWVtb3J5X3JlZ2lvbl9pbml0 X3JhbSgmaGNhbGxfcGFnZS5tciwgTlVMTCwgImh5cGVydi5oY2FsbF9wYWdlIiwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgcWVtdV9yZWFsX2hvc3RfcGFnZV9zaXplLCAmZXJyb3JfYWJv cnQpOwo+ICsgICAgaGNhbGxfcGFnZS5hZGRyID0gSFlQRVJWX0lOVkFMSURfT1ZFUkxBWV9HUEE7 Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBzeW5pY191cGRhdGUoU3luSUNTdGF0ZSAqc3luaWMs IGJvb2wgZW5hYmxlLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh3YWRkciBtc2dfcGFn ZV9hZGRyLCBod2FkZHIgZXZlbnRfcGFnZV9hZGRyKQo+ICAgewo+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2h3L2h5cGVydi9oeXBlcnYuaCBiL2luY2x1ZGUvaHcvaHlwZXJ2L2h5cGVydi5oCj4gaW5k ZXggZDk4OTE5M2U4NC4uZjQ0NDQzMWE4MSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2h3L2h5cGVy di9oeXBlcnYuaAo+ICsrKyBiL2luY2x1ZGUvaHcvaHlwZXJ2L2h5cGVydi5oCj4gQEAgLTg1LDYg Kzg1LDExIEBAIHN0YXRpYyBpbmxpbmUgdWludDMyX3QgaHlwZXJ2X3ZwX2luZGV4KENQVVN0YXRl ICpjcykKPiAgICAgICByZXR1cm4gY3MtPmNwdV9pbmRleDsKPiAgIH0KPiAgIAo+ICtleHRlcm4g c3RydWN0IGh5cGVydl9vdmVybGF5X3BhZ2UgaGNhbGxfcGFnZTsKPiArCj4gK3ZvaWQgaHlwZXJ2 X292ZXJsYXlfaW5pdCh2b2lkKTsKPiArdm9pZCBoeXBlcnZfb3ZlcmxheV91cGRhdGUoc3RydWN0 IGh5cGVydl9vdmVybGF5X3BhZ2UgKnBhZ2UsIGh3YWRkciBhZGRyKTsKPiArCj4gICB2b2lkIGh5 cGVydl9zeW5pY19hZGQoQ1BVU3RhdGUgKmNzKTsKPiAgIHZvaWQgaHlwZXJ2X3N5bmljX3Jlc2V0 KENQVVN0YXRlICpjcyk7Cj4gICB2b2lkIGh5cGVydl9zeW5pY191cGRhdGUoQ1BVU3RhdGUgKmNz LCBib29sIGVuYWJsZSwKPiBkaWZmIC0tZ2l0IGEvdGFyZ2V0L2kzODYva3ZtL2h5cGVydi5jIGIv dGFyZ2V0L2kzODYva3ZtL2h5cGVydi5jCj4gaW5kZXggZjQ5ZWQyNjIxZC4uMDFjOWMyNDY4YyAx MDA2NDQKPiAtLS0gYS90YXJnZXQvaTM4Ni9rdm0vaHlwZXJ2LmMKPiArKysgYi90YXJnZXQvaTM4 Ni9rdm0vaHlwZXJ2LmMKPiBAQCAtMTYsNiArMTYsNzYgQEAKPiAgICNpbmNsdWRlICJoeXBlcnYu aCIKPiAgICNpbmNsdWRlICJody9oeXBlcnYvaHlwZXJ2LmgiCj4gICAjaW5jbHVkZSAiaHlwZXJ2 LXByb3RvLmgiCj4gKyNpbmNsdWRlICJrdm1faTM4Ni5oIgo+ICsKPiArc3RydWN0IHg4Nl9odl9v dmVybGF5IHsKPiArICAgIHN0cnVjdCBoeXBlcnZfb3ZlcmxheV9wYWdlICpwYWdlOwo+ICsgICAg dWludDMyX3QgbXNyOwo+ICsgICAgaHdhZGRyIGdwYTsKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lk IGFzeW5jX292ZXJsYXlfdXBkYXRlKENQVVN0YXRlICpjcywgcnVuX29uX2NwdV9kYXRhIGRhdGEp Cj4gK3sKPiArICAgIFg4NkNQVSAqY3B1ID0gWDg2X0NQVShjcyk7Cj4gKyAgICBzdHJ1Y3QgeDg2 X2h2X292ZXJsYXkgKm92ZXJsYXkgPSBkYXRhLmhvc3RfcHRyOwo+ICsKPiArICAgIHFlbXVfbXV0 ZXhfbG9ja19pb3RocmVhZCgpOwo+ICsgICAgaHlwZXJ2X292ZXJsYXlfdXBkYXRlKG92ZXJsYXkt PnBhZ2UsIG92ZXJsYXktPmdwYSk7Cj4gKyAgICBxZW11X211dGV4X3VubG9ja19pb3RocmVhZCgp Owo+ICsKPiArICAgIC8qKgo+ICsgICAgICogQ2FsbCBLVk0gc28gaXQgY2FuIGtlZXAgYSBjb3B5 IG9mIHRoZSBNU1IgZGF0YSBhbmQgZG8gb3RoZXIgcG9zdC1vdmVybGF5Cj4gKyAgICAgKiBhY3Rp b25zIHN1Y2ggYXMgZmlsbGluZyB0aGUgb3ZlcmxheSBwYWdlIGNvbnRlbnRzIGJlZm9yZSByZXR1 cm5pbmcgdG8KPiArICAgICAqIGd1ZXN0LiBUaGlzIHdvcmtzIGJlY2F1c2UgTVNSIGZpbHRlcmlu ZyBpcyBpbmFjdGl2ZSBmb3IgS1ZNX1NFVF9NU1JTCj4gKyAgICAgKi8KPiArICAgIGt2bV9wdXRf b25lX21zcihjcHUsIG92ZXJsYXktPm1zciwgb3ZlcmxheS0+Z3BhKTsKPiArCj4gKyAgICBnX2Zy ZWUob3ZlcmxheSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRvX292ZXJsYXlfdXBkYXRlKFg4 NkNQVSAqY3B1LCBzdHJ1Y3QgaHlwZXJ2X292ZXJsYXlfcGFnZSAqcGFnZSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbXNyLCB1aW50NjRfdCBkYXRhKQo+ICt7Cj4g KyAgICBzdHJ1Y3QgeDg2X2h2X292ZXJsYXkgKm92ZXJsYXkgPSBnX21hbGxvYyhzaXplb2Yoc3Ry dWN0IHg4Nl9odl9vdmVybGF5KSk7Cj4gKwo+ICsgICAgKm92ZXJsYXkgPSAoc3RydWN0IHg4Nl9o dl9vdmVybGF5KSB7Cj4gKyAgICAgICAgLnBhZ2UgPSBwYWdlLAo+ICsgICAgICAgIC5tc3IgPSBt c3IsCj4gKyAgICAgICAgLmdwYSA9IGRhdGEKPiArICAgIH07Cj4gKwo+ICsgICAgLyoqCj4gKyAg ICAgKiBUaGlzIHdpbGwgcnVuIGluIHRoaXMgY3B1IHRocmVhZCBiZWZvcmUgaXQgcmV0dXJucyB0 byBLVk0sIGJ1dCBpbiBhCj4gKyAgICAgKiBzYWZlIGVudmlyb25tZW50IChpLmUuIHdoZW4gYWxs IGNwdXMgYXJlIHF1aWVzY2VudCkgLS0gdGhpcyBpcwo+ICsgICAgICogbmVjZXNzYXJ5IGJlY2F1 c2UgbWVtb3J5IGhpZXJhcmNoeSBpcyBiZWluZyBjaGFuZ2VkCj4gKyAgICAgKi8KPiArICAgIGFz eW5jX3NhZmVfcnVuX29uX2NwdShDUFUoY3B1KSwgYXN5bmNfb3ZlcmxheV91cGRhdGUsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgUlVOX09OX0NQVV9IT1NUX1BUUihvdmVybGF5KSk7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIG92ZXJsYXlfdXBkYXRlKFg4NkNQVSAqY3B1LCB1aW50MzJf dCBtc3IsIHVpbnQ2NF90IGRhdGEpCj4gK3sKPiArICAgIHN3aXRjaCAobXNyKSB7Cj4gKyAgICBj YXNlIEhWX1g2NF9NU1JfR1VFU1RfT1NfSUQ6Cj4gKyAgICAgICAgLyoqCj4gKyAgICAgICAgICog V2hlbiBHVUVTVF9PU19JRCBpcyBjbGVhcmVkLCBoeXBlcmNhbGwgb3ZlcmxheSBzaG91bGQgYmUg cmVtb3ZlZDsKPiArICAgICAgICAgKiBvdGhlcndpc2UgaXQgaXMgYSBOT1AuIFdlIHN0aWxsIG5l ZWQgdG8gZG8gYSBTRVRfTVNSIGhlcmUgYXMgdGhlCj4gKyAgICAgICAgICoga2VybmVsIG5lZWQg dG8ga2VlcCBhIGNvcHkgb2YgZGF0YS4KPiArICAgICAgICAgKi8KPiArICAgICAgICBpZiAoZGF0 YSAhPSAwKSB7Cj4gKyAgICAgICAgICAgIGt2bV9wdXRfb25lX21zcihjcHUsIG1zciwgZGF0YSk7 Cj4gKyAgICAgICAgICAgIHJldHVybjsKPiArICAgICAgICB9Cj4gKyAgICAgICAgLyogRmFrZSBh IHplcm8gd3JpdGUgdG8gdGhlIG92ZXJsYXkgcGFnZSBoY2FsbCB0byBpbnZhbGlkYXRlIHRoZSBt YXBwaW5nICovCj4gKyAgICAgICAgZG9fb3ZlcmxheV91cGRhdGUoY3B1LCAmaGNhbGxfcGFnZSwg bXNyLCAwKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgSFZfWDY0X01TUl9IWVBFUkNB TEw6Cj4gKyAgICAgICAgZG9fb3ZlcmxheV91cGRhdGUoY3B1LCAmaGNhbGxfcGFnZSwgbXNyLCBk YXRhKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgcmV0dXJu Owo+ICsgICAgfQo+ICt9Cj4gICAKPiAgIGludCBoeXBlcnZfeDg2X3N5bmljX2FkZChYODZDUFUg KmNwdSkKPiAgIHsKPiBAQCAtNDQsNiArMTE0LDIwIEBAIHN0YXRpYyB2b2lkIGFzeW5jX3N5bmlj X3VwZGF0ZShDUFVTdGF0ZSAqY3MsIHJ1bl9vbl9jcHVfZGF0YSBkYXRhKQo+ICAgICAgIHFlbXVf bXV0ZXhfdW5sb2NrX2lvdGhyZWFkKCk7Cj4gICB9Cj4gICAKPiAraW50IGt2bV9odl9oYW5kbGVf d3Jtc3IoWDg2Q1BVICpjcHUsIHVpbnQzMl90IG1zciwgdWludDY0X3QgZGF0YSkKPiArewo+ICsg ICAgc3dpdGNoIChtc3IpIHsKPiArICAgIGNhc2UgSFZfWDY0X01TUl9HVUVTVF9PU19JRDoKPiAr ICAgIGNhc2UgSFZfWDY0X01TUl9IWVBFUkNBTEw6Cj4gKyAgICAgICAgb3ZlcmxheV91cGRhdGUo Y3B1LCBtc3IsIGRhdGEpOwo+ICsgICAgICAgIGJyZWFrOwo+ICsgICAgZGVmYXVsdDoKPiArICAg ICAgICByZXR1cm4gLTE7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4g ICBpbnQga3ZtX2h2X2hhbmRsZV9leGl0KFg4NkNQVSAqY3B1LCBzdHJ1Y3Qga3ZtX2h5cGVydl9l eGl0ICpleGl0KQo+ICAgewo+ICAgICAgIENQVVg4NlN0YXRlICplbnYgPSAmY3B1LT5lbnY7Cj4g ZGlmZiAtLWdpdCBhL3RhcmdldC9pMzg2L2t2bS9oeXBlcnYuaCBiL3RhcmdldC9pMzg2L2t2bS9o eXBlcnYuaAo+IGluZGV4IDY3NTQzMjk2YzMuLjhlOTBmYTk0OWYgMTAwNjQ0Cj4gLS0tIGEvdGFy Z2V0L2kzODYva3ZtL2h5cGVydi5oCj4gKysrIGIvdGFyZ2V0L2kzODYva3ZtL2h5cGVydi5oCj4g QEAgLTIwLDggKzIwLDEyIEBACj4gICAKPiAgICNpZmRlZiBDT05GSUdfS1ZNCj4gICBpbnQga3Zt X2h2X2hhbmRsZV9leGl0KFg4NkNQVSAqY3B1LCBzdHJ1Y3Qga3ZtX2h5cGVydl9leGl0ICpleGl0 KTsKPiAraW50IGt2bV9odl9oYW5kbGVfd3Jtc3IoWDg2Q1BVICpjcHUsIHVpbnQzMl90IG1zciwg dWludDY0X3QgZGF0YSk7Cj4gKwo+ICAgI2VuZGlmCj4gICAKPiArdm9pZCBoeXBlcnZfeDg2X2hj YWxsX3BhZ2VfdXBkYXRlKFg4NkNQVSAqY3B1KTsKPiArCj4gICBpbnQgaHlwZXJ2X3g4Nl9zeW5p Y19hZGQoWDg2Q1BVICpjcHUpOwo+ICAgdm9pZCBoeXBlcnZfeDg2X3N5bmljX3Jlc2V0KFg4NkNQ VSAqY3B1KTsKPiAgIHZvaWQgaHlwZXJ2X3g4Nl9zeW5pY191cGRhdGUoWDg2Q1BVICpjcHUpOwo+ IGRpZmYgLS1naXQgYS90YXJnZXQvaTM4Ni9rdm0va3ZtLmMgYi90YXJnZXQvaTM4Ni9rdm0va3Zt LmMKPiBpbmRleCAzNTkxZjhjZWNjLi5iZmI5ZWZmNDQwIDEwMDY0NAo+IC0tLSBhL3RhcmdldC9p Mzg2L2t2bS9rdm0uYwo+ICsrKyBiL3RhcmdldC9pMzg2L2t2bS9rdm0uYwo+IEBAIC0yMzMzLDYg KzIzMzMsMTAgQEAgaW50IGt2bV9hcmNoX2luaXQoTWFjaGluZVN0YXRlICptcywgS1ZNU3RhdGUg KnMpCj4gICAgICAgICAgIH0KPiAgICAgICB9Cj4gICAKPiArICAgIGlmIChoYXNfaHlwZXJ2ICYm IG1zcl9maWx0ZXJzX2FjdGl2ZSkgewo+ICsgICAgICAgIGh5cGVydl9vdmVybGF5X2luaXQoKTsK PiArICAgIH0KPiArCj4gICAgICAgcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiBAQCAtNDYwOCw3ICs0 NjEyLDI3IEBAIHN0YXRpYyBib29sIGhvc3Rfc3VwcG9ydHNfdm14KHZvaWQpCj4gICAKPiAgIHN0 YXRpYyBpbnQga3ZtX2hhbmRsZV93cm1zcihYODZDUFUgKmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1 bikKPiAgIHsKPiAtICAgIHJldHVybiAwOwo+ICsgICAgaW50IHIgPSAtMTsKPiArICAgIHVpbnQz Ml90IG1zcjsKPiArICAgIHVpbnQ2NF90IGRhdGE7Cj4gKwo+ICsgICAgaWYgKHJ1bi0+bXNyLnJl YXNvbiAhPSBLVk1fTVNSX0VYSVRfUkVBU09OX0ZJTFRFUikgewo+ICsgICAgICAgIHJldHVybiAt MTsKPiArICAgIH0KPiArCj4gKyAgICBtc3IgPSBydW4tPm1zci5pbmRleDsKPiArICAgIGRhdGEg PSBydW4tPm1zci5kYXRhOwo+ICsKPiArICAgIHN3aXRjaCAobXNyKSB7Cj4gKyAgICBjYXNlIEhW X1g2NF9NU1JfR1VFU1RfT1NfSUQ6Cj4gKyAgICBjYXNlIEhWX1g2NF9NU1JfSFlQRVJDQUxMOgo+ ICsgICAgICAgIHIgPSBrdm1faHZfaGFuZGxlX3dybXNyKGNwdSwgbXNyLCBkYXRhKTsKPiArICAg ICAgICBicmVhazsKPiArICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgZXJyb3JfcmVwb3J0KCJVbmtu b3duIE1TUiBleGl0Iik7Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJuIHI7CgpJIHRoaW5rIHlv dSBjYW4gYWx3YXlzIHJldHVybiAwIGhlcmUsIGFzIGxvbmcgYXMgeW91IHNldCBtc3IuZXJyb3I9 MS4KCkFsZXgKCgoKQW1hem9uIERldmVsb3BtZW50IENlbnRlciBHZXJtYW55IEdtYkgKS3JhdXNl bnN0ci4gMzgKMTAxMTcgQmVybGluCkdlc2NoYWVmdHNmdWVocnVuZzogQ2hyaXN0aWFuIFNjaGxh ZWdlciwgSm9uYXRoYW4gV2Vpc3MKRWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRl bmJ1cmcgdW50ZXIgSFJCIDE0OTE3MyBCClNpdHo6IEJlcmxpbgpVc3QtSUQ6IERFIDI4OSAyMzcg ODc5CgoK