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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C2F9EC76196 for ; Fri, 31 Mar 2023 14:51:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7yW3RbRhQXTU2YZKDzNX7ua8slC6/QnSndTK8+klFa4=; b=rKKOFWUcdPF81U 4IZ56LCSPrRWpIOO2uitAy8QGT7tiHYQPhlc0K6oVcoXyXsZqtBVA2t2Od8/SvEo3wI/DIaZxtM/X NnQjbidwuwVeHF0UdXMd7nvSfh/4IAUsuC/C/VBXhogwJfH0hPcgUqKX5736YKgFSMIXBI4CaZxuH Kuosw4jSm9/GXT/NCGSKGi2dJh8aLF9uXrN+5cE1zkg8fd2kQjzakI9ubG2jDcCSe8AU6LIRQMPY0 bU7bP+vDXZ+dilJTQRiX0Uia9v8viJRdY34AnJP1KONeEgIMbVKVLMI8rjgkNnuIBIs6RPo3TPX9q YSAl1BRO8qYgAzZB4JVA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1piG52-007nNu-2U; Fri, 31 Mar 2023 14:50:16 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1piG4x-007nM0-1C for linux-arm-kernel@lists.infradead.org; Fri, 31 Mar 2023 14:50:15 +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 DAFE82F4; Fri, 31 Mar 2023 07:50:48 -0700 (PDT) Received: from [10.57.20.151] (unknown [10.57.20.151]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 576053F6C4; Fri, 31 Mar 2023 07:50:03 -0700 (PDT) Message-ID: <8df69f86-b669-549a-cf04-40a4c2376c68@arm.com> Date: Fri, 31 Mar 2023 16:49:58 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [RFC PATCH] arch_topology: Pre-allocate cacheinfo from primary CPU Content-Language: en-US To: Radu Rendec , Sudeep Holla Cc: linux-arm-kernel@lists.infradead.org, Adrien Thierry , Eric Chanudet References: <20230323224242.31142-1-rrendec@redhat.com> <428070eb-d1d0-cd04-53c7-91e13ab64867@arm.com> <20230329150308.aaajdsh74olpjach@bogus> <334926dc894523f302b09e19138fb9fa7a142f8e.camel@redhat.com> From: Pierre Gondois In-Reply-To: <334926dc894523f302b09e19138fb9fa7a142f8e.camel@redhat.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230331_075011_636619_F49F32AC X-CRM114-Status: GOOD ( 63.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGVsbG8gUmFkdSwKCk9uIDMvMzEvMjMgMDE6MzIsIFJhZHUgUmVuZGVjIHdyb3RlOgo+IE9uIFRo dSwgMjAyMy0wMy0zMCBhdCAwODo1NyArMDIwMCwgUGllcnJlIEdvbmRvaXMgd3JvdGU6Cj4+IE9u IDMvMjkvMjMgMjM6MzUsIFJhZHUgUmVuZGVjIHdyb3RlOgo+Pj4gT24gV2VkLCAyMDIzLTAzLTI5 IGF0IDE3OjM5ICswMjAwLCBQaWVycmUgR29uZG9pcyB3cm90ZToKPj4+PiBPbiAzLzI5LzIzIDE3 OjAzLCBTdWRlZXAgSG9sbGEgd3JvdGU6Cj4+Pj4+IE9uIFdlZCwgTWFyIDI5LCAyMDIzIGF0IDA0 OjQyOjA3UE0gKzAyMDAsIFBpZXJyZSBHb25kb2lzIHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+IFRoaXMg d291bGQgbWVhbiB0aGF0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcywgdGhlIGNhY2hlaW5mbyB3b3Vs ZCBjb21lIGZyb20KPj4+Pj4+IEFDUEkvRFQgZmlyc3QuLi4uLgo+Pj4+Pgo+Pj4+PiB4ODYgZG9l c24ndCBmYWxsIGludG8gdGhlIGFib3ZlIGNhdGVnb3J5LiBTbyB3ZSBuZWVkIHRvIGVuc3VyZSBp dCBjb250aW51ZXMKPj4+Pj4gdG8gd29yayB3aXRoIG5vIGVycm9ycy4KPj4+Pgo+Pj4+IE9rLCB0 aGVuIG1heWJlIGhhdmluZyBhIHNlY29uZCBhcmNoIHNwZWNpZmljIGZ1bmN0aW9uIGxpa2UKPj4+ PiBpbml0X2NhY2hlX2xldmVsKCkgd291bGQgd29yay4KPj4+Pgo+Pj4+IFRoaXMgZnVuY3Rpb24g d291bGQgYmUgY2FsbGVkIGluIGZldGNoX2NhY2hlX2luZm8oKSBhZnRlcgo+Pj4+IGluaXRfb2Zf Y2FjaGVfbGV2ZWwoKS9hY3BpX2dldF9jYWNoZV9pbmZvKCkgZmFpbC4gSXQgd291bGQgZmV0Y2gK Pj4+PiBjYWNoZSBpbmZvIGFueXdoZXJlIGJ1dCBpbiBEVC9BQ1BJLgo+Pj4+IEFyY2hzIHRoYXQg ZG9uJ3Qgd2FudCBpdCB3b3VsZCBub3QgaW1wbGVtZW50IGl0LCBhbmQgaXQgd291bGQKPj4+PiBh bGxvdyB0aGUgb3RoZXJzIHRvIGdldCB0aGUgbnVtX2xlYXZlcy9sZXZlbHMgZHVyaW5nIGVhcmx5 IGJvb3QuCj4+Pgo+Pj4gSW4gcGFydGljdWxhciwgZm9yIGFybTY0IGlzIGl0IHBvc3NpYmxlIHRo YXQgQ0xJRFJfRUwxIG1heSBub3QgbG9vayB0aGUKPj4+IHNhbWUgZGVwZW5kaW5nIG9uIHRoZSBD UFUgdGhhdCByZWFkcyBpdD8gV2hhdCBhYm91dCBTb0MncyB3aXRoCj4+PiBhc3ltbWV0cmljYWwg Q1BVIGNvcmVzPyAobm8gY29uY3JldGUgZXhhbXBsZSBoZXJlLCBqdXN0IGFzc3VtaW5nIHRoaXMK Pj4+IGlzIGEgcmVhbC9wb3NzaWJsZSB0aGluZykKPj4KPj4gVGhpcyB3b3VsZCBpbmRlZWQgYmUg YW4gaXNzdWUgaWYgYWxsIHRoZSBDUFVzIGRvbid0IGhhdmUgdGhlIHNhbWUgbnVtYmVyL2xldmVs Cj4+IG9mIGNhY2hlcy4gSW4gY2FzZSB0aGVyZSBpcyBubyBEVC9BQ1BJLCBpdCBzaG91bGQgYmUg cG9zc2libGUgdG86Cj4+IC0gZnJvbSB0aGUgcHJpbWFyeSBDUFUgdXNpbmcgQ0xJRFJfRUwxLCBh bGxvY2F0ZSB0aGUgY2FjaGVpbmZvIChtYWtpbmcgdGhlCj4+ICDCoMKgIGFzc3VtcHRpb24gdGhl IHBsYXRmb3JtIGlzIHN5bW1ldHJpY2FsKQo+PiAtIGZyb20gdGhlIHNlY29uZGFyeSBDUFVzLCBp ZiB3ZSBrbm93IGEgcHJlLWFsbG9jYXRpb24gaGFzIGJlZW4gbWFkZSwKPj4gIMKgwqAgcnVuIGlu aXRfY2FjaGVfbGV2ZWwoKSBhbmQgY2hlY2sgdGhlIHByZS1hbGxvY2F0aW9uIHdhcyBjb3JyZWN0 Lgo+PiAgwqDCoCBJZiBub3QsIHJlLWFsbG9jYXRlIHRoZSBjYWNoZWluZm8gKGFuZCB0cmlnZ2Vy IGEgd2FybmluZykuCj4gCj4gVGhhdCBtYWtlcyBzZW5zZS4gVGhlIHF1ZXN0aW9uIGhlcmUgaXMg aG93IGRvIHdlIGtub3cgYSBwcmUtYWxsb2NhdGlvbgo+IGhhcyBiZWVuIG1hZGU/IElmIHdlIG1v ZGlmaWVkIGZldGNoX2NhY2hlX2luZm8oKSB0aGUgd2F5IHlvdSBwcm9wb3NlZCwKPiB0aGVuIHdl IHdvdWxkIGFsd2F5cyBwcmUtYWxsb2NhdGUgbWVtb3J5LCBhbmQgdXNpbmcgdGhlIHBvaW50ZXIg YWxvbmUKPiBpdCB3b3VsZCBiZSBpbXBvc3NpYmxlIHRvIHRlbGwgaWYgdGhlIHByZS1hbGxvY2F0 aW9uIGlzIGJhc2VkIG9uIGEKPiAiZ3Vlc3NlZCIgc2l6ZS4KPiAKPiBBbHNvIEknbSBub3Qgc3Vy ZSBhYm91dCB0aGUgInRyaWdnZXIgYSB3YXJuaW5nIiBwYXJ0LiBJZiBpdCdzIGFuIFJUCj4ga2Vy bmVsLCBpdCB3aWxsIHRyeSB0byByZWFsbG9jYXRlIGFuZCB0aGF0IHdpbGwgYmUgYSAiYnVnIiBz cGxhdAo+IGFueXdheS4gSWYgbm90LCB0aGUgcmVhbGxvY2F0aW9uIHdpbGwgZml4IHRoZSBpc3N1 ZSBhdXRvbWF0aWNhbGx5Lgo+IE1heWJlIGEgcHJfd2FybigpIGFzIG9wcG9zZWQgdG8gYSBXQVJO X09OKCkgKG9yIHBlcmhhcHMgdGhhdCdzIHdoYXQgeW91Cj4gaGFkIGluIG1pbmQgYXMgd2VsbCku CgpTb3JyeSBJIG1pc2Zvcm11bGF0ZWQsIEkganVzdCB3YW50ZWQgdG8gc2F5IHRoZSAiQlVHOiBz bGVlcGluZyBmdW5jdGlvbgpjYWxsZWQgZnJvbSBpbnZhbGlkIGNvbnRleHQiIHNwbGF0IHdvdWxk IGJlIHRyaWdnZXJlZC4KCj4gCj4+IEkgdGhpbmsgdGhpcyBpcyBtb3JlIG9yIGxlc3Mgd2hhdCB3 YXMgZG9uZSBpbiB0aGUgUkZDLCB0aGUgb25seSBkaWZmZXJlbmNlCj4+IGJlaW5nIHRoZXJlIGlz IG5vIGNhbGwgZnJvbSBzbXBfcHJlcGFyZV9jcHVzKCksIG9yIGRpZCBJIG1pc3Mgc29tZXRoaW5n ID8KPiAKPiBZZXMsIGl0J3MgbW9yZSBvciBsZXNzIHRoZSBzYW1lIHRoaW5nLiBUaGUgbWFpbiBk aWZmZXJlbmNlcyBhcmU6Cj4gICAqIFRoZXJlIGlzIG5vIHdpbmRvdyB3aGVuIHRoZSBpbmZvcm1h dGlvbiBpbiBzdHJ1Y3QgY3B1X2NhY2hlaW5mbyAodGhlCj4gICAgIG51bWJlciBvZiBjYWNoZSBs ZXZlbHMgYW5kIGxlYXZlcykgaXMgcG9wdWxhdGVkIGJ1dCBwb3RlbnRpYWxseQo+ICAgICBpbmFj Y3VyYXRlIChlLmcuIGluIHRoZSBjYXNlIG9mIGFzeW1tZXRyaWMgQ1BVcyB3aXRoIG5vIERUL0FD UEkpLgoKSW4gdGhlIGN1cnJlbnQgY29kZSwgZmV0Y2hfY2FjaGVfaW5mbygpIGFsbG9jYXRlcyB0 aGUgbWVtb3J5IGFuZCBwb3B1bGF0ZXMKbnVtX2xldmVscy9udW1fbGVhdmVzIGZyb20gdGhlIHBy aW1hcnkgQ1BVLiBUaGUgaW5mb3JtYXRpb24gaXMgcG9wdWxhdGVkCmxhdGVyIGZyb20gdGhlIHNl Y29uZGFyeSBDUFVzLiBTbyB0aGVyZSBpcyBhbHJlYWR5IGEgdGltZSB3aW5kb3cgd2hlbgp0aGUg aW5mb3JtYXRpb24gaXMgaW5hY2N1cmF0ZS4KCj4gICAqIFRoZSBsb2dpYyBpbiBkZXRlY3RfY2Fj aGVfYXR0cmlidXRlcygpIHJlbWFpbnMgdW5jaGFuZ2VkIGJlY2F1c2UgdGhlCj4gICAgIGFsbG9j YXRlZCBtZW1vcnkgaXMgInB1Ymxpc2hlZCIgdG8gY2lfY3B1X2NhY2hlaW5mbyBvbmx5IGlmIHRo ZSBzaXplCj4gICAgIGlzIGtub3duIHRvIGJlIGNvcnJlY3QgKGkuZS4gaXQgY29tZXMgZnJvbSBE VC9BQ1BJKS4KClllcyByaWdodC4KCj4gCj4gQmFzZWQgb24gd2hhdCB5b3UgcHJvcG9zZWQsIEkg aGFja2VkIGF3YXkgYXQgdGhlIGNvZGUgYW5kIGNhbWUgdXAgd2l0aAo+IHRoZSBwYXRjaCBiZWxv dy4gSXQgd29ya3MgaW4gbXkgcGFydGljdWxhciB0ZXN0IGNhc2UgYmVjYXVzZSB0aGUgQ1BVcwo+ IGFyZSBzeW1tZXRyaWNhbCwgYnV0IGRvZXNuJ3Qgc29sdmUgdGhlIHJlYWxsb2NhdGlvbiBwYXJ0 Lgo+IAo+IEkgY2FuJ3QgdGhpbmsgb2YgYW4gZWxlZ2FudCB3YXkgdG8gc29sdmUgdGhpcy4gT25l IHRoaW5nIHRoYXQgY29tZXMgdG8KPiBtaW5kIGlzIGNoYW5nZSB0aGUgbG9naWMgaW4gZGV0ZWN0 X2NhY2hlX2F0dHJpYnV0ZXMoKS4gQnV0IEkgYW0KPiByZWx1Y3RhbnQgYmVjYXVzZSB0aGlzIGNv ZGUgaXMgYXJjaGl0ZWN0dXJlIGluZGVwZW5kZW50LCB3aGlsZSB0aGUKPiAiZ3Vlc3MgZmlyc3Qv Zml4IGxhdGVyIiBzdHJhdGVneSBpcyBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyAoYXJtNjQgaW4K PiBvdXIgY2FzZSkuIFRoZSBtYWluIHByb2JsZW0gaXMgdGhhdCB0aGUgY2FsbCB0byBpbml0X2Nh Y2hlX2xldmVsKCkgaXMKPiBza2lwcGVkIGFsdG9nZXRoZXIgaWYgdGhlcmUgaXMgYSB2YWxpZCBw b2ludGVyIHZhbHVlIGluCj4gY2lfY3B1X2NhY2hlaW5mby4gSW4gb3RoZXIgd29yZHMsIGlmIHRo ZSBtZW1vcnkgaGFzIGJlZW4gYWxyZWFkeQo+IGFsbG9jYXRlZCwgaXQgaXMgYXNzdW1lZCB0byBi ZSBjb3JyZWN0LiBUaGlzIGlzIHdoeSBJIHVzZWQgYSBzZXBhcmF0ZQo+IHBlci1jcHUgdmFyaWFi bGUgaW4gbXkgb3JpZ2luYWwgUkZDIHBhdGNoLgo+IAo+IFdvdWxkIGl0IGJlIGhvcnJpYmxlIHRv IGFkZCBhIGJvb2wgZmllbGQgdG8gc3RydWN0IGNwdV9jYWNoZWluZm8gdGhhdAo+IHRlbGxzIHVz IGlmIHRoZSBsZXZlbHMvbGVhdmVzIGFyZSBiYXNlZCBvbiBlYXJseSBkZXRlY3Rpb24/IFRoZSBm aWVsZAo+IHdvdWxkIGJlIHNldCBieSBmZXRjaF9jYWNoZV9pbmZvKCkgd2hlbiBpdCBjYWxscyBl YXJseV9jYWNoZV9sZXZlbCgpIGFzCj4gZmFsbGJhY2suIFRoZW4gZGV0ZWN0X2NhY2hlX2F0dHJp YnV0ZXMoKSBjb3VsZCBhdm9pZCBza2lwcGluZyB0aGUgY2FsbAo+IHRvIGluaXRfY2FjaGVfbGV2 ZWwoKSB3aGVuIHRoZSBmbGFnIGlzIHNldC4gVGhlIG5pY2UgdGhpbmcgYWJvdXQgdGhpcwo+IGlz IHRoYXQgaXQgZG9lc24ndCBhZmZlY3Qgb3RoZXIgYXJjaGl0ZWN0dXJlcyAtIGlmIHRoZXkgZG9u J3QgaW1wbGVtZW50Cj4gZWFybHlfY2FjaGVfbGV2ZWwoKSwgdGhlIGZsYWcgaXMgbmV2ZXIgc2V0 IGFuZCB0aGVuIHRoZSBiZWhhdmlvciBvZgo+IGRldGVjdF9jYWNoZV9hdHRyaWJ1dGVzKCkgaXMg YmFzaWNhbGx5IHVuY2hhbmdlZC4KCkZXSVcgSSBwcmVmZXIgdGhlIHNvbHV0aW9uIHdpdGggdGhl IGJvb2wvZmxhZyBvdmVyIHRoZSBwZXItY3B1IHZhcmlhYmxlLgpBdDoKaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvYWxsLzIwMjMwMzI3MTE1OTUzLjc4ODI0NC00LXBpZXJyZS5nb25kb2lzQGFybS5j b20vCkkgc3VnZ2VzdGVkIHRvIGFkZCBhICdib29sIHVzZV9hcmNoX2luZm87JyBhbmQgbm9ib2R5 IHNlZW1lZCB0byBjb21wbGFpbgphYm91dCBpdCAoc28gZmFyKS4gSSBhc3N1bWUgdGhlIGZpZWxk IGNvdWxkIGJlIHJlLXVzZWQgZm9yIHRoaXMgcHVycG9zZS4KCj4gCj4gQmVzdCByZWdhcmRzLAo+ IFJhZHUKPiAKPiAgRnJvbSBhNzk1NDJkNDNhMGVjZTA2ZTEzYmZkNDMxYWJjOTgyOTlhOTc0N2Yy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+IEZyb206IFJhZHUgUmVuZGVjIDxycmVuZGVjQHJl ZGhhdC5jb20+Cj4gRGF0ZTogVGh1LCAzMCBNYXIgMjAyMyAxODoxODo0NiAtMDQwMAo+IFN1Ympl Y3Q6IFtQQVRDSF0gQWxsb2NhdGUgY2FjaGVpbmZvIGVhcmx5IC0gV0lQICMxCj4gCj4gU2lnbmVk LW9mZi1ieTogUmFkdSBSZW5kZWMgPHJyZW5kZWNAcmVkaGF0LmNvbT4KPiAtLS0KPiAgIGFyY2gv YXJtNjQva2VybmVsL2NhY2hlaW5mby5jIHwgMjIgKysrKysrKysrKysrKysrKysrKysrKwo+ICAg ZHJpdmVycy9iYXNlL2NhY2hlaW5mby5jIHwgMTIgKysrKysrKysrKy0tCj4gICBpbmNsdWRlL2xp bnV4L2NhY2hlaW5mby5oIHwgMSArCj4gICAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2Nh Y2hlaW5mby5jIGIvYXJjaC9hcm02NC9rZXJuZWwvY2FjaGVpbmZvLmMKPiBpbmRleCBjMzA3ZjY5 ZTliNTUuLjZmNWFjNWMzODVmMCAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybTY0L2tlcm5lbC9jYWNo ZWluZm8uYwo+ICsrKyBiL2FyY2gvYXJtNjQva2VybmVsL2NhY2hlaW5mby5jCj4gQEAgLTM4LDYg KzM4LDI3IEBAIHN0YXRpYyB2b2lkIGNpX2xlYWZfaW5pdChzdHJ1Y3QgY2FjaGVpbmZvICp0aGlz X2xlYWYsCj4gICB0aGlzX2xlYWYtPnR5cGUgPSB0eXBlOwo+ICAgfQo+ICtpbnQgZWFybHlfY2Fj aGVfbGV2ZWwodW5zaWduZWQgaW50IGNwdSkKPiArewo+ICsgdW5zaWduZWQgaW50IGN0eXBlLCBs ZXZlbCwgbGVhdmVzOwo+ICsgc3RydWN0IGNwdV9jYWNoZWluZm8gKnRoaXNfY3B1X2NpID0gZ2V0 X2NwdV9jYWNoZWluZm8oY3B1KTsKPiArCj4gKyBmb3IgKGxldmVsID0gMSwgbGVhdmVzID0gMDsg bGV2ZWwgPD0gTUFYX0NBQ0hFX0xFVkVMOyBsZXZlbCsrKSB7Cj4gKyBjdHlwZSA9IGdldF9jYWNo ZV90eXBlKGxldmVsKTsKPiArIGlmIChjdHlwZSA9PSBDQUNIRV9UWVBFX05PQ0FDSEUpIHsKPiAr IGxldmVsLS07Cj4gKyBicmVhazsKPiArIH0KPiArIC8qIFNlcGFyYXRlIGluc3RydWN0aW9uIGFu ZCBkYXRhIGNhY2hlcyAqLwo+ICsgbGVhdmVzICs9IChjdHlwZSA9PSBDQUNIRV9UWVBFX1NFUEFS QVRFKSA/IDIgOiAxOwo+ICsgfQo+ICsKPiArIHRoaXNfY3B1X2NpLT5udW1fbGV2ZWxzID0gbGV2 ZWw7Cj4gKyB0aGlzX2NwdV9jaS0+bnVtX2xlYXZlcyA9IGxlYXZlczsKPiArIHJldHVybiAwOwo+ ICt9Cj4gKwo+ICsjaWYgMAo+ICAgaW50IGluaXRfY2FjaGVfbGV2ZWwodW5zaWduZWQgaW50IGNw dSkKPiAgIHsKPiAgIHVuc2lnbmVkIGludCBjdHlwZSwgbGV2ZWwsIGxlYXZlczsKPiBAQCAtNzYs NiArOTcsNyBAQCBpbnQgaW5pdF9jYWNoZV9sZXZlbCh1bnNpZ25lZCBpbnQgY3B1KQo+ICAgdGhp c19jcHVfY2ktPm51bV9sZWF2ZXMgPSBsZWF2ZXM7Cj4gICByZXR1cm4gMDsKPiAgIH0KPiArI2Vu ZGlmCj4gICBpbnQgcG9wdWxhdGVfY2FjaGVfbGVhdmVzKHVuc2lnbmVkIGludCBjcHUpCj4gICB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9jYWNoZWluZm8uYyBiL2RyaXZlcnMvYmFzZS9j YWNoZWluZm8uYwo+IGluZGV4IGY2NTczYzMzNWY0Yy4uNDY0MDY3MWI0NTQ3IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvYmFzZS9jYWNoZWluZm8uYwo+ICsrKyBiL2RyaXZlcnMvYmFzZS9jYWNoZWlu Zm8uYwo+IEBAIC0zOTgsNiArMzk4LDExIEBAIHN0YXRpYyB2b2lkIGZyZWVfY2FjaGVfYXR0cmli dXRlcyh1bnNpZ25lZCBpbnQgY3B1KQo+ICAgY2FjaGVfc2hhcmVkX2NwdV9tYXBfcmVtb3ZlKGNw dSk7Cj4gICB9Cj4gK2ludCBfX3dlYWsgZWFybHlfY2FjaGVfbGV2ZWwodW5zaWduZWQgaW50IGNw dSkKPiArewo+ICsgcmV0dXJuIC1FTk9FTlQ7Cj4gK30KPiArCj4gICBpbnQgX193ZWFrIGluaXRf Y2FjaGVfbGV2ZWwodW5zaWduZWQgaW50IGNwdSkKPiAgIHsKPiAgIHJldHVybiAtRU5PRU5UOwo+ IEBAIC00NDYsOCArNDUxLDExIEBAIGludCBmZXRjaF9jYWNoZV9pbmZvKHVuc2lnbmVkIGludCBj cHUpCj4gICAqLwo+ICAgdGhpc19jcHVfY2ktPm51bV9sZWF2ZXMgPSBsZXZlbHMgKyBzcGxpdF9s ZXZlbHM7Cj4gICB9Cj4gLSBpZiAoIWNhY2hlX2xlYXZlcyhjcHUpKQo+IC0gcmV0dXJuIC1FTk9F TlQ7Cj4gKyBpZiAoIWNhY2hlX2xlYXZlcyhjcHUpKSB7Cj4gKyByZXQgPSBlYXJseV9jYWNoZV9s ZXZlbChjcHUpOwo+ICsgaWYgKHJldCA8IDApCj4gKyByZXR1cm4gcmV0Owo+ICsgfQoKSWYgdGhl cmUgYXJlIG5vIFBQVFQsIGFjcGlfZ2V0X2NhY2hlX2luZm8oKSBzaG91bGQgcmV0dXJuIGFuIGVy cm9yIGNvZGUuClRoZSBwYXRjaC1zZXQgYXQ6Cmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8y MDIzMDMyNzExNTk1My43ODgyNDQtMS1waWVycmUuZ29uZG9pc0Bhcm0uY29tLwpzaG91bGQgbWFr ZSBpbml0X29mX2NhY2hlX2xldmVsKCkgcmV0dXJuIGVycm9yIGNvZGUgYXN3ZWxsLgoKSSB0aGlu ayB0aGVzZSBlcnJvciBjb2RlcyBzaG91bGQgYmUgY2F1Z2h0IGluc3RlYWQgb2YgY2hlY2tpbmc6 CisgaWYgKCFjYWNoZV9sZWF2ZXMoY3B1KSkKCj4gICByZXR1cm4gYWxsb2NhdGVfY2FjaGVfaW5m byhjcHUpOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NhY2hlaW5mby5oIGIv aW5jbHVkZS9saW51eC9jYWNoZWluZm8uaAo+IGluZGV4IDkwOGUxOWQxN2Y0OS4uOTc4ODEwMGE3 ZDNjIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvY2FjaGVpbmZvLmgKPiArKysgYi9pbmNs dWRlL2xpbnV4L2NhY2hlaW5mby5oCj4gQEAgLTc5LDYgKzc5LDcgQEAgc3RydWN0IGNwdV9jYWNo ZWluZm8gewo+ICAgfTsKPiAgIHN0cnVjdCBjcHVfY2FjaGVpbmZvICpnZXRfY3B1X2NhY2hlaW5m byh1bnNpZ25lZCBpbnQgY3B1KTsKPiAraW50IGVhcmx5X2NhY2hlX2xldmVsKHVuc2lnbmVkIGlu dCBjcHUpOwo+ICAgaW50IGluaXRfY2FjaGVfbGV2ZWwodW5zaWduZWQgaW50IGNwdSk7Cj4gICBp bnQgaW5pdF9vZl9jYWNoZV9sZXZlbCh1bnNpZ25lZCBpbnQgY3B1KTsKPiAgIGludCBwb3B1bGF0 ZV9jYWNoZV9sZWF2ZXModW5zaWduZWQgaW50IGNwdSk7CgpSZWdhcmRzLApQaWVycmUKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJu ZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK