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=-14.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,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 7D1A8C43461 for ; Thu, 10 Sep 2020 11:18:40 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 D9B5A20684 for ; Thu, 10 Sep 2020 11:18:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="QgzToemD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D9B5A20684 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=txZkB92Llw6i5e1V9dUqOzHNB0YrEwUHyGhpaL/X9Mw=; b=QgzToemDrg2on6+D+8LwIg/v7 ESQYtU4Pbd5ymqsA8t7HvCZx+/tv5GxDYxEpNZ+khm1MuCloJE4pisFBlS4bFicPcW9SuRJQ8WQlL 4vuqBR0169t/MoTipRn580BkHCOvVt7vJ/ZxDFdC9LHLKdECC+KJvWB7EX3nAYqDP5Aad9gmzrRnC A7XtAjBTh1Fz/qYaFh0mtyNwYdYzNF0uFOW9+WOqqFSlvx61KvLfgU2p1h0gPIv5sTf0eey7N4mCR V30hadsZF++wRWOUZsas2fs4Kn7x93hQTfLc9SEUYdYq1QJ0Puig1e4rUc+kaw9XifrxBtq2Zxzcx k8TS0F0bA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kGKZl-0004pq-Ar; Thu, 10 Sep 2020 11:17:13 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kGKZi-0004pF-HU for linux-arm-kernel@lists.infradead.org; Thu, 10 Sep 2020 11:17:11 +0000 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 1CB7613D5; Thu, 10 Sep 2020 04:17:09 -0700 (PDT) Received: from [10.163.71.250] (unknown [10.163.71.250]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EFE763F68F; Thu, 10 Sep 2020 04:17:05 -0700 (PDT) Subject: Re: [PATCH] arm64/mm: add fallback option to allocate virtually contiguous memory To: sudaraja@codeaurora.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <01010174769e2b68-a6f3768e-aef8-43c7-b357-a8cb1e17d3eb-000000@us-west-2.amazonses.com> <0475e813-cb95-0992-39e4-593bfd5cdbf8@arm.com> <0101017477202341-51a1c9d3-5ba4-4328-b24c-0b29317af168-000000@us-west-2.amazonses.com> From: Anshuman Khandual Message-ID: Date: Thu, 10 Sep 2020 16:46:33 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <0101017477202341-51a1c9d3-5ba4-4328-b24c-0b29317af168-000000@us-west-2.amazonses.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200910_071710_792773_6ED4ECF5 X-CRM114-Status: GOOD ( 36.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: 'Mark Rutland' , 'David Hildenbrand' , 'Catalin Marinas' , 'Steven Price' , 'Logan Gunthorpe' , 'Andrew Morton' , 'Will Deacon' , pratikp@codeaurora.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAwOS8xMC8yMDIwIDAxOjU3IFBNLCBzdWRhcmFqYUBjb2RlYXVyb3JhLm9yZyB3cm90ZToK PiBIZWxsbyBBbnNodW1hbiwKPiAKPj4gT24gMDkvMTAvMjAyMCAxMTozNSBBTSwgU3VkYXJzaGFu IFJhamFnb3BhbGFuIHdyb3RlOgo+Pj4gV2hlbiBzZWN0aW9uIG1hcHBpbmdzIGFyZSBlbmFibGVk LCB3ZSBhbGxvY2F0ZSB2bWVtbWFwIHBhZ2VzIGZyb20gCj4+PiBwaHlzaWNhbGx5IGNvbnRpbnVv dXMgbWVtb3J5IG9mIHNpemUgUE1EX1NaSUUgdXNpbmcgCj4+PiB2bWVtbWFwX2FsbG9jX2Jsb2Nr X2J1ZigpLiBTZWN0aW9uPiBtYXBwaW5ncyBhcmUgZ29vZCB0byByZWR1Y2UgVExCIAo+Pj4gcHJl c3N1cmUuIEJ1dCB3aGVuIHN5c3RlbSBpcyBoaWdobHkgZnJhZ21lbnRlZCBhbmQgbWVtb3J5IGJs b2NrcyBhcmUgCj4+PiBiZWluZyBob3QtYWRkZWQgYXQgcnVudGltZSwgaXRzIHBvc3NpYmxlIHRo YXQgc3VjaCBwaHlzaWNhbGx5IAo+Pj4gY29udGludW91cyBtZW1vcnkgYWxsb2NhdGlvbnMgY2Fu IGZhaWwuIFJhdGhlciB0aGFuIGZhaWxpbmcgdGhlCj4+Cj4+IERpZCB5b3UgcmVhbGx5IHNlZSB0 aGlzIGhhcHBlbiBvbiBhIHN5c3RlbSA/Cj4gCj4gVGhhbmtzIGZvciB0aGUgcmVzcG9uc2UuCgpU aGVyZSBzZWVtcyB0byBiZSBzb21lIHRleHQgYWxpZ25tZW50IHByb2JsZW0gaW4geW91ciByZXNw b25zZSBvbiB0aGlzCnRocmVhZCwgcGxlYXNlIGhhdmUgYSBsb29rLgoKPiAKPiBZZXMsIHRoaXMg aGFwcGVuZWQgb24gYSBzeXN0ZW0gd2l0aCB2ZXJ5IGxvdyBSQU0gKHNpemUgfjEyME1CKSB3aGVy ZSBubyBmcmVlIG9yZGVyLTkgcGFnZXMgd2VyZSBwcmVzZW50LiBQYXN0aW5nIGJlbG93IGZldyBr ZXJuZWwgbG9ncy4gT24gc3lzdGVtcyB3aXRoIGxvdyBSQU0sIGl0cyBoaWdoIHByb2JhYmlsaXR5 IHdoZXJlIG1lbW9yeSBpcyBmcmFnbWVudGVkIGFuZCBubyBoaWdoZXIgb3JkZXIgcGFnZXMgYXJl IGZyZWUuIE9uIHN1Y2ggc2NlbmFyaW9zLCB2bWVtbWFwIGFsbG9jIHdvdWxkIGZhaWwgZm9yIFBN RF9TSVpFIG9mIGNvbnRpZ3VvdXMgbWVtb3J5Lgo+IAo+IFdlIGhhdmUgYSB1c2VjYXNlIGZvciBt ZW1vcnkgc2hhcmluZyBiZXR3ZWVuIFZNcyB3aGVyZSBvbmUgb2YgdGhlIFZNIHVzZXMgYWRkX21l bW9yeSgpIHRvIGFkZCB0aGUgbWVtb3J5IHRoYXQgd2FzIGRvbmF0ZWQgYnkgdGhlIG90aGVyIFZN LiBUaGlzIHVzZXMgc29tZXRoaW5nIHNpbWlsYXIgdG8gVmlydElPLU1lbS4gQW5kIHRoaXMgcmVx dWlyZXMgbWVtb3J5IHRvIGJlIF9ndWFyYW50ZWVkXyB0byBiZSBhZGRlZCBpbiB0aGUgVk0gc28g dGhhdCB0aGUgdXNlY2FzZSBjYW4gcnVuIHdpdGhvdXQgYW55IGZhaWx1cmUuCj4gCj4gdm1lbW1h cCBhbGxvYyBmYWlsdXJlOiBvcmRlcjo5LCBtb2RlOjB4NGNjMChHRlBfS0VSTkVMfF9fR0ZQX1JF VFJZX01BWUZBSUwpLCBub2RlbWFzaz0obnVsbCksY3B1c2V0PS8sbWVtc19hbGxvd2VkPTAKPiBD UFU6IDEgUElEOiAyOTQgQ29tbTogLS0tLS0tLS0gVGFpbnRlZDogRyBTICAgICAgICAgICAgICAg IDUuNC41MCAjMQo+IENhbGwgdHJhY2U6Cj4gIGR1bXBfc3RhY2srMHhhNC8weGRjCj4gIHdhcm5f YWxsb2MrMHgxMDQvMHgxNjAKPiAgdm1lbW1hcF9hbGxvY19ibG9jaysweGU0LzB4ZjQKPiAgdm1l bW1hcF9hbGxvY19ibG9ja19idWYrMHgzNC8weDM4Cj4gIHZtZW1tYXBfcG9wdWxhdGUrMHhjOC8w eDIyNAo+ICBfX3BvcHVsYXRlX3NlY3Rpb25fbWVtbWFwKzB4MzQvMHg1NAo+ICBzcGFyc2VfYWRk X3NlY3Rpb24rMHgxNmMvMHgyNTQKPiAgX19hZGRfcGFnZXMrMHhkMC8weDEzOAo+ICBhcmNoX2Fk ZF9tZW1vcnkrMHgxMTQvMHgxYTgKPiAKPiBETUEzMjogMjYyNyo0a0IgKFVNQykgMjMqOGtCIChV TUUpIDYqMTZrQiAoVU0pIDgqMzJrQiAoVU1FKSAyKjY0a0IgKE1FKSAyKjEyOGtCIChVRSkgMSoy NTZrQiAoTSkgMio1MTJrQiAoTUUpIDEqMTAyNGtCIChNKSAwKjIwNDhrQiAwKjQwOTZrQiA9IDEz NzMya0IKPiAzMDQ1NSBwYWdlcyBSQU0KPiAKPiBCdXQga2VlcGluZyB0aGlzIHVzZWNhc2UgYXNp ZGUsIHdvbuKAmXQgdGhpcyBiZSBwcm9ibGVtYXRpYyBvbiBhbnkgc3lzdGVtcyB3aXRoIGxvdyBS QU0gd2hlcmUgb3JkZXItOSBhbGxvYyB3b3VsZCBmYWlsIG9uIGEgZnJhZ21lbnRlZCBzeXN0ZW0s IGFuZCBhbnkgbWVtb3J5IGhvdC1hZGRpbmcgd291bGQgZmFpbD8gT3Igb3RoZXIgc2ltaWxhciB1 c2VycyBvZiBWaXJ0SU8tTWVtIHdoaWNoIHVzZXMgYXJjaF9hZGRfbWVtb3J5Lgo+IAo+Pgo+Pj4g bWVtb3J5IGhvdC1hZGQgcHJvY2VkdXJlLCBhZGQgYSBmYWxsYmFjayBvcHRpb24gdG8gYWxsb2Nh dGUgdm1lbW1hcCAKPj4+IHBhZ2VzIGZyb20gZGlzY29udGludW91cyBwYWdlcyB1c2luZyB2bWVt bWFwX3BvcHVsYXRlX2Jhc2VwYWdlcygpLgo+Pgo+PiBXaGljaCBjb3VsZCBsZWFkIHRvIGEgbWl4 ZWQgcGFnZSBzaXplIG1hcHBpbmcgaW4gdGhlIFZNRU1NQVAgYXJlYS4KPiAKPiBXb3VsZCB0aGlz IGJlIHByb2JsZW1hdGljPyBXZSB3b3VsZCBvbmx5IGxvc2Ugb25lIHNlY3Rpb24gbWFwcGluZyBw ZXIgZmFpbHVyZSBhbmQgaW5jcmVhc2VzIHNsaWdodCBUTEIgcHJlc3N1cmUuIEFsc28sIHdlIHdv dWxkIGFueXdheSBkbyBkaXNjb250aW51b3VzIHBhZ2VzIGFsbG9jIGZvciBzeXN0ZW1zIGhhdmlu ZyBub24tNEsgcGFnZXMgKEFSTTY0X1NXQVBQRVJfVVNFU19TRUNUSU9OX01BUFMgd2lsbCBiZSAw KS4gSSBvbmx5IHNlZSBhIHNtYWxsIGNvc3QgdG8gcGVyZm9ybWFuY2UgZHVlIHRvIHNsaWdodCBU TEIgcHJlc3N1cmUuCj4gCj4+IEFsbG9jYXRpb24gZmFpbHVyZSBpbiB2bWVtbWFwX3BvcHVsYXRl KCkgc2hvdWxkIGp1c3QgY2xlYW5seSBmYWlsIHRoZSBtZW1vcnkgaG90IGFkZCBvcGVyYXRpb24s IHdoaWNoIGNhbiB0aGVuIGJlIHJldHJpZWQuIFdoeSB0aGUgcmV0cnkgaGFzIHRvIGJlIG9mZmxv YWRlZCB0byBrZXJuZWwgPwo+IAo+IFdoaWxlIGEgcmV0cnkgY2FuIGF0dGVtcHRlZCBhZ2Fpbiwg YnV0IGl0IHdvbuKAmXQgaGVscCBpbiBjYXNlcyB3aGVyZSB0aGVyZSBhcmUgbm8gb3JkZXItOSBw YWdlcyBhdmFpbGFibGUgYW5kIGFueSByZXRyeSB3b3VsZCBqdXN0IG5vdCBzdWNjZWVkIGFnYWlu IHVudGlsIGEgb3JkZXItOSBwYWdlIGdldHMgZnJlZSdlZC4gSGVyZSB3ZSBhcmUganVzdCBmYWxs aW5nIGJhY2sgdG8gdXNlIGRpc2NvbnRpbnVvdXMgcGFnZXMgYWxsb2NhdGlvbiB0byBoZWxwIHN1 Y2NlZWQgbWVtb3J5IGhvdC1hZGQgYXMgYmVzdCBhcyBwb3NzaWJsZS4KClVuZGVyc3Rvb2QsIHNl ZW1zIGxpa2UgdGhlcmUgaXMgZW5vdWdoIHBvdGVudGlhbCB1c2UgY2FzZXMgYW5kIHNjZW5hcmlv cwpyaWdodCBub3csIHRvIGNvbnNpZGVyIHRoaXMgZmFsbGJhY2sgbWVjaGFuaXNtIGFuZCBhIHBv c3NpYmxlIG1peGVkIHBhZ2UKc2l6ZSB2bWVtbWFwLiBCdXQgSSB3b3VsZCBsZXQgb3RoZXJzIHdl aWdoIGluLCBvbiB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0LgoKPiAKPiBUaGFua3MgYW5kIFJlZ2Fy ZHMsCj4gU3VkYXJzaGFuCj4gCj4gLS0KPiBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5j LiBpcyBhIG1lbWJlciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwgYSBMaW51eCBGb3VuZGF0aW9uIENv bGxhYm9yYXRpdmUgUHJvamVjdAo+IAo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJv bTogQW5zaHVtYW4gS2hhbmR1YWwgPGFuc2h1bWFuLmtoYW5kdWFsQGFybS5jb20+IAo+IFNlbnQ6 IFdlZG5lc2RheSwgU2VwdGVtYmVyIDksIDIwMjAgMTE6NDUgUE0KPiBUbzogU3VkYXJzaGFuIFJh amFnb3BhbGFuIDxzdWRhcmFqYUBjb2RlYXVyb3JhLm9yZz47IGxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+IENjOiBDYXRh bGluIE1hcmluYXMgPGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tPjsgV2lsbCBEZWFjb24gPHdpbGxA a2VybmVsLm9yZz47IE1hcmsgUnV0bGFuZCA8bWFyay5ydXRsYW5kQGFybS5jb20+OyBMb2dhbiBH dW50aG9ycGUgPGxvZ2FuZ0BkZWx0YXRlZS5jb20+OyBEYXZpZCBIaWxkZW5icmFuZCA8ZGF2aWRA cmVkaGF0LmNvbT47IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+OyBT dGV2ZW4gUHJpY2UgPHN0ZXZlbi5wcmljZUBhcm0uY29tPgo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hd IGFybTY0L21tOiBhZGQgZmFsbGJhY2sgb3B0aW9uIHRvIGFsbG9jYXRlIHZpcnR1YWxseSBjb250 aWd1b3VzIG1lbW9yeQo+IAo+IEhlbGxvIFN1ZGFyc2hhbiwKPiAKPiBPbiAwOS8xMC8yMDIwIDEx OjM1IEFNLCBTdWRhcnNoYW4gUmFqYWdvcGFsYW4gd3JvdGU6Cj4+IFdoZW4gc2VjdGlvbiBtYXBw aW5ncyBhcmUgZW5hYmxlZCwgd2UgYWxsb2NhdGUgdm1lbW1hcCBwYWdlcyBmcm9tIAo+PiBwaHlz aWNhbGx5IGNvbnRpbnVvdXMgbWVtb3J5IG9mIHNpemUgUE1EX1NaSUUgdXNpbmcgCj4+IHZtZW1t YXBfYWxsb2NfYmxvY2tfYnVmKCkuIFNlY3Rpb24+IG1hcHBpbmdzIGFyZSBnb29kIHRvIHJlZHVj ZSBUTEIgCj4+IHByZXNzdXJlLiBCdXQgd2hlbiBzeXN0ZW0gaXMgaGlnaGx5IGZyYWdtZW50ZWQg YW5kIG1lbW9yeSBibG9ja3MgYXJlIAo+PiBiZWluZyBob3QtYWRkZWQgYXQgcnVudGltZSwgaXRz IHBvc3NpYmxlIHRoYXQgc3VjaCBwaHlzaWNhbGx5IAo+PiBjb250aW51b3VzIG1lbW9yeSBhbGxv Y2F0aW9ucyBjYW4gZmFpbC4gUmF0aGVyIHRoYW4gZmFpbGluZyB0aGUKPiAKPiBEaWQgeW91IHJl YWxseSBzZWUgdGhpcyBoYXBwZW4gb24gYSBzeXN0ZW0gPwo+IAo+PiBtZW1vcnkgaG90LWFkZCBw cm9jZWR1cmUsIGFkZCBhIGZhbGxiYWNrIG9wdGlvbiB0byBhbGxvY2F0ZSB2bWVtbWFwIAo+PiBw YWdlcyBmcm9tIGRpc2NvbnRpbnVvdXMgcGFnZXMgdXNpbmcgdm1lbW1hcF9wb3B1bGF0ZV9iYXNl cGFnZXMoKS4KPiAKPiBXaGljaCBjb3VsZCBsZWFkIHRvIGEgbWl4ZWQgcGFnZSBzaXplIG1hcHBp bmcgaW4gdGhlIFZNRU1NQVAgYXJlYS4KPiBBbGxvY2F0aW9uIGZhaWx1cmUgaW4gdm1lbW1hcF9w b3B1bGF0ZSgpIHNob3VsZCBqdXN0IGNsZWFubHkgZmFpbCB0aGUgbWVtb3J5IGhvdCBhZGQgb3Bl cmF0aW9uLCB3aGljaCBjYW4gdGhlbiBiZSByZXRyaWVkLiBXaHkgdGhlIHJldHJ5IGhhcyB0byBi ZSBvZmZsb2FkZWQgdG8ga2VybmVsID8KPiAKPj4KPj4gU2lnbmVkLW9mZi1ieTogU3VkYXJzaGFu IFJhamFnb3BhbGFuIDxzdWRhcmFqYUBjb2RlYXVyb3JhLm9yZz4KPj4gQ2M6IENhdGFsaW4gTWFy aW5hcyA8Y2F0YWxpbi5tYXJpbmFzQGFybS5jb20+Cj4+IENjOiBXaWxsIERlYWNvbiA8d2lsbEBr ZXJuZWwub3JnPgo+PiBDYzogQW5zaHVtYW4gS2hhbmR1YWwgPGFuc2h1bWFuLmtoYW5kdWFsQGFy bS5jb20+Cj4+IENjOiBNYXJrIFJ1dGxhbmQgPG1hcmsucnV0bGFuZEBhcm0uY29tPgo+PiBDYzog TG9nYW4gR3VudGhvcnBlIDxsb2dhbmdAZGVsdGF0ZWUuY29tPgo+PiBDYzogRGF2aWQgSGlsZGVu YnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+Cj4+IENjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4 LWZvdW5kYXRpb24ub3JnPgo+PiBDYzogU3RldmVuIFByaWNlIDxzdGV2ZW4ucHJpY2VAYXJtLmNv bT4KPj4gLS0tCj4+ICBhcmNoL2FybTY0L21tL21tdS5jIHwgMTUgKysrKysrKysrKysrLS0tCj4+ ICAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPj4KPj4g ZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvbW0vbW11LmMgYi9hcmNoL2FybTY0L21tL21tdS5jIGlu ZGV4IAo+PiA3NWRmNjJmLi5hNDZjN2Q0IDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L21tL21t dS5jCj4+ICsrKyBiL2FyY2gvYXJtNjQvbW0vbW11LmMKPj4gQEAgLTExMDAsNiArMTEwMCw3IEBA IGludCBfX21lbWluaXQgdm1lbW1hcF9wb3B1bGF0ZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNp Z25lZCBsb25nIGVuZCwgaW50IG5vZGUsCj4+ICAJcDRkX3QgKnA0ZHA7Cj4+ICAJcHVkX3QgKnB1 ZHA7Cj4+ICAJcG1kX3QgKnBtZHA7Cj4+ICsJaW50IHJldCA9IDA7Cj4+ICAKPj4gIAlkbyB7Cj4+ ICAJCW5leHQgPSBwbWRfYWRkcl9lbmQoYWRkciwgZW5kKTsKPj4gQEAgLTExMjEsMTUgKzExMjIs MjMgQEAgaW50IF9fbWVtaW5pdCB2bWVtbWFwX3BvcHVsYXRlKHVuc2lnbmVkIGxvbmcgc3RhcnQs IHVuc2lnbmVkIGxvbmcgZW5kLCBpbnQgbm9kZSwKPj4gIAkJCXZvaWQgKnAgPSBOVUxMOwo+PiAg Cj4+ICAJCQlwID0gdm1lbW1hcF9hbGxvY19ibG9ja19idWYoUE1EX1NJWkUsIG5vZGUsIGFsdG1h cCk7Cj4+IC0JCQlpZiAoIXApCj4+IC0JCQkJcmV0dXJuIC1FTk9NRU07Cj4+ICsJCQlpZiAoIXAp IHsKPj4gKyNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcKPj4gKwkJCQl2bWVtbWFwX2ZyZWUo c3RhcnQsIGVuZCwgYWx0bWFwKTsgI2VuZGlmCj4gCj4gVGhlIG1hcHBpbmcgd2FzIG5ldmVyIGNy ZWF0ZWQgaW4gdGhlIGZpcnN0IHBsYWNlLCBhcyB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuIHZtZW1t YXBfZnJlZSgpIGhlcmUgd2lsbCBmcmVlIGFuIHVubWFwcGVkIGFyZWEgIQo+IAo+PiArCQkJCXJl dCA9IC1FTk9NRU07Cj4+ICsJCQkJYnJlYWs7Cj4+ICsJCQl9Cj4+ICAKPj4gIAkJCXBtZF9zZXRf aHVnZShwbWRwLCBfX3BhKHApLCBfX3BncHJvdChQUk9UX1NFQ1RfTk9STUFMKSk7Cj4+ICAJCX0g ZWxzZQo+PiAgCQkJdm1lbW1hcF92ZXJpZnkoKHB0ZV90ICopcG1kcCwgbm9kZSwgYWRkciwgbmV4 dCk7Cj4+ICAJfSB3aGlsZSAoYWRkciA9IG5leHQsIGFkZHIgIT0gZW5kKTsKPj4gIAo+PiAtCXJl dHVybiAwOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVybiB2bWVtbWFwX3BvcHVsYXRlX2Jhc2Vw YWdlcyhzdGFydCwgZW5kLCBub2RlLCBhbHRtYXApOwo+PiArCWVsc2UKPj4gKwkJcmV0dXJuIHJl dDsKPj4gIH0KPj4gICNlbmRpZgkvKiAhQVJNNjRfU1dBUFBFUl9VU0VTX1NFQ1RJT05fTUFQUyAq Lwo+PiAgdm9pZCB2bWVtbWFwX2ZyZWUodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9u ZyBlbmQsCj4+Cj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAo+IGxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=