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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3A5AECAC589 for ; Wed, 18 Sep 2024 06:19:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 073476B0082; Wed, 18 Sep 2024 02:19:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0229B6B0083; Wed, 18 Sep 2024 02:19:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E2D636B0085; Wed, 18 Sep 2024 02:19:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id C16E86B0082 for ; Wed, 18 Sep 2024 02:19:37 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3F562C0349 for ; Wed, 18 Sep 2024 06:19:37 +0000 (UTC) X-FDA: 82576857594.21.C05DA69 Received: from mta21.hihonor.com (mta21.hihonor.com [81.70.160.142]) by imf02.hostedemail.com (Postfix) with ESMTP id A002680003 for ; Wed, 18 Sep 2024 06:19:33 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=honor.com; spf=pass (imf02.hostedemail.com: domain of gaoxu2@honor.com designates 81.70.160.142 as permitted sender) smtp.mailfrom=gaoxu2@honor.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726640292; a=rsa-sha256; cv=none; b=iGR/DbP/iQ1AfsISLdcgtHhPz5Pek6RyxfpZBuywFh4ipsPohitplpP45JBTwQjWzd6eb4 aooyAkMMwZeIva4rJfrJhovsgTEWGAYF08Zfd83GxjBYsGoWv9uufVcWUlZ7gqwvOlT268 vLL6UmjFQjdTXeH9joHQCBlPEk1JePw= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=honor.com; spf=pass (imf02.hostedemail.com: domain of gaoxu2@honor.com designates 81.70.160.142 as permitted sender) smtp.mailfrom=gaoxu2@honor.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726640292; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Xhy+4n15bILd/xr4R5BoGL/qSqoX2E6uJX2veAR8cns=; b=6srJSrFiCLH38v/RLuP4QJZ0Pck+8Q476qtqEky0qkycOrPwXPWxzvbKpTcNEjstdafi+q 1JPQIbWA/BEEQhMCxqRORnM1CXu02ZwFbOOR/iRsix+kzZ3nP7nzUAsGhnkwpT8SFfdJEF YiFQDagdrNhuh1dCkVEFLh7agY/AHqQ= Received: from w001.hihonor.com (unknown [10.68.25.235]) by mta21.hihonor.com (SkyGuard) with ESMTPS id 4X7pN45ldwzYlqKb; Wed, 18 Sep 2024 14:17:24 +0800 (CST) Received: from a007.hihonor.com (10.68.22.31) by w001.hihonor.com (10.68.25.235) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Wed, 18 Sep 2024 14:19:29 +0800 Received: from a007.hihonor.com (10.68.22.31) by a007.hihonor.com (10.68.22.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Wed, 18 Sep 2024 14:19:28 +0800 Received: from a007.hihonor.com ([fe80::4407:dd67:71d7:ea82]) by a007.hihonor.com ([fe80::4407:dd67:71d7:ea82%10]) with mapi id 15.02.1544.011; Wed, 18 Sep 2024 14:19:28 +0800 From: gaoxu To: Barry Song <21cnbao@gmail.com>, "akpm@linux-foundation.org" , "linux-mm@kvack.org" CC: "mhocko@suse.com" , fengbaopeng , "hailong.liu@oppo.com" , "kaleshsingh@google.com" , "linux-kernel@vger.kernel.org" , "lokeshgidra@google.com" , "ngeoffray@google.com" , "shli@fb.com" , "surenb@google.com" , yipengxiang , "david@redhat.com" , "yuzhao@google.com" , "minchan@kernel.org" , Barry Song Subject: =?utf-8?B?5Zue5aSNOiBbUEFUQ0ggUkZDXSBtbTogbWdscnU6IHByb3ZpZGUgYSBzZXBh?= =?utf-8?Q?rate_list_for_lazyfree_anon_folios?= Thread-Topic: [PATCH RFC] mm: mglru: provide a separate list for lazyfree anon folios Thread-Index: AQHbBnCmShcKECBep0eJF+tvIkpJDLJcx0oA Date: Wed, 18 Sep 2024 06:19:28 +0000 Message-ID: <02ff6c8e2199487b9d43ad2aa1fd813a@honor.com> References: <20240914063746.46290-1-21cnbao@gmail.com> In-Reply-To: <20240914063746.46290-1-21cnbao@gmail.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.164.11.140] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Queue-Id: A002680003 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: p9hb3r5mh3zq44uz8j8q5rumec6s7afy X-HE-Tag: 1726640373-618878 X-HE-Meta: U2FsdGVkX19gmzQjM2l/hj1yD+8GYm/SHIRgBo2kdI+2GPw8fP7IKvIER80T09w1qrLxqBC3PXLpYNGRPWar/mdKlFQpUGF7hzKvki54i9KWASh5MiRF8V6Ck+MjR3G06GsQ/50/IXFgaowgVKdZeFtn+aA68wtMTCxJt7hMcFlyC1HlQVDfXke8AqfAkNpYjwgnDuOlpKuuN4KkJqNjElNpxptkYuQTlk2SC/wdxeZbVH5tFA9ci2r+tyrusP+OxiW8SrEkww+IWXQexULTKeLhzHmEqPzywnWa0rjKStt041P9VZOgydxemn84KzteOjK6PZ/decvNnJ34gzdmRoxmFofEPf1PuKV8Uv3t/OqZ3+NaI/c4C2KTyDSeIPJQ+P/TJwQYGFVXKSJ7DyxGT8earLtz4muz6od8oJJ5FO2o8GsqFVmnbXa++WMI70T2uXuTq+QFej0ZA1YXF5LuxAGXGvFIDXYrG4/Iaum+zTaLf12GHvy4UdoE/tBv2gEkHIWqe3zBHlB6DsaJJ2d/2EFfLbXU5ZP/qNrtWNwQHJ1kqnHCcMNDESEoVrPRHvSjX8QRjadrJ87JPIUrLthk7djQ/LRCumMef8MoroEUq2w1Ve7jG2cwAx1+MK/7mvWj/gzrVm10PAf8/ys9hgArim1XiIujhnwcMrV28wquLyE+5ZnKY22YCZeQzKZiQHsviPRIsw3knoNh1nQbtkGvSGvsj91apq1VBzv4n1Le731NxOLjsC1VQIyvVy01bLfw/o0urlo9ZIo2gI8NVBauhrSQmljuSTXWE8zDo0EO7oMiC7GgYOsfnjjolI0FLAOsFqQoa+Gz2XZ+hFUWiu5oLeXorcE+Is/a7Gi4gxGKwwgDs0f+ksuWjsDvxWjz7GnqZOxtfbP302BWHorbME9Tc5ZoRaIvkWOesVmxPY+A0ZiSnrXikNuO3X5zxiyPo4Yr4ruFVtk8S+tMmb4bLbo sf9GjRnn iN6fUnxGgKVPvBX6vRiolw4QOMFJmj1RRexCWWg1Yxr3wCIekjVjXITU7yw0K0ONMCRExJFyvV9l4gVpP654Dqcn06j9KQvblZ4BMMb/m1rPx4nZ8zGu3F9roHfsSWzIXB9GJUZhdYEFWxLJzzSdDalfofSYkvQC4D5+6D5vVGkhZJ6h49D9tHku725p4ANquPFy6aaSTKuRTBbvdUYvOw8GoenC9qtH9BAeljknnQu+mbdy81Sxq5KYtOKOaD44o4uiLpzU6RmCjcN1QR+jrn9wFO3b9aChb/nzCtJYLGCeKIaqoVgNrNkduyWsVbxqNZa8kZdD4ls8cvYI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: PiANCj4gRnJvbTogQmFycnkgU29uZyA8di1zb25nYmFvaHVhQG9wcG8uY29tPg0KPiANCj4gVGhp cyBmb2xsb3dzIHVwIG9uIHRoZSBkaXNjdXNzaW9uIHJlZ2FyZGluZyBHYW94dSdzIHdvcmtbMV0u IEl0J3MNCj4gdW5jbGVhciBpZiB0aGVyZSdzIHN0aWxsIGludGVyZXN0IGluIGltcGxlbWVudGlu ZyBhIHNlcGFyYXRlIExSVQ0KPiBsaXN0IGZvciBsYXp5ZnJlZSBmb2xpb3MsIGJ1dCBJIGRlY2lk ZWQgdG8gZXhwbG9yZSBpdCBvdXQgb2YNCj4gY3VyaW9zaXR5Lg0KPiANCj4gQWNjb3JkaW5nIHRv IExva2VzaCwgTUFEVl9GUkVFJ2QgYW5vbiBmb2xpb3MgYXJlIGV4cGVjdGVkIHRvIGJlDQo+IHJl bGVhc2VkIGVhcmxpZXIgdGhhbiBmaWxlIGZvbGlvcy4gT25lIG9wdGlvbiwgYXMgaW1wbGVtZW50 ZWQNCj4gYnkgR2FvIFh1LCBpcyB0byBwbGFjZSBsYXp5ZnJlZSBhbm9uIGZvbGlvcyBhdCB0aGUg dGFpbCBvZiB0aGUNCj4gZmlsZSdzIGBtaW5fc2VxYCBnZW5lcmF0aW9uLiBIb3dldmVyLCB0aGlz IGFwcHJvYWNoIHJlc3VsdHMgaW4NCj4gbGF6eWZyZWUgZm9saW9zIGJlaW5nIHJlbGVhc2VkIGlu IGEgTElGTyBtYW5uZXIsIHdoaWNoIGNvbmZsaWN0cw0KPiB3aXRoIExSVSBiZWhhdmlvciwgYXMg bm90ZWQgYnkgTWljaGFsLg0KPiANCj4gVG8gYWRkcmVzcyB0aGlzLCB0aGlzIHBhdGNoIHByb3Bv c2VzIG1haW50YWluaW5nIGEgc2VwYXJhdGUgbGlzdA0KPiBmb3IgbGF6eWZyZWUgYW5vbiBmb2xp b3Mgd2hpbGUga2VlcGluZyB0aGVtIGNsYXNzaWZpZWQgdW5kZXIgdGhlDQo+ICJmaWxlIiBMUlUg dHlwZSB0byBtaW5pbWl6ZSBjb2RlIGNoYW5nZXMuIFRoZXNlIGxhenlmcmVlIGFub24NCj4gZm9s aW9zIHdpbGwgc3RpbGwgYmUgY291bnRlZCBhcyBmaWxlIGZvbGlvcyBhbmQgc2hhcmUgdGhlIHNh bWUNCj4gZ2VuZXJhdGlvbiB3aXRoIHJlZ3VsYXIgZmlsZXMuIEluIHRoZSBldmljdGlvbiBwYXRo LCB0aGUgbGF6eWZyZWUNCj4gbGlzdCB3aWxsIGJlIHByaW9yaXRpemVkIGZvciBzY2FubmluZyBi ZWZvcmUgdGhlIGFjdHVhbCBmaWxlDQo+IExSVSBsaXN0Lg0KSXQgc2VlbXMgbGlrZSBhIHZlcnkg ZmVhc2libGUgc29sdXRpb24uIEkgd2lsbCBjb25kdWN0IGNvbXBhcmF0aXZlIHRlc3RzDQpiYXNl ZCBvbiB0aGlzIHBhdGNoIGFuZCBzeW5jaHJvbml6ZSB0aGUgdGVzdCByZXN1bHRzIChpdCB3aWxs IHRha2Ugc29tZSB0aW1lKTsNClRoYW5rcyB0byBCYXJyeSBmb3IgcHJvdmlkaW5nIHRoZSBwYXRj aO+8gQ0KPiANCj4gWzFdDQo+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW1tL2YyOWY2 NGUyOWMwODQyN2I5NWUzZGYzMGE1NzcwMDU2QGhvbm9yDQo+IC5jb20vDQo+IA0KPiBTaWduZWQt b2ZmLWJ5OiBCYXJyeSBTb25nIDx2LXNvbmdiYW9odWFAb3Bwby5jb20+DQo+IC0tLQ0KPiAgaW5j bHVkZS9saW51eC9tbV9pbmxpbmUuaCB8ICA1ICstDQo+ICBpbmNsdWRlL2xpbnV4L21tem9uZS5o ICAgIHwgIDIgKy0NCj4gIG1tL3Ztc2Nhbi5jICAgICAgICAgICAgICAgfCA5NyArKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0NCj4gIDMgZmlsZXMgY2hhbmdlZCwgNjEgaW5z ZXJ0aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9tbV9pbmxpbmUuaCBiL2luY2x1ZGUvbGludXgvbW1faW5saW5lLmgNCj4gaW5kZXggZjRm ZTU5M2MxNDAwLi4xMThkNzBlZDMxMjAgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgvbW1f aW5saW5lLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9tbV9pbmxpbmUuaA0KPiBAQCAtMjI1LDYg KzIyNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBscnVfZ2VuX2FkZF9mb2xpbyhzdHJ1Y3QgbHJ1 dmVjDQo+ICpscnV2ZWMsIHN0cnVjdCBmb2xpbyAqZm9saW8sDQo+ICAJaW50IGdlbiA9IGZvbGlv X2xydV9nZW4oZm9saW8pOw0KPiAgCWludCB0eXBlID0gZm9saW9faXNfZmlsZV9scnUoZm9saW8p Ow0KPiAgCWludCB6b25lID0gZm9saW9fem9uZW51bShmb2xpbyk7DQo+ICsJaW50IGxhenlmcmVl ID0gdHlwZSA/IGZvbGlvX3Rlc3RfYW5vbihmb2xpbykgOiAwOw0KPiAgCXN0cnVjdCBscnVfZ2Vu X2ZvbGlvICpscnVnZW4gPSAmbHJ1dmVjLT5scnVnZW47DQo+IA0KPiAgCVZNX1dBUk5fT05fT05D RV9GT0xJTyhnZW4gIT0gLTEsIGZvbGlvKTsNCj4gQEAgLTI2Miw5ICsyNjMsOSBAQCBzdGF0aWMg aW5saW5lIGJvb2wgbHJ1X2dlbl9hZGRfZm9saW8oc3RydWN0IGxydXZlYw0KPiAqbHJ1dmVjLCBz dHJ1Y3QgZm9saW8gKmZvbGlvLA0KPiAgCWxydV9nZW5fdXBkYXRlX3NpemUobHJ1dmVjLCBmb2xp bywgLTEsIGdlbik7DQo+ICAJLyogZm9yIGZvbGlvX3JvdGF0ZV9yZWNsYWltYWJsZSgpICovDQo+ ICAJaWYgKHJlY2xhaW1pbmcpDQo+IC0JCWxpc3RfYWRkX3RhaWwoJmZvbGlvLT5scnUsICZscnVn ZW4tPmZvbGlvc1tnZW5dW3R5cGVdW3pvbmVdKTsNCj4gKwkJbGlzdF9hZGRfdGFpbCgmZm9saW8t PmxydSwgJmxydWdlbi0+Zm9saW9zW2dlbl1bdHlwZSArIGxhenlmcmVlXVt6b25lXSk7DQo+ICAJ ZWxzZQ0KPiAtCQlsaXN0X2FkZCgmZm9saW8tPmxydSwgJmxydWdlbi0+Zm9saW9zW2dlbl1bdHlw ZV1bem9uZV0pOw0KPiArCQlsaXN0X2FkZCgmZm9saW8tPmxydSwgJmxydWdlbi0+Zm9saW9zW2dl bl1bdHlwZSArIGxhenlmcmVlXVt6b25lXSk7DQo+IA0KPiAgCXJldHVybiB0cnVlOw0KPiAgfQ0K PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbXpvbmUuaCBiL2luY2x1ZGUvbGludXgvbW16 b25lLmgNCj4gaW5kZXggMTc1MDZlNGEyODM1Li41ZDIzMzE3Nzg1MjggMTAwNjQ0DQo+IC0tLSBh L2luY2x1ZGUvbGludXgvbW16b25lLmgNCj4gKysrIGIvaW5jbHVkZS9saW51eC9tbXpvbmUuaA0K PiBAQCAtNDM0LDcgKzQzNCw3IEBAIHN0cnVjdCBscnVfZ2VuX2ZvbGlvIHsNCj4gIAkvKiB0aGUg YmlydGggdGltZSBvZiBlYWNoIGdlbmVyYXRpb24gaW4gamlmZmllcyAqLw0KPiAgCXVuc2lnbmVk IGxvbmcgdGltZXN0YW1wc1tNQVhfTlJfR0VOU107DQo+ICAJLyogdGhlIG11bHRpLWdlbiBMUlUg bGlzdHMsIGxhemlseSBzb3J0ZWQgb24gZXZpY3Rpb24gKi8NCj4gLQlzdHJ1Y3QgbGlzdF9oZWFk DQo+IGZvbGlvc1tNQVhfTlJfR0VOU11bQU5PTl9BTkRfRklMRV1bTUFYX05SX1pPTkVTXTsNCj4g KwlzdHJ1Y3QgbGlzdF9oZWFkIGZvbGlvc1tNQVhfTlJfR0VOU11bQU5PTl9BTkRfRklMRSArDQo+ IDFdW01BWF9OUl9aT05FU107DQpGb3IgYmV0dGVyIHVuZGVyc3RhbmRpbmcgYW5kIGZ1dHVyZSBz Y2FsYWJpbGl0eSwgY291bGQgdXNlIGVudW0gdHlwZXMNCmluc3RlYWQgb2YgbnVtYmVycywgQ3Jl YXRlIGEgbmV3IHR5cGUsIHN1Y2ggYXM6IGVudW0gZm9saW9fdHlwZS4NCj4gIAkvKiB0aGUgbXVs dGktZ2VuIExSVSBzaXplcywgZXZlbnR1YWxseSBjb25zaXN0ZW50ICovDQo+ICAJbG9uZyBucl9w YWdlc1tNQVhfTlJfR0VOU11bQU5PTl9BTkRfRklMRV1bTUFYX05SX1pPTkVTXTsNCj4gIAkvKiB0 aGUgZXhwb25lbnRpYWwgbW92aW5nIGF2ZXJhZ2Ugb2YgcmVmYXVsdGVkICovDQo+IGRpZmYgLS1n aXQgYS9tbS92bXNjYW4uYyBiL21tL3Ztc2Nhbi5jDQo+IGluZGV4IDk2YWJmNGE1MjM4Mi4uOWRj NjY1ZGM2YmE5IDEwMDY0NA0KPiAtLS0gYS9tbS92bXNjYW4uYw0KPiArKysgYi9tbS92bXNjYW4u Yw0KPiBAQCAtMzcyNSwyMSArMzcyNSwyNSBAQCBzdGF0aWMgYm9vbCBpbmNfbWluX3NlcShzdHJ1 Y3QgbHJ1dmVjICpscnV2ZWMsIGludA0KPiB0eXBlLCBib29sIGNhbl9zd2FwKQ0KPiANCj4gIAkv KiBwcmV2ZW50IGNvbGQvaG90IGludmVyc2lvbiBpZiBmb3JjZV9zY2FuIGlzIHRydWUgKi8NCj4g IAlmb3IgKHpvbmUgPSAwOyB6b25lIDwgTUFYX05SX1pPTkVTOyB6b25lKyspIHsNCj4gLQkJc3Ry dWN0IGxpc3RfaGVhZCAqaGVhZCA9ICZscnVnZW4tPmZvbGlvc1tvbGRfZ2VuXVt0eXBlXVt6b25l XTsNCj4gKwkJaW50IGxpc3RfbnVtID0gdHlwZSA/IDIgOiAxOw0KPiArCQlzdHJ1Y3QgbGlzdF9o ZWFkICpoZWFkOw0KPiANCj4gLQkJd2hpbGUgKCFsaXN0X2VtcHR5KGhlYWQpKSB7DQo+IC0JCQlz dHJ1Y3QgZm9saW8gKmZvbGlvID0gbHJ1X3RvX2ZvbGlvKGhlYWQpOw0KPiArCQlmb3IgKGludCBp ID0gbGlzdF9udW0gLSAxOyBpID49IDA7IGktLSkgew0KPiArCQkJaGVhZCA9ICZscnVnZW4tPmZv bGlvc1tvbGRfZ2VuXVt0eXBlICsgaV1bem9uZV07DQo+ICsJCQl3aGlsZSAoIWxpc3RfZW1wdHko aGVhZCkpIHsNCj4gKwkJCQlzdHJ1Y3QgZm9saW8gKmZvbGlvID0gbHJ1X3RvX2ZvbGlvKGhlYWQp Ow0KPiANCj4gLQkJCVZNX1dBUk5fT05fT05DRV9GT0xJTyhmb2xpb190ZXN0X3VuZXZpY3RhYmxl KGZvbGlvKSwNCj4gZm9saW8pOw0KPiAtCQkJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGZvbGlvX3Rl c3RfYWN0aXZlKGZvbGlvKSwgZm9saW8pOw0KPiAtCQkJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGZv bGlvX2lzX2ZpbGVfbHJ1KGZvbGlvKSAhPSB0eXBlLA0KPiBmb2xpbyk7DQo+IC0JCQlWTV9XQVJO X09OX09OQ0VfRk9MSU8oZm9saW9fem9uZW51bShmb2xpbykgIT0gem9uZSwNCj4gZm9saW8pOw0K PiArCQkJCVZNX1dBUk5fT05fT05DRV9GT0xJTyhmb2xpb190ZXN0X3VuZXZpY3RhYmxlKGZvbGlv KSwNCj4gZm9saW8pOw0KPiArCQkJCVZNX1dBUk5fT05fT05DRV9GT0xJTyhmb2xpb190ZXN0X2Fj dGl2ZShmb2xpbyksIGZvbGlvKTsNCj4gKwkJCQlWTV9XQVJOX09OX09OQ0VfRk9MSU8oZm9saW9f aXNfZmlsZV9scnUoZm9saW8pICE9IHR5cGUsDQo+IGZvbGlvKTsNCj4gKwkJCQlWTV9XQVJOX09O X09OQ0VfRk9MSU8oZm9saW9fem9uZW51bShmb2xpbykgIT0gem9uZSwNCj4gZm9saW8pOw0KPiAN Cj4gLQkJCW5ld19nZW4gPSBmb2xpb19pbmNfZ2VuKGxydXZlYywgZm9saW8sIGZhbHNlKTsNCj4g LQkJCWxpc3RfbW92ZV90YWlsKCZmb2xpby0+bHJ1LA0KPiAmbHJ1Z2VuLT5mb2xpb3NbbmV3X2dl bl1bdHlwZV1bem9uZV0pOw0KPiArCQkJCW5ld19nZW4gPSBmb2xpb19pbmNfZ2VuKGxydXZlYywg Zm9saW8sIGZhbHNlKTsNCj4gKwkJCQlsaXN0X21vdmVfdGFpbCgmZm9saW8tPmxydSwgJmxydWdl bi0+Zm9saW9zW25ld19nZW5dW3R5cGUgKw0KPiBpXVt6b25lXSk7DQo+IA0KPiAtCQkJaWYgKCEt LXJlbWFpbmluZykNCj4gLQkJCQlyZXR1cm4gZmFsc2U7DQo+ICsJCQkJaWYgKCEtLXJlbWFpbmlu ZykNCj4gKwkJCQkJcmV0dXJuIGZhbHNlOw0KPiArCQkJfQ0KPiAgCQl9DQo+ICAJfQ0KPiAgZG9u ZToNCj4gQEAgLTQyOTEsNiArNDI5NSw3IEBAIHN0YXRpYyBib29sIHNvcnRfZm9saW8oc3RydWN0 IGxydXZlYyAqbHJ1dmVjLCBzdHJ1Y3QgZm9saW8NCj4gKmZvbGlvLCBzdHJ1Y3Qgc2Nhbl9jDQo+ ICAJaW50IHJlZnMgPSBmb2xpb19scnVfcmVmcyhmb2xpbyk7DQo+ICAJaW50IHRpZXIgPSBscnVf dGllcl9mcm9tX3JlZnMocmVmcyk7DQo+ICAJc3RydWN0IGxydV9nZW5fZm9saW8gKmxydWdlbiA9 ICZscnV2ZWMtPmxydWdlbjsNCj4gKwlpbnQgbGF6eWZyZWUgPSB0eXBlID8gZm9saW9fdGVzdF9h bm9uKGZvbGlvKSA6IDA7DQo+IA0KPiAgCVZNX1dBUk5fT05fT05DRV9GT0xJTyhnZW4gPj0gTUFY X05SX0dFTlMsIGZvbGlvKTsNCj4gDQo+IEBAIC00MzA2LDcgKzQzMTEsNyBAQCBzdGF0aWMgYm9v bCBzb3J0X2ZvbGlvKHN0cnVjdCBscnV2ZWMgKmxydXZlYywgc3RydWN0IGZvbGlvDQo+ICpmb2xp bywgc3RydWN0IHNjYW5fYw0KPiANCj4gIAkvKiBwcm9tb3RlZCAqLw0KPiAgCWlmIChnZW4gIT0g bHJ1X2dlbl9mcm9tX3NlcShscnVnZW4tPm1pbl9zZXFbdHlwZV0pKSB7DQo+IC0JCWxpc3RfbW92 ZSgmZm9saW8tPmxydSwgJmxydWdlbi0+Zm9saW9zW2dlbl1bdHlwZV1bem9uZV0pOw0KPiArCQls aXN0X21vdmUoJmZvbGlvLT5scnUsICZscnVnZW4tPmZvbGlvc1tnZW5dW3R5cGUgKyBsYXp5ZnJl ZV1bem9uZV0pOw0KPiAgCQlyZXR1cm4gdHJ1ZTsNCj4gIAl9DQo+IA0KPiBAQCAtNDMxNSw3ICs0 MzIwLDcgQEAgc3RhdGljIGJvb2wgc29ydF9mb2xpbyhzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsIHN0 cnVjdCBmb2xpbw0KPiAqZm9saW8sIHN0cnVjdCBzY2FuX2MNCj4gIAkJaW50IGhpc3QgPSBscnVf aGlzdF9mcm9tX3NlcShscnVnZW4tPm1pbl9zZXFbdHlwZV0pOw0KPiANCj4gIAkJZ2VuID0gZm9s aW9faW5jX2dlbihscnV2ZWMsIGZvbGlvLCBmYWxzZSk7DQo+IC0JCWxpc3RfbW92ZV90YWlsKCZm b2xpby0+bHJ1LCAmbHJ1Z2VuLT5mb2xpb3NbZ2VuXVt0eXBlXVt6b25lXSk7DQo+ICsJCWxpc3Rf bW92ZV90YWlsKCZmb2xpby0+bHJ1LCAmbHJ1Z2VuLT5mb2xpb3NbZ2VuXVt0eXBlICsNCj4gbGF6 eWZyZWVdW3pvbmVdKTsNCj4gDQo+ICAJCVdSSVRFX09OQ0UobHJ1Z2VuLT5wcm90ZWN0ZWRbaGlz dF1bdHlwZV1bdGllciAtIDFdLA0KPiAgCQkJICAgbHJ1Z2VuLT5wcm90ZWN0ZWRbaGlzdF1bdHlw ZV1bdGllciAtIDFdICsgZGVsdGEpOw0KPiBAQCAtNDMyNSw3ICs0MzMwLDcgQEAgc3RhdGljIGJv b2wgc29ydF9mb2xpbyhzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsIHN0cnVjdCBmb2xpbw0KPiAqZm9s aW8sIHN0cnVjdCBzY2FuX2MNCj4gIAkvKiBpbmVsaWdpYmxlICovDQo+ICAJaWYgKCFmb2xpb190 ZXN0X2xydShmb2xpbykgfHwgem9uZSA+IHNjLT5yZWNsYWltX2lkeCkgew0KPiAgCQlnZW4gPSBm b2xpb19pbmNfZ2VuKGxydXZlYywgZm9saW8sIGZhbHNlKTsNCj4gLQkJbGlzdF9tb3ZlX3RhaWwo JmZvbGlvLT5scnUsICZscnVnZW4tPmZvbGlvc1tnZW5dW3R5cGVdW3pvbmVdKTsNCj4gKwkJbGlz dF9tb3ZlX3RhaWwoJmZvbGlvLT5scnUsICZscnVnZW4tPmZvbGlvc1tnZW5dW3R5cGUgKw0KPiBs YXp5ZnJlZV1bem9uZV0pOw0KPiAgCQlyZXR1cm4gdHJ1ZTsNCj4gIAl9DQo+IA0KPiBAQCAtNDMz Myw3ICs0MzM4LDcgQEAgc3RhdGljIGJvb2wgc29ydF9mb2xpbyhzdHJ1Y3QgbHJ1dmVjICpscnV2 ZWMsIHN0cnVjdCBmb2xpbw0KPiAqZm9saW8sIHN0cnVjdCBzY2FuX2MNCj4gIAlpZiAoZm9saW9f dGVzdF9sb2NrZWQoZm9saW8pIHx8IGZvbGlvX3Rlc3Rfd3JpdGViYWNrKGZvbGlvKSB8fA0KPiAg CSAgICAodHlwZSA9PSBMUlVfR0VOX0ZJTEUgJiYgZm9saW9fdGVzdF9kaXJ0eShmb2xpbykpKSB7 DQo+ICAJCWdlbiA9IGZvbGlvX2luY19nZW4obHJ1dmVjLCBmb2xpbywgdHJ1ZSk7DQo+IC0JCWxp c3RfbW92ZSgmZm9saW8tPmxydSwgJmxydWdlbi0+Zm9saW9zW2dlbl1bdHlwZV1bem9uZV0pOw0K PiArCQlsaXN0X21vdmUoJmZvbGlvLT5scnUsICZscnVnZW4tPmZvbGlvc1tnZW5dW3R5cGUgKyBs YXp5ZnJlZV1bem9uZV0pOw0KPiAgCQlyZXR1cm4gdHJ1ZTsNCj4gIAl9DQo+IA0KPiBAQCAtNDM3 Nyw3ICs0MzgyLDcgQEAgc3RhdGljIGJvb2wgaXNvbGF0ZV9mb2xpbyhzdHJ1Y3QgbHJ1dmVjICps cnV2ZWMsIHN0cnVjdA0KPiBmb2xpbyAqZm9saW8sIHN0cnVjdCBzY2ENCj4gIHN0YXRpYyBpbnQg c2Nhbl9mb2xpb3Moc3RydWN0IGxydXZlYyAqbHJ1dmVjLCBzdHJ1Y3Qgc2Nhbl9jb250cm9sICpz YywNCj4gIAkJICAgICAgIGludCB0eXBlLCBpbnQgdGllciwgc3RydWN0IGxpc3RfaGVhZCAqbGlz dCkNCj4gIHsNCj4gLQlpbnQgaTsNCj4gKwlpbnQgaSwgajsNCj4gIAlpbnQgZ2VuOw0KPiAgCWVu dW0gdm1fZXZlbnRfaXRlbSBpdGVtOw0KPiAgCWludCBzb3J0ZWQgPSAwOw0KPiBAQCAtNDM5OSwz MyArNDQwNCwzOCBAQCBzdGF0aWMgaW50IHNjYW5fZm9saW9zKHN0cnVjdCBscnV2ZWMgKmxydXZl Yywgc3RydWN0DQo+IHNjYW5fY29udHJvbCAqc2MsDQo+ICAJCUxJU1RfSEVBRChtb3ZlZCk7DQo+ ICAJCWludCBza2lwcGVkX3pvbmUgPSAwOw0KPiAgCQlpbnQgem9uZSA9IChzYy0+cmVjbGFpbV9p ZHggKyBpKSAlIE1BWF9OUl9aT05FUzsNCj4gLQkJc3RydWN0IGxpc3RfaGVhZCAqaGVhZCA9ICZs cnVnZW4tPmZvbGlvc1tnZW5dW3R5cGVdW3pvbmVdOw0KPiAtDQo+IC0JCXdoaWxlICghbGlzdF9l bXB0eShoZWFkKSkgew0KPiAtCQkJc3RydWN0IGZvbGlvICpmb2xpbyA9IGxydV90b19mb2xpbyho ZWFkKTsNCj4gLQkJCWludCBkZWx0YSA9IGZvbGlvX25yX3BhZ2VzKGZvbGlvKTsNCj4gLQ0KPiAt CQkJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGZvbGlvX3Rlc3RfdW5ldmljdGFibGUoZm9saW8pLA0K PiBmb2xpbyk7DQo+IC0JCQlWTV9XQVJOX09OX09OQ0VfRk9MSU8oZm9saW9fdGVzdF9hY3RpdmUo Zm9saW8pLCBmb2xpbyk7DQo+IC0JCQlWTV9XQVJOX09OX09OQ0VfRk9MSU8oZm9saW9faXNfZmls ZV9scnUoZm9saW8pICE9IHR5cGUsDQo+IGZvbGlvKTsNCj4gLQkJCVZNX1dBUk5fT05fT05DRV9G T0xJTyhmb2xpb196b25lbnVtKGZvbGlvKSAhPSB6b25lLA0KPiBmb2xpbyk7DQo+IC0NCj4gLQkJ CXNjYW5uZWQgKz0gZGVsdGE7DQo+ICsJCWludCBsaXN0X251bSA9IHR5cGUgPyAyIDogMTsNCj4g KwkJc3RydWN0IGxpc3RfaGVhZCAqaGVhZDsNCj4gKw0KPiArCQlmb3IgKGogPSBsaXN0X251bSAt IDE7IGogPj0gMDsgai0tKSB7DQo+ICsJCQloZWFkID0gJmxydWdlbi0+Zm9saW9zW2dlbl1bdHlw ZSArIGpdW3pvbmVdOw0KPiArCQkJd2hpbGUgKCFsaXN0X2VtcHR5KGhlYWQpKSB7DQo+ICsJCQkJ c3RydWN0IGZvbGlvICpmb2xpbyA9IGxydV90b19mb2xpbyhoZWFkKTsNCj4gKwkJCQlpbnQgZGVs dGEgPSBmb2xpb19ucl9wYWdlcyhmb2xpbyk7DQo+ICsNCj4gKwkJCQlWTV9XQVJOX09OX09OQ0Vf Rk9MSU8oZm9saW9fdGVzdF91bmV2aWN0YWJsZShmb2xpbyksDQo+IGZvbGlvKTsNCj4gKwkJCQlW TV9XQVJOX09OX09OQ0VfRk9MSU8oZm9saW9fdGVzdF9hY3RpdmUoZm9saW8pLCBmb2xpbyk7DQo+ ICsJCQkJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGZvbGlvX2lzX2ZpbGVfbHJ1KGZvbGlvKSAhPSB0 eXBlLA0KPiBmb2xpbyk7DQo+ICsJCQkJVk1fV0FSTl9PTl9PTkNFX0ZPTElPKGZvbGlvX3pvbmVu dW0oZm9saW8pICE9IHpvbmUsDQo+IGZvbGlvKTsNCj4gKw0KPiArCQkJCXNjYW5uZWQgKz0gZGVs dGE7DQo+ICsNCj4gKwkJCQlpZiAoc29ydF9mb2xpbyhscnV2ZWMsIGZvbGlvLCBzYywgdGllcikp DQo+ICsJCQkJCXNvcnRlZCArPSBkZWx0YTsNCj4gKwkJCQllbHNlIGlmIChpc29sYXRlX2ZvbGlv KGxydXZlYywgZm9saW8sIHNjKSkgew0KPiArCQkJCQlsaXN0X2FkZCgmZm9saW8tPmxydSwgbGlz dCk7DQo+ICsJCQkJCWlzb2xhdGVkICs9IGRlbHRhOw0KPiArCQkJCX0gZWxzZSB7DQo+ICsJCQkJ CWxpc3RfbW92ZSgmZm9saW8tPmxydSwgJm1vdmVkKTsNCj4gKwkJCQkJc2tpcHBlZF96b25lICs9 IGRlbHRhOw0KPiArCQkJCX0NCj4gDQo+IC0JCQlpZiAoc29ydF9mb2xpbyhscnV2ZWMsIGZvbGlv LCBzYywgdGllcikpDQo+IC0JCQkJc29ydGVkICs9IGRlbHRhOw0KPiAtCQkJZWxzZSBpZiAoaXNv bGF0ZV9mb2xpbyhscnV2ZWMsIGZvbGlvLCBzYykpIHsNCj4gLQkJCQlsaXN0X2FkZCgmZm9saW8t PmxydSwgbGlzdCk7DQo+IC0JCQkJaXNvbGF0ZWQgKz0gZGVsdGE7DQo+IC0JCQl9IGVsc2Ugew0K PiAtCQkJCWxpc3RfbW92ZSgmZm9saW8tPmxydSwgJm1vdmVkKTsNCj4gLQkJCQlza2lwcGVkX3pv bmUgKz0gZGVsdGE7DQo+ICsJCQkJaWYgKCEtLXJlbWFpbmluZyB8fCBtYXgoaXNvbGF0ZWQsIHNr aXBwZWRfem9uZSkgPj0NCj4gTUlOX0xSVV9CQVRDSCkNCj4gKwkJCQkJZ290byBpc29sYXRlX2Rv bmU7DQo+ICAJCQl9DQo+IC0NCj4gLQkJCWlmICghLS1yZW1haW5pbmcgfHwgbWF4KGlzb2xhdGVk LCBza2lwcGVkX3pvbmUpID49DQo+IE1JTl9MUlVfQkFUQ0gpDQo+IC0JCQkJYnJlYWs7DQo+ICAJ CX0NCj4gDQo+ICtpc29sYXRlX2RvbmU6DQo+ICAJCWlmIChza2lwcGVkX3pvbmUpIHsNCj4gIAkJ CWxpc3Rfc3BsaWNlKCZtb3ZlZCwgaGVhZCk7DQo+ICAJCQlfX2NvdW50X3ppZF92bV9ldmVudHMo UEdTQ0FOX1NLSVAsIHpvbmUsIHNraXBwZWRfem9uZSk7DQo+IEBAIC01NTg2LDggKzU1OTYsMTUg QEAgdm9pZCBscnVfZ2VuX2luaXRfbHJ1dmVjKHN0cnVjdCBscnV2ZWMgKmxydXZlYykNCj4gIAlm b3IgKGkgPSAwOyBpIDw9IE1JTl9OUl9HRU5TICsgMTsgaSsrKQ0KPiAgCQlscnVnZW4tPnRpbWVz dGFtcHNbaV0gPSBqaWZmaWVzOw0KPiANCj4gLQlmb3JfZWFjaF9nZW5fdHlwZV96b25lKGdlbiwg dHlwZSwgem9uZSkNCj4gKwlmb3JfZWFjaF9nZW5fdHlwZV96b25lKGdlbiwgdHlwZSwgem9uZSkg ew0KPiAgCQlJTklUX0xJU1RfSEVBRCgmbHJ1Z2VuLT5mb2xpb3NbZ2VuXVt0eXBlXVt6b25lXSk7 DQo+ICsJCS8qDQo+ICsJCSAqIGxhenlmcmVlIGFub24gZm9saW9zIGhhdmUgYSBzZXBhcmF0ZSBs aXN0IHdoaWxlIHVzaW5nDQo+ICsJCSAqIGZpbGUgYXMgdHlwZQ0KPiArCQkgKi8NCj4gKwkJaWYg KHR5cGUpDQo+ICsJCQlJTklUX0xJU1RfSEVBRCgmbHJ1Z2VuLT5mb2xpb3NbZ2VuXVt0eXBlICsg MV1bem9uZV0pOw0KPiArCX0NCj4gDQo+ICAJaWYgKG1tX3N0YXRlKQ0KPiAgCQltbV9zdGF0ZS0+ c2VxID0gTUlOX05SX0dFTlM7DQo+IC0tDQo+IDIuMzkuMyAoQXBwbGUgR2l0LTE0NikNCg0K