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 5D98CD12671 for ; Tue, 5 Nov 2024 09:51:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 737166B008A; Tue, 5 Nov 2024 04:51:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6BEC26B008C; Tue, 5 Nov 2024 04:51:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 560F46B0092; Tue, 5 Nov 2024 04:51:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 2CD666B008A for ; Tue, 5 Nov 2024 04:51:27 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CD962A10FC for ; Tue, 5 Nov 2024 09:51:26 +0000 (UTC) X-FDA: 82751572134.07.D9FB96D Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf18.hostedemail.com (Postfix) with ESMTP id EF3871C000C for ; Tue, 5 Nov 2024 09:51:08 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf18.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730800117; 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=SQLIwpPR3HTKor/OkgEdc9VIY/bPormjuVleLz/cr8w=; b=WLnyqhYj6+yMXdYDHSDzUinpk8+5rVkonmxSVS0WnLPleC0eTzyn7jaF6kyux8mqEdbo5u KSFt7SPO7wD9qteMCAHIUWClMPWdp7dH+ujj+v9KTzu2NAMkGgXF81Mbced2V6Fizh5FUE /tPdgaHyLfhisOw0awL+0st1V9FwKmw= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf18.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730800117; a=rsa-sha256; cv=none; b=i0Zy5f5xQyuhqrAvC5uFEu6kKome8A1+fhyY5Kc9bamdWQTVc0QHotEpK52m/p1OXw3+2n QcBjoaVmspQS3xySsrMLXv/dX9rc43eGj5sLnWoa09okVXs+2XdHtJhTUJlkWf+M4SdwoK PRcBNjXbRuDc3gcMlRREmeYoFn2mhZ8= Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4XjNpx4CD1z6HJx5; Tue, 5 Nov 2024 17:49:45 +0800 (CST) Received: from frapeml500008.china.huawei.com (unknown [7.182.85.71]) by mail.maildlp.com (Postfix) with ESMTPS id A970A140CB1; Tue, 5 Nov 2024 17:51:19 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml500008.china.huawei.com (7.182.85.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Tue, 5 Nov 2024 10:51:19 +0100 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Tue, 5 Nov 2024 10:51:19 +0100 From: Shiju Jose To: Dave Jiang , "linux-edac@vger.kernel.org" , "linux-cxl@vger.kernel.org" , "linux-acpi@vger.kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" CC: "bp@alien8.de" , "tony.luck@intel.com" , "rafael@kernel.org" , "lenb@kernel.org" , "mchehab@kernel.org" , "dan.j.williams@intel.com" , "dave@stgolabs.net" , Jonathan Cameron , "gregkh@linuxfoundation.org" , "sudeep.holla@arm.com" , "jassisinghbrar@gmail.com" , "alison.schofield@intel.com" , "vishal.l.verma@intel.com" , "ira.weiny@intel.com" , "david@redhat.com" , "Vilas.Sridharan@amd.com" , "leo.duran@amd.com" , "Yazen.Ghannam@amd.com" , "rientjes@google.com" , "jiaqiyan@google.com" , "Jon.Grimm@amd.com" , "dave.hansen@linux.intel.com" , "naoya.horiguchi@nec.com" , "james.morse@arm.com" , "jthoughton@google.com" , "somasundaram.a@hpe.com" , "erdemaktas@google.com" , "pgonda@google.com" , "duenwen@google.com" , "gthelen@google.com" , "wschwartz@amperecomputing.com" , "dferguson@amperecomputing.com" , "wbs@os.amperecomputing.com" , "nifan.cxl@gmail.com" , tanxiaofei , "Zengtao (B)" , Roberto Sassu , "kangkang.shen@futurewei.com" , wanghuiqiang , Linuxarm Subject: RE: [PATCH v15 08/15] cxl/memfeature: Add CXL memory device ECS control feature Thread-Topic: [PATCH v15 08/15] cxl/memfeature: Add CXL memory device ECS control feature Thread-Index: AQHbLD76Yf4Ys+WMBEew3mQA+yc50LKnZgKAgAEQ0OA= Date: Tue, 5 Nov 2024 09:51:18 +0000 Message-ID: References: <20241101091735.1465-1-shiju.jose@huawei.com> <20241101091735.1465-9-shiju.jose@huawei.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.173.206] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: EF3871C000C X-Stat-Signature: a1zht9q5bosk5aw4kfrkkcb36h6ppw3t X-Rspam-User: X-HE-Tag: 1730800268-695239 X-HE-Meta: U2FsdGVkX19JWtfi/qNZmERnUQz6JmyGKovT2CYjXLQMyMFR/BWEZ7NWq0Gr1i0VoJTp+7t4yziUYSppvzG/XWCBUlEzA6V7FQcDQh/m+T+Qz5gCJhCjAcBSaDXa4PrXDvf1rQ5gYmTvLmnZFyBY20PE1gxXjup9lzrHdcXM8SjlllmqIVKfuYubidYFaS+kpBcMp6tUFoOr4xfkB3Lsc8Bw3mvassErboZxbol+Z+l5NmNwPIHsCraGZk4zHqQbyHocC+a97C5YVf9CUze3ZrR5p54Hmb5obhk6v2bN1kRX6x9dYkCUt8zWyxHzngDmQmAAc25yADdobG9dyEWAY+I+Vk1weK3S5m4uRTQuorMHG+uHNAj+iGciASMo2IvejHQCsW9kk3KnbtQ0gnezDnoaVw0we7i8dF7mRZP+gj5LKTjwPpqg4eTm3oK8M2/6IMnCbwSHeNZGl/lkJccWzaskp/Qb1W5Wsx8j+C0tZSOp//uVTpjASIHiXmrYv3KgM2eSCfpwt7ZHwMmqAh5tDJJ6p1JBxeh8+yCwkbUmAQ1eXiwPvQf7BKnrQGwroFYcgJMIVBWqMIM2hWkJj68t96Ack8J3X/QvK7azr45Hpm6JFR1IGB33B5ZGsMDeiGCvpJhatkTNt7cX6B0HglxzfyElwrXXnhnjpBXw1yiIQDdYLCUxbz0cHSouJygZ9cfkL2DHOrSOpeSSszeAK6VNYRwa8Tu4k0t46MfeGWIrJUAGIc/dNy3uD+F6XNNVOIIN00ydL5jRtlGIR6oknGwJtADcQOVnv67sYWEpxhfMuHwToimLs8mpW61qUO4sDWVuiCX+Z8x2UyQvvOy5e7WMIP5c4RKdj9Z5JcxWF9eWhHsc6mmk5h4VVS5zLybsF/tuvH3R+148aA8YdwrA7qZPQjkDKHgvb/Vz+/QdIcdy3K8r9W4dLleXUDFb+/mT0bmRvTjLSSEVL+bIN6+xwMh vPqBw8hy cSX9r2ufIhQqToCQQ8kYPhNssEugo4wEr6Ti4I3HFrWobxiIo3xg3TYLQZkr7ET1XSFDCAZm6QyFrrOLa05dZY6RZFnit2332Ps2hUXOQY8zSh3VqzhxmZ9tNhs4JNFXkBkPKe2pu/WP7tMfUE29dEkLsWv7D6DiaMiAKfw23gPeRWfSAQHY2kYVZQkBA1RPShlm27CXk79DvOXK29C2vIOSFkb3/JpP45GRP0/G4BBpa3kRnic8BfJJA1nEsmVBMLcC2g3cHoP4jAyXKRVElsLS46mmgKT4Ie5UXX930TUw3ry3KQtzbdgE5MIsO6eb73J6NOAX2SRD8Npt6KbCP2GCb2n2tmHa4F7F4ybTFb5zYiIVBPggIRn1Kroxuy0In6lVvdehVO20+PspWT++JCOGGayMq5an5qRBI+uPDYWSZ+U5zf30tAcjO2kHE+KRwVeMcP1S4yl2OHS6m5zESeFd3RfbSD5AWhj2/3+w2qCO6fgfg3n06Nkn7MMB+sDWMQ2km0L1y2jQVFUJ9bXVZLHINWQH7IdvLIy4NwnMpMYX3J+2kSIJxKfBqKRSD7x/98HAVyO22+OfszBsEb4XKKTXg1Wt46x6Ru/9plgnc3NhcUpThBNUMNSCHJEV92I15TBn4BF/L5oLfr5TLRCXGIK9ycgAZp1y22LikJHMwPH0DM8egPUaGLJ3wI2zgtOzCc0iswzCH4CsbLn/NVukBcyAC9a0x6HpJ+0TJ0ueiwgUi83fZx8+gSW+1UBkLnNPPDDJT95/O/7Tq7oHl+tpYRU9PoRAxvVASgGV72bJTqxie5XdzzQts779XMMZUJEZCSBywJaelMKlhzCIDsTilditpZVn4IsC+9HINiEHQErSAxI1oODz1dp0otG7KQ1J8RT9nByOMxyslrRobs+mRpPzBUFos7My9LMSwRw5tBIgO5mMyTxuwEfp/reWvCzUfb9u67bnFKsrCZNlwRHR0p6JDNdUE pHrDBO1p 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: VGhhbmtzIGZvciB0aGUgY29tbWVudHMuIA0KDQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj5Gcm9tOiBEYXZlIEppYW5nIDxkYXZlLmppYW5nQGludGVsLmNvbT4NCj5TZW50OiAwNCBOb3Zl bWJlciAyMDI0IDE4OjMxDQo+VG86IFNoaWp1IEpvc2UgPHNoaWp1Lmpvc2VAaHVhd2VpLmNvbT47 IGxpbnV4LWVkYWNAdmdlci5rZXJuZWwub3JnOyBsaW51eC0NCj5jeGxAdmdlci5rZXJuZWwub3Jn OyBsaW51eC1hY3BpQHZnZXIua2VybmVsLm9yZzsgbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC0N Cj5rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+Q2M6IGJwQGFsaWVuOC5kZTsgdG9ueS5sdWNrQGlu dGVsLmNvbTsgcmFmYWVsQGtlcm5lbC5vcmc7IGxlbmJAa2VybmVsLm9yZzsNCj5tY2hlaGFiQGtl cm5lbC5vcmc7IGRhbi5qLndpbGxpYW1zQGludGVsLmNvbTsgZGF2ZUBzdGdvbGFicy5uZXQ7IEpv bmF0aGFuDQo+Q2FtZXJvbiA8am9uYXRoYW4uY2FtZXJvbkBodWF3ZWkuY29tPjsgZ3JlZ2toQGxp bnV4Zm91bmRhdGlvbi5vcmc7DQo+c3VkZWVwLmhvbGxhQGFybS5jb207IGphc3Npc2luZ2hicmFy QGdtYWlsLmNvbTsgYWxpc29uLnNjaG9maWVsZEBpbnRlbC5jb207DQo+dmlzaGFsLmwudmVybWFA aW50ZWwuY29tOyBpcmEud2VpbnlAaW50ZWwuY29tOyBkYXZpZEByZWRoYXQuY29tOw0KPlZpbGFz LlNyaWRoYXJhbkBhbWQuY29tOyBsZW8uZHVyYW5AYW1kLmNvbTsgWWF6ZW4uR2hhbm5hbUBhbWQu Y29tOw0KPnJpZW50amVzQGdvb2dsZS5jb207IGppYXFpeWFuQGdvb2dsZS5jb207IEpvbi5Hcmlt bUBhbWQuY29tOw0KPmRhdmUuaGFuc2VuQGxpbnV4LmludGVsLmNvbTsgbmFveWEuaG9yaWd1Y2hp QG5lYy5jb207DQo+amFtZXMubW9yc2VAYXJtLmNvbTsganRob3VnaHRvbkBnb29nbGUuY29tOyBz b21hc3VuZGFyYW0uYUBocGUuY29tOw0KPmVyZGVtYWt0YXNAZ29vZ2xlLmNvbTsgcGdvbmRhQGdv b2dsZS5jb207IGR1ZW53ZW5AZ29vZ2xlLmNvbTsNCj5ndGhlbGVuQGdvb2dsZS5jb207IHdzY2h3 YXJ0ekBhbXBlcmVjb21wdXRpbmcuY29tOw0KPmRmZXJndXNvbkBhbXBlcmVjb21wdXRpbmcuY29t OyB3YnNAb3MuYW1wZXJlY29tcHV0aW5nLmNvbTsNCj5uaWZhbi5jeGxAZ21haWwuY29tOyB0YW54 aWFvZmVpIDx0YW54aWFvZmVpQGh1YXdlaS5jb20+OyBaZW5ndGFvIChCKQ0KPjxwcmltZS56ZW5n QGhpc2lsaWNvbi5jb20+OyBSb2JlcnRvIFNhc3N1IDxyb2JlcnRvLnNhc3N1QGh1YXdlaS5jb20+ Ow0KPmthbmdrYW5nLnNoZW5AZnV0dXJld2VpLmNvbTsgd2FuZ2h1aXFpYW5nIDx3YW5naHVpcWlh bmdAaHVhd2VpLmNvbT47DQo+TGludXhhcm0gPGxpbnV4YXJtQGh1YXdlaS5jb20+DQo+U3ViamVj dDogUmU6IFtQQVRDSCB2MTUgMDgvMTVdIGN4bC9tZW1mZWF0dXJlOiBBZGQgQ1hMIG1lbW9yeSBk ZXZpY2UgRUNTDQo+Y29udHJvbCBmZWF0dXJlDQo+DQo+DQo+DQo+T24gMTEvMS8yNCAyOjE3IEFN LCBzaGlqdS5qb3NlQGh1YXdlaS5jb20gd3JvdGU6DQo+PiBGcm9tOiBTaGlqdSBKb3NlIDxzaGlq dS5qb3NlQGh1YXdlaS5jb20+DQo+Pg0KPj4gQ1hMIHNwZWMgMy4xIHNlY3Rpb24gOC4yLjkuOS4x MS4yIGRlc2NyaWJlcyB0aGUgRERSNSBFQ1MgKEVycm9yIENoZWNrDQo+PiBTY3J1YikgY29udHJv bCBmZWF0dXJlLg0KPj4gVGhlIEVycm9yIENoZWNrIFNjcnViIChFQ1MpIGlzIGEgZmVhdHVyZSBk ZWZpbmVkIGluIEpFREVDIEREUjUgU0RSQU0NCj4+IFNwZWNpZmljYXRpb24gKEpFU0Q3OS01KSBh bmQgYWxsb3dzIHRoZSBEUkFNIHRvIGludGVybmFsbHkgcmVhZCwNCj4+IGNvcnJlY3Qgc2luZ2xl LWJpdCBlcnJvcnMsIGFuZCB3cml0ZSBiYWNrIGNvcnJlY3RlZCBkYXRhIGJpdHMgdG8gdGhlDQo+ PiBEUkFNIGFycmF5IHdoaWxlIHByb3ZpZGluZyB0cmFuc3BhcmVuY3kgdG8gZXJyb3IgY291bnRz Lg0KPj4NCj4+IFRoZSBFQ1MgY29udHJvbCBhbGxvd3MgdGhlIHJlcXVlc3RlciB0byBjaGFuZ2Ug dGhlIGxvZyBlbnRyeSB0eXBlLCB0aGUNCj4+IEVDUyB0aHJlc2hvbGQgY291bnQgKHByb3ZpZGVk IHRoZSByZXF1ZXN0IGZhbGxzIHdpdGhpbiB0aGUgbGltaXRzDQo+PiBzcGVjaWZpZWQgaW4NCj4+ IEREUjUgbW9kZSByZWdpc3RlcnMpLCBzd2l0Y2ggYmV0d2VlbiBjb2Rld29yZCBtb2RlIGFuZCBy b3cgY291bnQgbW9kZSwNCj4+IGFuZCByZXNldCB0aGUgRUNTIGNvdW50ZXIuDQo+Pg0KPj4gUmVn aXN0ZXIgd2l0aCBFREFDIGRldmljZSBkcml2ZXIsIHdoaWNoIHJldHJpZXZlcyB0aGUgRUNTIGF0 dHJpYnV0ZQ0KPj4gZGVzY3JpcHRvcnMgZnJvbSB0aGUgRURBQyBFQ1MgYW5kIGV4cG9zZXMgdGhl IEVDUyBjb250cm9sIGF0dHJpYnV0ZXMNCj4+IHRvIHVzZXJzcGFjZSB2aWEgc3lzZnMuIEZvciBl eGFtcGxlLCB0aGUgRUNTIGNvbnRyb2wgZm9yIHRoZSBtZW1vcnkNCj4+IG1lZGlhIEZSVTAgaW4g Q1hMIG1lbTAgZGV2aWNlIGlzIGxvY2F0ZWQgYXQNCj4+IC9zeXMvYnVzL2VkYWMvZGV2aWNlcy9j eGxfbWVtMC9lY3NfZnJ1MC8NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBTaGlqdSBKb3NlIDxzaGlq dS5qb3NlQGh1YXdlaS5jb20+DQo+PiAtLS0NCj4+ICBkcml2ZXJzL2N4bC9jb3JlL21lbWZlYXR1 cmUuYyB8IDM0Mg0KPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPj4gIDEg ZmlsZSBjaGFuZ2VkLCAzMzkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4+DQo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9jeGwvY29yZS9tZW1mZWF0dXJlLmMNCj4+IGIvZHJpdmVycy9j eGwvY29yZS9tZW1mZWF0dXJlLmMgaW5kZXggNDEyOThhY2MwMWRlLi5lNjQxMzk2YTMyZjUNCj4+ IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9jeGwvY29yZS9tZW1mZWF0dXJlLmMNCj4+ICsrKyBi L2RyaXZlcnMvY3hsL2NvcmUvbWVtZmVhdHVyZS5jDQo+PiBAQCAtMTcsNyArMTcsNyBAQA0KPj4g ICNpbmNsdWRlIDxjeGwuaD4NCj4+ICAjaW5jbHVkZSA8Y3hsbWVtLmg+DQo+Pg0KWy4uLl0NCj4+ ICtzdGF0aWMgaW50IGN4bF9tZW1fZWNzX3NldF9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ PiArCQkJCSBzdHJ1Y3QgY3hsX2Vjc19jb250ZXh0ICpjeGxfZWNzX2N0eCwNCj4+ICsJCQkJIGlu dCBmcnVfaWQsIHN0cnVjdCBjeGxfZWNzX3BhcmFtcyAqcGFyYW1zLA0KPj4gKwkJCQkgdTggcGFy YW1fdHlwZSkNCj4+ICt7DQo+PiArCXN0cnVjdCBjeGxfbWVtZGV2ICpjeGxtZCA9IGN4bF9lY3Nf Y3R4LT5jeGxtZDsNCj4+ICsJc3RydWN0IGN4bF9kZXZfc3RhdGUgKmN4bGRzID0gY3hsbWQtPmN4 bGRzOw0KPj4gKwlzdHJ1Y3QgY3hsX21lbWRldl9zdGF0ZSAqbWRzID0gdG9fY3hsX21lbWRldl9z dGF0ZShjeGxkcyk7DQo+PiArCXN0cnVjdCBjeGxfZWNzX2ZydV9yZF9hdHRycyAqZnJ1X3JkX2F0 dHJzOw0KPj4gKwlzdHJ1Y3QgY3hsX2Vjc19mcnVfd3JfYXR0cnMgKmZydV93cl9hdHRyczsNCj4+ ICsJc2l6ZV90IHJkX2RhdGFfc2l6ZSwgd3JfZGF0YV9zaXplOw0KPj4gKwl1MTYgbnVtX21lZGlh X2ZydXMsIGNvdW50Ow0KPj4gKwlzaXplX3QgZGF0YV9zaXplOw0KPj4gKwlpbnQgcmV0Ow0KPj4g Kw0KPj4gKwludW1fbWVkaWFfZnJ1cyA9IGN4bF9lY3NfY3R4LT5udW1fbWVkaWFfZnJ1czsNCj4+ ICsJcmRfZGF0YV9zaXplID0gY3hsX2Vjc19jdHgtPmdldF9mZWF0X3NpemU7DQo+PiArCXdyX2Rh dGFfc2l6ZSA9IGN4bF9lY3NfY3R4LT5zZXRfZmVhdF9zaXplOw0KPj4gKwlzdHJ1Y3QgY3hsX2Vj c19yZF9hdHRycyAqcmRfYXR0cnMgX19mcmVlKGtmcmVlKSA9DQo+PiArCQkJCWttYWxsb2MocmRf ZGF0YV9zaXplLCBHRlBfS0VSTkVMKTsNCj4+ICsJaWYgKCFyZF9hdHRycykNCj4+ICsJCXJldHVy biAtRU5PTUVNOw0KPj4gKw0KPj4gKwlkYXRhX3NpemUgPSBjeGxfZ2V0X2ZlYXR1cmUobWRzLCBj eGxfZWNzX3V1aWQsDQo+PiArCQkJCSAgICBDWExfR0VUX0ZFQVRfU0VMX0NVUlJFTlRfVkFMVUUs DQo+PiArCQkJCSAgICByZF9hdHRycywgcmRfZGF0YV9zaXplKTsNCj4+ICsJaWYgKCFkYXRhX3Np emUpDQo+PiArCQlyZXR1cm4gLUVJTzsNCj4+ICsNCj4+ICsJc3RydWN0IGN4bF9lY3Nfd3JfYXR0 cnMgKndyX2F0dHJzIF9fZnJlZShrZnJlZSkgPQ0KPj4gKwkJCQkJa21hbGxvYyh3cl9kYXRhX3Np emUsIEdGUF9LRVJORUwpOw0KPj4gKwlpZiAoIXdyX2F0dHJzKQ0KPj4gKwkJcmV0dXJuIC1FTk9N RU07DQo+PiArDQo+PiArCS8qDQo+PiArCSAqIEZpbGwgd3JpdGFibGUgYXR0cmlidXRlcyBmcm9t IHRoZSBjdXJyZW50IGF0dHJpYnV0ZXMgcmVhZA0KPj4gKwkgKiBmb3IgYWxsIHRoZSBtZWRpYSBG UlVzLg0KPj4gKwkgKi8NCj4+ICsJZnJ1X3JkX2F0dHJzID0gcmRfYXR0cnMtPmZydV9hdHRyczsN Cj4+ICsJZnJ1X3dyX2F0dHJzID0gd3JfYXR0cnMtPmZydV9hdHRyczsNCj4+ICsJd3JfYXR0cnMt PmVjc19sb2dfY2FwID0gcmRfYXR0cnMtPmVjc19sb2dfY2FwOw0KPj4gKwlmb3IgKGNvdW50ID0g MDsgY291bnQgPCBudW1fbWVkaWFfZnJ1czsgY291bnQrKykNCj4+ICsJCWZydV93cl9hdHRyc1tj b3VudF0uZWNzX2NvbmZpZyA9IGZydV9yZF9hdHRyc1tjb3VudF0uZWNzX2NvbmZpZzsNCj4+ICsN Cj4+ICsJLyogRmlsbCBhdHRyaWJ1dGUgdG8gYmUgc2V0IGZvciB0aGUgbWVkaWEgRlJVICovDQo+ PiArCXN3aXRjaCAocGFyYW1fdHlwZSkgew0KPj4gKwljYXNlIENYTF9FQ1NfUEFSQU1fTE9HX0VO VFJZX1RZUEU6DQo+PiArCQlpZiAocGFyYW1zLT5sb2dfZW50cnlfdHlwZSAhPSBFQ1NfTE9HX0VO VFJZX1RZUEVfRFJBTQ0KPiYmDQo+PiArCQkgICAgcGFyYW1zLT5sb2dfZW50cnlfdHlwZSAhPQ0K PkVDU19MT0dfRU5UUllfVFlQRV9NRU1fTUVESUFfRlJVKSB7DQo+PiArCQkJZGV2X2VycihkZXYs DQo+PiArCQkJCSJJbnZhbGlkIENYTCBFQ1Mgc2NydWIgbG9nIGVudHJ5IHR5cGUoJWQpIHRvDQo+ c2V0XG4iLA0KPj4gKwkJCSAgICAgICBwYXJhbXMtPmxvZ19lbnRyeV90eXBlKTsNCj4+ICsJCQlk ZXZfZXJyKGRldiwNCj4+ICsJCQkJIkxvZyBFbnRyeSBUeXBlIDA6IHBlciBEUkFNICAxOiBwZXIg TWVtb3J5DQo+TWVkaWEgRlJVXG4iKTsNCj4+ICsJCQlyZXR1cm4gLUVJTlZBTDsNCj4+ICsJCX0N Cj4+ICsJCXdyX2F0dHJzLT5lY3NfbG9nX2NhcCA9DQo+RklFTERfUFJFUChDWExfRUNTX0xPR19F TlRSWV9UWVBFX01BU0ssDQo+PiArCQkJCQkJICAgcGFyYW1zLT5sb2dfZW50cnlfdHlwZSk7DQo+ PiArCQlicmVhazsNCj4+ICsJY2FzZSBDWExfRUNTX1BBUkFNX1RIUkVTSE9MRDoNCj4+ICsJCWZy dV93cl9hdHRyc1tmcnVfaWRdLmVjc19jb25maWcgJj0NCj5+Q1hMX0VDU19USFJFU0hPTERfQ09V TlRfTUFTSzsNCj4+ICsJCXN3aXRjaCAocGFyYW1zLT50aHJlc2hvbGQpIHsNCj4+ICsJCWNhc2Ug MjU2Og0KPg0KPldoeSBub3QganVzdCB1c2UgdGhlIGVudW1zIGluc3RlYWQ/DQpGaXhlZC4NCiAN Cj4+ICsJCQlmcnVfd3JfYXR0cnNbZnJ1X2lkXS5lY3NfY29uZmlnIHw9DQo+RklFTERfUFJFUChD WExfRUNTX1RIUkVTSE9MRF9DT1VOVF9NQVNLLA0KPj4gKw0KPkVDU19USFJFU0hPTERfMjU2KTsN Cj4+ICsJCQlicmVhazsNCj4+ICsJCWNhc2UgMTAyNDoNCj4+ICsJCQlmcnVfd3JfYXR0cnNbZnJ1 X2lkXS5lY3NfY29uZmlnIHw9DQo+RklFTERfUFJFUChDWExfRUNTX1RIUkVTSE9MRF9DT1VOVF9N QVNLLA0KPj4gKw0KPkVDU19USFJFU0hPTERfMTAyNCk7DQo+PiArCQkJYnJlYWs7DQo+PiArCQlj YXNlIDQwOTY6DQo+PiArCQkJZnJ1X3dyX2F0dHJzW2ZydV9pZF0uZWNzX2NvbmZpZyB8PQ0KPkZJ RUxEX1BSRVAoQ1hMX0VDU19USFJFU0hPTERfQ09VTlRfTUFTSywNCj4+ICsNCj5FQ1NfVEhSRVNI T0xEXzQwOTYpOw0KPj4gKwkJCWJyZWFrOw0KPj4gKwkJZGVmYXVsdDoNCj4+ICsJCQlkZXZfZXJy KGRldiwNCj4+ICsJCQkJIkludmFsaWQgQ1hMIEVDUyBzY3J1YiB0aHJlc2hvbGQgY291bnQoJWQp IHRvDQo+c2V0XG4iLA0KPj4gKwkJCQlwYXJhbXMtPnRocmVzaG9sZCk7DQo+PiArCQkJZGV2X2Vy cihkZXYsDQo+PiArCQkJCSJTdXBwb3J0ZWQgc2NydWIgdGhyZXNob2xkIGNvdW50czogJXUsICV1 LA0KPiV1XG4iLA0KPj4gKwkJCQllY3Nfc3VwcF90aHJlc2hvbGRbRUNTX1RIUkVTSE9MRF8yNTZd LA0KPj4gKwkJCQllY3Nfc3VwcF90aHJlc2hvbGRbRUNTX1RIUkVTSE9MRF8xMDI0XSwNCj4+ICsJ CQkJZWNzX3N1cHBfdGhyZXNob2xkW0VDU19USFJFU0hPTERfNDA5Nl0pOw0KPj4gKwkJCXJldHVy biAtRUlOVkFMOw0KPj4gKwkJfQ0KPj4gKwkJYnJlYWs7DQo+PiArCWNhc2UgQ1hMX0VDU19QQVJB TV9NT0RFOg0KPj4gKwkJaWYgKHBhcmFtcy0+Y291bnRfbW9kZSAhPSBFQ1NfTU9ERV9DT1VOVFNf Uk9XUyAmJg0KPj4gKwkJICAgIHBhcmFtcy0+Y291bnRfbW9kZSAhPSBFQ1NfTU9ERV9DT1VOVFNf Q09ERVdPUkRTKQ0KPnsNCj4+ICsJCQlkZXZfZXJyKGRldiwNCj4+ICsJCQkJIkludmFsaWQgQ1hM IEVDUyBzY3J1YiBtb2RlKCVkKSB0byBzZXRcbiIsDQo+PiArCQkJCXBhcmFtcy0+Y291bnRfbW9k ZSk7DQo+PiArCQkJZGV2X2VycihkZXYsDQo+PiArCQkJCSJTdXBwb3J0ZWQgRUNTIE1vZGVzOiAw OiBFQ1MgY291bnRzIHJvd3Mgd2l0aA0KPmVycm9ycywiDQo+PiArCQkJCSIgMTogRUNTIGNvdW50 cyBjb2Rld29yZHMgd2l0aCBlcnJvcnNcbiIpOw0KPj4gKwkJCXJldHVybiAtRUlOVkFMOw0KPj4g KwkJfQ0KPj4gKwkJZnJ1X3dyX2F0dHJzW2ZydV9pZF0uZWNzX2NvbmZpZyAmPQ0KPn5DWExfRUNT X0NPVU5UX01PREVfTUFTSzsNCj4+ICsJCWZydV93cl9hdHRyc1tmcnVfaWRdLmVjc19jb25maWcg fD0NCj5GSUVMRF9QUkVQKENYTF9FQ1NfQ09VTlRfTU9ERV9NQVNLLA0KPj4gKwkJCQkJCQkgICAg ICBwYXJhbXMtDQo+PmNvdW50X21vZGUpOw0KPj4gKwkJYnJlYWs7DQo+PiArCWNhc2UgQ1hMX0VD U19QQVJBTV9SRVNFVF9DT1VOVEVSOg0KPj4gKwkJaWYgKHBhcmFtcy0+cmVzZXRfY291bnRlciAh PSAxKQ0KPg0KPkNvbXBhcmUgd2l0aCBtYWdpYyBudW1iZXI/DQpGaXhlZC4NCj4NCj4+ICsJCQly ZXR1cm4gLUVJTlZBTDsNClsuLi5dDQo+Pg0KPj4gQEAgLTM0NCwxMCArNjQzLDEwIEBAIGludCBj eGxfbWVtX3Jhc19mZWF0dXJlc19pbml0KHN0cnVjdCBjeGxfbWVtZGV2DQo+KmN4bG1kLCBzdHJ1 Y3QgY3hsX3JlZ2lvbiAqY3hscikNCj4+ICAJCXJjID0gY3hsX2dldF9zdXBwb3J0ZWRfZmVhdHVy ZV9lbnRyeShtZHMsDQo+JmN4bF9wYXRyb2xfc2NydWJfdXVpZCwNCj4+ICAJCQkJCQkgICAgICZm ZWF0X2VudHJ5KTsNCj4+ICAJCWlmIChyYyA8IDApDQo+PiAtCQkJcmV0dXJuIHJjOw0KPj4gKwkJ CWdvdG8gZmVhdF9zY3J1Yl9kb25lOw0KPj4NCj4+ICAJCWlmICghKGZlYXRfZW50cnkuYXR0cl9m bGFncyAmDQo+Q1hMX0ZFQVRfRU5UUllfRkxBR19DSEFOR0FCTEUpKQ0KPj4gLQkJCXJldHVybiAt RU9QTk9UU1VQUDsNCj4+ICsJCQlnb3RvIGZlYXRfc2NydWJfZG9uZTsNCj4+ICAJfQ0KPj4NCj4+ ICAJY3hsX3BzX2N0eCA9IGRldm1fa3phbGxvYygmY3hsbWQtPmRldiwgc2l6ZW9mKCpjeGxfcHNf Y3R4KSwNCj4+IEdGUF9LRVJORUwpOyBAQCAtMzc4LDYgKzY3Nyw0MyBAQCBpbnQgY3hsX21lbV9y YXNfZmVhdHVyZXNfaW5pdChzdHJ1Y3QNCj5jeGxfbWVtZGV2ICpjeGxtZCwgc3RydWN0IGN4bF9y ZWdpb24gKmN4bHIpDQo+PiAgCXJhc19mZWF0dXJlc1tudW1fcmFzX2ZlYXR1cmVzXS5jdHggPSBj eGxfcHNfY3R4Ow0KPj4gIAludW1fcmFzX2ZlYXR1cmVzKys7DQo+Pg0KPj4gK2ZlYXRfc2NydWJf ZG9uZToNCj4+ICsJaWYgKCFjeGxyKSB7DQo+PiArCQlyYyA9IGN4bF9nZXRfc3VwcG9ydGVkX2Zl YXR1cmVfZW50cnkobWRzLCAmY3hsX2Vjc191dWlkLA0KPj4gKwkJCQkJCSAgICAgJmZlYXRfZW50 cnkpOw0KPj4gKwkJaWYgKHJjIDwgMCkNCj4+ICsJCQlnb3RvIGZlYXRfZWNzX2RvbmU7DQo+PiAr DQo+PiArCQlpZiAoIShmZWF0X2VudHJ5LmF0dHJfZmxhZ3MgJg0KPkNYTF9GRUFUX0VOVFJZX0ZM QUdfQ0hBTkdBQkxFKSkNCj4+ICsJCQlnb3RvIGZlYXRfZWNzX2RvbmU7DQo+PiArCQludW1fbWVk aWFfZnJ1cyA9IChmZWF0X2VudHJ5LmdldF9mZWF0X3NpemUgLSBzaXplb2Yoc3RydWN0DQo+Y3hs X2Vjc19yZF9hdHRycykpIC8NCj4+ICsJCQkJCXNpemVvZihzdHJ1Y3QgY3hsX2Vjc19mcnVfcmRf YXR0cnMpOw0KPj4gKwkJaWYgKCFudW1fbWVkaWFfZnJ1cykNCj4+ICsJCQlnb3RvIGZlYXRfZWNz X2RvbmU7DQo+PiArDQo+PiArCQljeGxfZWNzX2N0eCA9IGRldm1fa3phbGxvYygmY3hsbWQtPmRl diwgc2l6ZW9mKCpjeGxfZWNzX2N0eCksDQo+PiArCQkJCQkgICBHRlBfS0VSTkVMKTsNCj4+ICsJ CWlmICghY3hsX2Vjc19jdHgpDQo+PiArCQkJZ290byBmZWF0X2Vjc19kb25lOw0KPj4gKwkJKmN4 bF9lY3NfY3R4ID0gKHN0cnVjdCBjeGxfZWNzX2NvbnRleHQpIHsNCj4+ICsJCQkuZ2V0X2ZlYXRf c2l6ZSA9IGZlYXRfZW50cnkuZ2V0X2ZlYXRfc2l6ZSwNCj4+ICsJCQkuc2V0X2ZlYXRfc2l6ZSA9 IGZlYXRfZW50cnkuc2V0X2ZlYXRfc2l6ZSwNCj4+ICsJCQkuZ2V0X3ZlcnNpb24gPSBmZWF0X2Vu dHJ5LmdldF9mZWF0X3ZlciwNCj4+ICsJCQkuc2V0X3ZlcnNpb24gPSBmZWF0X2VudHJ5LnNldF9m ZWF0X3ZlciwNCj4+ICsJCQkuc2V0X2VmZmVjdHMgPSBmZWF0X2VudHJ5LnNldF9lZmZlY3RzLA0K Pj4gKwkJCS5udW1fbWVkaWFfZnJ1cyA9IG51bV9tZWRpYV9mcnVzLA0KPj4gKwkJCS5jeGxtZCA9 IGN4bG1kLA0KPj4gKwkJfTsNCj4+ICsNCj4+ICsJCXJhc19mZWF0dXJlc1tudW1fcmFzX2ZlYXR1 cmVzXS5mdF90eXBlID0gUkFTX0ZFQVRfRUNTOw0KPj4gKwkJcmFzX2ZlYXR1cmVzW251bV9yYXNf ZmVhdHVyZXNdLmVjc19vcHMgPSAmY3hsX2Vjc19vcHM7DQo+PiArCQlyYXNfZmVhdHVyZXNbbnVt X3Jhc19mZWF0dXJlc10uY3R4ID0gY3hsX2Vjc19jdHg7DQo+PiArCQlyYXNfZmVhdHVyZXNbbnVt X3Jhc19mZWF0dXJlc10uZWNzX2luZm8ubnVtX21lZGlhX2ZydXMgPQ0KPj4gKw0KPgludW1fbWVk aWFfZnJ1czsNCj4+ICsJCW51bV9yYXNfZmVhdHVyZXMrKzsNCj4+ICsJfQ0KPg0KPlRoZSBmdW5j dGlvbiBpcyBnZXR0aW5nIGF3ZnVsbHkgbGFyZ2UuIE1heWJlIGEgaGVscGVyIGZ1bmN0aW9uPw0K U3VyZSAuIFdpbGwgYWRkIGhlbHBlciBmdW5jdGlvbi4NCg0KPg0KPkRKDQo+DQo+PiArDQo+PiAr ZmVhdF9lY3NfZG9uZToNCj4+ICAJcmV0dXJuIGVkYWNfZGV2X3JlZ2lzdGVyKCZjeGxtZC0+ZGV2 LCBjeGxfZGV2X25hbWUsIE5VTEwsDQo+PiAgCQkJCSBudW1fcmFzX2ZlYXR1cmVzLCByYXNfZmVh dHVyZXMpOyAgfQ0KPg0KDQpUaGFua3MsDQpTaGlqdQ0K