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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,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 B3843C433FF for ; Mon, 29 Jul 2019 12:14:03 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 926C9206B8 for ; Mon, 29 Jul 2019 12:14:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 926C9206B8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hs4XD-0007T5-L2; Mon, 29 Jul 2019 12:13:47 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hs4XC-0007Se-ST for xen-devel@lists.xenproject.org; Mon, 29 Jul 2019 12:13:46 +0000 X-Inumbo-ID: 500e2c17-b1fa-11e9-8980-bc764e045a96 Received: from foss.arm.com (unknown [217.140.110.172]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTP id 500e2c17-b1fa-11e9-8980-bc764e045a96; Mon, 29 Jul 2019 12:13:45 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4968E28; Mon, 29 Jul 2019 05:13:45 -0700 (PDT) Received: from [10.37.8.36] (unknown [10.37.8.36]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B55283F575; Mon, 29 Jul 2019 05:13:43 -0700 (PDT) To: xen-devel@lists.xenproject.org, George Dunlap References: <20190603160350.29806-1-julien.grall@arm.com> <20190603160350.29806-2-julien.grall@arm.com> From: Julien Grall Message-ID: Date: Mon, 29 Jul 2019 13:13:42 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190603160350.29806-2-julien.grall@arm.com> Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v3 01/14] xen/x86: Make mfn_to_gfn typesafe X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Tim Deegan , Wei Liu , Jan Beulich , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SGksCgpAR2VvcmdlIGNhbiBJIGdldCBhbiBhY2sgZm9yIHRoaXMgcGF0Y2g/CgpDaGVlcnMsCgpP biA2LzMvMTkgNTowMyBQTSwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IE5vIGZ1bmN0aW9uYWwgY2hh bmdlcyBpbnRlbmRlZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5n cmFsbEBhcm0uY29tPgo+IAo+IC0tLQo+ICAgICAgQ2hhbmdlcyBpbiB2MzoKPiAgICAgICAgICAt IFJlbW92ZSBnZm5feCguLi4pIGZvciBnZm4gdXNlZCBpbiBwYXJhbWV0ZXIgb2YgX190cmFjZV92 YXIoLi4uKS4KPiAKPiAgICAgIENoYW5nZXMgaW4gdjI6Cj4gICAgICAgICAgLSBQYXRjaCBhZGRl ZAo+IC0tLQo+ICAgeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICB8ICAyICstCj4gICB4 ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIHwgMzEgKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQo+ICAgeGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jICB8ICA0ICsrLS0K PiAgIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggICAgICAgfCAgNiArKystLS0KPiAgIDQgZmls ZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwo+IGlu ZGV4IDRjOTk1NDg2N2MuLjI3OTI3ODcxNWUgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L21t L3AybS5jCj4gKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCj4gQEAgLTk1MSw3ICs5NTEsNyBA QCBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIG1m bl90IG1mbiwKPiAgICAgICAgICAgfQo+ICAgICAgICAgICBpZiAoIHBhZ2VfZ2V0X293bmVyKG1m bl90b19wYWdlKG1mbl9hZGQobWZuLCBpKSkpICE9IGQgKQo+ICAgICAgICAgICAgICAgY29udGlu dWU7Cj4gLSAgICAgICAgb2dmbiA9IF9nZm4obWZuX3RvX2dmbihkLCBtZm5fYWRkKG1mbiwgaSkp KTsKPiArICAgICAgICBvZ2ZuID0gbWZuX3RvX2dmbihkLCBtZm5fYWRkKG1mbiwgaSkpOwo+ICAg ICAgICAgICBpZiAoICFnZm5fZXEob2dmbiwgX2dmbihJTlZBTElEX00yUF9FTlRSWSkpICYmCj4g ICAgICAgICAgICAgICAgIWdmbl9lcShvZ2ZuLCBnZm5fYWRkKGdmbiwgaSkpICkKPiAgICAgICAg ICAgewo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVu L2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwo+IGluZGV4IDc5NTIwMWRjODIuLjFlNjdiZDA3 MmEgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwo+ICsrKyBi L3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKPiBAQCAtNDc0LDcgKzQ3NCw4IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB0cmFjZV9yZXN5bmMoaW50IGV2ZW50LCBtZm5fdCBnbWZuKQo+ICAg ICAgIGlmICggdGJfaW5pdF9kb25lICkKPiAgICAgICB7Cj4gICAgICAgICAgIC8qIENvbnZlcnQg Z21mbiB0byBnZm4gKi8KPiAtICAgICAgICB1bnNpZ25lZCBsb25nIGdmbiA9IG1mbl90b19nZm4o Y3VycmVudC0+ZG9tYWluLCBnbWZuKTsKPiArICAgICAgICBnZm5fdCBnZm4gPSBtZm5fdG9fZ2Zu KGN1cnJlbnQtPmRvbWFpbiwgZ21mbik7Cj4gKwo+ICAgICAgICAgICBfX3RyYWNlX3ZhcihldmVu dCwgMC8qIXRzYyovLCBzaXplb2YoZ2ZuKSwgJmdmbik7Cj4gICAgICAgfQo+ICAgfQo+IEBAIC05 ODUsNyArOTg2LDggQEAgc3RhdGljIGlubGluZSB2b2lkIHRyYWNlX3NoYWRvd19wcmVhbGxvY191 bnBpbihzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBzbWZuKQo+ICAgICAgIGlmICggdGJfaW5pdF9k b25lICkKPiAgICAgICB7Cj4gICAgICAgICAgIC8qIENvbnZlcnQgc21mbiB0byBnZm4gKi8KPiAt ICAgICAgICB1bnNpZ25lZCBsb25nIGdmbjsKPiArICAgICAgICBnZm5fdCBnZm47Cj4gKwo+ICAg ICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKHNtZm4pKTsKPiAgICAgICAgICAgZ2ZuID0gbWZuX3Rv X2dmbihkLCBiYWNrcG9pbnRlcihtZm5fdG9fcGFnZShzbWZuKSkpOwo+ICAgICAgICAgICBfX3Ry YWNlX3ZhcihUUkNfU0hBRE9XX1BSRUFMTE9DX1VOUElOLCAwLyohdHNjKi8sIHNpemVvZihnZm4p LCAmZ2ZuKTsKPiBAQCAtMTg2MSw3ICsxODYzLDggQEAgc3RhdGljIGlubGluZSB2b2lkIHRyYWNl X3NoYWRvd193cm1hcF9iZihtZm5fdCBnbWZuKQo+ICAgICAgIGlmICggdGJfaW5pdF9kb25lICkK PiAgICAgICB7Cj4gICAgICAgICAgIC8qIENvbnZlcnQgZ21mbiB0byBnZm4gKi8KPiAtICAgICAg ICB1bnNpZ25lZCBsb25nIGdmbiA9IG1mbl90b19nZm4oY3VycmVudC0+ZG9tYWluLCBnbWZuKTsK PiArICAgICAgICBnZm5fdCBnZm4gPSBtZm5fdG9fZ2ZuKGN1cnJlbnQtPmRvbWFpbiwgZ21mbik7 Cj4gKwo+ICAgICAgICAgICBfX3RyYWNlX3ZhcihUUkNfU0hBRE9XX1dSTUFQX0JGLCAwLyohdHNj Ki8sIHNpemVvZihnZm4pLCAmZ2ZuKTsKPiAgICAgICB9Cj4gICB9Cj4gQEAgLTE5NDYsNyArMTk0 OSw3IEBAIGludCBzaF9yZW1vdmVfd3JpdGVfYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIG1mbl90 IGdtZm4sCj4gICAjaWYgU0hBRE9XX09QVElNSVpBVElPTlMgJiBTSE9QVF9XUklUQUJMRV9IRVVS SVNUSUMKPiAgICAgICBpZiAoIGN1cnItPmRvbWFpbiA9PSBkICkKPiAgICAgICB7Cj4gLSAgICAg ICAgdW5zaWduZWQgbG9uZyBnZm47Cj4gKyAgICAgICAgZ2ZuX3QgZ2ZuOwo+ICAgICAgICAgICAv KiBIZXVyaXN0aWM6IHRoZXJlIGlzIGxpa2VseSB0byBiZSBvbmx5IG9uZSB3cml0ZWFibGUgbWFw cGluZywKPiAgICAgICAgICAgICogYW5kIHRoYXQgbWFwcGluZyBpcyBsaWtlbHkgdG8gYmUgaW4g dGhlIGN1cnJlbnQgcGFnZXRhYmxlLAo+ICAgICAgICAgICAgKiBpbiB0aGUgZ3Vlc3QncyBsaW5l YXIgbWFwIChvbiBub24tSElHSFBURSBsaW51eCBhbmQgd2luZG93cykqLwo+IEBAIC0xOTY5LDgg KzE5NzIsOSBAQCBpbnQgc2hfcmVtb3ZlX3dyaXRlX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCBt Zm5fdCBnbWZuLAo+ICAgICAgICAgICAgICAgICAgIEdVRVNTKDB4QzAwMDAwMDBVTCArIChmYXVs dF9hZGRyID4+IDEwKSwgMSk7Cj4gICAKPiAgICAgICAgICAgICAgIC8qIExpbnV4IGxvd21lbTog Zmlyc3QgODk2TUIgaXMgbWFwcGVkIDEtdG8tMSBhYm92ZSAweEMwMDAwMDAwICovCj4gLSAgICAg ICAgICAgIGlmICgoZ2ZuID0gbWZuX3RvX2dmbihkLCBnbWZuKSkgPCAweDM4MDAwICkKPiAtICAg ICAgICAgICAgICAgIEdVRVNTKDB4QzAwMDAwMDBVTCArIChnZm4gPDwgUEFHRV9TSElGVCksIDQp Owo+ICsgICAgICAgICAgICBnZm4gPSBtZm5fdG9fZ2ZuKGQsIGdtZm4pOwo+ICsgICAgICAgICAg ICBpZiAoIGdmbl94KGdmbikgPCAweDM4MDAwICkKPiArICAgICAgICAgICAgICAgIEdVRVNTKDB4 QzAwMDAwMDBVTCArIGdmbl90b19nYWRkcihnZm4pLCA0KTsKPiAgIAo+ICAgICAgICAgICAgICAg LyogRnJlZUJTRDogTGluZWFyIG1hcCBhdCAweEJGQzAwMDAwICovCj4gICAgICAgICAgICAgICBp ZiAoIGxldmVsID09IDEgKQo+IEBAIC0xOTg3LDggKzE5OTEsOSBAQCBpbnQgc2hfcmVtb3ZlX3dy aXRlX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBnbWZuLAo+ICAgICAgICAgICAgICAg fQo+ICAgCj4gICAgICAgICAgICAgICAvKiBMaW51eCBsb3dtZW06IGZpcnN0IDg5Nk1CIGlzIG1h cHBlZCAxLXRvLTEgYWJvdmUgMHhDMDAwMDAwMCAqLwo+IC0gICAgICAgICAgICBpZiAoKGdmbiA9 IG1mbl90b19nZm4oZCwgZ21mbikpIDwgMHgzODAwMCApCj4gLSAgICAgICAgICAgICAgICBHVUVT UygweEMwMDAwMDAwVUwgKyAoZ2ZuIDw8IFBBR0VfU0hJRlQpLCA0KTsKPiArICAgICAgICAgICAg Z2ZuID0gbWZuX3RvX2dmbihkLCBnbWZuKTsKPiArICAgICAgICAgICAgaWYgKCBnZm5feChnZm4p IDwgMHgzODAwMCApCj4gKyAgICAgICAgICAgICAgICBHVUVTUygweEMwMDAwMDAwVUwgKyBnZm5f dG9fZ2FkZHIoZ2ZuKSwgNCk7Cj4gICAKPiAgICAgICAgICAgICAgIC8qIEZyZWVCU0QgUEFFOiBM aW5lYXIgbWFwIGF0IDB4QkY4MDAwMDAgKi8KPiAgICAgICAgICAgICAgIHN3aXRjaCAoIGxldmVs ICkKPiBAQCAtMjAxNiwxNSArMjAyMSwxNSBAQCBpbnQgc2hfcmVtb3ZlX3dyaXRlX2FjY2Vzcyhz dHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBnbWZuLAo+ICAgICAgICAgICAgICAgICogaGFkIGl0IGF0 IDB4ZmZmZjgxMDAwMDAwMDAwMCwgYW5kIG9sZGVyIGtlcm5lbHMgeWV0IGhhZCBpdAo+ICAgICAg ICAgICAgICAgICogYXQgMHgwMDAwMDEwMDAwMDAwMDAwVUwgKi8KPiAgICAgICAgICAgICAgIGdm biA9IG1mbl90b19nZm4oZCwgZ21mbik7Cj4gLSAgICAgICAgICAgIEdVRVNTKDB4ZmZmZjg4MDAw MDAwMDAwMFVMICsgKGdmbiA8PCBQQUdFX1NISUZUKSwgNCk7Cj4gLSAgICAgICAgICAgIEdVRVNT KDB4ZmZmZjgxMDAwMDAwMDAwMFVMICsgKGdmbiA8PCBQQUdFX1NISUZUKSwgNCk7Cj4gLSAgICAg ICAgICAgIEdVRVNTKDB4MDAwMDAxMDAwMDAwMDAwMFVMICsgKGdmbiA8PCBQQUdFX1NISUZUKSwg NCk7Cj4gKyAgICAgICAgICAgIEdVRVNTKDB4ZmZmZjg4MDAwMDAwMDAwMFVMICsgZ2ZuX3RvX2dh ZGRyKGdmbiksIDQpOwo+ICsgICAgICAgICAgICBHVUVTUygweGZmZmY4MTAwMDAwMDAwMDBVTCAr IGdmbl90b19nYWRkcihnZm4pLCA0KTsKPiArICAgICAgICAgICAgR1VFU1MoMHgwMDAwMDEwMDAw MDAwMDAwVUwgKyBnZm5fdG9fZ2FkZHIoZ2ZuKSwgNCk7Cj4gICAKPiAgICAgICAgICAgICAgIC8q Cj4gICAgICAgICAgICAgICAgKiA2NGJpdCBTb2xhcmlzIGtlcm5lbCBwYWdlIG1hcCBhdAo+ICAg ICAgICAgICAgICAgICoga3BtX3ZiYXNlOyAweGZmZmZmZTAwMDAwMDAwMDBVTAo+ICAgICAgICAg ICAgICAgICovCj4gLSAgICAgICAgICAgIEdVRVNTKDB4ZmZmZmZlMDAwMDAwMDAwMFVMICsgKGdm biA8PCBQQUdFX1NISUZUKSwgNCk7Cj4gKyAgICAgICAgICAgIEdVRVNTKDB4ZmZmZmZlMDAwMDAw MDAwMFVMICsgZ2ZuX3RvX2dhZGRyKGdmbiksIDQpOwo+ICAgCj4gICAgICAgICAgICAgICAgLyog RnJlZUJTRCA2NGJpdDogbGluZWFyIG1hcCAweGZmZmY4MDAwMDAwMDAwMDAgKi8KPiAgICAgICAg ICAgICAgICBzd2l0Y2ggKCBsZXZlbCApCj4gQEAgLTIwMzcsNyArMjA0Miw3IEBAIGludCBzaF9y ZW1vdmVfd3JpdGVfYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIG1mbl90IGdtZm4sCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArICgoZmF1bHRfYWRkciAmIFZBRERSX01BU0spID4+IDI3 KSwgNik7IGJyZWFrOwo+ICAgICAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgICAvKiBGcmVl QlNEIDY0Yml0OiBkaXJlY3QgbWFwIGF0IDB4ZmZmZmZmMDAwMDAwMDAwMCAqLwo+IC0gICAgICAg ICAgICAgR1VFU1MoMHhmZmZmZmYwMDAwMDAwMDAwICsgKGdmbiA8PCBQQUdFX1NISUZUKSwgNik7 Cj4gKyAgICAgICAgICAgICBHVUVTUygweGZmZmZmZjAwMDAwMDAwMDAgKyBnZm5fdG9fZ2FkZHIo Z2ZuKSwgNik7Cj4gICAgICAgICAgIH0KPiAgIAo+ICAgI3VuZGVmIEdVRVNTCj4gZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvbXVsdGkuYwo+IGluZGV4IDVmOGE3NDVkZTIuLjc0NjgxYmE4NWMgMTAwNjQ0Cj4gLS0tIGEv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCj4gKysrIGIveGVuL2FyY2gveDg2L21tL3No YWRvdy9tdWx0aS5jCj4gQEAgLTEwNzYsNyArMTA3Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz aGFkb3dfdnJhbV9nZXRfbDFlKHNoYWRvd19sMWVfdCBuZXdfc2wxZSwKPiAgICAgICAgICAgIHx8 ICFtZm5fdmFsaWQobWZuKSApICAgLyogbWZuIGNhbiBiZSBpbnZhbGlkIGluIG1taW9fZGlyZWN0 ICovCj4gICAgICAgICAgIHJldHVybjsKPiAgIAo+IC0gICAgZ2ZuID0gbWZuX3RvX2dmbihkLCBt Zm4pOwo+ICsgICAgZ2ZuID0gZ2ZuX3gobWZuX3RvX2dmbihkLCBtZm4pKTsKPiAgICAgICAvKiBQ YWdlIHNoYXJpbmcgbm90IHN1cHBvcnRlZCBvbiBzaGFkb3cgUFRzICovCj4gICAgICAgQlVHX09O KFNIQVJFRF9NMlAoZ2ZuKSk7Cj4gICAKPiBAQCAtMTEwNyw3ICsxMTA3LDcgQEAgc3RhdGljIGlu bGluZSB2b2lkIHNoYWRvd192cmFtX3B1dF9sMWUoc2hhZG93X2wxZV90IG9sZF9zbDFlLAo+ICAg ICAgICAgICAgfHwgIW1mbl92YWxpZChtZm4pICkgICAvKiBtZm4gY2FuIGJlIGludmFsaWQgaW4g bW1pb19kaXJlY3QgKi8KPiAgICAgICAgICAgcmV0dXJuOwo+ICAgCj4gLSAgICBnZm4gPSBtZm5f dG9fZ2ZuKGQsIG1mbik7Cj4gKyAgICBnZm4gPSBnZm5feChtZm5fdG9fZ2ZuKGQsIG1mbikpOwo+ ICAgICAgIC8qIFBhZ2Ugc2hhcmluZyBub3Qgc3VwcG9ydGVkIG9uIHNoYWRvdyBQVHMgKi8KPiAg ICAgICBCVUdfT04oU0hBUkVEX00yUChnZm4pKTsKPiAgIAo+IGRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAo+IGluZGV4IDA5 ZWY3ZTAyZmQuLjFhMDc1NTQ3ZTIgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9w Mm0uaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKPiBAQCAtNTA2LDEyICs1MDYs MTIgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigK PiAgIH0KPiAgIAo+ICAgLyogR2VuZXJhbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZyb20gbWZuIHRv IGdmbiAqLwo+IC1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbWZuX3RvX2dmbihjb25zdCBz dHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBtZm4pCj4gK3N0YXRpYyBpbmxpbmUgZ2ZuX3QgbWZuX3Rv X2dmbihjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBtZm4pCj4gICB7Cj4gICAgICAgaWYg KCBwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQo+IC0gICAgICAgIHJldHVybiBnZXRfZ3Bmbl9m cm9tX21mbihtZm5feChtZm4pKTsKPiArICAgICAgICByZXR1cm4gX2dmbihnZXRfZ3Bmbl9mcm9t X21mbihtZm5feChtZm4pKSk7Cj4gICAgICAgZWxzZQo+IC0gICAgICAgIHJldHVybiBtZm5feCht Zm4pOwo+ICsgICAgICAgIHJldHVybiBfZ2ZuKG1mbl94KG1mbikpOwo+ICAgfQo+ICAgCj4gICAj aWZkZWYgQ09ORklHX0hWTQo+IAoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==