From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m16.mail.163.com (m16.mail.163.com [220.197.31.4]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7C5C62DCBF6 for ; Tue, 24 Jun 2025 15:24:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.4 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750778688; cv=none; b=WRRJUO+BIFT1itHJRsaamN1SW8cnAp0cnSPlReCjQJzZg9pXmSx+MTK1OCECI/U9lpWZT1hvQkObCcSzoxDgrS113NzuSvAl6PER7ZexswEEq9Wu2rZxL9CyNHev3D9eVJct+weZcMzj2yOhxEGLyKLDAPmw/WgyY79f77O+R7s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750778688; c=relaxed/simple; bh=xjgV5UEV+1XPen5kKVrpZ5li7snheck32SORU1CyLcY=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=o7XS7cSWZGB0vpcsM/CBp61/8fEC7WoGBgV+6JV0n+1SX3fjonhGPdsFSZEnLqFmpMRxkV/Jxur8RDCLeCeKWrxQzdV7d6i/N/+pf64kXU6NZ4l3Xdj0UhfIKpcs2hz1ISfwNSLPtLUG1Ql3M+sfhOU+l5HwauFYd6vwhFmrZFA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=fail (1024-bit key) header.d=163.com header.i=@163.com header.b=N2MFJcsS reason="signature verification failed"; arc=none smtp.client-ip=220.197.31.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=163.com header.i=@163.com header.b="N2MFJcsS" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:To:Subject:Content-Type:MIME-Version: Message-ID; bh=+CsR8dwJMhn7sj3a0aCbVxQIGB1XTbsL0e45ApnUOmk=; b=N 2MFJcsScA/1J6yLHljSISXx3uaE93B8kTNz0HB653flTi3WZoTLdInJVxUB7yigE 8+gJJA368CMll2JHfGudj84Sc4SB1ndTnZFMPPMmQP53tdipRY9m1dkA15Yl5Gb9 RSg1Y2VTrPLXrMs6DZJPCiYLnzKsH52gHQ3ixALpdk= Received: from 00107082$163.com ( [111.35.191.166] ) by ajax-webmail-wmsvr-40-114 (Coremail) ; Tue, 24 Jun 2025 23:23:02 +0800 (CST) Date: Tue, 24 Jun 2025 23:23:02 +0800 (CST) From: "David Wang" <00107082@163.com> To: "Suren Baghdasaryan" Cc: "Harry Yoo" , akpm@linux-foundation.org, kent.overstreet@linux.dev, oliver.sang@intel.com, cachen@purestorage.com, linux-mm@kvack.org, oe-lkp@lists.linux.dev, stable@vger.kernel.org Subject: Re: [PATCH v3] lib/alloc_tag: do not acquire non-existent lock in alloc_tag_top_users() X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20240801(9da12a7b) Copyright (c) 2002-2025 www.mailtech.cn 163com In-Reply-To: References: <20250624072513.84219-1-harry.yoo@oracle.com> <7f2f180f.a643.197a21de68c.Coremail.00107082@163.com> <2dba37c6.b15a.197a23dcce2.Coremail.00107082@163.com> <3942323b.b31d.197a2572832.Coremail.00107082@163.com> X-NTES-SC: AL_Qu2eAvuct00j5CmeYekZnEYQheY4XMKyuPkg1YJXOp80oyTS5zk8f19gNmTP/Mm1GyOxkDi1UyFJ0OdWVJFYR4ROmO6VCdH3uQGvtyb/ff9V Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <1f0e3cc3.b35e.197a28917b8.Coremail.00107082@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID:cigvCgD333fXwlpoSwAkAA--.15897W X-CM-SenderInfo: qqqrilqqysqiywtou0bp/xtbBkA92qmhaufxsHQADsG X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== CkF0IDIwMjUtMDYtMjQgMjI6NTc6NDAsICJTdXJlbiBCYWdoZGFzYXJ5YW4iIDxzdXJlbmJAZ29v Z2xlLmNvbT4gd3JvdGU6Cj5PbiBUdWUsIEp1biAyNCwgMjAyNSBhdCA3OjI44oCvQU0gRGF2aWQg V2FuZyA8MDAxMDcwODJAMTYzLmNvbT4gd3JvdGU6Cj4+Cj4+Cj4+IEF0IDIwMjUtMDYtMjQgMjI6 MTM6NDksICJIYXJyeSBZb28iIDxoYXJyeS55b29Ab3JhY2xlLmNvbT4gd3JvdGU6Cj4+ID5PbiBU dWUsIEp1biAyNCwgMjAyNSBhdCAxMDowMDo0OFBNICswODAwLCBEYXZpZCBXYW5nIHdyb3RlOgo+ PiA+Pgo+PiA+PiBBdCAyMDI1LTA2LTI0IDIxOjUwOjAyLCAiSGFycnkgWW9vIiA8aGFycnkueW9v QG9yYWNsZS5jb20+IHdyb3RlOgo+PiA+PiA+T24gVHVlLCBKdW4gMjQsIDIwMjUgYXQgMDk6MjU6 NThQTSArMDgwMCwgRGF2aWQgV2FuZyB3cm90ZToKPj4gPj4gPj4KPj4gPj4gPj4gQXQgMjAyNS0w Ni0yNCAxNToyNToxMywgIkhhcnJ5IFlvbyIgPGhhcnJ5Lnlvb0BvcmFjbGUuY29tPiB3cm90ZToK Pj4gPj4gPj4gPmFsbG9jX3RhZ190b3BfdXNlcnMoKSBhdHRlbXB0cyB0byBsb2NrIGFsbG9jX3Rh Z19jdHR5cGUtPm1vZF9sb2NrCj4+ID4+ID4+ID5ldmVuIHdoZW4gdGhlIGFsbG9jX3RhZ19jdHR5 cGUgaXMgbm90IGFsbG9jYXRlZCBiZWNhdXNlOgo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4gIDEpIGFs bG9jIHRhZ2dpbmcgaXMgZGlzYWJsZWQgYmVjYXVzZSBtZW0gcHJvZmlsaW5nIGlzIGRpc2FibGVk Cj4+ID4+ID4+ID4gICAgICghYWxsb2NfdGFnX2N0dHlwZSkKPj4gPj4gPj4gPiAgMikgYWxsb2Mg dGFnZ2luZyBpcyBlbmFibGVkLCBidXQgbm90IHlldCBpbml0aWFsaXplZCAoIWFsbG9jX3RhZ19j dHR5cGUpCj4+ID4+ID4+ID4gIDMpIGFsbG9jIHRhZ2dpbmcgaXMgZW5hYmxlZCwgYnV0IGZhaWxl ZCBpbml0aWFsaXphdGlvbgo+PiA+PiA+PiA+ICAgICAoIWFsbG9jX3RhZ19jdHR5cGUgb3IgSVNf RVJSKGFsbG9jX3RhZ19jdHR5cGUpKQo+PiA+PiA+PiA+Cj4+ID4+ID4+ID5JbiBhbGwgY2FzZXMs IGFsbG9jX3RhZ19jdHR5cGUgaXMgbm90IGFsbG9jYXRlZCwgYW5kIHRoZXJlZm9yZQo+PiA+PiA+ PiA+YWxsb2NfdGFnX3RvcF91c2VycygpIHNob3VsZCBub3QgYXR0ZW1wdCB0byBhY3F1aXJlIHRo ZSBzZW1hcGhvcmUuCj4+ID4+ID4+ID4KPj4gPj4gPj4gPlRoaXMgbGVhZHMgdG8gYSBjcmFzaCBv biBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlIGJ5IGF0dGVtcHRpbmcgdG8KPj4gPj4gPj4gPmFj cXVpcmUgYSBub24tZXhpc3RlbnQgc2VtYXBob3JlOgo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4gIE9v cHM6IGdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdCwgcHJvYmFibHkgZm9yIG5vbi1jYW5vbmljYWwg YWRkcmVzcyAweGRmZmZmYzAwMDAwMDAwMWI6IDAwMDAgWyMzXSBTTVAgS0FTQU4gTk9QVEkKPj4g Pj4gPj4gPiAgS0FTQU46IG51bGwtcHRyLWRlcmVmIGluIHJhbmdlIFsweDAwMDAwMDAwMDAwMDAw ZDgtMHgwMDAwMDAwMDAwMDAwMGRmXQo+PiA+PiA+PiA+ICBDUFU6IDIgVUlEOiAwIFBJRDogMSBD b21tOiBzeXN0ZW1kIFRhaW50ZWQ6IEcgICAgICBEICAgICAgICAgICAgIDYuMTYuMC1yYzIgIzEg Vk9MVU5UQVJZCj4+ID4+ID4+ID4gIFRhaW50ZWQ6IFtEXT1ESUUKPj4gPj4gPj4gPiAgSGFyZHdh cmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgMS4x Ni4yLWRlYmlhbi0xLjE2LjItMSAwNC8wMS8yMDE0Cj4+ID4+ID4+ID4gIFJJUDogMDAxMDpkb3du X3JlYWRfdHJ5bG9jaysweGFhLzB4M2IwCj4+ID4+ID4+ID4gIENvZGU6IGQwIDdjIDA4IDg0IGQy IDBmIDg1IGEwIDAyIDAwIDAwIDhiIDBkIGRmIDMxIGRkIDA0IDg1IGM5IDc1IDI5IDQ4IGI4IDAw IDAwIDAwIDAwIDAwIGZjIGZmIGRmIDQ4IDhkIDZiIDY4IDQ4IDg5IGVhIDQ4IGMxIGVhIDAzIDw4 MD4gM2MgMDIgMDAgMGYgODUgODggMDIgMDAgMDAgNDggM2IgNWIgNjggMGYgODUgNTMgMDEgMDAg MDAgNjUgZmYKPj4gPj4gPj4gPiAgUlNQOiAwMDAwOmZmZmY4ODgxMDAyY2U5YjggRUZMQUdTOiAw MDAxMDAxNgo+PiA+PiA+PiA+ICBSQVg6IGRmZmZmYzAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAw MDAwMDcwIFJDWDogMDAwMDAwMDAwMDAwMDAwMAo+PiA+PiA+PiA+ICBSRFg6IDAwMDAwMDAwMDAw MDAwMWIgUlNJOiAwMDAwMDAwMDAwMDAwMDBhIFJESTogMDAwMDAwMDAwMDAwMDA3MAo+PiA+PiA+ PiA+ICBSQlA6IDAwMDAwMDAwMDAwMDAwZDggUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogZmZm ZmVkMTA3ZGRlNDlkMQo+PiA+PiA+PiA+ICBSMTA6IGZmZmY4ODgzZWVmMjRlOGIgUjExOiBmZmZm ODg4MTAwMmNlYzIwIFIxMjogMWZmZmYxMTAyMDA1OWQzNwo+PiA+PiA+PiA+ICBSMTM6IDAwMDAw MDAwMDAzZmZmN2IgUjE0OiBmZmZmODg4MTAwMmNlYzIwIFIxNTogZGZmZmZjMDAwMDAwMDAwMAo+ PiA+PiA+PiA+ICBGUzogIDAwMDA3Zjk2M2YyMWQ5NDAoMDAwMCkgR1M6ZmZmZjg4ODQ1OGNhNjAw MCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCj4+ID4+ID4+ID4gIENTOiAgMDAxMCBEUzog MDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKPj4gPj4gPj4gPiAgQ1IyOiAwMDAw N2Y5NjNmNWVkZjcxIENSMzogMDAwMDAwMDEwNjcyYzAwMCBDUjQ6IDAwMDAwMDAwMDAzNTBlZjAK Pj4gPj4gPj4gPiAgQ2FsbCBUcmFjZToKPj4gPj4gPj4gPiAgIDxUQVNLPgo+PiA+PiA+PiA+ICAg Y29kZXRhZ190cnlsb2NrX21vZHVsZV9saXN0KzB4ZC8weDIwCj4+ID4+ID4+ID4gICBhbGxvY190 YWdfdG9wX3VzZXJzKzB4MzY5LzB4NGIwCj4+ID4+ID4+ID4gICBfX3Nob3dfbWVtKzB4MWNkLzB4 NmUwCj4+ID4+ID4+ID4gICB3YXJuX2FsbG9jKzB4MmIxLzB4MzkwCj4+ID4+ID4+ID4gICBfX2Fs bG9jX2Zyb3plbl9wYWdlc19ub3Byb2YrMHgxMmI5LzB4MjFhMAo+PiA+PiA+PiA+ICAgYWxsb2Nf cGFnZXNfbXBvbCsweDEzNS8weDNlMAo+PiA+PiA+PiA+ICAgYWxsb2Nfc2xhYl9wYWdlKzB4ODIv MHhlMAo+PiA+PiA+PiA+ICAgbmV3X3NsYWIrMHgyMTIvMHgyNDAKPj4gPj4gPj4gPiAgIF9fX3Ns YWJfYWxsb2MrMHg4MmEvMHhlMDAKPj4gPj4gPj4gPiAgIDwvVEFTSz4KPj4gPj4gPj4gPgo+PiA+ PiA+PiA+QXMgRGF2aWQgV2FuZyBwb2ludHMgb3V0LCB0aGlzIGlzc3VlIGJlY2FtZSBlYXNpZXIg dG8gdHJpZ2dlciBhZnRlciBjb21taXQKPj4gPj4gPj4gPjc4MDEzOGIxMjM4MSAoImFsbG9jX3Rh ZzogY2hlY2sgbWVtX3Byb2ZpbGluZ19zdXBwb3J0IGluIGFsbG9jX3RhZ19pbml0IikuCj4+ID4+ ID4+ID4KPj4gPj4gPj4gPkJlZm9yZSB0aGUgY29tbWl0LCB0aGUgaXNzdWUgb2NjdXJyZWQgb25s eSB3aGVuIGl0IGZhaWxlZCB0byBhbGxvY2F0ZQo+PiA+PiA+PiA+YW5kIGluaXRpYWxpemUgYWxs b2NfdGFnX2N0dHlwZSBvciBpZiBhIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxzIGJlZm9yZQo+PiA+ PiA+PiA+YWxsb2NfdGFnX2luaXQoKSBpcyBjYWxsZWQuIEFmdGVyIHRoZSBjb21taXQsIGl0IGNh biBiZSBlYXNpbHkgdHJpZ2dlcmVkCj4+ID4+ID4+ID53aGVuIG1lbW9yeSBwcm9maWxpbmcgaXMg Y29tcGlsZWQgYnV0IGRpc2FibGVkIGF0IGJvb3QuCj4+ID4+ID4+ID4KPj4gPj4gPj4gPlRvIHBy b3Blcmx5IGRldGVybWluZSB3aGV0aGVyIGFsbG9jX3RhZ19pbml0KCkgaGFzIGJlZW4gY2FsbGVk IGFuZAo+PiA+PiA+PiA+aXRzIGRhdGEgc3RydWN0dXJlcyBpbml0aWFsaXplZCwgdmVyaWZ5IHRo YXQgYWxsb2NfdGFnX2N0dHlwZSBpcyBhIHZhbGlkCj4+ID4+ID4+ID5wb2ludGVyIGJlZm9yZSBh Y3F1aXJpbmcgdGhlIHNlbWFwaG9yZS4gSWYgdGhlIHZhcmlhYmxlIGlzIE5VTEwgb3IgYW4gZXJy b3IKPj4gPj4gPj4gPnZhbHVlLCBpdCBoYXMgbm90IGJlZW4gcHJvcGVybHkgaW5pdGlhbGl6ZWQu IEluIHN1Y2ggYSBjYXNlLCBqdXN0IHNraXAKPj4gPj4gPj4gPmFuZCBkbyBub3QgYXR0ZW1wdCB0 byBhY3F1aXJlIHRoZSBzZW1hcGhvcmUuCj4+ID4+ID4+ID4KPj4gPj4gPj4gPlJlcG9ydGVkLWJ5 OiBrZXJuZWwgdGVzdCByb2JvdCA8b2xpdmVyLnNhbmdAaW50ZWwuY29tPgo+PiA+PiA+PiA+Q2xv c2VzOiBodHRwczovL3VybGRlZmVuc2UuY29tL3YzL19faHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv b2UtbGtwLzIwMjUwNjE4MTM1MS5iYmE4NjdkZC1sa3BAaW50ZWwuY29tX187ISFBQ1dWNU45TTJS Vjk5aFEhTUFEdkdLdHZUdmxMWE54bHJKNEJkT1NuYnNKbHlyU3JvUFVHSjNKUUhzX0lGLWd4eHFm UTg5T1RaMjFhTjk2RGJtakc5cUgzV2kxTWxndGlTQSQKPj4gPj4gPj4gPkNsb3NlczogaHR0cHM6 Ly91cmxkZWZlbnNlLmNvbS92My9fX2h0dHBzOi8vbG9yZS5rZXJuZWwub3JnL29lLWxrcC8yMDI1 MDYxMzE3MTEuNWI0MTkzMWMtbGtwQGludGVsLmNvbV9fOyEhQUNXVjVOOU0yUlY5OWhRIU1BRHZH S3R2VHZsTFhOeGxySjRCZE9TbmJzSmx5clNyb1BVR0ozSlFIc19JRi1neHhxZlE4OU9UWjIxYU45 NkRibWpHOXFIM1dpMG8yT295bkEkCj4+ID4+ID4+ID5GaXhlczogNzgwMTM4YjEyMzgxICgiYWxs b2NfdGFnOiBjaGVjayBtZW1fcHJvZmlsaW5nX3N1cHBvcnQgaW4gYWxsb2NfdGFnX2luaXQiKQo+ PiA+PiA+PiA+Rml4ZXM6IDE0MzhkMzQ5ZDE2YiAoImxpYjogYWRkIG1lbW9yeSBhbGxvY2F0aW9u cyByZXBvcnQgaW4gc2hvd19tZW0oKSIpCj4+ID4+ID4+ID5DYzogc3RhYmxlQHZnZXIua2VybmVs Lm9yZwo+PiA+PiA+PiA+U2lnbmVkLW9mZi1ieTogSGFycnkgWW9vIDxoYXJyeS55b29Ab3JhY2xl LmNvbT4KPj4gPj4gPj4gPi0tLQo+PiA+PiA+PiA+Cj4+ID4+ID4+ID5AU3VyZW46IEkgZGlkIG5v dCBhZGQgYW5vdGhlciBwcl93YXJuKCkgYmVjYXVzZSBldmVyeSBlcnJvciBwYXRoIGluCj4+ID4+ ID4+ID5hbGxvY190YWdfaW5pdCgpIGFscmVhZHkgaGFzIHByX2VycigpLgo+PiA+PiA+PiA+Cj4+ ID4+ID4+ID52MiAtPiB2MzoKPj4gPj4gPj4gPi0gQWRkZWQgYW5vdGhlciBDbG9zZXM6IHRhZyAo RGF2aWQpCj4+ID4+ID4+ID4tIE1vdmVkIHRoZSBjb25kaXRpb24gaW50byBhIHN0YW5kYWxvbmUg aWYgYmxvY2sgZm9yIGJldHRlciByZWFkYWJpbGl0eQo+PiA+PiA+PiA+ICAoU3VyZW4pCj4+ID4+ ID4+ID4tIFR5cG8gZml4IChTdXJlbikKPj4gPj4gPj4gPgo+PiA+PiA+PiA+IGxpYi9hbGxvY190 YWcuYyB8IDMgKysrCj4+ID4+ID4+ID4gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQo+ PiA+PiA+PiA+Cj4+ID4+ID4+ID5kaWZmIC0tZ2l0IGEvbGliL2FsbG9jX3RhZy5jIGIvbGliL2Fs bG9jX3RhZy5jCj4+ID4+ID4+ID5pbmRleCA0MWNjZmIwMzViN2IuLmU5YjMzODQ4NzAwYSAxMDA2 NDQKPj4gPj4gPj4gPi0tLSBhL2xpYi9hbGxvY190YWcuYwo+PiA+PiA+PiA+KysrIGIvbGliL2Fs bG9jX3RhZy5jCj4+ID4+ID4+ID5AQCAtMTI3LDYgKzEyNyw5IEBAIHNpemVfdCBhbGxvY190YWdf dG9wX3VzZXJzKHN0cnVjdCBjb2RldGFnX2J5dGVzICp0YWdzLCBzaXplX3QgY291bnQsIGJvb2wg Y2FuX3NsCj4+ID4+ID4+ID4gICAgICAgICBzdHJ1Y3QgY29kZXRhZ19ieXRlcyBuOwo+PiA+PiA+ PiA+ICAgICAgICAgdW5zaWduZWQgaW50IGksIG5yID0gMDsKPj4gPj4gPj4gPgo+PiA+PiA+PiA+ KyAgICAgICAgaWYgKElTX0VSUl9PUl9OVUxMKGFsbG9jX3RhZ19jdHR5cGUpKQo+PiA+PiA+PiA+ KyAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gPj4gPj4KPj4gPj4gPj4gV2hhdCBhYm91dCBt ZW1fcHJvZmlsaW5nX3N1cHBvcnQgc2V0IHRvIDAgYWZ0ZXIgYWxsb2NfdGFnX2luaXQsIGluIHRo aXMgY2FzZToKPj4gPj4gPj4gYWxsb2NfdGFnX2N0dHlwZSAhPSBOVUxMICYmIG1lbV9wcm9maWxp bmdfc3VwcG9ydD09MAo+PiA+PiA+Pgo+PiA+PiA+PiBJIGtpbmQgb2YgdGhpbmsgYWxsb2NfdGFn X3RvcF91c2VycyBzaG91bGQgcmV0dXJuIDAgaW4gdGhpcyBjYXNlLi4uLmFuZCAgYm90aCBtZW1f cHJvZmlsaW5nX3N1cHBvcnQgYW5kIGFsbG9jX3RhZ19jdHR5cGUgc2hvdWxkIGJlIGNoZWNrZWQu Li4uCj4+ID4+ID4KPj4gPj4gPkFmdGVyIGNvbW1pdCA3ODAxMzhiMTIzODEsIGFsbG9jX3RhZ19j dHR5cGUgaXMgbm90IGFsbG9jYXRlZCBpZgo+PiA+PiA+IW1lbV9wcm9maWxpbmdfc3VwcG9ydC4g KEFuZCB0aGF0J3MgIHdoeSB0aGlzIGJ1ZyBzaG93ZWQgdXApCj4+ID4+Cj4+ID4+IFRoZXJlIGlz IGEgc3lzY3RsKC9wcm9jL3N5cy92bS9tZW1fcHJvZmlsaW5nKSB3aGljaCBjYW4gb3ZlcnJpZGUg bWVtX3Byb2ZpbGluZ19zdXBwb3J0IGFuZCBzZXQgaXQgdG8gMCwgYWZ0ZXIgYWxsb2NfdGFnX2lu aXQgd2l0aCBtZW1fcHJvZmlsaW5nX3N1cHBvcnQ9MQo+Cj5XYWl0LCAvcHJvYy9zeXMvdm0vbWVt X3Byb2ZpbGluZyBpcyBjaGFuZ2luZyBtZW1fYWxsb2NfcHJvZmlsaW5nX2tleSwKPm5vdCBtZW1f cHJvZmlsaW5nX3N1cHBvcnQuIEFtIEkgbWlzc2luZyBzb21ldGhpbmc/CgpPaC4uLiBJIHdhcyB3 cm9uZyBhZ2FpbiwgIEkgd2FzIHJlYWRpbmcgYSBpbml0IGZ1bmMgc2V0dXBfZWFybHlfbWVtX3By b2ZpbGluZy4uLi4uLgoKPgo+PiA+Cj4+ID5Pay4gTWF5YmUgaXQgc2hvdWxkbid0IHJlcG9ydCBt ZW1vcnkgYWxsb2NhdGlvbiBpbmZvcm1hdGlvbiB0aGF0IGlzCj4+ID5jb2xsZWN0ZWQgYmVmb3Jl IG1lbSBwcm9maWxpbmcgd2FzIGRpc2FibGVkLiAoSSdtIG5vdCBzdXJlIHdoeSBpdCBkaXNhYmxp bmcKPj4gPmF0IHJ1bnRpbWUgaXMgYWxsb3dlZCwgdGhvdWdoKQo+PiA+Cj4+ID5UaGF0J3MgYSBn b29kIHRoaW5nIHRvIGhhdmUsIGJ1dCBJIHRoaW5rIHRoYXQncyBhIGJlaGF2aW9yYWwgY2hhbmdl IGluCj4+ID5tZW0gcHJvZmlsaW5nLCBpcnJlbGV2YW50IHRvIHRoaXMgYnVnIGFuZCBub3QgYSAt c3RhYmxlIHRoaW5nLgo+PiA+Cj4+ID5NYXliZSBhcyBhIGZvbGxvdy11cCBwYXRjaD8KPj4KPj4g T25seSBhIGxpdHRsZSBtb3JlIGNoYW5nZXMgbmVlZGVkLCBJIHdhcyBzdWdnZXN0aW5nOgo+Pgo+ PiBAQCAtMTM0LDYgKzEyMiwxNCBAQCBzaXplX3QgYWxsb2NfdGFnX3RvcF91c2VycyhzdHJ1Y3Qg Y29kZXRhZ19ieXRlcyAqdGFncywgc2l6ZV90IGNvdW50LCBib29sIGNhbl9zbAo+PiAgICAgICAg IHN0cnVjdCBjb2RldGFnX2J5dGVzIG47Cj4+ICAgICAgICAgdW5zaWduZWQgaW50IGksIG5yID0g MDsKPj4KPj4gKyAgICAgICBpZiAoIW1lbV9wcm9maWxpbmdfc3VwcG9ydCkKPj4gKyAgICAgICAg ICAgICAgIHJldHVybiAwOwo+Cj5EYXZpZCBpcyByaWdodCB0aGF0IHdpdGggL3Byb2Mvc3lzL3Zt L21lbV9wcm9maWxpbmcgbWVtb3J5IHByb2ZpbGluZwo+Y2FuIGJlIHR1cm5lZCBvZmYgYXQgcnVu dGltZSBidXQgdGhlIGFib3ZlIGNvbmRpdGlvbiBzaG91bGQgYmU6Cj4KPmlmICghbWVtX2FsbG9j X3Byb2ZpbGluZ19lbmFibGVkKCkpCj4gICAgICAgIHJldHVybiAwOwo+Cj4KPj4gKwo+PiArICAg ICAgIGlmIChJU19FUlJfT1JfTlVMTChhbGxvY190YWdfY3R0eXBlKSkgewo+PiArICAgICAgICAg ICAgICAgcHJfd2FybigiYWxsb2N0YWcgbW9kdWxlIGlzIG5vdCByZWFkeSB5ZXQuXG4iKTsKPgo+ SSBkb24ndCB0aGluayBzcGl0dGluZyBvdXQgdGhpcyB3YXJuaW5nIG9uIGV2ZXJ5IHNob3dfbWVt KCkgaXMgdXNlZnVsLgo+SWYgYWxsb2NfdGFnX2N0dHlwZSBpcyBpbnZhbGlkIGJlY2F1c2UgY29k ZXRhZ19yZWdpc3Rlcl90eXBlKCkgZmFpbGVkCj50aGVuIHdlIGFscmVhZHkgcHJpbnQgYW4gZXJy b3IgaGVyZToKPmh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y2LjE2LXJjMy9zb3Vy Y2UvbGliL2FsbG9jX3RhZy5jI0w4MjksCj5zbyB1c2VyIGhhcyB0aGUgbG9ncyB0byB0cmFjayB0 aGlzIGRvd24uCj5JZiBzaG93X21lbSgpIGlzIGNhbGxlZCBzbyBlYXJseSB0aGF0IGFsbG9jX3Rh Z19pbml0KCkgaGFzbid0IGJlZW4KPmNhbGxlZCB5ZXQgdGhlbiBtaXNzaW5nIGFsbG9jYXRpb24g dGFnIGluZm9ybWF0aW9uIHdvdWxkIG5vdCBiZQo+c3VycHJpc2luZyBJIHRoaW5rLCBjb25zaWRl cmluZyBpdCdzIGVhcmx5IGJvb3QuIEkgZG9uJ3QgdGhpbmsgaXQncwo+d29ydGggZGV0ZWN0aW5n IGFuZCByZXBvcnRpbmcgc3VjaCBhIHN0YXRlLgo+Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4g MDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gICAgICAgICBpZiAoY2FuX3NsZWVwKQo+Pgo+Pgo+Pgo+ PiBEYXZpZAo=