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 5D747C52D7C for ; Wed, 21 Aug 2024 16:11:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ABB886B013F; Wed, 21 Aug 2024 12:11:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A442E6B0140; Wed, 21 Aug 2024 12:11:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8BE506B0141; Wed, 21 Aug 2024 12:11:34 -0400 (EDT) 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 66C926B013F for ; Wed, 21 Aug 2024 12:11:34 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id C6F2E120FFD for ; Wed, 21 Aug 2024 16:11:32 +0000 (UTC) X-FDA: 82476742824.27.9EFF64B Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf06.hostedemail.com (Postfix) with ESMTP id 2854C18002C for ; Wed, 21 Aug 2024 16:11:29 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=none; spf=pass (imf06.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724256610; 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=ZBZi7s9YHCsJoMmlbxbtRtJFRO0vnJ9ouF0XNdiT1jg=; b=FVZR7RHWZ7dw1gOKtQVPJ7NLJoEyWKG/GAQSNW+IWV58v3nzWmTFNdO79pPaxvBwd+1tLD jyjN4EY1Db9+hqfFJnAbQVOfOPHdtefXgNmwD2JuFV9y9exA+1sabvqGfidxqc4l3Bau+4 whuq1GQR7vqZgLGqujJcT43UgJqyaXU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724256610; a=rsa-sha256; cv=none; b=ePbYGj59IyciOOKKYIbt02i7SyLqOe5bWeea6hBM3AY9Pd/2ihlUvnBHvSpJ7q1wEVy9cD ZRMY3Ji7JcaKd0GWctSCtjJQnHQh/kE4bgXwLqPdWxu04KD+V/GPkLfmv0zcyYHbEJrkRN hXCrDsZw0nMmsKgh4mksPVeBUSZkPb0= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=none; spf=pass (imf06.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4WprpB0PBwz6FCry; Thu, 22 Aug 2024 00:07:46 +0800 (CST) Received: from lhrpeml500001.china.huawei.com (unknown [7.191.163.213]) by mail.maildlp.com (Postfix) with ESMTPS id 2ED2714011D; Thu, 22 Aug 2024 00:11:25 +0800 (CST) Received: from lhrpeml500006.china.huawei.com (7.191.161.198) by lhrpeml500001.china.huawei.com (7.191.163.213) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 21 Aug 2024 17:11:24 +0100 Received: from lhrpeml500006.china.huawei.com ([7.191.161.198]) by lhrpeml500006.china.huawei.com ([7.191.161.198]) with mapi id 15.01.2507.039; Wed, 21 Aug 2024 17:11:24 +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 , "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" , "mike.malvestuto@intel.com" , "gthelen@google.com" , "wschwartz@amperecomputing.com" , "dferguson@amperecomputing.com" , "wbs@os.amperecomputing.com" , "nifan.cxl@gmail.com" , "jgroves@micron.com" , "vsalve@micron.com" , tanxiaofei , "Zengtao (B)" , "Roberto Sassu" , "kangkang.shen@futurewei.com" , wanghuiqiang , Linuxarm Subject: RE: [PATCH v11 04/14] cxl/mbox: Add GET_SUPPORTED_FEATURES mailbox command Thread-Topic: [PATCH v11 04/14] cxl/mbox: Add GET_SUPPORTED_FEATURES mailbox command Thread-Index: AQHa7/tuozUcaDHi1UOzxt2Hy082pLIwtLoAgAEzZKA= Date: Wed, 21 Aug 2024 16:11:24 +0000 Message-ID: References: <20240816164238.1902-1-shiju.jose@huawei.com> <20240816164238.1902-5-shiju.jose@huawei.com> <8b78d617-26f6-45a2-87d7-d3b66f5e7277@intel.com> In-Reply-To: <8b78d617-26f6-45a2-87d7-d3b66f5e7277@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.159.208] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Stat-Signature: r8f3g9fm7bg563w7nuzz5pdfqw5t7c1j X-Rspamd-Queue-Id: 2854C18002C X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1724256689-761687 X-HE-Meta: U2FsdGVkX18jiaH4P4q2bmFTU0gGzXd8dwuudTooC5xQtkyJnLxsoBNfkrxiWDw7ufSOnzAuF1TNbM+hjfv1bAh8U25C4aR0+fAerjCgNR1axY8lzTGo9Z+F5LQEDYjhNVER41E3IkekyT520jneOJXdygqiIbq35UkbSeJpnZhZJSseJnuVUd8nHCFL8zPSYoPUT4sLjx/Hc9APhJ2c82h2cVTC22NhYzCUvAqZwClsLBuaweMtIg+PGVc3i0Vi8NQ9xPQYYqh+UwdFg2+Q6wPARAvUkXfWoHRzwz0GaDy0wHebh3VplQxv/TKFx1McDgzfnYpJPj1EgjA24aefr3Nq0ZUqs3hWlEr+arxWYgF153ASZIeeRkX4ZMmNom7+v+Mu3fj6o5HNPk5zU69rBcic/LMkxoTJhWXDpZxYD0YrSug04Y9J/UBMo0kblx8eMl18L+Z++jHZWBdrMfEVEV7RVTpTVjq/VEm+C6/vs8Dr4/2dUnga2thjKnDfrE22jGIdk9IIsVI1qRATT4OOz0pVW7GT/LlypoOPKnJYvUqgz3fOOgM0f+QIXUMPEAQglXamuhpWoergShSHhXqMt7a4lZXD5yQsd+sZUh8XJPBiPadZa9RMolbXCQ9osPvplGRBZ6mB3iP3WA0LjDXJCI7BBWv+FCZSW4ZrH/c14nLOE6XVeuWfE7eAg4dUrGrbZncw+RJsFUmxlGeJvxulPkxLLLcr0ft4s4tUGAQD4DZYTNH0bXGnIf9xirIcRKVH1lKD2AwWpvbuMq/PMrLYoGeVAoBtLsCfTgC6ZLCGQN2G3cYW0vC2N5KODF0OFOkF/aG5iCLTGLenM0eHLaf2lmjTfR/LcPInLzskVQ5lApgZm5Az9H6X0cpI8YQ/kxHehqBHZzpOZ8APNfzCZrntUT+AvrI1FOnFVhf/kIk9cYT1qxg5Okwhs65inO+gIn7aGahP0mVBpeuMmLaXppj U+Jq+kI9 +n66DDREdBITCbHbWJADQh9ftxK6yYOtIa8Tq3DAEAQQlKWZh3Dlk1MtCXhROZUaay5/a5qReFf4995svbQXANNQO4FCCmfWhOOevEySEIPnH37XLgpptbu6sB8GcoZ4nAFqaw+zuR92+DzRo8FfjDl6Udf5Rv3zAxqCRGsPO4DAOdpqlWR2jI4vYDFjInTN8RP4GyQOjD1dWKZF45lr0taI+3zW/CRTzv/exw2TQoPzGhUEwhSyZovpoX5uNYQqX0+eLbtDuAjo6m6S5L1+pOnuKbYDpTWCbULjl8vA2WsMfUqH0mBBQZwV+NEQh5ebZYp0O/1UW0oxgWWPiyBjcYxl6pdh6HrJHKJW9liXA7L/Aouo+N38RBPGsL8jl75Ine9q7TzRy+pi/UZKOUjYR6IZ431rW2fJ0FR5z2EUjuUnBu+irddzzm9rJYWXlESD7yknmQ/g/9bS0GxxbzigRLZiLaQUhmSzpHMnnIQwonsa+xprgQzAQ8D3P7UUEL9PgXIMyKrxQvFcpP2lfvLyOmriXq8zPi1eV8P2to0wU1CQc5yurObuZTfL1Uisq7xQsKitHSPSaqWVvxRgNtdgkODcXoPFGps51z89EHZcSpgtaQSuOWmjw2d4Mq1a637/Y6ypkxa3HoCSh+KpnXpjN6j7out4NKlE7wRQUFrvVu5FudJTdmNPCg8UtQExKVouPmRJ8O2Pa5CnpqNgjWOA3Tzn1iLsVbcy5Q7DI3JyiS/vHX4Ol2zoaPXUHfP1E5h4r46JqTjXFRroDN3mIGGu8/4TDZMqqVbkIp7SrqW8wicQ2+hhE24ZBjPJiFrltCKKHfM/BcEByc7nx1X9jsI8EIY6s/772leEy09EPGyXUNVBC8w6mI/H98BTUMpLGxWsWFUDAK/Q+DftAojTeFwaPEesx8+hlZXIZB6A6L216sGOA7AsVFihu8iKKLFfWewmmXe2efzNMhKtoanOEpt63AV3cTGOC 0OBR9rV2 Na0rAPTlNWgiCBq7WEKZDZkQ0nUcpHsBV+3rwWhT1Yf+gEFDbav57a7K5N+YqG5iQHbCwEDPB7OSy4QZiK8WWXEZQEI6n3XUTBfYVV8zmKAPFss23ZlURXy+6O+FTtTa 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: SGkgRGF2ZSwNCg0KPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogRGF2ZSBKaWFu ZyA8ZGF2ZS5qaWFuZ0BpbnRlbC5jb20+DQo+U2VudDogMjAgQXVndXN0IDIwMjQgMjM6NDYNCj5U bzogU2hpanUgSm9zZSA8c2hpanUuam9zZUBodWF3ZWkuY29tPjsgbGludXgtZWRhY0B2Z2VyLmtl cm5lbC5vcmc7IGxpbnV4LQ0KPmN4bEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWFjcGlAdmdlci5r ZXJuZWwub3JnOyBsaW51eC1tbUBrdmFjay5vcmc7IGxpbnV4LQ0KPmtlcm5lbEB2Z2VyLmtlcm5l bC5vcmcNCj5DYzogYnBAYWxpZW44LmRlOyB0b255Lmx1Y2tAaW50ZWwuY29tOyByYWZhZWxAa2Vy bmVsLm9yZzsgbGVuYkBrZXJuZWwub3JnOw0KPm1jaGVoYWJAa2VybmVsLm9yZzsgZGFuLmoud2ls bGlhbXNAaW50ZWwuY29tOyBkYXZlQHN0Z29sYWJzLm5ldDsgSm9uYXRoYW4NCj5DYW1lcm9uIDxq b25hdGhhbi5jYW1lcm9uQGh1YXdlaS5jb20+OyBhbGlzb24uc2Nob2ZpZWxkQGludGVsLmNvbTsN Cj52aXNoYWwubC52ZXJtYUBpbnRlbC5jb207IGlyYS53ZWlueUBpbnRlbC5jb207IGRhdmlkQHJl ZGhhdC5jb207DQo+VmlsYXMuU3JpZGhhcmFuQGFtZC5jb207IGxlby5kdXJhbkBhbWQuY29tOyBZ YXplbi5HaGFubmFtQGFtZC5jb207DQo+cmllbnRqZXNAZ29vZ2xlLmNvbTsgamlhcWl5YW5AZ29v Z2xlLmNvbTsgSm9uLkdyaW1tQGFtZC5jb207DQo+ZGF2ZS5oYW5zZW5AbGludXguaW50ZWwuY29t OyBuYW95YS5ob3JpZ3VjaGlAbmVjLmNvbTsNCj5qYW1lcy5tb3JzZUBhcm0uY29tOyBqdGhvdWdo dG9uQGdvb2dsZS5jb207IHNvbWFzdW5kYXJhbS5hQGhwZS5jb207DQo+ZXJkZW1ha3Rhc0Bnb29n bGUuY29tOyBwZ29uZGFAZ29vZ2xlLmNvbTsgZHVlbndlbkBnb29nbGUuY29tOw0KPm1pa2UubWFs dmVzdHV0b0BpbnRlbC5jb207IGd0aGVsZW5AZ29vZ2xlLmNvbTsNCj53c2Nod2FydHpAYW1wZXJl Y29tcHV0aW5nLmNvbTsgZGZlcmd1c29uQGFtcGVyZWNvbXB1dGluZy5jb207DQo+d2JzQG9zLmFt cGVyZWNvbXB1dGluZy5jb207IG5pZmFuLmN4bEBnbWFpbC5jb207IGpncm92ZXNAbWljcm9uLmNv bTsNCj52c2FsdmVAbWljcm9uLmNvbTsgdGFueGlhb2ZlaSA8dGFueGlhb2ZlaUBodWF3ZWkuY29t PjsgWmVuZ3RhbyAoQikNCj48cHJpbWUuemVuZ0BoaXNpbGljb24uY29tPjsgUm9iZXJ0byBTYXNz dSA8cm9iZXJ0by5zYXNzdUBodWF3ZWkuY29tPjsNCj5rYW5na2FuZy5zaGVuQGZ1dHVyZXdlaS5j b207IHdhbmdodWlxaWFuZyA8d2FuZ2h1aXFpYW5nQGh1YXdlaS5jb20+Ow0KPkxpbnV4YXJtIDxs aW51eGFybUBodWF3ZWkuY29tPg0KPlN1YmplY3Q6IFJlOiBbUEFUQ0ggdjExIDA0LzE0XSBjeGwv bWJveDogQWRkIEdFVF9TVVBQT1JURURfRkVBVFVSRVMNCj5tYWlsYm94IGNvbW1hbmQNCj4NCj4N Cj4NCj5PbiA4LzE2LzI0IDk6NDIgQU0sIHNoaWp1Lmpvc2VAaHVhd2VpLmNvbSB3cm90ZToNCj4+ IEZyb206IFNoaWp1IEpvc2UgPHNoaWp1Lmpvc2VAaHVhd2VpLmNvbT4NCj4+DQo+PiBBZGQgc3Vw cG9ydCBmb3IgR0VUX1NVUFBPUlRFRF9GRUFUVVJFUyBtYWlsYm94IGNvbW1hbmQuDQo+Pg0KPj4g Q1hMIHNwZWMgMy4xIHNlY3Rpb24gOC4yLjkuNiBkZXNjcmliZXMgb3B0aW9uYWwgZGV2aWNlIHNw ZWNpZmljIGZlYXR1cmVzLg0KPj4gQ1hMIGRldmljZXMgc3VwcG9ydCBmZWF0dXJlcyB3aXRoIGNo YW5nZWFibGUgYXR0cmlidXRlcy4NCj4+DQo+PiBDWEwgc3BlYyAzLjEgc2VjdGlvbiA4LjIuOS42 LjEgZGVzY3JpYmVzIEdldCBTdXBwb3J0ZWQgZmVhdHVyZXMgY29tbWFuZC4NCj4+IEdldCBTdXBw b3J0ZWQgRmVhdHVyZXMgcmV0cmlldmVzIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBkZXZpY2Ugc3Bl Y2lmaWMNCj4+IGZlYXR1cmVzLiBUaGUgc2V0dGluZ3Mgb2YgYSBmZWF0dXJlIGNhbiBiZSByZXRy aWV2ZWQgdXNpbmcgR2V0IEZlYXR1cmUNCj4+IGFuZCBvcHRpb25hbGx5IG1vZGlmaWVkIHVzaW5n IFNldCBGZWF0dXJlLg0KPj4NCj4+IFNpZ25lZC1vZmYtYnk6IFNoaWp1IEpvc2UgPHNoaWp1Lmpv c2VAaHVhd2VpLmNvbT4NCj4+IC0tLQ0KPj4gIGRyaXZlcnMvY3hsL2NvcmUvbWJveC5jIHwgNjgN Cj4rKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gIGRyaXZlcnMv Y3hsL2N4bG1lbS5oICAgIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysNCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDEzMSBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvY3hsL2NvcmUvbWJveC5jIGIvZHJpdmVycy9jeGwvY29yZS9tYm94LmMg aW5kZXgNCj4+IDI2MjZmM2ZmZjIwMS4uNzYwZmEzZTEwNzVmIDEwMDY0NA0KPj4gLS0tIGEvZHJp dmVycy9jeGwvY29yZS9tYm94LmMNCj4+ICsrKyBiL2RyaXZlcnMvY3hsL2NvcmUvbWJveC5jDQo+ PiBAQCAtMTMyNCw2ICsxMzI0LDc0IEBAIGludCBjeGxfc2V0X3RpbWVzdGFtcChzdHJ1Y3QgY3hs X21lbWRldl9zdGF0ZQ0KPj4gKm1kcykgIH0gIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGN4bF9zZXRf dGltZXN0YW1wLCBDWEwpOw0KPj4NCj4+ICtpbnQgY3hsX2dldF9zdXBwb3J0ZWRfZmVhdHVyZXMo c3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcywNCj4+ICsJCQkgICAgICAgdTMyIGNvdW50LCB1 MTYgc3RhcnRfaW5kZXgsDQo+PiArCQkJICAgICAgIHN0cnVjdCBjeGxfbWJveF9nZXRfc3VwcF9m ZWF0c19vdXQgKmZlYXRzX291dCkgew0KPj4gKwlzdHJ1Y3QgY3hsX21ib3hfZ2V0X3N1cHBfZmVh dHNfaW4gcGk7DQo+PiArCXN0cnVjdCBjeGxfbWJveF9jbWQgbWJveF9jbWQ7DQo+PiArCWludCBy YzsNCj4+ICsNCj4+ICsJcGkuY291bnQgPSBjcHVfdG9fbGUzMihjb3VudCk7DQo+PiArCXBpLnN0 YXJ0X2luZGV4ID0gY3B1X3RvX2xlMTYoc3RhcnRfaW5kZXgpOw0KPj4gKw0KPj4gKwltYm94X2Nt ZCA9IChzdHJ1Y3QgY3hsX21ib3hfY21kKSB7DQo+PiArCQkub3Bjb2RlID0gQ1hMX01CT1hfT1Bf R0VUX1NVUFBPUlRFRF9GRUFUVVJFUywNCj4+ICsJCS5zaXplX2luID0gc2l6ZW9mKHBpKSwNCj4+ ICsJCS5wYXlsb2FkX2luID0gJnBpLA0KPj4gKwkJLnNpemVfb3V0ID0gY291bnQsDQo+PiArCQku cGF5bG9hZF9vdXQgPSBmZWF0c19vdXQsDQo+PiArCQkubWluX291dCA9IHNpemVvZigqZmVhdHNf b3V0KSwNCj4+ICsJfTsNCj4+ICsJcmMgPSBjeGxfaW50ZXJuYWxfc2VuZF9jbWQobWRzLCAmbWJv eF9jbWQpOw0KPj4gKwlpZiAocmMgPCAwKQ0KPj4gKwkJcmV0dXJuIHJjOw0KPj4gKw0KPj4gKwly ZXR1cm4gMDsNCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9OU19HUEwoY3hsX2dldF9zdXBwb3J0 ZWRfZmVhdHVyZXMsIENYTCk7DQo+PiArDQo+PiAraW50IGN4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1 cmVfZW50cnkoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcywgY29uc3QNCj51dWlkX3QgKmZl YXRfdXVpZCwNCj4+ICsJCQkJICAgIHN0cnVjdCBjeGxfbWJveF9zdXBwX2ZlYXRfZW50cnkNCj4q ZmVhdF9lbnRyeV9vdXQpDQo+DQo+SGkgU2hpanUsDQo+dGhvdWdodHMgb24gc3RvcmluZyBhbGwg dGhlIHN1cHBvcnRlZCBmZWF0dXJlcyBtZXRhIGluZm8gZnJvbQ0KPkdFVF9TVVBQT1JURURfRkVB VFVSRVMgY29tbWFuZCBpbiB0aGUgY3hsIGNvcmUgZHJpdmVyIGR1cmluZyBkZXZpY2UNCj5lbnVt ZXJhdGlvbiBhbmQgdGhlIENYTCBFREFDIGNvZGUgY2FuIGp1c3QgcXVlcnkgdGhlIGNvcmUgaW5z dGVhZCBvZiByZWFkaW5nDQo+ZnJvbSB0aGUgZGV2aWNlPyBKdXN0IGxvb2tpbmcgZm9yd2FyZCB0 byBzdXBwb3J0aW5nIG90aGVyIHJlYWQvc2V0IGZlYXR1cmVzDQo+b3BlcmF0aW9ucyBpbiB0aGUg ZnV0dXJlIGFuZCBhdm9pZGluZyBnb2luZyB0aHJvdWdoIHRoaXMgZW50aXJlIHJlYWQgYW5kIGZp bmQNCj5yb3V0aW5lIGZvciBlYWNoIGZlYXR1cmUuDQpUaGFua3MgZm9yIHRoZSBzdWdnZXN0aW9u Lg0KSSBzYXcgeW91IGhhdmUgaW1wbGVtZW50YXRpb24gZm9yIHN0b3JpbmcgYWxsIHRoZSBzdXBw b3J0ZWQgZmVhdHVyZXMgbWV0YSBpbmZvIGZyb20gR0VUX1NVUFBPUlRFRF9GRUFUVVJFUyBjb21t YW5kICBoZXJlLiANCmh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcHJvamVjdC9jeGwvcGF0 Y2gvMjAyNDA3MTgyMTM0NDYuMTc1MDEzNS01LWRhdmUuamlhbmdAaW50ZWwuY29tLw0KSSBhbSBm aW5lIGJhc2luZyBvbiBpdCBpZiB0aGlzIHBhdGNoIGlzIHJlYWR5IHRvIGdvPw0KPg0KPkRKDQoN ClRoYW5rcywNClNoaWp1DQo+DQo+PiArew0KPj4gKwlzdHJ1Y3QgY3hsX21ib3hfc3VwcF9mZWF0 X2VudHJ5ICpmZWF0X2VudHJ5Ow0KPj4gKwlpbnQgZmVhdF9pbmRleCwgZmVhdHNfb3V0X3NpemU7 DQo+PiArCWludCBuZW50cmllcywgY291bnQ7DQo+PiArCWludCByZXQ7DQo+PiArDQo+PiArCWZl YXRfaW5kZXggPSAwOw0KPj4gKwlmZWF0c19vdXRfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgY3hsX21i b3hfZ2V0X3N1cHBfZmVhdHNfb3V0KSArDQo+PiArCQkJCXNpemVvZihzdHJ1Y3QgY3hsX21ib3hf c3VwcF9mZWF0X2VudHJ5KTsNCj4+ICsJc3RydWN0IGN4bF9tYm94X2dldF9zdXBwX2ZlYXRzX291 dCAqZmVhdHNfb3V0IF9fZnJlZShrZnJlZSkgPQ0KPj4gKwkJCQkJa21hbGxvYyhmZWF0c19vdXRf c2l6ZSwgR0ZQX0tFUk5FTCk7DQo+PiArCWlmICghZmVhdHNfb3V0KQ0KPj4gKwkJcmV0dXJuIC1F Tk9NRU07DQo+PiArDQo+PiArCXdoaWxlICh0cnVlKSB7DQo+PiArCQltZW1zZXQoZmVhdHNfb3V0 LCAwLCBmZWF0c19vdXRfc2l6ZSk7DQo+PiArCQlyZXQgPSBjeGxfZ2V0X3N1cHBvcnRlZF9mZWF0 dXJlcyhtZHMsIGZlYXRzX291dF9zaXplLA0KPj4gKwkJCQkJCSBmZWF0X2luZGV4LCBmZWF0c19v dXQpOw0KPj4gKwkJaWYgKHJldCkNCj4+ICsJCQlyZXR1cm4gcmV0Ow0KPj4gKw0KPj4gKwkJbmVu dHJpZXMgPSBmZWF0c19vdXQtPm5yX2VudHJpZXM7DQo+PiArCQlpZiAoIW5lbnRyaWVzKQ0KPj4g KwkJCXJldHVybiAtRU9QTk9UU1VQUDsNCj4+ICsNCj4+ICsJCS8qIENoZWNrIENYTCBtZW1kZXYg c3VwcG9ydHMgdGhlIGZlYXR1cmUgKi8NCj4+ICsJCWZlYXRfZW50cnkgPSBmZWF0c19vdXQtPmZl YXRfZW50cmllczsNCj4+ICsJCWZvciAoY291bnQgPSAwOyBjb3VudCA8IG5lbnRyaWVzOyBjb3Vu dCsrLCBmZWF0X2VudHJ5KyspIHsNCj4+ICsJCQlpZiAodXVpZF9lcXVhbCgmZmVhdF9lbnRyeS0+ dXVpZCwgZmVhdF91dWlkKSkgew0KPj4gKwkJCQltZW1jcHkoZmVhdF9lbnRyeV9vdXQsIGZlYXRf ZW50cnksDQo+PiArCQkJCSAgICAgICBzaXplb2YoKmZlYXRfZW50cnlfb3V0KSk7DQo+PiArCQkJ CXJldHVybiAwOw0KPj4gKwkJCX0NCj4+ICsJCX0NCj4+ICsJCWZlYXRfaW5kZXggKz0gbmVudHJp ZXM7DQo+PiArCX0NCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9OU19HUEwoY3hsX2dldF9zdXBw b3J0ZWRfZmVhdHVyZV9lbnRyeSwgQ1hMKTsNCj4+ICsNCj4+ICBpbnQgY3hsX21lbV9nZXRfcG9p c29uKHN0cnVjdCBjeGxfbWVtZGV2ICpjeGxtZCwgdTY0IG9mZnNldCwgdTY0IGxlbiwNCj4+ICAJ CSAgICAgICBzdHJ1Y3QgY3hsX3JlZ2lvbiAqY3hscikNCj4+ICB7DQo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9jeGwvY3hsbWVtLmggYi9kcml2ZXJzL2N4bC9jeGxtZW0uaCBpbmRleA0KPj4gYWY4 MTY5Y2NkYmMwLi45OTM5Yzc3MWY2NDIgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2N4bC9jeGxt ZW0uaA0KPj4gKysrIGIvZHJpdmVycy9jeGwvY3hsbWVtLmgNCj4+IEBAIC01MzEsNiArNTMxLDcg QEAgZW51bSBjeGxfb3Bjb2RlIHsNCj4+ICAJQ1hMX01CT1hfT1BfR0VUX0xPR19DQVBTCT0gMHgw NDAyLA0KPj4gIAlDWExfTUJPWF9PUF9DTEVBUl9MT0cgICAgICAgICAgID0gMHgwNDAzLA0KPj4g IAlDWExfTUJPWF9PUF9HRVRfU1VQX0xPR19TVUJMSVNUID0gMHgwNDA1LA0KPj4gKwlDWExfTUJP WF9PUF9HRVRfU1VQUE9SVEVEX0ZFQVRVUkVTCT0gMHgwNTAwLA0KPj4gIAlDWExfTUJPWF9PUF9J REVOVElGWQkJPSAweDQwMDAsDQo+PiAgCUNYTF9NQk9YX09QX0dFVF9QQVJUSVRJT05fSU5GTwk9 IDB4NDEwMCwNCj4+ICAJQ1hMX01CT1hfT1BfU0VUX1BBUlRJVElPTl9JTkZPCT0gMHg0MTAxLA0K Pj4gQEAgLTcwMCw2ICs3MDEsNjMgQEAgc3RydWN0IGN4bF9tYm94X3NldF90aW1lc3RhbXBfaW4g ew0KPj4NCj4+ICB9IF9fcGFja2VkOw0KPj4NCj4+ICsvKg0KPj4gKyAqIEdldCBTdXBwb3J0ZWQg RmVhdHVyZXMgQ1hMIDMuMSBTcGVjIDguMi45LjYuMSAgKi8NCj4+ICsNCj4+ICsvKg0KPj4gKyAq IEdldCBTdXBwb3J0ZWQgRmVhdHVyZXMgaW5wdXQgcGF5bG9hZA0KPj4gKyAqIENYTCByZXYgMy4x IHNlY3Rpb24gOC4yLjkuNi4xIFRhYmxlIDgtOTUgICovIHN0cnVjdA0KPj4gK2N4bF9tYm94X2dl dF9zdXBwX2ZlYXRzX2luIHsNCj4+ICsJX19sZTMyIGNvdW50Ow0KPj4gKwlfX2xlMTYgc3RhcnRf aW5kZXg7DQo+PiArCXU4IHJzdmRbMl07DQo+PiArfSBfX3BhY2tlZDsNCj4+ICsNCj4+ICsvKg0K Pj4gKyAqIEdldCBTdXBwb3J0ZWQgRmVhdHVyZXMgU3VwcG9ydGVkIEZlYXR1cmUgRW50cnkNCj4+ ICsgKiBDWEwgcmV2IDMuMSBzZWN0aW9uIDguMi45LjYuMSBUYWJsZSA4LTk3ICAqLw0KPj4gKy8q IFN1cHBvcnRlZCBGZWF0dXJlIEVudHJ5IDogUGF5bG9hZCBvdXQgYXR0cmlidXRlIGZsYWdzICov DQo+PiArI2RlZmluZSBDWExfRkVBVF9FTlRSWV9GTEFHX0NIQU5HQUJMRQlCSVQoMCkNCj4+ICsj ZGVmaW5lIENYTF9GRUFUX0VOVFJZX0ZMQUdfREVFUEVTVF9SRVNFVF9QRVJTSVNURU5DRV9NQVNL DQo+CUdFTk1BU0soMywgMSkNCj4+ICsjZGVmaW5lIENYTF9GRUFUX0VOVFJZX0ZMQUdfUEVSU0lT VF9BQ1JPU1NfRklSTVdBUkVfVVBEQVRFDQo+CUJJVCg0KQ0KPj4gKyNkZWZpbmUgQ1hMX0ZFQVRf RU5UUllfRkxBR19TVVBQT1JUX0RFRkFVTFRfU0VMRUNUSU9OCUJJVCg1KQ0KPj4gKyNkZWZpbmUg Q1hMX0ZFQVRfRU5UUllfRkxBR19TVVBQT1JUX1NBVkVEX1NFTEVDVElPTglCSVQoNikNCj4+ICsN Cj4+ICtlbnVtIGN4bF9mZWF0X2F0dHJfdmFsdWVfcGVyc2lzdGVuY2Ugew0KPj4gKwlDWExfRkVB VF9BVFRSX1ZBTFVFX1BFUlNJU1RFTkNFX05PTkUsDQo+PiArCUNYTF9GRUFUX0FUVFJfVkFMVUVf UEVSU0lTVEVOQ0VfQ1hMX1JFU0VULA0KPj4gKwlDWExfRkVBVF9BVFRSX1ZBTFVFX1BFUlNJU1RF TkNFX0hPVF9SRVNFVCwNCj4+ICsJQ1hMX0ZFQVRfQVRUUl9WQUxVRV9QRVJTSVNURU5DRV9XQVJN X1JFU0VULA0KPj4gKwlDWExfRkVBVF9BVFRSX1ZBTFVFX1BFUlNJU1RFTkNFX0NPTERfUkVTRVQs DQo+PiArCUNYTF9GRUFUX0FUVFJfVkFMVUVfUEVSU0lTVEVOQ0VfTUFYDQo+PiArfTsNCj4+ICsN Cj4+ICtzdHJ1Y3QgY3hsX21ib3hfc3VwcF9mZWF0X2VudHJ5IHsNCj4+ICsJdXVpZF90IHV1aWQ7 DQo+PiArCV9fbGUxNiBpbmRleDsNCj4+ICsJX19sZTE2IGdldF9zaXplOw0KPj4gKwlfX2xlMTYg c2V0X3NpemU7DQo+PiArCV9fbGUzMiBhdHRyX2ZsYWdzOw0KPj4gKwl1OCBnZXRfdmVyc2lvbjsN Cj4+ICsJdTggc2V0X3ZlcnNpb247DQo+PiArCV9fbGUxNiBzZXRfZWZmZWN0czsNCj4+ICsJdTgg cnN2ZFsxOF07DQo+PiArfSAgX19wYWNrZWQ7DQo+PiArDQo+PiArLyoNCj4+ICsgKiBHZXQgU3Vw cG9ydGVkIEZlYXR1cmVzIG91dHB1dCBwYXlsb2FkDQo+PiArICogQ1hMIHJldiAzLjEgc2VjdGlv biA4LjIuOS42LjEgVGFibGUgOC05NiAgKi8gc3RydWN0DQo+PiArY3hsX21ib3hfZ2V0X3N1cHBf ZmVhdHNfb3V0IHsNCj4+ICsJX19sZTE2IG5yX2VudHJpZXM7DQo+PiArCV9fbGUxNiBucl9zdXBw b3J0ZWQ7DQo+PiArCXU4IHJzdmRbNF07DQo+PiArCXN0cnVjdCBjeGxfbWJveF9zdXBwX2ZlYXRf ZW50cnkgZmVhdF9lbnRyaWVzW107IH0gX19wYWNrZWQ7DQo+PiArDQo+PiAgLyogR2V0IFBvaXNv biBMaXN0ICBDWEwgMy4wIFNwZWMgOC4yLjkuOC40LjEgKi8gIHN0cnVjdA0KPj4gY3hsX21ib3hf cG9pc29uX2luIHsNCj4+ICAJX19sZTY0IG9mZnNldDsNCj4+IEBAIC04MzEsNiArODg5LDExIEBA IHZvaWQgY3hsX2V2ZW50X3RyYWNlX3JlY29yZChjb25zdCBzdHJ1Y3QNCj5jeGxfbWVtZGV2ICpj eGxtZCwNCj4+ICAJCQkgICAgZW51bSBjeGxfZXZlbnRfdHlwZSBldmVudF90eXBlLA0KPj4gIAkJ CSAgICBjb25zdCB1dWlkX3QgKnV1aWQsIHVuaW9uIGN4bF9ldmVudCAqZXZ0KTsgIGludA0KPj4g Y3hsX3NldF90aW1lc3RhbXAoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcyk7DQo+PiAraW50 IGN4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1cmVzKHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRlICptZHMs DQo+PiArCQkJICAgICAgIHUzMiBjb3VudCwgdTE2IHN0YXJ0X2luZGV4LA0KPj4gKwkJCSAgICAg ICBzdHJ1Y3QgY3hsX21ib3hfZ2V0X3N1cHBfZmVhdHNfb3V0ICpmZWF0c19vdXQpOw0KPmludA0K Pj4gK2N4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1cmVfZW50cnkoc3RydWN0IGN4bF9tZW1kZXZfc3Rh dGUgKm1kcywgY29uc3QNCj51dWlkX3QgKmZlYXRfdXVpZCwNCj4+ICsJCQkJICAgIHN0cnVjdCBj eGxfbWJveF9zdXBwX2ZlYXRfZW50cnkNCj4qZmVhdF9lbnRyeV9vdXQpOw0KPj4gIGludCBjeGxf cG9pc29uX3N0YXRlX2luaXQoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcyk7ICBpbnQNCj4+ IGN4bF9tZW1fZ2V0X3BvaXNvbihzdHJ1Y3QgY3hsX21lbWRldiAqY3hsbWQsIHU2NCBvZmZzZXQs IHU2NCBsZW4sDQo+PiAgCQkgICAgICAgc3RydWN0IGN4bF9yZWdpb24gKmN4bHIpOw0KDQo=