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 41159CFD2F6 for ; Thu, 27 Nov 2025 15:33:00 +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-Transfer-Encoding:Content-Type: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=jumAz4QUrMI1i2iMeyxqmTq8EHw/bvTuXfiddglJM44=; b=Wn7tf2yw15I33Y 9tYYsJKiO8XQQWoTWCLoHoxw22yFOf1Udu1vGXIfHRoL759AWRxd/iazil51cxmkG46LOj8OCUSPi cpzKtzuDQTtLH7QJh3pGoOJ9oTGHptyPfK9Wepzw86pAtIQZkIYeVL9IqJnm6taDHftUHxkUH/dxg 7cnmW0xhrM7e8SD0g5mHNN+DxM8YjQ/uwdOF2wRbdG/Rhro7ROB8lE6a9EKPnXTw8cHrss/jVP5tz 5rJ7oGqWkCKqx2SPUhixvTwl9pQh07cWH5eDsXe2aDlQwNXvl0qMLyBMquY060UZRtl3HQ+Bh3WTr wOg9sKI3pR6ZJfdOOKXA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vOdzA-0000000Gqgc-21QP; Thu, 27 Nov 2025 15:32:44 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vOdz7-0000000GqgD-2Iqn for linux-riscv@lists.infradead.org; Thu, 27 Nov 2025 15:32:43 +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 36AA81063; Thu, 27 Nov 2025 07:32:32 -0800 (PST) Received: from [10.57.87.167] (unknown [10.57.87.167]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F26F43F66E; Thu, 27 Nov 2025 07:32:35 -0800 (PST) Message-ID: Date: Thu, 27 Nov 2025 15:32:34 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 06/22] mm: Always use page table accessor functions Content-Language: en-GB To: "David Hildenbrand (Red Hat)" , Lorenzo Stoakes Cc: Wei Yang , Samuel Holland , Palmer Dabbelt , Paul Walmsley , linux-riscv@lists.infradead.org, Andrew Morton , linux-mm@kvack.org, devicetree@vger.kernel.org, Suren Baghdasaryan , linux-kernel@vger.kernel.org, Mike Rapoport , Michal Hocko , Conor Dooley , Krzysztof Kozlowski , Alexandre Ghiti , Emil Renner Berthing , Rob Herring , Vlastimil Babka , "Liam R . Howlett" , Julia Lawall , Nicolas Palix , Anshuman Khandual References: <6bdf2b89-7768-4b90-b5e7-ff174196ea7b@lucifer.local> <71123d7a-641b-41df-b959-88e6c2a3a441@kernel.org> <20251126134726.yrya5xxayfcde3kl@master> <6b966403-91e0-4f06-86a9-a4f7780b9557@kernel.org> <1ca9f99f-6266-47ca-8c94-1a9b9aaa717f@kernel.org> <37973e21-e8f4-4603-b93d-4e0b1b2499fa@lucifer.local> <4505a93b-2bac-4ce1-8971-4c31f1ce1362@arm.com> <150ffcb7-2df2-4f3a-a12e-9807f13c6ab9@arm.com> From: Ryan Roberts In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251127_073241_690008_3F89EA23 X-CRM114-Status: GOOD ( 34.09 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gMjcvMTEvMjAyNSAwNzozMSwgRGF2aWQgSGlsZGVuYnJhbmQgKFJlZCBIYXQpIHdyb3RlOgo+ IE9uIDExLzI3LzI1IDA4OjE0LCBEYXZpZCBIaWxkZW5icmFuZCAoUmVkIEhhdCkgd3JvdGU6Cj4+ IE9uIDExLzI2LzI1IDIxOjMxLCBEYXZpZCBIaWxkZW5icmFuZCAoUmVkIEhhdCkgd3JvdGU6Cj4+ PiBPbiAxMS8yNi8yNSAxNzozNCwgUnlhbiBSb2JlcnRzIHdyb3RlOgo+Pj4+IE9uIDI2LzExLzIw MjUgMTY6MDcsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4+Pj4gT24gMjYvMTEvMjAyNSAxNToxMiwg RGF2aWQgSGlsZGVuYnJhbmQgKFJlZCBIYXQpIHdyb3RlOgo+Pj4+Pj4gT24gMTEvMjYvMjUgMTY6 MDgsIExvcmVuem8gU3RvYWtlcyB3cm90ZToKPj4+Pj4+PiBPbiBXZWQsIE5vdiAyNiwgMjAyNSBh dCAwMzo1NjoxM1BNICswMTAwLCBEYXZpZCBIaWxkZW5icmFuZCAoUmVkIEhhdCkgd3JvdGU6Cj4+ Pj4+Pj4+IE9uIDExLzI2LzI1IDE1OjUyLCBMb3JlbnpvIFN0b2FrZXMgd3JvdGU6Cj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4gV291bGQgdGhlIHBtZHBfZ2V0KCkgbmV2ZXIgZ2V0IGludm9rZWQgdGhlbj8g T3Igb3RoZXJ3aXNlIHdvdWxkbid0IHRoYXQKPj4+Pj4+Pj4+IGVuZCB1cAo+Pj4+Pj4+Pj4gcmVx dWlyaW5nIGEgUkVBRF9PTkNFKCkgZnVydGhlciB1cCB0aGUgc3RhY2s/Cj4+Pj4+Pj4+Cj4+Pj4+ Pj4+IFNlZSBteSBvdGhlciByZXBseSwgSSB0aGluayB0aGUgcG1kcF9nZXQoKSBpcyByZXF1aXJl ZCBiZWNhdXNlIGFsbCBwdWRfKgo+Pj4+Pj4+PiBmdW5jdGlvbnMgYXJlIGp1c3Qgc2ltcGxlIHN0 dWJzLgo+Pj4+Pj4+Cj4+Pj4+Pj4gT0ssIHRob3VnaHQgeW91IHdlcmUgc2F5aW5nIHdlIHNob3Vs ZCBwdXNoIGZ1cnRoZXIgZG93biB0aGUgc3RhY2s/IE9yIHVwCj4+Pj4+Pj4gZGVwZW5kaW5nIG9u IGhvdyB5b3UgdmlldyB0aGVzZSB0aGluZ3MgOlAgYXMgaW4gUkVBRF9PTkNFIGF0IGxlYWY/Cj4+ Pj4+Pgo+Pj4+Pj4gSSB0aGluayBhdCBsZWFmIGJlY2F1c2UgSSB0aGluayB0aGUgcHJldmlvdXMg b25lcyBzaG91bGQgZXNzZW50aWFsbHkgYmUgb25seQo+Pj4+Pj4gdXNlZCBieSBzdHVicy4KPj4+ Pj4+Cj4+Pj4+PiBCdXQgSSBoYXZlbid0IGZ1bGx5IGRpZ2VzdGVkIGhvdyB0aGlzIGlzIGFsbCB3 b3JraW5nLiBPciBzdXBwb3NlZCB0byB3b3JrLgo+Pj4+Pj4KPj4+Pj4+IEknbSB0cnlpbmcgdG8g Y2hldyB0aHJvdWdoIHRoZSBhcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLTJsZXZlbC5oCj4+ Pj4+PiBleGFtcGxlIHRvCj4+Pj4+PiBzZWUgaWYgSSBjYW4gbWFrZSBzZW5zZSBvZiBpdCwKPj4+ Pj4KPj4+Pj4gSSB3b25kZXIgaWYgd2UgY2FuIHRoaW5rIGFib3V0IHRoaXMgc2xpZ2h0bHkgZGlm ZmVyZW50bHk7Cj4+Pj4+Cj4+Pj4+IFJFQURfT05DRSgpIGhhcyB0d28gaW1wb3J0YW50IHByb3Bl cnRpZXM6Cj4+Pj4+Cj4+Pj4+IMKgwqDCoCAtIEl0IGd1YXJyYW50ZWVzIHRoYXQgYSBsb2FkIHdp bGwgYmUgaXNzdWVkLCAqZXZlbiBpZiBvdXRwdXQgaXMgdW51c2VkKgo+Pj4+PiDCoMKgwqAgLSBJ dCBndWFycmFudGVlcyB0aGF0IHRoZSByZWFkIHdpbGwgYmUgc2luZ2xlLWNvcHktYXRvbWljIChu byB0ZWFyaW5nKQo+Pj4+Pgo+Pj4+PiBJIHRoaW5rIGZvciB0aGUgZXhpc3RpbmcgcGxhY2VzIHdo ZXJlIFJFQURfT05DRSgpIGlzIHVzZWQgZm9yIHBhZ2V0YWJsZQo+Pj4+PiByZWFkcyB3ZQo+Pj4+ PiBvbmx5IGNhcmUgYWJvdXQ6Cj4+Pj4+Cj4+Pj4+IMKgwqDCoCAtIEl0IGd1YXJyYW50ZWVzIHRo YXQgYSBsb2FkIHdpbGwgYmUgaXNzdWVkLCAqaWYgb3V0cHV0IGlzIHVzZWQqCj4+Pj4+IMKgwqDC oCAtIEl0IGd1YXJyYW50ZWVzIHRoYXQgdGhlIHJlYWQgd2lsbCBiZSBzaW5nbGUtY29weS1hdG9t aWMgKG5vIHRlYXJpbmcpCj4+Pj4+Cj4+Pj4+IEkgdGhpbmsgaWYgd2UgY2FuIHdlYWtlbiB0byB0 aGUgImlmIG91dHB1dCBpcyB1c2VkIiBwcm9wZXJ0eSwgdGhlbiB0aGUKPj4+Pj4gY29tcGlsZXIK Pj4+Pj4gd2lsbCBvcHRpbWl6ZSBvdXQgYWxsIHRoZSB1bm5lY2Nlc3NhcnkgcmVhZHMuCj4+Pj4+ Cj4+Pj4+IEFJVUksIGEgQyBkZXJlZmVyZW5jZSBwcm92aWRlcyBuZWl0aGVyIG9mIHRoZSBndWFy cmFudGVlcyBzbyB0aGF0J3Mgbm8gZ29vZC4KPj4+Pj4KPj4+Pj4gV2hhdCBhYm91dCBub24tdm9s YXRpbGUgYXNtPyBJJ20gdG9sZCAodGhvdWdodCBuZWVkIHRvIHZlcmlmeSkgdGhhdCBmb3IKPj4+ Pj4gbm9uLXZvbGF0aWxlIGFzbSwgdGhlIGNvbXBpbGVyIHdpbGwgZW1pdCBpdCBpZiB0aGUgb3V0 cHV0IGlzIHVzZWQgYW5kCj4+Pj4+IHJlbW92ZSBpdAo+Pj4+PiBvdGhlcndpc2UuIFNvIGlmIHRo ZSBhc20gY29udGFpbnMgdGhlIHJlcXVpcmVkIHNpbmdsZS1jb3B5LWF0b21pYywgcGVyaGFwcyB3 ZQo+Pj4+PiBhcmUgaW4gYnVzaW5lc3M/Cj4+Pj4+Cj4+Pj4+IFNvIHdlIHdvdWxkIG5lZWQgYSBu ZXcgUkVBRF9TQ0EoKSBtYWNybyB0aGF0IGNvdWxkIGRlZmF1bHQgdG8gUkVBRF9PTkNFKCkKPj4+ Pj4gKHdoaWNoCj4+Pj4+IGlzIHN0cm9uZ2VyKSBhbmQgYXJjaGVzIGNvdWxkIG9wdCBpbiB0byBw cm92aWRpbmcgYSB3ZWFrZXIgYXNtIHZlcnNpb24uCj4+Pj4+IFRoZW4gdGhlCj4+Pj4+IGRlZmF1 bHQgcFhkcF9nZXQoKSBjb3VsZCBiZSBSRUFEX1NDQSgpLiBBbmQgdGhpcyBzaG91bGQgd29yayBm b3IgYWxsIGNhc2VzLgo+Pj4+Pgo+Pj4+PiBJIHRoaW5rLgo+Pj4+Cj4+Pj4gSSdtIG5vdCBzdXJl IHRoaXMgd29ya3MuIEl0IGxvb2tzIGxpa2UgdGhlIGNvbXBpbGVyIGlzIGZyZWUgdG8gbW92ZSBu b24tCj4+Pj4gdm9sYXRpbGUKPj4+PiBhc20gc2VjdGlvbnMgd2hpY2ggbWlnaHQgYmUgcHJvYmxl bWF0aWMgZm9yIHBsYWNlcyB3aGVyZSB3ZSBhcmUgY3VycmVudGx5IHVzaW5nCj4+Pj4gUkVBRF9P TkNFKCkgaW4gbG9ja2xlc3MgYWxnb3JpdGhtcywgKGUuZy4gR1VQPykuIFdlIHdvdWxkbid0IHdh bnQgdG8gZW5kIHVwCj4+Pj4gd2l0aAo+Pj4+IGEgc3RhbGUgdmFsdWUuCj4+Pj4KPj4+PiBBbm90 aGVyIGlkZWE6Cj4+Pj4KPj4+PiBHaXZlbiB0aGUgbWFpbiBwYXR0ZXJuIHdoZXJlIHdlIGFyZSBh aW1pbmcgdG8gb3B0aW1pemUgb3V0IHRoZSByZWFkIGlzCj4+Pj4gc29tZXRoaW5nCj4+Pj4gbGlr ZToKPj4+Pgo+Pj4+IGlmICghcHVkX3ByZXNlbnQoKnB1ZCkpCj4+Pj4KPj4+PiB3aGVyZSBmb3Ig YSBmb2xkZWQgcG1kOgo+Pj4+Cj4+Pj4gc3RhdGljIGlubGluZSBpbnQgcHVkX3ByZXNlbnQocHVk X3QgcHVkKcKgwqDCoCB7IHJldHVybiAxOyB9Cj4+Pj4KPj4+PiBBbmQgd2Ugd2lsbCBjaGFuZ2Ug aXQgdG8gdGhpczoKPj4+Pgo+Pj4+IGlmICghcHVkX3ByZXNlbnQocHVkcF9nZXQocHVkKSkpCj4+ Pj4KPj4+PiAuLi4KPj4+Pgo+Pj4+IHBlcmhhcHMgd2UgY2FuIGp1c3QgZGVmaW5lIHRoZSBmb2xk ZWQgcFhkX3ByZXNlbnQoKSwgcFhkX25vbmUoKSwgcFhkX2JhZCgpLAo+Pj4+IHBYZF91c2VyKCkg YW5kIHBYZF9sZWFmKCkgYXMgbWFjcm9zOgo+Pj4+Cj4+Pj4gI2RlZmluZSBwdWRfcHJlc2VudChw dWQpwqDCoMKgIDEKPj4+Pgo+Pj4KPj4+IExldCdzIHRha2UgYSBzdGVwIGJhY2sgYW5kIHJlYWxp emUgdGhhdCB3aXRoIF9fUEFHRVRBQkxFX1BNRF9GT0xERUQKPj4+Cj4+PiAoYSkgKnB1ZHAgZG9l cyBub3QgbWFrZSBhbnkgc2Vuc2UKCkknbSBzdHJ1Z2dsaW5nIHdpdGggdGhpcyBzdGF0ZW1lbnQu IFRoZSBQTUQgaXMgZm9sZGVkLCBub3QgdGhlIFBVRC4gU28gdGhlIFBNRAp0YWJsZSBjb25zaXN0 cyBvZiBhIHNpbmdsZSBlbnRyeSwgd2hpY2ggb3ZlcmxheXMgdGhlIGVudHJ5IGluIHRoZSBQVUQs IHJpZ2h0PyBTbwp0aGUgUFVEIGV4aXN0cyBhbmQgKnB1ZHAgbXVzdCBiZSB2YWxpZD8KCk5vdywg cGd0YWJsZS1ub3BtZC5oIGluY2x1ZGVzIHBndGFibGUtbm9wdWQuaCBzbyBhY3R1YWxseSB0aGUg UFVEIGlzIGFsc28gZm9sZGVkCmludG8gdGhlIFA0RCBhbmQgdGhlIFA0RCBpcyBhbHNvIGZvbGRl ZCBpbnRvIHRoZSBQR0QuIEJ1dCB0aGUgUEdEIGV4aXN0cyBhbmQgaXMKbm90IGZvbGRlZC4KClNv IHdoYXQgeW91IGFyZSBzYXlpbmcgaXMgdHJ1ZSBpbiBwcmFjdGljZSwgSSBndWVzcy4gQnV0IGl0 J3Mgbm90IHRydWUgaWYgeW91CnJlcGxhY2UgUE1EIHdpdGggUDREIGFuZCBQVUQgd2l0aCBQR0Qu CgpEb2VzIHdoYXQgSSdtIHNheWluZyBtYXR0ZXIgb3IgaGF2ZSBhbnkgaW1wYWN0IG9uIHlvdXIg YXNzZXNzbWVudCBiZWxvdz8gSSBoYXZlCm5vIGlkZWEuIE15IGhlYWQgaHVydHMuCgo+Pj4KPj4+ IEZvciBhIGZvbGRlZCBQTUQsICpwdWRwID09ICpwbWRwIGFuZCBjb25zZXF1ZW50bHkgd2Ugd291 bGQgYWN0dWFsbHkKPj4+IGdldCBhIFBNRCwgbm90IGEgUFVELgoKV2VsbCBiYXNlZCBvbiB3aGF0 IEkgc2FpZCBhYm92ZSwgdGhlIFBNRCBpcyBmb2xkZWQgaW50byB0aGUgUFVELCB0aGUgUFVEIGlz CmZvbGRlZCBpbnRvIHRoZSBQNEQgYW5kIHRoZSBQNEQgaXMgZm9sZGVkIGludG8gdGhlIFBHRC4g U28gYWxsIG9mIHRob3NlIHRoaW5ncwphcmUgYWN0dWFsbHkgcG9pbnRpbmcgdG8gdGhlIFBHRCBl bnRyeSBpbiB0aGUgUEdEIHRhYmxlLCByaWdodD8gQW5kIHBtZF90LApwdWRfdCwgcDRkX3QgYXJl IGFsbCBkZWZpbmVkIGFzIGNvbnRhaW5lcnMgaG9sZGluZyB0aGUgbmV4dCB0aGluZyB1cDoKCnR5 cGVkZWYgc3RydWN0IHsgcHVkX3QgcHVkOyB9IHBtZF90OwoKU28gaXQgYWxsIHdvcmtzIG91dCwg YW5kIGlzIHNhZmUsIEkgdGhpbms/Cgo+Pj4KPj4+IEZvciB0aGlzIHJlYXNvbiBhbGwgdGhlc2Ug cHVkXyogaGVscGVycyBpZ25vcmUgdGhlIHBhc3NlZCB2YWx1ZQo+Pj4gY29tcGxldGVseS4gSXQg d291bGQgYmUgd3JvbmcuCj4+Pgo+Pj4gKGIpIHBtZF9vZmZzZXQoKSBkb2VzICpub3QqIGNvbnN1 bWUgYSBwdWQgYnV0IGluc3RlYWQgYSBwdWRwLgo+Pj4KPj4+IFRoYXQgbWFrZXMgc2Vuc2UsIGp1 c3QgaW1hZ2luZSB3aGF0IHdvdWxkIGhhcHBlbiBpZiBzb21lb25lIHdvdWxkIHBhc3MKPj4+ICpw dWRwIHRvIHRoYXQgaGVscGVyICh3ZSdkIGRlcmVmZXJlbmNlIHR3aWNlIC4uLikuCj4+Pgo+Pj4K Pj4+IFNvIEkgd29uZGVyIGlmIHdlIGNhbiBqdXN0IHRlYWNoIGdldF9wdWRwKCkgYW5kIGZyaWVu ZHMgdG8gLi4uIHJldHVybgo+Pj4gdHJ1ZSBnYXJiYWdlIGluc3RlYWQgb2YgZGVyZWZlcmVuY2lu ZyBzb21ldGhpbmcgdGhhdCBkb2VzIG5vdCBtYWtlIHNlbnNlPwoKU29ycnksIEkgZG9uJ3QgcmVh bGx5IHVuZGVyc3RhbmQgd2h5IGRlcmVmZXJlbmNpbmcgZG9lcyBub3QgbWFrZSBzZW5zZS4gdGhl CnB1ZF90IGlzIGEgc3RydWN0IGNvbnRhaW5pbmcgYSBzaW5nbGUgcDRkX3QgYW5kIHRoYXQgaXMg YSBzdHJ1Y3QgY29udGFpbmluZyBhCnNpbmdsZSBwZ2RfdCBhbmQgaXQgaXMgcG9pbnRpbmcgdG8g dGhlIHBnZCBlbnRyeS4gU28gd2h5IGlzbid0IGl0IHNhZmU/Cgo+Pj4KPj4+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L3BndGFibGUuaCBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4+PiBp bmRleCAzMmU4NDU3YWQ1MzUyLi5jOTVkMGQ4OWFiM2YxIDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVk ZS9saW51eC9wZ3RhYmxlLmgKPj4+ICsrKyBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4+PiBA QCAtMzUxLDcgKzM1MSwxMyBAQCBzdGF0aWMgaW5saW5lIHBtZF90IHBtZHBfZ2V0KHBtZF90ICpw bWRwKQo+Pj4gwqDCoMKgICNpZm5kZWYgcHVkcF9nZXQKPj4+IMKgwqDCoCBzdGF0aWMgaW5saW5l IHB1ZF90IHB1ZHBfZ2V0KHB1ZF90ICpwdWRwKQo+Pj4gwqDCoMKgIHsKPj4+ICsjaWZkZWYgX19Q QUdFVEFCTEVfUE1EX0ZPTERFRAo+Pj4gK8KgwqDCoMKgwqDCoCBwdWRfdCBkdW1teSA9IHsgMCB9 Owo+Pj4gKwo+Pj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gZHVtbXk7CgpJZiB5b3UncmUgY29uZmlk ZW50IHRoYXQgdGhpcyBpcyBjb3JyZWN0LCB0aGVuIEkgYmVsaWV2ZSB5b3UuIEJ1dCBJIGNhbid0 IGZvbGxvdwp5b3VyIGxvZ2ljIGF0IHRoZSBtb21lbnQuIEJ1dCB3ZSBoYXZlIGEgZmFpcmx5IGxv bmcgaGlzdG9yeSBvZiB5b3UgYmVpbmcgcmlnaHQKYW5kIG1lIG5vdCB1bmRlcnN0YW5kaW5nLi4u IDopCgpJIGRvbid0IHRoaW5rIGluIGdlbmVyYWwgaXQgaXMgaW52YWxpZCBmb3Igc29tZXRoaW5n IHRvIGNhbGwgdGhlIGdldHRlciBhbmQgZG8Kc29tZXRoaW5nIHdpdGggdGhlIHJlc3VsdCBqdXN0 IGJlY2F1c2UgaXQncyBmb2xkZWQuIGUuZy4gbG9nIGl0J3MgdmFsdWUuIFNvIEkKZG9uJ3QgdGhp bmsgcmV0dXJuaW5nIGEgZHVtbXkgdmFsdWUgaXMgb2suCgpTZWUgX19wcmludF9iYWRfcGFnZV9t YXBfcGd0YWJsZSgpIGZvciBleGFtcGxlPwoKPj4+ICsjZWxzZQo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIFJFQURfT05DRSgqcHVkcCk7Cj4+PiArI2VuZGlmCj4+PiDCoMKgwqAgfQo+ Pj4gwqDCoMKgICNlbmRpZgo+Pj4gwqDCoMKgIHNldF9wdWQvcHVkX3BhZ2UvcHVkX3BndGFibGUg aGVscGVyIGFyZSBjb25mdXNpbmcsIEkgd291bGQKPj4+IGFzc3VtZSB0aGV5IGFyZSBlc3NlbnRp YWxseSB1bnVzZWQgKGxpa2UgZG9jdW1lbnRlZCBmb3Igc2V0X3B1dCkKPj4+IGFuZCBvbmx5IHJl cXVpcmVkIHRvIGtlZXAgY29tcGlsZXJzIGhhcHB5Lgo+Pgo+PiBTdGFyaW5nIGF0IEdVUC1mYXN0 IGFuZCBwZXJmX2dldF9wZ3RhYmxlX3NpemUoKS0tLXdoaWNoIHNob3VsZCBiZXR0ZXIgYmUKPj4g Y29udmVydGVkIHRvIHB1ZHBfZ2V0KCkgZXRjLS1JIGd1ZXNzIHdlIG1pZ2h0IGhhdmUgdG8gcmV3 b3JrCj4+IHA0ZF9vZmZzZXRfbG9ja2xlc3MoKSB0byBkbyBzb21ldGhpbmcgdGhhdCBkb2Vzbid0 IHJlbHkgb24KPj4gcGFzc2luZyB2YXJpYWJsZXMgb2YgbG9jYWwgdmFyaWFibGVzLgo+Pgo+PiBX ZSBtaWdodCBoYXZlIHRvIGVubGlnaHRlbiB0aGVzZSB3YWxrZXJzIChhbmQgb25seSB0aGVzZSkg YWJvdXQgZm9sZGVkCj4+IHBhZ2UgdGFibGVzIHN1Y2ggdGhhdCB0aGV5IGRvbid0IGRlcGVuZCBv biB0aGUgcmVzdWx0IG9mIHB1ZHBfZ2V0KCkgYW5kCj4+IGZyaWVuZHMuCj4gCj4gVGFsa2luZyB0 byBteXNlbGYgKEkga25vdyksIGhhbmRsaW5nIHRoaXMgbWlnaHQgYmUgYXMgc2ltcGxlIGFzIGhh dmluZwo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUtbm9wbWQu aCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS0KPiBub3BtZC5oCj4gaW5kZXggOGZmZDY0 ZTdhMjRjYi4uNjBlNWJhMDJiY2YwNiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmlj L3BndGFibGUtbm9wbWQuaAo+ICsrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3Bt ZC5oCj4gQEAgLTQ5LDYgKzQ5LDEzIEBAIHN0YXRpYyBpbmxpbmUgcG1kX3QgKiBwbWRfb2Zmc2V0 KHB1ZF90ICogcHVkLCB1bnNpZ25lZCBsb25nCj4gYWRkcmVzcykKPiDCoH0KPiDCoCNkZWZpbmUg cG1kX29mZnNldCBwbWRfb2Zmc2V0Cj4gwqAKPiArc3RhdGljIGlubGluZSBwbWRfdCAqIHBtZF9v ZmZzZXRfbG9ja2xlc3MocHVkX3QgKnB1ZCwgcHVmX3QgcHVkLCB1bnNpZ25lZCBsb25nCj4gYWRk cmVzcykKPiArewo+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIChwbWRfdCAqKXB1ZDsKPiArfQo+ICsj ZGVmaW5lIHBtZF9vZmZzZXRfbGNva2xlc3MgcG1kX29mZnNldF9sb2NrbGVzcwo+ICsKPiArCj4g wqAjZGVmaW5lIHBtZF92YWwoeCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAocHVkX3ZhbCgoeCkucHVkKSkKPiDCoCNkZWZpbmUgX19wbWQo eCnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKChwbWRfdCkgeyBfX3B1ZCh4KSB9ICkKPiDCoAo+IAo+IElPVywganVzdCBsaWtlIGZv ciBwbWRfb2Zmc2V0KCkgd2UgY2FzdCB0aGUgcG9pbnRlciBhbmQgZG9uJ3QgZXZlciB0b3VjaCB0 aGUgcHVkLgo+IAo+IAo+IEFzIGEgcmVtaW5kZXIsIHRoZSBkZWZhdWx0IGlzCj4gCj4gI2lmbmRl ZiBwbWRfb2Zmc2V0X2xvY2tsZXNzCj4gI2RlZmluZSBwbWRfb2Zmc2V0X2xvY2tsZXNzKHB1ZHAs IHB1ZCwgYWRkcmVzcykgcG1kX29mZnNldCgmKHB1ZCksIGFkZHJlc3MpCj4gI2VuZGlmCj4gCj4g KGlzbid0IHRoYXQgbmFzdHk/IDopICkKCkp1c3QgYXMgYSBnZW5lcmFsIGNvbW1lbnQ7IGFybTY0 IGV4cGVjdHMgYW5kIHJlcXVpcmVzIHRvZGF5IHRoYXQgYW55IHB0ZV90CnBvaW50ZXIgcGFzc2Vk IHRvIHB0ZXBfZ2V0KCksIHNldF9wdGVzKCksIGFuZCBhbGwgdGhlIG90aGVyIHB0ZXAgaGVscGVy cyBwb2ludAp0byBlbnRyaWVzIGluIHRoZSBwZ3RhYmxlLiBXZSBjYW5ub3QgdG9sZXJhdGUgYmVp bmcgcGFzc2VkIHBvaW50ZXJzIHRvIHN0YWNrCnZhcmlhYmxlcy4gV2UgYXNzdW1lIHdlIGNhbiBy b2FtIGFyb3VuZCBpbiB0aGUgcGd0YWJsZSBmb3IgY29udHB0ZSBwdXJwb3Nlcy4KCkV4dGVuZGlu ZyB0aGlzIHRvIHRoZSBvdGhlciBsZXZlbHMsIHdlIHdvdWxkIGhhdmUgdGhlIHNhbWUgcmVxdWly ZW1lbnRzLgoKVGhhbmtzLApSeWFuCgo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtcmlzY3YK