From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v2 09/10] xen/arm: map reserved-memory regions as normal memory in dom0 Date: Tue, 7 May 2019 20:52:04 +0100 Message-ID: References: <1556658172-8824-9-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hO68H-0002iv-Dq for xen-devel@lists.xenproject.org; Tue, 07 May 2019 19:52:09 +0000 In-Reply-To: <1556658172-8824-9-git-send-email-sstabellini@kernel.org> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefano Stabellini , xen-devel@lists.xenproject.org Cc: Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGksCgpPbiA0LzMwLzE5IDEwOjAyIFBNLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6Cj4gcmVz ZXJ2ZWQtbWVtb3J5IHJlZ2lvbnMgc2hvdWxkIGJlIG1hcHBlZCBhcyBub3JtYWwgbWVtb3J5LiBB dCB0aGUKPiBtb21lbnQsIHRoZXkgZ2V0IHJlbWFwcGVkIGFzIGRldmljZSBtZW1vcnkgaW4gZG9t MCBiZWNhdXNlIFhlbiBkb2Vzbid0Cj4ga25vdyBhbnkgYmV0dGVyLiBBZGQgYW4gZXhwbGljaXQg Y2hlY2sgZm9yIGl0LgoKVGhpcyBwYXJ0IG1hdGNoZXMgdGhlIHRpdGxlIG9mIHRoZSBwYXRjaCBi dXQuLi4KCj4gCj4gcmVzZXJ2ZWQtbWVtb3J5IHJlZ2lvbnMgb3ZlcmxhcCB3aXRoIG1lbW9yeSBu b2Rlcy4gVGhlIG92ZXJsYXBwaW5nCj4gbWVtb3J5IGlzIHJlc2VydmVkLW1lbW9yeSBhbmQgc2hv dWxkIGJlIGhhbmRsZWQgYWNjb3JkaW5nbHk6Cj4gY29uc2lkZXJfbW9kdWxlcyBhbmQgZHRfdW5y ZXNlcnZlZF9yZWdpb25zIHNob3VsZCBza2lwIHRoZXNlIHJlZ2lvbnMgdGhlCj4gc2FtZSB3YXkg dGhleSBhcmUgYWxyZWFkeSBza2lwcGluZyBtZW0tcmVzZXJ2ZSByZWdpb25zLgoKLi4uIHRoaXMg ZG9lc24ndC4gVGhleSBhcmUgYWN0dWFsbHkgdHdvIGRpZmZlcmVudCB0aGluZ3MgYW5kIHNob3Vs ZCBiZSAKaGFuZGxlZCBpbiBzZXBhcmF0ZSBwYXRjaGVzLgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBT dGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+Cj4gLS0tCj4gQ2hhbmdlcyBp biB2MjoKPiAtIGZpeCBjb21taXQgbWVzc2FnZTogZnVsbCBvdmVybGFwCj4gLSByZW1vdmUgY2hl Y2tfcmVzZXJ2ZWRfbWVtb3J5Cj4gLSBleHRlbmQgY29uc2lkZXJfbW9kdWxlcyBhbmQgZHRfdW5y ZXNlcnZlZF9yZWdpb25zCj4gLS0tCj4gICB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgfCAg NyArKysrKysrCj4gICB4ZW4vYXJjaC9hcm0vc2V0dXAuYyAgICAgICAgfCAzNiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2Rv bWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gaW5kZXggNWU3Zjk0 Yy4uZTVkNDg4ZCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKPiAr KysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKPiBAQCAtMTQwOCw2ICsxNDA4LDEzIEBA IHN0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9ub2RlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBr ZXJuZWxfaW5mbyAqa2luZm8sCj4gICAgICAgICAgICAgICAgICAiV0FSTklORzogUGF0aCAlcyBp cyByZXNlcnZlZCwgc2tpcCB0aGUgbm9kZSBhcyB3ZSBtYXkgcmUtdXNlIHRoZSBwYXRoLlxuIiwK PiAgICAgICAgICAgICAgICAgIHBhdGgpOwo+ICAgCj4gKyAgICAvKgo+ICsgICAgICogcmVzZXJ2 ZWQtbWVtb3J5IHJhbmdlcyBzaG91bGQgYmUgbWFwcGVkIGFzIG5vcm1hbCBtZW1vcnkgaW4gdGhl Cj4gKyAgICAgKiBwMm0uCj4gKyAgICAgKi8KPiArICAgIGlmICggIXN0cmNtcChkdF9ub2RlX25h bWUobm9kZSksICJyZXNlcnZlZC1tZW1vcnkiKSApCj4gKyAgICAgICAgcDJtdCA9IHAybV9tbWlv X2RpcmVjdF9jOwoKRG8gd2UgcmVhbGx5IG5lZWQgdGhpcz8gVGhlIGRlZmF1bHQgdHlwZSBpcyBh bHJlYWR5IHAybV9tbWlvX2RpcmVjdF9jIAooc2VlIGRlZmF1bHRfcDJtdCkuCgo+ICsKPiAgICAg ICByZXMgPSBoYW5kbGVfZGV2aWNlKGQsIG5vZGUsIHAybXQpOwo+ICAgICAgIGlmICggcmVzKQo+ ICAgICAgICAgICByZXR1cm4gcmVzOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vc2V0dXAu YyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCj4gaW5kZXggY2NiMGYxOC4uOTA4YjUyYyAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC9hcm0vc2V0dXAuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9zZXR1cC5j Cj4gQEAgLTIwNCw2ICsyMDQsMTkgQEAgdm9pZCBfX2luaXQgZHRfdW5yZXNlcnZlZF9yZWdpb25z KHBhZGRyX3QgcywgcGFkZHJfdCBlLAo+ICAgICAgICAgICB9Cj4gICAgICAgfQo+ICAgCj4gKyAg ICBmb3IgKCA7IGkgLSBuciA8IGJvb3RpbmZvLnJlc2VydmVkX21lbS5ucl9iYW5rczsgaSsrICkK Ckl0IHRvb2sgbWUgYSBiaXQgb2YgdGltZSB0byB1bmRlcnN0YW5kIHdoeSB5b3UgZG8gaSAtIG5y LiBJIHRoaW5rIHdlIApuZWVkIHNvbWUgY29tbWVudHMgZXhwbGFpbmluZyB0aGUgbmV3IGxvZ2lj LgoKTG9uZ2VyIHRlcm0gKGkuZSBJIHdpbGwgbm90IHB1c2ggZm9yIGl0IHRvZGF5IDopKSwgSSB0 aGluayB0aGlzIGNvZGUgCndvdWxkIGJlbmVmaXRzIG9mIHVzaW5nIGU4MjAtbGlrZS4gSXQgd291 bGQgbWFrZSB0aGUgY29kZSBjbGVhcmVyIGFuZCAKcHJvYmFibHkgbW9yZSBlZmZpY2llbnQgdGhh biB3aGF0IHdlIGN1cnJlbnRseSBoYXZlLgoKPiArICAgIHsKPiArICAgICAgICBwYWRkcl90IHJf cyA9IGJvb3RpbmZvLnJlc2VydmVkX21lbS5iYW5rW2kgLSBucl0uc3RhcnQ7Cj4gKyAgICAgICAg cGFkZHJfdCByX2UgPSByX3MgKyBib290aW5mby5yZXNlcnZlZF9tZW0uYmFua1tpIC0gbnJdLnNp emU7Cj4gKwo+ICsgICAgICAgIGlmICggcyA8IHJfZSAmJiByX3MgPCBlICkKPiArICAgICAgICB7 Cj4gKyAgICAgICAgICAgIGR0X3VucmVzZXJ2ZWRfcmVnaW9ucyhyX2UsIGUsIGNiLCBpKzEpOwo+ ICsgICAgICAgICAgICBkdF91bnJlc2VydmVkX3JlZ2lvbnMocywgcl9zLCBjYiwgaSsxKTsKPiAr ICAgICAgICAgICAgcmV0dXJuOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gICAgICAgY2Io cywgZSk7Cj4gICB9Cj4gICAKPiBAQCAtMzkwLDcgKzQwMyw3IEBAIHN0YXRpYyBwYWRkcl90IF9f aW5pdCBjb25zaWRlcl9tb2R1bGVzKHBhZGRyX3QgcywgcGFkZHJfdCBlLAo+ICAgewo+ICAgICAg IGNvbnN0IHN0cnVjdCBib290bW9kdWxlcyAqbWkgPSAmYm9vdGluZm8ubW9kdWxlczsKPiAgICAg ICBpbnQgaTsKPiAtICAgIGludCBucl9yc3ZkOwo+ICsgICAgaW50IG5yOwo+ICAgCj4gICAgICAg cyA9IChzK2FsaWduLTEpICYgfihhbGlnbi0xKTsKPiAgICAgICBlID0gZSAmIH4oYWxpZ24tMSk7 Cj4gQEAgLTQxNiw5ICs0MjksOSBAQCBzdGF0aWMgcGFkZHJfdCBfX2luaXQgY29uc2lkZXJfbW9k dWxlcyhwYWRkcl90IHMsIHBhZGRyX3QgZSwKPiAgIAo+ICAgICAgIC8qIE5vdyBjaGVjayBhbnkg ZmR0IHJlc2VydmVkIGFyZWFzLiAqLwo+ICAgCj4gLSAgICBucl9yc3ZkID0gZmR0X251bV9tZW1f cnN2KGRldmljZV90cmVlX2ZsYXR0ZW5lZCk7Cj4gKyAgICBuciA9IGZkdF9udW1fbWVtX3Jzdihk ZXZpY2VfdHJlZV9mbGF0dGVuZWQpOwo+ICAgCj4gLSAgICBmb3IgKCA7IGkgPCBtaS0+bnJfbW9k cyArIG5yX3JzdmQ7IGkrKyApCj4gKyAgICBmb3IgKCA7IGkgPCBtaS0+bnJfbW9kcyArIG5yOyBp KysgKQo+ICAgICAgIHsKPiAgICAgICAgICAgcGFkZHJfdCBtb2RfcywgbW9kX2U7Cj4gICAKPiBA QCAtNDQwLDYgKzQ1MywyMyBAQCBzdGF0aWMgcGFkZHJfdCBfX2luaXQgY29uc2lkZXJfbW9kdWxl cyhwYWRkcl90IHMsIHBhZGRyX3QgZSwKPiAgICAgICAgICAgICAgIHJldHVybiBjb25zaWRlcl9t b2R1bGVzKHMsIG1vZF9zLCBzaXplLCBhbGlnbiwgaSsxKTsKPiAgICAgICAgICAgfQo+ICAgICAg IH0KPiArCj4gKyAgICAvKiBOb3cgY2hlY2sgZm9yIHJlc2VydmVkLW1lbW9yeSByZWdpb25zICov Cj4gKyAgICBuciArPSBtaS0+bnJfbW9kczsKClNpbWlsYXIgdG8gdGhlIHByZXZpb3VzIGZ1bmN0 aW9uLCB0aGlzIG5lZWRzIHRvIGJlIGRvY3VtZW50ZWQuCgo+ICsgICAgZm9yICggOyBpIC0gbnIg PCBib290aW5mby5yZXNlcnZlZF9tZW0ubnJfYmFua3M7IGkrKyApCj4gKyAgICB7Cj4gKyAgICAg ICAgcGFkZHJfdCByX3MgPSBib290aW5mby5yZXNlcnZlZF9tZW0uYmFua1tpIC0gbnJdLnN0YXJ0 Owo+ICsgICAgICAgIHBhZGRyX3Qgcl9lID0gcl9zICsgYm9vdGluZm8ucmVzZXJ2ZWRfbWVtLmJh bmtbaSAtIG5yXS5zaXplOwo+ICsKPiArICAgICAgICBpZiAoIHMgPCByX2UgJiYgcl9zIDwgZSAp Cj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICByX2UgPSBjb25zaWRlcl9tb2R1bGVzKHJfZSwg ZSwgc2l6ZSwgYWxpZ24sIGkrMSk7CgpDb2Rpbmcgc3R5bGU6IHNwYWNlIGJlZm9yZSBhbmQgYWZ0 ZXIgdGhlIG9wZXJhdG9yLiBJZGVhbGx5LCB0aGUgcmVzdCBvZiAKdGhlIGZ1bmN0aW9uIHNob3Vs ZCBiZSBmaXhlZC4KCj4gKyAgICAgICAgICAgIGlmICggcl9lICkKPiArICAgICAgICAgICAgICAg IHJldHVybiByX2U7Cj4gKwo+ICsgICAgICAgICAgICByZXR1cm4gY29uc2lkZXJfbW9kdWxlcyhz LCByX3MsIHNpemUsIGFsaWduLCBpKzEpOwoKU2FtZSBoZXJlLgoKPiArICAgICAgICB9Cj4gKyAg ICB9Cj4gICAgICAgcmV0dXJuIGU7Cj4gICB9Cj4gICAjZW5kaWYKPiAKCkNoZWVycywKCi0tIApK dWxpZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= 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=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 B70FBC004C9 for ; Tue, 7 May 2019 19:52:29 +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 9233C206A3 for ; Tue, 7 May 2019 19:52:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9233C206A3 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 1hO68I-0002j0-PL; Tue, 07 May 2019 19:52:10 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hO68H-0002iv-Dq for xen-devel@lists.xenproject.org; Tue, 07 May 2019 19:52:09 +0000 X-Inumbo-ID: 987029fc-7101-11e9-aa1c-a74f58587ba2 Received: from foss.arm.com (unknown [217.140.101.70]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTP id 987029fc-7101-11e9-aa1c-a74f58587ba2; Tue, 07 May 2019 19:52:07 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 90D8AA78; Tue, 7 May 2019 12:52:07 -0700 (PDT) Received: from [10.37.8.6] (unknown [10.37.8.6]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 298F43F5C1; Tue, 7 May 2019 12:52:05 -0700 (PDT) To: Stefano Stabellini , xen-devel@lists.xenproject.org References: <1556658172-8824-9-git-send-email-sstabellini@kernel.org> From: Julien Grall Message-ID: Date: Tue, 7 May 2019 20:52:04 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <1556658172-8824-9-git-send-email-sstabellini@kernel.org> Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v2 09/10] xen/arm: map reserved-memory regions as normal memory in dom0 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: Stefano Stabellini Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8"; format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190507195204.kbQ7US7rv8Hw3GxmVoUuvNWXcJjTdGMDvJUAwjHoMVI@z> SGksCgpPbiA0LzMwLzE5IDEwOjAyIFBNLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6Cj4gcmVz ZXJ2ZWQtbWVtb3J5IHJlZ2lvbnMgc2hvdWxkIGJlIG1hcHBlZCBhcyBub3JtYWwgbWVtb3J5LiBB dCB0aGUKPiBtb21lbnQsIHRoZXkgZ2V0IHJlbWFwcGVkIGFzIGRldmljZSBtZW1vcnkgaW4gZG9t MCBiZWNhdXNlIFhlbiBkb2Vzbid0Cj4ga25vdyBhbnkgYmV0dGVyLiBBZGQgYW4gZXhwbGljaXQg Y2hlY2sgZm9yIGl0LgoKVGhpcyBwYXJ0IG1hdGNoZXMgdGhlIHRpdGxlIG9mIHRoZSBwYXRjaCBi dXQuLi4KCj4gCj4gcmVzZXJ2ZWQtbWVtb3J5IHJlZ2lvbnMgb3ZlcmxhcCB3aXRoIG1lbW9yeSBu b2Rlcy4gVGhlIG92ZXJsYXBwaW5nCj4gbWVtb3J5IGlzIHJlc2VydmVkLW1lbW9yeSBhbmQgc2hv dWxkIGJlIGhhbmRsZWQgYWNjb3JkaW5nbHk6Cj4gY29uc2lkZXJfbW9kdWxlcyBhbmQgZHRfdW5y ZXNlcnZlZF9yZWdpb25zIHNob3VsZCBza2lwIHRoZXNlIHJlZ2lvbnMgdGhlCj4gc2FtZSB3YXkg dGhleSBhcmUgYWxyZWFkeSBza2lwcGluZyBtZW0tcmVzZXJ2ZSByZWdpb25zLgoKLi4uIHRoaXMg ZG9lc24ndC4gVGhleSBhcmUgYWN0dWFsbHkgdHdvIGRpZmZlcmVudCB0aGluZ3MgYW5kIHNob3Vs ZCBiZSAKaGFuZGxlZCBpbiBzZXBhcmF0ZSBwYXRjaGVzLgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBT dGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+Cj4gLS0tCj4gQ2hhbmdlcyBp biB2MjoKPiAtIGZpeCBjb21taXQgbWVzc2FnZTogZnVsbCBvdmVybGFwCj4gLSByZW1vdmUgY2hl Y2tfcmVzZXJ2ZWRfbWVtb3J5Cj4gLSBleHRlbmQgY29uc2lkZXJfbW9kdWxlcyBhbmQgZHRfdW5y ZXNlcnZlZF9yZWdpb25zCj4gLS0tCj4gICB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgfCAg NyArKysrKysrCj4gICB4ZW4vYXJjaC9hcm0vc2V0dXAuYyAgICAgICAgfCAzNiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2Rv bWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gaW5kZXggNWU3Zjk0 Yy4uZTVkNDg4ZCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKPiAr KysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKPiBAQCAtMTQwOCw2ICsxNDA4LDEzIEBA IHN0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9ub2RlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBr ZXJuZWxfaW5mbyAqa2luZm8sCj4gICAgICAgICAgICAgICAgICAiV0FSTklORzogUGF0aCAlcyBp cyByZXNlcnZlZCwgc2tpcCB0aGUgbm9kZSBhcyB3ZSBtYXkgcmUtdXNlIHRoZSBwYXRoLlxuIiwK PiAgICAgICAgICAgICAgICAgIHBhdGgpOwo+ICAgCj4gKyAgICAvKgo+ICsgICAgICogcmVzZXJ2 ZWQtbWVtb3J5IHJhbmdlcyBzaG91bGQgYmUgbWFwcGVkIGFzIG5vcm1hbCBtZW1vcnkgaW4gdGhl Cj4gKyAgICAgKiBwMm0uCj4gKyAgICAgKi8KPiArICAgIGlmICggIXN0cmNtcChkdF9ub2RlX25h bWUobm9kZSksICJyZXNlcnZlZC1tZW1vcnkiKSApCj4gKyAgICAgICAgcDJtdCA9IHAybV9tbWlv X2RpcmVjdF9jOwoKRG8gd2UgcmVhbGx5IG5lZWQgdGhpcz8gVGhlIGRlZmF1bHQgdHlwZSBpcyBh bHJlYWR5IHAybV9tbWlvX2RpcmVjdF9jIAooc2VlIGRlZmF1bHRfcDJtdCkuCgo+ICsKPiAgICAg ICByZXMgPSBoYW5kbGVfZGV2aWNlKGQsIG5vZGUsIHAybXQpOwo+ICAgICAgIGlmICggcmVzKQo+ ICAgICAgICAgICByZXR1cm4gcmVzOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vc2V0dXAu YyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCj4gaW5kZXggY2NiMGYxOC4uOTA4YjUyYyAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC9hcm0vc2V0dXAuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9zZXR1cC5j Cj4gQEAgLTIwNCw2ICsyMDQsMTkgQEAgdm9pZCBfX2luaXQgZHRfdW5yZXNlcnZlZF9yZWdpb25z KHBhZGRyX3QgcywgcGFkZHJfdCBlLAo+ICAgICAgICAgICB9Cj4gICAgICAgfQo+ICAgCj4gKyAg ICBmb3IgKCA7IGkgLSBuciA8IGJvb3RpbmZvLnJlc2VydmVkX21lbS5ucl9iYW5rczsgaSsrICkK Ckl0IHRvb2sgbWUgYSBiaXQgb2YgdGltZSB0byB1bmRlcnN0YW5kIHdoeSB5b3UgZG8gaSAtIG5y LiBJIHRoaW5rIHdlIApuZWVkIHNvbWUgY29tbWVudHMgZXhwbGFpbmluZyB0aGUgbmV3IGxvZ2lj LgoKTG9uZ2VyIHRlcm0gKGkuZSBJIHdpbGwgbm90IHB1c2ggZm9yIGl0IHRvZGF5IDopKSwgSSB0 aGluayB0aGlzIGNvZGUgCndvdWxkIGJlbmVmaXRzIG9mIHVzaW5nIGU4MjAtbGlrZS4gSXQgd291 bGQgbWFrZSB0aGUgY29kZSBjbGVhcmVyIGFuZCAKcHJvYmFibHkgbW9yZSBlZmZpY2llbnQgdGhh biB3aGF0IHdlIGN1cnJlbnRseSBoYXZlLgoKPiArICAgIHsKPiArICAgICAgICBwYWRkcl90IHJf cyA9IGJvb3RpbmZvLnJlc2VydmVkX21lbS5iYW5rW2kgLSBucl0uc3RhcnQ7Cj4gKyAgICAgICAg cGFkZHJfdCByX2UgPSByX3MgKyBib290aW5mby5yZXNlcnZlZF9tZW0uYmFua1tpIC0gbnJdLnNp emU7Cj4gKwo+ICsgICAgICAgIGlmICggcyA8IHJfZSAmJiByX3MgPCBlICkKPiArICAgICAgICB7 Cj4gKyAgICAgICAgICAgIGR0X3VucmVzZXJ2ZWRfcmVnaW9ucyhyX2UsIGUsIGNiLCBpKzEpOwo+ ICsgICAgICAgICAgICBkdF91bnJlc2VydmVkX3JlZ2lvbnMocywgcl9zLCBjYiwgaSsxKTsKPiAr ICAgICAgICAgICAgcmV0dXJuOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiArCj4gICAgICAgY2Io cywgZSk7Cj4gICB9Cj4gICAKPiBAQCAtMzkwLDcgKzQwMyw3IEBAIHN0YXRpYyBwYWRkcl90IF9f aW5pdCBjb25zaWRlcl9tb2R1bGVzKHBhZGRyX3QgcywgcGFkZHJfdCBlLAo+ICAgewo+ICAgICAg IGNvbnN0IHN0cnVjdCBib290bW9kdWxlcyAqbWkgPSAmYm9vdGluZm8ubW9kdWxlczsKPiAgICAg ICBpbnQgaTsKPiAtICAgIGludCBucl9yc3ZkOwo+ICsgICAgaW50IG5yOwo+ICAgCj4gICAgICAg cyA9IChzK2FsaWduLTEpICYgfihhbGlnbi0xKTsKPiAgICAgICBlID0gZSAmIH4oYWxpZ24tMSk7 Cj4gQEAgLTQxNiw5ICs0MjksOSBAQCBzdGF0aWMgcGFkZHJfdCBfX2luaXQgY29uc2lkZXJfbW9k dWxlcyhwYWRkcl90IHMsIHBhZGRyX3QgZSwKPiAgIAo+ICAgICAgIC8qIE5vdyBjaGVjayBhbnkg ZmR0IHJlc2VydmVkIGFyZWFzLiAqLwo+ICAgCj4gLSAgICBucl9yc3ZkID0gZmR0X251bV9tZW1f cnN2KGRldmljZV90cmVlX2ZsYXR0ZW5lZCk7Cj4gKyAgICBuciA9IGZkdF9udW1fbWVtX3Jzdihk ZXZpY2VfdHJlZV9mbGF0dGVuZWQpOwo+ICAgCj4gLSAgICBmb3IgKCA7IGkgPCBtaS0+bnJfbW9k cyArIG5yX3JzdmQ7IGkrKyApCj4gKyAgICBmb3IgKCA7IGkgPCBtaS0+bnJfbW9kcyArIG5yOyBp KysgKQo+ICAgICAgIHsKPiAgICAgICAgICAgcGFkZHJfdCBtb2RfcywgbW9kX2U7Cj4gICAKPiBA QCAtNDQwLDYgKzQ1MywyMyBAQCBzdGF0aWMgcGFkZHJfdCBfX2luaXQgY29uc2lkZXJfbW9kdWxl cyhwYWRkcl90IHMsIHBhZGRyX3QgZSwKPiAgICAgICAgICAgICAgIHJldHVybiBjb25zaWRlcl9t b2R1bGVzKHMsIG1vZF9zLCBzaXplLCBhbGlnbiwgaSsxKTsKPiAgICAgICAgICAgfQo+ICAgICAg IH0KPiArCj4gKyAgICAvKiBOb3cgY2hlY2sgZm9yIHJlc2VydmVkLW1lbW9yeSByZWdpb25zICov Cj4gKyAgICBuciArPSBtaS0+bnJfbW9kczsKClNpbWlsYXIgdG8gdGhlIHByZXZpb3VzIGZ1bmN0 aW9uLCB0aGlzIG5lZWRzIHRvIGJlIGRvY3VtZW50ZWQuCgo+ICsgICAgZm9yICggOyBpIC0gbnIg PCBib290aW5mby5yZXNlcnZlZF9tZW0ubnJfYmFua3M7IGkrKyApCj4gKyAgICB7Cj4gKyAgICAg ICAgcGFkZHJfdCByX3MgPSBib290aW5mby5yZXNlcnZlZF9tZW0uYmFua1tpIC0gbnJdLnN0YXJ0 Owo+ICsgICAgICAgIHBhZGRyX3Qgcl9lID0gcl9zICsgYm9vdGluZm8ucmVzZXJ2ZWRfbWVtLmJh bmtbaSAtIG5yXS5zaXplOwo+ICsKPiArICAgICAgICBpZiAoIHMgPCByX2UgJiYgcl9zIDwgZSAp Cj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICByX2UgPSBjb25zaWRlcl9tb2R1bGVzKHJfZSwg ZSwgc2l6ZSwgYWxpZ24sIGkrMSk7CgpDb2Rpbmcgc3R5bGU6IHNwYWNlIGJlZm9yZSBhbmQgYWZ0 ZXIgdGhlIG9wZXJhdG9yLiBJZGVhbGx5LCB0aGUgcmVzdCBvZiAKdGhlIGZ1bmN0aW9uIHNob3Vs ZCBiZSBmaXhlZC4KCj4gKyAgICAgICAgICAgIGlmICggcl9lICkKPiArICAgICAgICAgICAgICAg IHJldHVybiByX2U7Cj4gKwo+ICsgICAgICAgICAgICByZXR1cm4gY29uc2lkZXJfbW9kdWxlcyhz LCByX3MsIHNpemUsIGFsaWduLCBpKzEpOwoKU2FtZSBoZXJlLgoKPiArICAgICAgICB9Cj4gKyAg ICB9Cj4gICAgICAgcmV0dXJuIGU7Cj4gICB9Cj4gICAjZW5kaWYKPiAKCkNoZWVycywKCi0tIApK dWxpZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=