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 6B87FC25B6B for ; Thu, 26 Oct 2023 06:02:51 +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=Q5DIdA51F20WmIYAV9E868t3JJ/OmjjCLHytlxzsSh0=; b=s6jQOE3S/r/pQX 7MhKhGe8KPiAO3D6sabt99KAnhfdykmClJIyrIIE2Z4YmMsLYnyFiZnC4D5eGLid8rWwlV+hqEl0K 5rZOTk9Y7tKAm1yQ3SH/6WMIMdS+OghM3UJEfvgrAgc8JJCa/Y5w0fyCSwGSd8zlCC1eOhICMJF4F P9+qSobCkTJdc0bNFCYtfyk4lAK5KQHBu1QwSM4kXIJCEIWdOfJF6vvYSmGWYVRxl8Bleiylle3dd EH5A+ASDtC8crFXW9sfYDOSKP3kPpt8RKKbbqiMjhWj/GSQN4/TA+MTciWyzM8BeEShz9gqySqszg n7fI8GtOvt2EsWO/Jvxg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvtRh-00DkRT-1E; Thu, 26 Oct 2023 06:02:17 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qvtRd-00DkK3-2V for linux-arm-kernel@lists.infradead.org; Thu, 26 Oct 2023 06:02:16 +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 64E852F4; Wed, 25 Oct 2023 23:02:46 -0700 (PDT) Received: from [10.162.41.8] (a077893.blr.arm.com [10.162.41.8]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F41F43F64C; Wed, 25 Oct 2023 23:02:01 -0700 (PDT) Message-ID: Date: Thu, 26 Oct 2023 11:31:59 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] arm64: mm: drop tlb flush operation when clearing the access bit Content-Language: en-US To: Barry Song <21cnbao@gmail.com> Cc: Baolin Wang , catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, v-songbaohua@oppo.com, yuzhao@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <2f55f62b-cae2-4eee-8572-1b662a170880@arm.com> From: Anshuman Khandual In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231025_230213_908760_F8376922 X-CRM114-Status: GOOD ( 32.56 ) 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-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 CgpPbiAxMC8yNi8yMyAxMToyNCwgQmFycnkgU29uZyB3cm90ZToKPiBPbiBUaHUsIE9jdCAyNiwg MjAyMyBhdCAxMjo1NeKAr1BNIEFuc2h1bWFuIEtoYW5kdWFsCj4gPGFuc2h1bWFuLmtoYW5kdWFs QGFybS5jb20+IHdyb3RlOgo+Pgo+Pgo+Pgo+PiBPbiAxMC8yNC8yMyAxODoyNiwgQmFvbGluIFdh bmcgd3JvdGU6Cj4+PiBOb3cgcHRlcF9jbGVhcl9mbHVzaF95b3VuZygpIGlzIG9ubHkgY2FsbGVk IGJ5IGZvbGlvX3JlZmVyZW5jZWQoKSB0bwo+Pj4gY2hlY2sgaWYgdGhlIGZvbGlvIHdhcyByZWZl cmVuY2VkLCBhbmQgbm93IGl0IHdpbGwgY2FsbCBhIHRsYiBmbHVzaCBvbgo+Pj4gQVJNNjQgYXJj aGl0ZWN0dXJlLiBIb3dldmVyIHRoZSB0bGIgZmx1c2ggY2FuIGJlIGV4cGVuc2l2ZSBvbiBBUk02 NAo+Pj4gc2VydmVycywgZXNwZWNpYWxseSBmb3IgdGhlIHN5c3RlbXMgd2l0aCBhIGxhcmdlIENQ VSBudW1iZXJzLgo+Pgo+PiBUTEIgZmx1c2ggd291bGQgYmUgZXhwZW5zaXZlIG9uICphbnkqIHBs YXRmb3JtIHdpdGggbGFyZ2UgQ1BVIG51bWJlcnMgPwo+Pgo+Pj4KPj4+IFNpbWlsYXIgdG8gdGhl IHg4NiBhcmNoaXRlY3R1cmUsIGJlbG93IGNvbW1lbnRzIGFsc28gYXBwbHkgZXF1YWxseSB0bwo+ Pj4gQVJNNjQgYXJjaGl0ZWN0dXJlLiBTbyB3ZSBjYW4gZHJvcCB0aGUgdGxiIGZsdXNoIG9wZXJh dGlvbiBpbgo+Pj4gcHRlcF9jbGVhcl9mbHVzaF95b3VuZygpIG9uIEFSTTY0IGFyY2hpdGVjdHVy ZSB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZS4KPj4+ICIKPj4+IC8qIENsZWFyaW5nIHRoZSBh Y2Nlc3NlZCBiaXQgd2l0aG91dCBhIFRMQiBmbHVzaAo+Pj4gICogZG9lc24ndCBjYXVzZSBkYXRh IGNvcnJ1cHRpb24uIFsgSXQgY291bGQgY2F1c2UgaW5jb3JyZWN0Cj4+PiAgKiBwYWdlIGFnaW5n IGFuZCB0aGUgKG1pc3Rha2VuKSByZWNsYWltIG9mIGhvdCBwYWdlcywgYnV0IHRoZQo+Pj4gICog Y2hhbmNlIG9mIHRoYXQgc2hvdWxkIGJlIHJlbGF0aXZlbHkgbG93LiBdCj4+PiAgKgo+Pj4gICog U28gYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24gZG9uJ3QgZmx1c2ggdGhlIFRMQiB3aGVu Cj4+PiAgKiBjbGVhcmluZyB0aGUgYWNjZXNzZWQgYml0LCBpdCB3aWxsIGV2ZW50dWFsbHkgYmUg Zmx1c2hlZCBieQo+Pj4gICogYSBjb250ZXh0IHN3aXRjaCBvciBhIFZNIG9wZXJhdGlvbiBhbnl3 YXkuIFsgSW4gdGhlIHJhcmUKPj4+ICAqIGV2ZW50IG9mIGl0IG5vdCBnZXR0aW5nIGZsdXNoZWQg Zm9yIGEgbG9uZyB0aW1lIHRoZSBkZWxheQo+Pj4gICogc2hvdWxkbid0IHJlYWxseSBtYXR0ZXIg YmVjYXVzZSB0aGVyZSdzIG5vIHJlYWwgbWVtb3J5Cj4+PiAgKiBwcmVzc3VyZSBmb3Igc3dhcG91 dCB0byByZWFjdCB0by4gXQo+Pj4gICovCj4+Cj4+IElmIGFsd2F5cyB0cnVlLCB0aGlzIHNvdW5k cyBnZW5lcmljIGVub3VnaCBmb3IgYWxsIHBsYXRmb3Jtcywgd2h5IG9ubHkKPj4geDg2IGFuZCBh cm02NCA/Cj4+Cj4+PiAiCj4+PiBSdW5uaW5nIHRoZSB0aHBzY2FsZSB0byBzaG93IHNvbWUgb2J2 aW91cyBpbXByb3ZlbWVudHMgZm9yIGNvbXBhY3Rpb24KPj4+IGxhdGVuY3kgd2l0aCB0aGlzIHBh dGNoOgo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlICAgICAgICAgICAgICAg ICAgIHBhdGNoZWQKPj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTEgICAgICAxMDkzLjE5ICggICAw LjAwJSkgICAgIDEwODQuNTcgKiAgIDAuNzklKgo+Pj4gQW1lYW4gICAgIGZhdWx0LWJvdGgtMyAg ICAgIDI1NjYuMjIgKCAgIDAuMDAlKSAgICAgMjIyOC40NSAqICAxMy4xNiUqCj4+PiBBbWVhbiAg ICAgZmF1bHQtYm90aC01ICAgICAgMzU5MS4yMiAoICAgMC4wMCUpICAgICAzMTQ2LjczICogIDEy LjM4JSoKPj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTcgICAgICA0MTU3LjI2ICggICAwLjAwJSkg ICAgIDQxMTMuNjcgKiAgIDEuMDUlKgo+Pj4gQW1lYW4gICAgIGZhdWx0LWJvdGgtMTIgICAgIDYx ODQuNzkgKCAgIDAuMDAlKSAgICAgNTIxOC43MCAqICAxNS42MiUqCj4+PiBBbWVhbiAgICAgZmF1 bHQtYm90aC0xOCAgICAgOTEwMy43MCAoICAgMC4wMCUpICAgICA3NzM5LjcxICogIDE0Ljk4JSoK Pj4+IEFtZWFuICAgICBmYXVsdC1ib3RoLTI0ICAgIDEyMzQxLjczICggICAwLjAwJSkgICAgMTA2 ODQuMjMgKiAgMTMuNDMlKgo+Pj4gQW1lYW4gICAgIGZhdWx0LWJvdGgtMzAgICAgMTU1MTkuMDAg KCAgIDAuMDAlKSAgICAxMzY5NS4xNCAqICAxMS43NSUqCj4+PiBBbWVhbiAgICAgZmF1bHQtYm90 aC0zMiAgICAxNjE4OS4xNSAoICAgMC4wMCUpICAgIDE0MzY1LjczICogIDExLjI2JSoKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgYmFzZSAgICAgICBwYXRjaGVkCj4+PiBEdXJhdGlvbiBVc2Vy ICAgICAgICAgMTY3Ljc4ICAgICAgMTYxLjAzCj4+PiBEdXJhdGlvbiBTeXN0ZW0gICAgICAxODM2 LjY2ICAgICAxNjczLjAxCj4+PiBEdXJhdGlvbiBFbGFwc2VkICAgICAyMDc0LjU4ICAgICAyMDU5 Ljc1Cj4+Cj4+IENvdWxkIHlvdSBwbGVhc2UgcG9pbnQgdG8gdGhlIHRlc3QgcmVwbyB5b3UgYXJl IHJ1bm5pbmcgPwo+Pgo+Pj4KPj4+IEJhcnJ5IFNvbmcgc3VibWl0dGVkIGEgc2ltaWxhciBwYXRj aCBbMV0gYmVmb3JlLCB0aGF0IHJlcGxhY2VzIHRoZQo+Pj4gcHRlcF9jbGVhcl9mbHVzaF95b3Vu Z19ub3RpZnkoKSB3aXRoIHB0ZXBfY2xlYXJfeW91bmdfbm90aWZ5KCkgaW4KPj4+IGZvbGlvX3Jl ZmVyZW5jZWRfb25lKCkuIEhvd2V2ZXIsIEknbSBub3Qgc3VyZSBpZiByZW1vdmluZyB0aGUgdGxi IGZsdXNoCj4+PiBvcGVyYXRpb24gaXMgYXBwbGljYWJsZSB0byBldmVyeSBhcmNoaXRlY3R1cmUg aW4ga2VybmVsLCBzbyBkcm9wcGluZwo+Pj4gdGhlIHRsYiBmbHVzaCBmb3IgQVJNNjQgc2VlbXMg YSBzZW5zaWJsZSBjaGFuZ2UuCj4+Cj4+IFRoZSByZWFzb25pbmcgcHJvdmlkZWQgaGVyZSBzb3Vu ZHMgZ2VuZXJpYyB3aGVuIHRydWUsIGhlbmNlIHRoZXJlIHNlZW1zCj4+IHRvIGJlIG5vIGp1c3Rp ZmljYXRpb24gdG8ga2VlcCBpdCBsaW1pdGVkIGp1c3QgZm9yIGFybTY0IGFuZCB4ODYuIEFsc28K Pj4gd2hhdCBhYm91dCBwbWRwX2NsZWFyX2ZsdXNoX3lvdW5nX25vdGlmeSgpIHdoZW4gVEhQIGlz IGVuYWJsZWQuIFNob3VsZAo+PiB0aGF0IGFsc28gbm90IGRvIGEgVExCIGZsdXNoIGFmdGVyIGNs ZWFyaW5nIGFjY2VzcyBiaXQgPyBBbHRob3VnaCBhcm02NAo+PiBkb2VzIG5vdCBlbmFibGUgX19I QVZFX0FSQ0hfUE1EUF9DTEVBUl9ZT1VOR19GTFVTSCwgcmF0aGVyIGRlcGVuZHMgb24KPj4gdGhl IGdlbmVyaWMgcG1kcF9jbGVhcl9mbHVzaF95b3VuZygpIHdoaWNoIGFsc28gZG9lcyBhIFRMQiBm bHVzaCB2aWEKPj4gZmx1c2hfcG1kX3RsYl9yYW5nZSgpIHdoaWxlIGNsZWFyaW5nIHRoZSBhY2Nl c3MgYml0Lgo+Pgo+Pj4KPj4+IE5vdGU6IEkgYW0gb2theSBmb3IgYm90aCBhcHByb2FjaCwgaWYg c29tZW9uZSBjYW4gaGVscCB0byBlbnN1cmUgdGhhdAo+Pj4gYWxsIGFyY2hpdGVjdHVyZXMgZG8g bm90IG5lZWQgdGhlIHRsYiBmbHVzaCB3aGVuIGNsZWFyaW5nIHRoZSBhY2Nlc3NlZAo+Pj4gYml0 LCB0aGVuIEkgYWxzbyB0aGluayBCYXJyeSdzIHBhdGNoIGlzIGJldHRlciAoaG9wZSBCYXJyeSBj YW4gcmVzZW5kCj4+PiBoaXMgcGF0Y2gpLgo+Pgo+PiBUaGlzIHBhcmFncmFwaCBiZWxvbmdzIGFm dGVyIHRoZSAnLS0tLScgYmVsb3cgYW5kIG5vdCBwYXJ0IG9mIHRoZSBjb21taXQKPj4gbWVzc2Fn ZS4KPj4KPj4+Cj4+PiBbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIyMDYxNzA3 MDU1NS4zNDQzNjgtMS0yMWNuYmFvQGdtYWlsLmNvbS8KPj4+IFNpZ25lZC1vZmYtYnk6IEJhb2xp biBXYW5nIDxiYW9saW4ud2FuZ0BsaW51eC5hbGliYWJhLmNvbT4KPj4+IC0tLQo+Pj4gIGFyY2gv YXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oIHwgMzEgKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLQo+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlv bnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wZ3RhYmxl LmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+Pj4gaW5kZXggMGJkMThkZTlm ZDk3Li4yOTc5ZDc5NmJhOWQgMTAwNjQ0Cj4+PiAtLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNt L3BndGFibGUuaAo+Pj4gKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgKPj4+ IEBAIC05MDUsMjEgKzkwNSwyMiBAQCBzdGF0aWMgaW5saW5lIGludCBwdGVwX3Rlc3RfYW5kX2Ns ZWFyX3lvdW5nKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+Pj4gIHN0YXRpYyBpbmxpbmUg aW50IHB0ZXBfY2xlYXJfZmx1c2hfeW91bmcoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCj4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFk ZHJlc3MsIHB0ZV90ICpwdGVwKQo+Pj4gIHsKPj4+IC0gICAgIGludCB5b3VuZyA9IHB0ZXBfdGVz dF9hbmRfY2xlYXJfeW91bmcodm1hLCBhZGRyZXNzLCBwdGVwKTsKPj4+IC0KPj4+IC0gICAgIGlm ICh5b3VuZykgewo+Pj4gLSAgICAgICAgICAgICAvKgo+Pj4gLSAgICAgICAgICAgICAgKiBXZSBj YW4gZWxpZGUgdGhlIHRyYWlsaW5nIERTQiBoZXJlIHNpbmNlIHRoZSB3b3JzdCB0aGF0IGNhbgo+ Pj4gLSAgICAgICAgICAgICAgKiBoYXBwZW4gaXMgdGhhdCBhIENQVSBjb250aW51ZXMgdG8gdXNl IHRoZSB5b3VuZyBlbnRyeSBpbiBpdHMKPj4+IC0gICAgICAgICAgICAgICogVExCIGFuZCB3ZSBt aXN0YWtlbmx5IHJlY2xhaW0gdGhlIGFzc29jaWF0ZWQgcGFnZS4gVGhlCj4+PiAtICAgICAgICAg ICAgICAqIHdpbmRvdyBmb3Igc3VjaCBhbiBldmVudCBpcyBib3VuZGVkIGJ5IHRoZSBuZXh0Cj4+ PiAtICAgICAgICAgICAgICAqIGNvbnRleHQtc3dpdGNoLCB3aGljaCBwcm92aWRlcyBhIERTQiB0 byBjb21wbGV0ZSB0aGUgVExCCj4+PiAtICAgICAgICAgICAgICAqIGludmFsaWRhdGlvbi4KPj4+ IC0gICAgICAgICAgICAgICovCj4+PiAtICAgICAgICAgICAgIGZsdXNoX3RsYl9wYWdlX25vc3lu Yyh2bWEsIGFkZHJlc3MpOwo+Pj4gLSAgICAgfQo+Pj4gLQo+Pj4gLSAgICAgcmV0dXJuIHlvdW5n Owo+Pj4gKyAgICAgLyoKPj4+ICsgICAgICAqIFRoaXMgY29tbWVudCBpcyBib3Jyb3dlZCBmcm9t IHg4NiwgYnV0IGFwcGxpZXMgZXF1YWxseSB0byBBUk02NDoKPj4+ICsgICAgICAqCj4+PiArICAg ICAgKiBDbGVhcmluZyB0aGUgYWNjZXNzZWQgYml0IHdpdGhvdXQgYSBUTEIgZmx1c2ggZG9lc24n dCBjYXVzZQo+Pj4gKyAgICAgICogZGF0YSBjb3JydXB0aW9uLiBbIEl0IGNvdWxkIGNhdXNlIGlu Y29ycmVjdCBwYWdlIGFnaW5nIGFuZAo+Pj4gKyAgICAgICogdGhlIChtaXN0YWtlbikgcmVjbGFp bSBvZiBob3QgcGFnZXMsIGJ1dCB0aGUgY2hhbmNlIG9mIHRoYXQKPj4+ICsgICAgICAqIHNob3Vs ZCBiZSByZWxhdGl2ZWx5IGxvdy4gXQo+Pj4gKyAgICAgICoKPj4+ICsgICAgICAqIFNvIGFzIGEg cGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIGRvbid0IGZsdXNoIHRoZSBUTEIgd2hlbgo+Pj4gKyAg ICAgICogY2xlYXJpbmcgdGhlIGFjY2Vzc2VkIGJpdCwgaXQgd2lsbCBldmVudHVhbGx5IGJlIGZs dXNoZWQgYnkKPj4+ICsgICAgICAqIGEgY29udGV4dCBzd2l0Y2ggb3IgYSBWTSBvcGVyYXRpb24g YW55d2F5LiBbIEluIHRoZSByYXJlCj4+PiArICAgICAgKiBldmVudCBvZiBpdCBub3QgZ2V0dGlu ZyBmbHVzaGVkIGZvciBhIGxvbmcgdGltZSB0aGUgZGVsYXkKPj4+ICsgICAgICAqIHNob3VsZG4n dCByZWFsbHkgbWF0dGVyIGJlY2F1c2UgdGhlcmUncyBubyByZWFsIG1lbW9yeQo+Pj4gKyAgICAg ICogcHJlc3N1cmUgZm9yIHN3YXBvdXQgdG8gcmVhY3QgdG8uIF0KPj4+ICsgICAgICAqLwo+Pj4g KyAgICAgcmV0dXJuIHB0ZXBfdGVzdF9hbmRfY2xlYXJfeW91bmcodm1hLCBhZGRyZXNzLCBwdGVw KTsKPj4+ICB9Cj4+Pgo+Pj4gICNpZmRlZiBDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0UKPj4K Pj4gVGhlcmUgYXJlIHRocmVlIGRpc3RpbmN0IGNvbmNlcm5zIGhlcmUKPj4KPj4gMSkgV2hhdCBh cmUgdGhlIGNoYW5jZXMgb2YgdGhpcyBtaXNsZWFkaW5nIGV4aXN0aW5nIGhvdCBwYWdlIHJlY2xh aW0gcHJvY2Vzcwo+PiAyKSBIb3cgc2Vjb25kYXJ5IE1NVSBzdWNoIGFzIFNNTVUgYWRhcHQgdG8g Y2hhbmdlIGluIG1hcHBpbmdzIHdpdGhvdXQgYSBmbHVzaAo+PiAzKSBDb3VsZCB0aGlzIGJyZWFr IHRoZSBhcmNoaXRlY3R1cmUgcnVsZSByZXF1aXJpbmcgYSBUTEIgZmx1c2ggYWZ0ZXIgYWNjZXNz Cj4+ICAgIGJpdCBjbGVhciBvbiBhIHBhZ2UgdGFibGUgZW50cnkKPiAKPiBJbiB0ZXJtcyBvZiBh bGwgb2YgYWJvdmUgY29uY2VybnMsICB0aG91Z2ggMiBpcyBkaWZmZXJlbnQsIHdoaWNoIGlzIGFu Cj4gaXNzdWUgYmV0d2Vlbgo+IGNwdSBhbmQgbm9uLWNwdSwKPiBpIGZlZWwga2VybmVsIGhhcyBh Y3R1YWxseSBkcm9wcGVkIHRsYiBmbHVzaCBhdCBsZWFzdCBmb3IgbWdscnUsIHRoZXJlCj4gaXMg bm8gZmx1c2ggaW4KPiBscnVfZ2VuX2xvb2tfYXJvdW5kKCksCj4gCj4gc3RhdGljIGJvb2wgZm9s aW9fcmVmZXJlbmNlZF9vbmUoc3RydWN0IGZvbGlvICpmb2xpbywKPiAgICAgICAgICAgICAgICAg c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdm9pZCAq YXJnKQo+IHsKPiAgICAgICAgIC4uLgo+IAo+ICAgICAgICAgICAgICAgICBpZiAocHZtdy5wdGUp IHsKPiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobHJ1X2dlbl9lbmFibGVkKCkgJiYKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRlX3lvdW5nKHB0ZXBfZ2V0KHB2bXcucHRlKSkp IHsKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxydV9nZW5fbG9va19hcm91bmQo JnB2bXcpOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlZCsrOwo+ ICAgICAgICAgICAgICAgICAgICAgICAgIH0KPiAKPiAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAocHRlcF9jbGVhcl9mbHVzaF95b3VuZ19ub3RpZnkodm1hLCBhZGRyZXNzLAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB2bXcucHRlKSkKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZWQrKzsKPiAgICAgICAgICAgICAg ICAgfQo+IAo+ICAgICAgICAgcmV0dXJuIHRydWU7Cj4gfQo+IAo+IGFuZCBzbyBpcyBpbiB3YWxr X3B0ZV9yYW5nZSgpIG9mIHZtc2Nhbi4gIGxpbnV4IGhhcyBiZWVuIHN1cnZpdmluZyB3aXRoCj4g YWxsIGFib3ZlIGNvbmNlcm5zIGZvciBhIHdoaWxlLCBiZWxpZXZpbmcgaXQgb3Igbm90IDotKQoK QWx0aG91Z2ggdGhlIGZpcnN0IHR3byBjb25jZXJucyBjb3VsZCBiZSB3b3JrZWQgdXBvbiBpbiB0 aGUgU1csIGtlcm5lbCBzdXJ2aXZpbmcKYWZ0ZXIgYnJlYWtpbmcgYXJjaCBydWxlcyBleHBsaWNp dGx5IGlzIG5vdCBhIGNvcnJlY3Qgc3RhdGUgdG8gYmUgaW4gSU1ITy4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK