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 77A00C369D0 for ; Wed, 25 Sep 2024 11:18:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C464F6B0092; Wed, 25 Sep 2024 07:18:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BF6106B0095; Wed, 25 Sep 2024 07:18:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A6FB56B0096; Wed, 25 Sep 2024 07:18:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 7F2B06B0092 for ; Wed, 25 Sep 2024 07:18:42 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 156D380AB9 for ; Wed, 25 Sep 2024 11:18:42 +0000 (UTC) X-FDA: 82603012884.25.BE3DAA2 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf03.hostedemail.com (Postfix) with ESMTP id D0E7A20008 for ; Wed, 25 Sep 2024 11:18:38 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf03.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=1727263022; a=rsa-sha256; cv=none; b=ygdQSLya8Go/D7GCq/0CA3KP/Zu7520JSP3MAcyF7fEWJ2WXEeTZ06WDapwCCoi4gRBCsG De0IHXTnuDDiWGj+EKTeLloobh1smnXr+lMXCAArnlx3w3A3/9DwnellouP4pq2EnOf2jt nC4cZcb8wkmM+nFeAVSZotd/4YXKijA= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf03.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=1727263022; 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=pacjTfWeRT1hLUYcqsh4VJ/9yrVxomOcrZM/Wrk3Wts=; b=owkVc3mLyhrFWb5pb6e7VDB7OuGaLZcjkyxI5TlXpHkf0VPvmiT96vKIW9vrefm9vcgs11 FCS+YJuQuLEnvK/A4Jqi8WaKXb68DBuC94x+ItMulSOQBxOYmbUzFF54ujVsLx6YqwDD/r hzQ/Al+vKpZaZ176LJL51w4LML5AJjA= Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4XDDd242Zvz6K5nk; Wed, 25 Sep 2024 19:13:58 +0800 (CST) Received: from frapeml500008.china.huawei.com (unknown [7.182.85.71]) by mail.maildlp.com (Postfix) with ESMTPS id 3AD52140F1F; Wed, 25 Sep 2024 19:18:35 +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; Wed, 25 Sep 2024 13:18:34 +0200 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; Wed, 25 Sep 2024 13:18:34 +0200 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 v12 07/17] cxl: Add Get Supported Features command for kernel usage Thread-Topic: [PATCH v12 07/17] cxl: Add Get Supported Features command for kernel usage Thread-Index: AQHbBCoCU0EH6WGrxk+UReEX5lVJC7Jl+ECAgAJtSPA= Date: Wed, 25 Sep 2024 11:18:34 +0000 Message-ID: References: <20240911090447.751-1-shiju.jose@huawei.com> <20240911090447.751-8-shiju.jose@huawei.com> <2a811714-b354-4da9-993c-9dabdbabb86e@intel.com> In-Reply-To: <2a811714-b354-4da9-993c-9dabdbabb86e@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.144.119] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: D0E7A20008 X-Stat-Signature: mjug8791o6j9xekib1hnyxtsxpbfyriy X-Rspam-User: X-HE-Tag: 1727263118-498115 X-HE-Meta: U2FsdGVkX1+Xdc56XK6aJx7FMxmu6sZ4AX5xGT1MvNWrolmfNd4uf8CY0C/Pcq34/LznFiOX8kI94J9FtSr3/H4FBCQhzsk0OVaOiC32sucllWLuGm2DkNKDQFQ9cYzulr9OXM9/uBxu8lsfGuhGqFRady8UZmX/BXhTlVVGz6hba/2GZWawWKXj6eowV9R2HEPaNnM7bn5QodVi1lgURNuYUUFem+09B64EFp7aWCFwRy7kEKOCYsuDoxDg/ZZzW16+j/4U1TKpxCrFny5IEKPhXg5DSoBrYMT7cw8Tbczw383FSPXTCVK3igXbOhJzIpIfI11SfojyKEiRXvCfBNTwKZfSyjFLjdPJ5KmHT7JZT14aJsJ2dBOO9rJGop6bc1Qxle4M4+hset9uZrWXJhm94+MmMNAOWE5r1evKySrHiPUAQ+BYPfg4NHws/AFhHMMOEMPB9d1lt5YB85LZK2t1teFfc3bYFPpd+lgxRebSnVMygsDC7vGQeaAFlKotpCukI1yaAsY95/GsyWUMOOsRJXWazveaaoRML5VhF9UVbEwDn/s+qB7dY8wsJKqh84a9Kl/QByoEdAYThqFUw36zkkS0CfHsjP+PiP4Fq4C1aivtLqjxJBeUJg4ZCgEzlkUsFcNSMrQYU9AdcAAAM135YuMNmCXFeWmmTbcu53XlBw9MWRSY/iRQC08C3fjKIQzjCm5EiYWcQ9ZPGf26zrGTdddvifBlLu4MQlUoTmg8RDB+222Hc20OvJEiJKKUZq91PQ9uVpgxtLdvFbPumWAsaPxWTX9Na7pe6ufiwzMnW4V+2ER6yp0uPQp0S+jS8f/E/RYlDuCq4qR+wp2U85JmhWgYFbgZ+MbWg2QAsGHPwsGTy1la8JruZPCyE8GLQqgwHFkHlr+doPmXhRbLRYhBAkB1vAbhe9rp1eMgxFTswUp6CVdypzl/qhnjo4QAU3V478AIz6VE+Bq2iQy SeO2kQWE cT9luLw8xCHDQc++6JruErOOYU7fZz2crYtWD1SYOX+HHndZB+jGuzSuhbbjXE/p29iUZ8XNYjGqAoAXiGuknoF9Sb34KEOdw23cMEskHcmyRWF9Or23l51qQj/+KUfagsYvPwi0ANyEV+6wHlqY9XWzcNqW923mRxjD5z0mK2XYU53c7hVTv8vbjqidnuYO9A54h5+Y/Ba4/mIJPGX8aFhoRaNm/XEUd8BoStdi5ASQUUyP3U8wAf0W3fG8x5sZfcHTyiO/4G3KM1RP6BCG5MbvtSBGwis3DBObm5Xm+V2IUodie2tjyhTARyhoTSPje7Yw/HSUQ9BgnQgyKvFf2mSWcixmwreoKriT5O5Rq0iq4uZqKN/+oj9eOxp56I0Udqbm3VZgbf+tGScFDrg17YzIjIrZBJgJZF1dyX8i8kq37SRFx2iCFE2T3YoncAMw4EakEdYQOSVjaBgitzzZ0eyLtkYR16CyusyTLoJ7r1Av2Re5JqMskmTsHV0VXOQ5MI5ij4zEbIalGvzLHJ6OhzBz9MGfDPdoaJ0BiTAYUvs2PCz1Dv9Xg96jbKUK00siWey0J/EXjqu0s7upt2Vd0FP8RSUKoY9e06EfDFGe0YF7Dl4qm2PfbddAkK6Ke6qYr98YdfhXiA3PLKD93YDqPZ1EKJbo5/tubWCEPS50imOeWYelt5qJjPuFYx3F5RR5/O9U7AIXPVIukZbOfFTdG4S9bVVkP5mLVbCLIMLTHobUPWM+fzKJSuyyd0A5sn0kiMS7AdYjIb1EgmYNweY3MprRRDuRBxutrl6a/a6n1zVJCMQwGVQLbP9boBTnmvlof0TFipbswn5qqbtkeclqt5lljPkxjRJaRHPffsKoApq6hPTnFAJ6aOFhmumUTSqyto1XebpIZn+lY7Ejh9WdrxdYRm1WF30/zkUtGwILVbtoxcKEIY4M/3x+qXZjH0/uV8JK2rnQAouPkRw9DaTh77wrc6TQV StHAjYbp 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: DQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IERhdmUgSmlhbmcgPGRhdmUu amlhbmdAaW50ZWwuY29tPg0KPlNlbnQ6IDI0IFNlcHRlbWJlciAyMDI0IDAwOjM0DQo+VG86IFNo aWp1IEpvc2UgPHNoaWp1Lmpvc2VAaHVhd2VpLmNvbT47IGxpbnV4LWVkYWNAdmdlci5rZXJuZWwu b3JnOyBsaW51eC0NCj5jeGxAdmdlci5rZXJuZWwub3JnOyBsaW51eC1hY3BpQHZnZXIua2VybmVs Lm9yZzsgbGludXgtbW1Aa3ZhY2sub3JnOyBsaW51eC0NCj5rZXJuZWxAdmdlci5rZXJuZWwub3Jn DQo+Q2M6IGJwQGFsaWVuOC5kZTsgdG9ueS5sdWNrQGludGVsLmNvbTsgcmFmYWVsQGtlcm5lbC5v cmc7IGxlbmJAa2VybmVsLm9yZzsNCj5tY2hlaGFiQGtlcm5lbC5vcmc7IGRhbi5qLndpbGxpYW1z QGludGVsLmNvbTsgZGF2ZUBzdGdvbGFicy5uZXQ7IEpvbmF0aGFuDQo+Q2FtZXJvbiA8am9uYXRo YW4uY2FtZXJvbkBodWF3ZWkuY29tPjsgYWxpc29uLnNjaG9maWVsZEBpbnRlbC5jb207DQo+dmlz aGFsLmwudmVybWFAaW50ZWwuY29tOyBpcmEud2VpbnlAaW50ZWwuY29tOyBkYXZpZEByZWRoYXQu Y29tOw0KPlZpbGFzLlNyaWRoYXJhbkBhbWQuY29tOyBsZW8uZHVyYW5AYW1kLmNvbTsgWWF6ZW4u R2hhbm5hbUBhbWQuY29tOw0KPnJpZW50amVzQGdvb2dsZS5jb207IGppYXFpeWFuQGdvb2dsZS5j b207IEpvbi5HcmltbUBhbWQuY29tOw0KPmRhdmUuaGFuc2VuQGxpbnV4LmludGVsLmNvbTsgbmFv eWEuaG9yaWd1Y2hpQG5lYy5jb207DQo+amFtZXMubW9yc2VAYXJtLmNvbTsganRob3VnaHRvbkBn b29nbGUuY29tOyBzb21hc3VuZGFyYW0uYUBocGUuY29tOw0KPmVyZGVtYWt0YXNAZ29vZ2xlLmNv bTsgcGdvbmRhQGdvb2dsZS5jb207IGR1ZW53ZW5AZ29vZ2xlLmNvbTsNCj5taWtlLm1hbHZlc3R1 dG9AaW50ZWwuY29tOyBndGhlbGVuQGdvb2dsZS5jb207DQo+d3NjaHdhcnR6QGFtcGVyZWNvbXB1 dGluZy5jb207IGRmZXJndXNvbkBhbXBlcmVjb21wdXRpbmcuY29tOw0KPndic0Bvcy5hbXBlcmVj b21wdXRpbmcuY29tOyBuaWZhbi5jeGxAZ21haWwuY29tOyBqZ3JvdmVzQG1pY3Jvbi5jb207DQo+ dnNhbHZlQG1pY3Jvbi5jb207IHRhbnhpYW9mZWkgPHRhbnhpYW9mZWlAaHVhd2VpLmNvbT47IFpl bmd0YW8gKEIpDQo+PHByaW1lLnplbmdAaGlzaWxpY29uLmNvbT47IFJvYmVydG8gU2Fzc3UgPHJv YmVydG8uc2Fzc3VAaHVhd2VpLmNvbT47DQo+a2FuZ2thbmcuc2hlbkBmdXR1cmV3ZWkuY29tOyB3 YW5naHVpcWlhbmcgPHdhbmdodWlxaWFuZ0BodWF3ZWkuY29tPjsNCj5MaW51eGFybSA8bGludXhh cm1AaHVhd2VpLmNvbT4NCj5TdWJqZWN0OiBSZTogW1BBVENIIHYxMiAwNy8xN10gY3hsOiBBZGQg R2V0IFN1cHBvcnRlZCBGZWF0dXJlcyBjb21tYW5kIGZvcg0KPmtlcm5lbCB1c2FnZQ0KPg0KPg0K Pg0KPk9uIDkvMTEvMjQgMjowNCBBTSwgc2hpanUuam9zZUBodWF3ZWkuY29tIHdyb3RlOg0KPj4g RnJvbTogRGF2ZSBKaWFuZyA8ZGF2ZS5qaWFuZ0BpbnRlbC5jb20+DQo+Pg0KPj4gQ1hMIHNwZWMg cjMuMSA4LjIuOS42LjEgR2V0IFN1cHBvcnRlZCBGZWF0dXJlcyAoT3Bjb2RlIDA1MDBoKSBUaGUN Cj4+IGNvbW1hbmQgcmV0cmlldmUgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGRldmljZS1zcGVjaWZp YyBmZWF0dXJlcw0KPj4gKGlkZW50aWZpZWQgYnkgVVVJRCkgYW5kIGdlbmVyYWwgaW5mb3JtYXRp b24gYWJvdXQgZWFjaCBGZWF0dXJlLg0KPj4NCj4+IFRoZSBkcml2ZXIgd2lsbCByZXRyaWV2ZSB0 aGUgZmVhdHVyZSBlbnRyaWVzIGluIG9yZGVyIHRvIG1ha2UgY2hlY2tzDQo+PiBhbmQgcHJvdmlk ZSBpbmZvcm1hdGlvbiBmb3IgdGhlIEdldCBGZWF0dXJlIGFuZCBTZXQgRmVhdHVyZSBjb21tYW5k Lg0KPj4gT25lIG9mIHRoZSBtYWluIHBpZWNlIG9mIGluZm9ybWF0aW9uIHJldHJpZXZlZCBhcmUg dGhlIGVmZmVjdHMgYSBTZXQNCj4+IEZlYXR1cmUgY29tbWFuZCB3b3VsZCBoYXZlIGZvciBhIHBh cnRpY3VsYXIgZmVhdHVyZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEppYW5nIDxkYXZl LmppYW5nQGludGVsLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IFNoaWp1IEpvc2UgPHNoaWp1Lmpv c2VAaHVhd2VpLmNvbT4NCj4+IC0tLQ0KPj4gIGRyaXZlcnMvY3hsL2NvcmUvbWJveC5jICAgICAg fCAxNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICBkcml2ZXJzL2N4 bC9jeGxtZW0uaCAgICAgICAgIHwgIDUxICsrKysrKysrKysNCj4+ICBkcml2ZXJzL2N4bC9wY2ku YyAgICAgICAgICAgIHwgICA0ICsNCj4+ICBpbmNsdWRlL3VhcGkvbGludXgvY3hsX21lbS5oIHwg ICAxICsNCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDIzMSBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY3hsL2NvcmUvbWJveC5jIGIvZHJpdmVycy9jeGwvY29yZS9tYm94 LmMgaW5kZXgNCj4+IGZhMWVlNDk1YTRlMy4uZmU5NjVlYzU4MDJmIDEwMDY0NA0KPj4gLS0tIGEv ZHJpdmVycy9jeGwvY29yZS9tYm94LmMNCj4+ICsrKyBiL2RyaXZlcnMvY3hsL2NvcmUvbWJveC5j DQo+PiBAQCAtNjcsNiArNjcsNyBAQCBzdGF0aWMgc3RydWN0IGN4bF9tZW1fY29tbWFuZA0KPmN4 bF9tZW1fY29tbWFuZHNbQ1hMX01FTV9DT01NQU5EX0lEX01BWF0gPSB7DQo+PiAgCUNYTF9DTUQo U0VUX1NIVVRET1dOX1NUQVRFLCAweDEsIDAsIDApLA0KPj4gIAlDWExfQ01EKEdFVF9TQ0FOX01F RElBX0NBUFMsIDB4MTAsIDB4NCwgMCksDQo+PiAgCUNYTF9DTUQoR0VUX1RJTUVTVEFNUCwgMCwg MHg4LCAwKSwNCj4+ICsJQ1hMX0NNRChHRVRfU1VQUE9SVEVEX0ZFQVRVUkVTLCAweDgsIENYTF9W QVJJQUJMRV9QQVlMT0FELA0KPjApLA0KPj4gIH07DQo+Pg0KPj4gIC8qDQo+PiBAQCAtNzkwLDYg Kzc5MSwxODAgQEAgc3RhdGljIGNvbnN0IHV1aWRfdCBsb2dfdXVpZFtdID0gew0KPj4gIAlbVkVO RE9SX0RFQlVHX1VVSURdID0gREVGSU5FX0NYTF9WRU5ET1JfREVCVUdfVVVJRCwgIH07DQo+Pg0K Pj4gK3N0YXRpYyB2b2lkIGN4bF9mcmVlX2ZlYXR1cmVzKHZvaWQgKmZlYXR1cmVzKSB7DQo+PiAr CWt2ZnJlZShmZWF0dXJlcyk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgY3hsX2dldF9z dXBwb3J0ZWRfZmVhdHVyZXNfY291bnQoc3RydWN0IGN4bF9kZXZfc3RhdGUNCj4+ICsqY3hsZHMp IHsNCj4+ICsJc3RydWN0IGN4bF9tYWlsYm94ICpjeGxfbWJveCA9ICZjeGxkcy0+Y3hsX21ib3g7 DQo+PiArCXN0cnVjdCBjeGxfbWJveF9nZXRfc3VwX2ZlYXRzX291dCBtYm94X291dDsNCj4+ICsJ c3RydWN0IGN4bF9tYm94X2dldF9zdXBfZmVhdHNfaW4gbWJveF9pbjsNCj4+ICsJc3RydWN0IGN4 bF9tYm94X2NtZCBtYm94X2NtZDsNCj4+ICsJaW50IHJjOw0KPj4gKw0KPj4gKwltZW1zZXQoJm1i b3hfaW4sIDAsIHNpemVvZihtYm94X2luKSk7DQo+PiArCW1ib3hfaW4uY291bnQgPSBzaXplb2Yo bWJveF9vdXQpOw0KPj4gKwltZW1zZXQoJm1ib3hfb3V0LCAwLCBzaXplb2YobWJveF9vdXQpKTsN Cj4+ICsJbWJveF9jbWQgPSAoc3RydWN0IGN4bF9tYm94X2NtZCkgew0KPj4gKwkJLm9wY29kZSA9 IENYTF9NQk9YX09QX0dFVF9TVVBQT1JURURfRkVBVFVSRVMsDQo+PiArCQkuc2l6ZV9pbiA9IHNp emVvZihtYm94X2luKSwNCj4+ICsJCS5wYXlsb2FkX2luID0gJm1ib3hfaW4sDQo+PiArCQkuc2l6 ZV9vdXQgPSBzaXplb2YobWJveF9vdXQpLA0KPj4gKwkJLnBheWxvYWRfb3V0ID0gJm1ib3hfb3V0 LA0KPj4gKwkJLm1pbl9vdXQgPSBzaXplb2YobWJveF9vdXQpLA0KPj4gKwl9Ow0KPj4gKwlyYyA9 IGN4bF9pbnRlcm5hbF9zZW5kX2NtZChjeGxfbWJveCwgJm1ib3hfY21kKTsNCj4+ICsJaWYgKHJj IDwgMCkNCj4+ICsJCXJldHVybiByYzsNCj4+ICsNCj4+ICsJY3hsZHMtPm51bV9mZWF0dXJlcyA9 IGxlMTZfdG9fY3B1KG1ib3hfb3V0LnN1cHBvcnRlZF9mZWF0cyk7DQo+PiArCWlmICghY3hsZHMt Pm51bV9mZWF0dXJlcykNCj4+ICsJCXJldHVybiAtRU5PRU5UOw0KPj4gKw0KPj4gKwlyZXR1cm4g MDsNCj4+ICt9DQo+PiArDQo+PiAraW50IGN4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1cmVzKHN0cnVj dCBjeGxfZGV2X3N0YXRlICpjeGxkcykgew0KPj4gKwlpbnQgcmVtYWluX2ZlYXRzLCBtYXhfc2l6 ZSwgbWF4X2ZlYXRzLCBzdGFydCwgcmM7DQo+PiArCXN0cnVjdCBjeGxfbWFpbGJveCAqY3hsX21i b3ggPSAmY3hsZHMtPmN4bF9tYm94Ow0KPj4gKwlpbnQgZmVhdF9zaXplID0gc2l6ZW9mKHN0cnVj dCBjeGxfZmVhdF9lbnRyeSk7DQo+PiArCXN0cnVjdCBjeGxfbWJveF9nZXRfc3VwX2ZlYXRzX291 dCAqbWJveF9vdXQ7DQo+PiArCXN0cnVjdCBjeGxfbWJveF9nZXRfc3VwX2ZlYXRzX2luIG1ib3hf aW47DQo+PiArCWludCBoZHJfc2l6ZSA9IHNpemVvZigqbWJveF9vdXQpOw0KPj4gKwlzdHJ1Y3Qg Y3hsX21ib3hfY21kIG1ib3hfY21kOw0KPj4gKwlzdHJ1Y3QgY3hsX21lbV9jb21tYW5kICpjbWQ7 DQo+PiArCXZvaWQgKnB0cjsNCj4+ICsNCj4+ICsJLyogR2V0IHN1cHBvcnRlZCBmZWF0dXJlcyBp cyBvcHRpb25hbCwgbmVlZCB0byBjaGVjayAqLw0KPj4gKwljbWQgPQ0KPmN4bF9tZW1fZmluZF9j b21tYW5kKENYTF9NQk9YX09QX0dFVF9TVVBQT1JURURfRkVBVFVSRVMpOw0KPj4gKwlpZiAoIWNt ZCkNCj4+ICsJCXJldHVybiAtRU9QTk9UU1VQUDsNCj4+ICsJaWYgKCF0ZXN0X2JpdChjbWQtPmlu Zm8uaWQsIGN4bF9tYm94LT5lbmFibGVkX2NtZHMpKQ0KPj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQ Ow0KPj4gKw0KPj4gKwlyYyA9IGN4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1cmVzX2NvdW50KGN4bGRz KTsNCj4+ICsJaWYgKHJjKQ0KPj4gKwkJcmV0dXJuIHJjOw0KPj4gKw0KPj4gKwlzdHJ1Y3QgY3hs X2ZlYXRfZW50cnkgKmVudHJpZXMgX19mcmVlKGt2ZnJlZSkgPQ0KPj4gKwkJa3ZtYWxsb2MoY3hs ZHMtPm51bV9mZWF0dXJlcyAqIGZlYXRfc2l6ZSwgR0ZQX0tFUk5FTCk7DQo+PiArDQo+PiArCWlm ICghZW50cmllcykNCj4+ICsJCXJldHVybiAtRU5PTUVNOw0KPj4gKw0KPj4gKwljeGxkcy0+ZW50 cmllcyA9IG5vX2ZyZWVfcHRyKGVudHJpZXMpOw0KPj4gKwlyYyA9IGRldm1fYWRkX2FjdGlvbl9v cl9yZXNldChjeGxfbWJveC0+aG9zdCwgY3hsX2ZyZWVfZmVhdHVyZXMsDQo+PiArCQkJCSAgICAg IGN4bGRzLT5lbnRyaWVzKTsNCj4+ICsJaWYgKHJjKQ0KPj4gKwkJcmV0dXJuIHJjOw0KPj4gKw0K Pj4gKwltYXhfc2l6ZSA9IGN4bF9tYm94LT5wYXlsb2FkX3NpemUgLSBoZHJfc2l6ZTsNCj4+ICsJ LyogbWF4IGZlYXQgZW50cmllcyB0aGF0IGNhbiBmaXQgaW4gbWFpbGJveCBtYXggcGF5bG9hZCBz aXplICovDQo+PiArCW1heF9mZWF0cyA9IG1heF9zaXplIC8gZmVhdF9zaXplOw0KPj4gKwlwdHIg PSAmY3hsZHMtPmVudHJpZXNbMF07DQo+PiArDQo+PiArCW1ib3hfb3V0ID0ga3ZtYWxsb2MoY3hs X21ib3gtPnBheWxvYWRfc2l6ZSwgR0ZQX0tFUk5FTCk7DQo+PiArCWlmICghbWJveF9vdXQpDQo+ PiArCQlyZXR1cm4gLUVOT01FTTsNCj4+ICsNCj4+ICsJc3RhcnQgPSAwOw0KPj4gKwlyZW1haW5f ZmVhdHMgPSBjeGxkcy0+bnVtX2ZlYXR1cmVzOw0KPj4gKwlkbyB7DQo+PiArCQlpbnQgcmV0cmll dmVkLCBhbGxvY19zaXplLCBjb3B5X2ZlYXRzOw0KPj4gKw0KPj4gKwkJaWYgKHJlbWFpbl9mZWF0 cyA+IG1heF9mZWF0cykgew0KPj4gKwkJCWFsbG9jX3NpemUgPSBzaXplb2YoKm1ib3hfb3V0KSAr IG1heF9mZWF0cyAqIGZlYXRfc2l6ZTsNCj4+ICsJCQlyZW1haW5fZmVhdHMgPSByZW1haW5fZmVh dHMgLSBtYXhfZmVhdHM7DQo+PiArCQkJY29weV9mZWF0cyA9IG1heF9mZWF0czsNCj4+ICsJCX0g ZWxzZSB7DQo+PiArCQkJYWxsb2Nfc2l6ZSA9IHNpemVvZigqbWJveF9vdXQpICsgcmVtYWluX2Zl YXRzICoNCj5mZWF0X3NpemU7DQo+PiArCQkJY29weV9mZWF0cyA9IHJlbWFpbl9mZWF0czsNCj4+ ICsJCQlyZW1haW5fZmVhdHMgPSAwOw0KPj4gKwkJfQ0KPj4gKw0KPj4gKwkJbWVtc2V0KCZtYm94 X2luLCAwLCBzaXplb2YobWJveF9pbikpOw0KPj4gKwkJbWJveF9pbi5jb3VudCA9IGFsbG9jX3Np emU7DQo+PiArCQltYm94X2luLnN0YXJ0X2lkeCA9IHN0YXJ0Ow0KPj4gKwkJbWVtc2V0KG1ib3hf b3V0LCAwLCBhbGxvY19zaXplKTsNCj4+ICsJCW1ib3hfY21kID0gKHN0cnVjdCBjeGxfbWJveF9j bWQpIHsNCj4+ICsJCQkub3Bjb2RlID0gQ1hMX01CT1hfT1BfR0VUX1NVUFBPUlRFRF9GRUFUVVJF UywNCj4+ICsJCQkuc2l6ZV9pbiA9IHNpemVvZihtYm94X2luKSwNCj4+ICsJCQkucGF5bG9hZF9p biA9ICZtYm94X2luLA0KPj4gKwkJCS5zaXplX291dCA9IGFsbG9jX3NpemUsDQo+PiArCQkJLnBh eWxvYWRfb3V0ID0gbWJveF9vdXQsDQo+PiArCQkJLm1pbl9vdXQgPSBoZHJfc2l6ZSwNCj4+ICsJ CX07DQo+PiArCQlyYyA9IGN4bF9pbnRlcm5hbF9zZW5kX2NtZChjeGxfbWJveCwgJm1ib3hfY21k KTsNCj4+ICsJCWlmIChyYyA8IDApIHsNCj4+ICsJCQlrZnJlZShtYm94X291dCk7DQo+PiArCQkJ cmV0dXJuIHJjOw0KPj4gKwkJfQ0KPj4gKwkJaWYgKG1ib3hfY21kLnNpemVfb3V0IDw9IGhkcl9z aXplKSB7DQo+PiArCQkJcmMgPSAtRU5YSU87DQo+PiArCQkJZ290byBlcnI7DQo+PiArCQl9DQo+ PiArDQo+PiArCQkvKg0KPj4gKwkJICogTWFrZSBzdXJlIHJldHJpZXZlZCBvdXQgYnVmZmVyIGlz IG11bHRpcGxlIG9mIGZlYXR1cmUNCj4+ICsJCSAqIGVudHJpZXMuDQo+PiArCQkgKi8NCj4+ICsJ CXJldHJpZXZlZCA9IG1ib3hfY21kLnNpemVfb3V0IC0gaGRyX3NpemU7DQo+PiArCQlpZiAocmV0 cmlldmVkICUgZmVhdF9zaXplKSB7DQo+PiArCQkJcmMgPSAtRU5YSU87DQo+PiArCQkJZ290byBl cnI7DQo+PiArCQl9DQo+PiArDQo+PiArCQkvKg0KPj4gKwkJICogSWYgdGhlIHJlcG9ydGVkIG91 dHB1dCBlbnRyaWVzICogZGVmaW5lZCBlbnRyeSBzaXplICE9DQo+PiArCQkgKiByZXRyaWV2ZWQg b3V0cHV0IGJ5dGVzLCB0aGVuIHRoZSBvdXRwdXQgcGFja2FnZSBpcyBpbmNvcnJlY3QuDQo+PiAr CQkgKi8NCj4+ICsJCWlmIChtYm94X291dC0+bnVtX2VudHJpZXMgKiBmZWF0X3NpemUgIT0gcmV0 cmlldmVkKSB7DQo+PiArCQkJcmMgPSAtRU5YSU87DQo+PiArCQkJZ290byBlcnI7DQo+PiArCQl9 DQo+PiArDQo+PiArCQltZW1jcHkocHRyLCBtYm94X291dC0+ZW50cywgcmV0cmlldmVkKTsNCj4+ ICsJCXB0ciArPSByZXRyaWV2ZWQ7DQo+PiArCQkvKg0KPj4gKwkJICogSWYgdGhlIG51bWJlciBv ZiBvdXRwdXQgZW50cmllcyBpcyBsZXNzIHRoYW4gZXhwZWN0ZWQsIGFkZCB0aGUNCj4+ICsJCSAq IHJlbWFpbmluZyBlbnRyaWVzIHRvIHRoZSBuZXh0IGJhdGNoLg0KPj4gKwkJICovDQo+PiArCQly ZW1haW5fZmVhdHMgKz0gY29weV9mZWF0cyAtIG1ib3hfb3V0LT5udW1fZW50cmllczsNCj4+ICsJ CXN0YXJ0ICs9IG1ib3hfb3V0LT5udW1fZW50cmllczsNCj4+ICsJfSB3aGlsZSAocmVtYWluX2Zl YXRzKTsNCj4+ICsNCj4+ICsJa2ZyZWUobWJveF9vdXQpOw0KPj4gKwlyZXR1cm4gMDsNCj4+ICsN Cj4+ICtlcnI6DQo+PiArCWtmcmVlKG1ib3hfb3V0KTsNCj4+ICsJY3hsZHMtPm51bV9mZWF0dXJl cyA9IDA7DQo+PiArCXJldHVybiByYzsNCj4+ICt9DQo+PiArRVhQT1JUX1NZTUJPTF9OU19HUEwo Y3hsX2dldF9zdXBwb3J0ZWRfZmVhdHVyZXMsIENYTCk7DQo+PiArDQo+PiAraW50IGN4bF9nZXRf c3VwcG9ydGVkX2ZlYXR1cmVfZW50cnkoc3RydWN0IGN4bF9kZXZfc3RhdGUgKmN4bGRzLCBjb25z dCB1dWlkX3QNCj4qZmVhdF91dWlkLA0KPj4gKwkJCQkgICAgc3RydWN0IGN4bF9mZWF0X2VudHJ5 ICpmZWF0X2VudHJ5X291dCkgew0KPj4gKwlzdHJ1Y3QgY3hsX2ZlYXRfZW50cnkgKmZlYXRfZW50 cnk7DQo+PiArCWludCBjb3VudDsNCj4+ICsNCj4+ICsJLyogQ2hlY2sgQ1hMIGRldiBzdXBwb3J0 cyB0aGUgZmVhdHVyZSAqLw0KPj4gKwlmZWF0X2VudHJ5ID0gJmN4bGRzLT5lbnRyaWVzWzBdOw0K Pj4gKwlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBjeGxkcy0+bnVtX2ZlYXR1cmVzOyBjb3VudCsr LCBmZWF0X2VudHJ5KyspIHsNCj4+ICsJCWlmICh1dWlkX2VxdWFsKCZmZWF0X2VudHJ5LT51dWlk LCBmZWF0X3V1aWQpKSB7DQo+PiArCQkJbWVtY3B5KGZlYXRfZW50cnlfb3V0LCBmZWF0X2VudHJ5 LA0KPnNpemVvZigqZmVhdF9lbnRyeV9vdXQpKTsNCj4+ICsJCQlyZXR1cm4gMDsNCj4+ICsJCX0N Cj4+ICsJfQ0KPj4gKw0KPj4gKwlyZXR1cm4gLUVPUE5PVFNVUFA7DQo+PiArfQ0KPj4gK0VYUE9S VF9TWU1CT0xfTlNfR1BMKGN4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1cmVfZW50cnksIENYTCk7DQo+ PiArDQo+PiAgLyoqDQo+PiAgICogY3hsX2VudW1lcmF0ZV9jbWRzKCkgLSBFbnVtZXJhdGUgY29t bWFuZHMgZm9yIGEgZGV2aWNlLg0KPj4gICAqIEBtZHM6IFRoZSBkcml2ZXIgZGF0YSBmb3IgdGhl IG9wZXJhdGlvbiBkaWZmIC0tZ2l0DQo+PiBhL2RyaXZlcnMvY3hsL2N4bG1lbS5oIGIvZHJpdmVy cy9jeGwvY3hsbWVtLmggaW5kZXgNCj4+IGQ3YzZmZmUyYTg4NC4uNWQxNDllNjRjMjQ3IDEwMDY0 NA0KPj4gLS0tIGEvZHJpdmVycy9jeGwvY3hsbWVtLmgNCj4+ICsrKyBiL2RyaXZlcnMvY3hsL2N4 bG1lbS5oDQo+PiBAQCAtMzg5LDYgKzM4OSw4IEBAIHN0cnVjdCBjeGxfZHBhX3BlcmYgew0KPj4g ICAqIEByYW1fcmVzOiBBY3RpdmUgVm9sYXRpbGUgbWVtb3J5IGNhcGFjaXR5IGNvbmZpZ3VyYXRp b24NCj4+ICAgKiBAc2VyaWFsOiBQQ0llIERldmljZSBTZXJpYWwgTnVtYmVyDQo+PiAgICogQHR5 cGU6IEdlbmVyaWMgTWVtb3J5IENsYXNzIGRldmljZSBvciBWZW5kb3IgU3BlY2lmaWMgTWVtb3J5 DQo+PiBkZXZpY2UNCj4+ICsgKiBAZmVhdHVyZXM6IG51bWJlciBvZiBzdXBwb3J0ZWQgZmVhdHVy ZXMNCj4+ICsgKiBAZW50cmllczogbGlzdCBvZiBzdXBwb3J0ZWQgZmVhdHVyZSBlbnRyaWVzLg0K Pj4gICAqLw0KPj4gIHN0cnVjdCBjeGxfZGV2X3N0YXRlIHsNCj4+ICAJc3RydWN0IGRldmljZSAq ZGV2Ow0KPj4gQEAgLTQwNCw2ICs0MDYsOCBAQCBzdHJ1Y3QgY3hsX2Rldl9zdGF0ZSB7DQo+PiAg CXU2NCBzZXJpYWw7DQo+PiAgCWVudW0gY3hsX2RldnR5cGUgdHlwZTsNCj4+ICAJc3RydWN0IGN4 bF9tYWlsYm94IGN4bF9tYm94Ow0KPj4gKwlpbnQgbnVtX2ZlYXR1cmVzOw0KPj4gKwlzdHJ1Y3Qg Y3hsX2ZlYXRfZW50cnkgKmVudHJpZXM7DQo+DQo+SGkgU2hpanUsDQo+R29pbmcgYmFjayBhbmQg cmVmYWN0b3JpbmcgdGhlIGZ3Y3RsIGNvZGUsIEkgdGhpbmsgdGhpcyBuZWVkcyB0byBzdGF5IHdp dGgNCj5jeGxfbWFpbGJveC4gT3RoZXJ3aXNlIGl0IG1ha2VzIGl0IHJlYWxseSBoYXJkIHRvIHZl cmlmeSB0aGUgZmVhdHVyZSBlZmZlY3RzIGZvcg0KPnVzZXJzcGFjZS4gUHJlZmVyYWJseSBJIGRv bid0IHRoaW5rIHdlIHdhbnQgdG8gZXhwb3NlICdzdHJ1Y3QgY3hsX2Rldl9zdGF0ZScgdG8NCj5m d2N0bCBpZiB3ZSBkb24ndCBuZWVkIHRvLg0KPg0KPkRKDQoNCkhpIERhdmUsDQpPay4gUmV2ZXJ0 IHRvIHN0YXkgd2l0aCBzdHJ1Y3QgY3hsX21haWxib3ggYW5kIHRlc3RlZC4gQ2hhbmdlcyB3aWxs IGJlIGluIHRoZSBuZXh0IHZlcnNpb24uDQoNClRoYW5rcywNClNoaWp1DQo+DQo+PiAgfTsNCj4+ DQo+PiAgLyoqDQo+PiBAQCAtNDgyLDYgKzQ4Niw3IEBAIGVudW0gY3hsX29wY29kZSB7DQo+PiAg CUNYTF9NQk9YX09QX0dFVF9MT0dfQ0FQUwk9IDB4MDQwMiwNCj4+ICAJQ1hMX01CT1hfT1BfQ0xF QVJfTE9HICAgICAgICAgICA9IDB4MDQwMywNCj4+ICAJQ1hMX01CT1hfT1BfR0VUX1NVUF9MT0df U1VCTElTVCA9IDB4MDQwNSwNCj4+ICsJQ1hMX01CT1hfT1BfR0VUX1NVUFBPUlRFRF9GRUFUVVJF Uwk9IDB4MDUwMCwNCj4+ICAJQ1hMX01CT1hfT1BfSURFTlRJRlkJCT0gMHg0MDAwLA0KPj4gIAlD WExfTUJPWF9PUF9HRVRfUEFSVElUSU9OX0lORk8JPSAweDQxMDAsDQo+PiAgCUNYTF9NQk9YX09Q X1NFVF9QQVJUSVRJT05fSU5GTwk9IDB4NDEwMSwNCj4+IEBAIC03NjUsNiArNzcwLDQ4IEBAIGVu dW0gew0KPj4gIAlDWExfUE1FTV9TRUNfUEFTU19VU0VSLA0KPj4gIH07DQo+Pg0KPj4gKy8qIEdl dCBTdXBwb3J0ZWQgRmVhdHVyZXMgKDB4NTAwaCkgQ1hMIHIzLjEgOC4yLjkuNi4xICovIHN0cnVj dA0KPj4gK2N4bF9tYm94X2dldF9zdXBfZmVhdHNfaW4gew0KPj4gKwlfX2xlMzIgY291bnQ7DQo+ PiArCV9fbGUxNiBzdGFydF9pZHg7DQo+PiArCXU4IHJlc2VydmVkWzJdOw0KPj4gK30gX19wYWNr ZWQ7DQo+PiArDQo+PiArLyogU3VwcG9ydGVkIEZlYXR1cmUgRW50cnkgOiBQYXlsb2FkIG91dCBh dHRyaWJ1dGUgZmxhZ3MgKi8NCj4+ICsjZGVmaW5lIENYTF9GRUFUX0VOVFJZX0ZMQUdfQ0hBTkdB QkxFCUJJVCgwKQ0KPj4gKyNkZWZpbmUgQ1hMX0ZFQVRfRU5UUllfRkxBR19ERUVQRVNUX1JFU0VU X1BFUlNJU1RFTkNFX01BU0sNCj4JR0VOTUFTSygzLCAxKQ0KPj4gKyNkZWZpbmUgQ1hMX0ZFQVRf RU5UUllfRkxBR19QRVJTSVNUX0FDUk9TU19GSVJNV0FSRV9VUERBVEUNCj4JQklUKDQpDQo+PiAr I2RlZmluZSBDWExfRkVBVF9FTlRSWV9GTEFHX1NVUFBPUlRfREVGQVVMVF9TRUxFQ1RJT04JQklU KDUpDQo+PiArI2RlZmluZSBDWExfRkVBVF9FTlRSWV9GTEFHX1NVUFBPUlRfU0FWRURfU0VMRUNU SU9OCUJJVCg2KQ0KPj4gKw0KPj4gK2VudW0gY3hsX2ZlYXRfYXR0cl92YWx1ZV9wZXJzaXN0ZW5j ZSB7DQo+PiArCUNYTF9GRUFUX0FUVFJfVkFMVUVfUEVSU0lTVEVOQ0VfTk9ORSwNCj4+ICsJQ1hM X0ZFQVRfQVRUUl9WQUxVRV9QRVJTSVNURU5DRV9DWExfUkVTRVQsDQo+PiArCUNYTF9GRUFUX0FU VFJfVkFMVUVfUEVSU0lTVEVOQ0VfSE9UX1JFU0VULA0KPj4gKwlDWExfRkVBVF9BVFRSX1ZBTFVF X1BFUlNJU1RFTkNFX1dBUk1fUkVTRVQsDQo+PiArCUNYTF9GRUFUX0FUVFJfVkFMVUVfUEVSU0lT VEVOQ0VfQ09MRF9SRVNFVCwNCj4+ICsJQ1hMX0ZFQVRfQVRUUl9WQUxVRV9QRVJTSVNURU5DRV9N QVgNCj4+ICt9Ow0KPj4gKw0KPj4gK3N0cnVjdCBjeGxfZmVhdF9lbnRyeSB7DQo+PiArCXV1aWRf dCB1dWlkOw0KPj4gKwlfX2xlMTYgaWQ7DQo+PiArCV9fbGUxNiBnZXRfZmVhdF9zaXplOw0KPj4g KwlfX2xlMTYgc2V0X2ZlYXRfc2l6ZTsNCj4+ICsJX19sZTMyIGF0dHJfZmxhZ3M7DQo+PiArCXU4 IGdldF9mZWF0X3ZlcjsNCj4+ICsJdTggc2V0X2ZlYXRfdmVyOw0KPj4gKwlfX2xlMTYgc2V0X2Vm ZmVjdHM7DQo+PiArCXU4IHJlc2VydmVkWzE4XTsNCj4+ICt9IF9fcGFja2VkOw0KPj4gKw0KPj4g K3N0cnVjdCBjeGxfbWJveF9nZXRfc3VwX2ZlYXRzX291dCB7DQo+PiArCV9fbGUxNiBudW1fZW50 cmllczsNCj4+ICsJX19sZTE2IHN1cHBvcnRlZF9mZWF0czsNCj4+ICsJdTggcmVzZXJ2ZWRbNF07 DQo+PiArCXN0cnVjdCBjeGxfZmVhdF9lbnRyeSBlbnRzW10NCj4+ICtfX2NvdW50ZWRfYnkobGUz Ml90b19jcHUoc3VwcG9ydGVkX2ZlYXRzKSk7DQo+PiArfSBfX3BhY2tlZDsNCj4+ICsNCj4+ICBp bnQgY3hsX2ludGVybmFsX3NlbmRfY21kKHN0cnVjdCBjeGxfbWFpbGJveCAqY3hsX21ib3gsDQo+ PiAgCQkJICBzdHJ1Y3QgY3hsX21ib3hfY21kICpjbWQpOw0KPj4gIGludCBjeGxfZGV2X3N0YXRl X2lkZW50aWZ5KHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRlICptZHMpOyBAQCAtODI0LDQNCj4+ICs4 NzEsOCBAQCBzdHJ1Y3QgY3hsX2hkbSB7ICBzdHJ1Y3Qgc2VxX2ZpbGU7ICBzdHJ1Y3QgZGVudHJ5 DQo+PiAqY3hsX2RlYnVnZnNfY3JlYXRlX2Rpcihjb25zdCBjaGFyICpkaXIpOyAgdm9pZCBjeGxf ZHBhX2RlYnVnKHN0cnVjdA0KPj4gc2VxX2ZpbGUgKmZpbGUsIHN0cnVjdCBjeGxfZGV2X3N0YXRl ICpjeGxkcyk7DQo+PiArDQo+PiAraW50IGN4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1cmVzKHN0cnVj dCBjeGxfZGV2X3N0YXRlICpjeGxkcyk7IGludA0KPj4gK2N4bF9nZXRfc3VwcG9ydGVkX2ZlYXR1 cmVfZW50cnkoc3RydWN0IGN4bF9kZXZfc3RhdGUgKmN4bGRzLCBjb25zdCB1dWlkX3QNCj4qZmVh dF91dWlkLA0KPj4gKwkJCQkgICAgc3RydWN0IGN4bF9mZWF0X2VudHJ5ICpmZWF0X2VudHJ5X291 dCk7DQo+PiAgI2VuZGlmIC8qIF9fQ1hMX01FTV9IX18gKi8NCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2N4bC9wY2kuYyBiL2RyaXZlcnMvY3hsL3BjaS5jIGluZGV4DQo+PiAzYzczZGU0NzViZjMu LmNlYzg4ZTNhMTc1NCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvY3hsL3BjaS5jDQo+PiArKysg Yi9kcml2ZXJzL2N4bC9wY2kuYw0KPj4gQEAgLTg3Miw2ICs4NzIsMTAgQEAgc3RhdGljIGludCBj eGxfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdA0KPnN0cnVjdCBwY2lfZGV2 aWNlX2lkICppZCkNCj4+ICAJaWYgKHJjKQ0KPj4gIAkJcmV0dXJuIHJjOw0KPj4NCj4+ICsJcmMg PSBjeGxfZ2V0X3N1cHBvcnRlZF9mZWF0dXJlcyhjeGxkcyk7DQo+PiArCWlmIChyYykNCj4+ICsJ CWRldl9kYmcoJnBkZXYtPmRldiwgIk5vIGZlYXR1cmVzIGVudW1lcmF0ZWQuXG4iKTsNCj4+ICsN Cj4+ICAJcmMgPSBjeGxfc2V0X3RpbWVzdGFtcChtZHMpOw0KPj4gIAlpZiAocmMpDQo+PiAgCQly ZXR1cm4gcmM7DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2N4bF9tZW0uaA0K Pj4gYi9pbmNsdWRlL3VhcGkvbGludXgvY3hsX21lbS5oIGluZGV4IGM2YzBmZTI3NDk1ZC4uYmQy NTM1OTYyZjcwIDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2N4bF9tZW0uaA0K Pj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2N4bF9tZW0uaA0KPj4gQEAgLTUwLDYgKzUwLDcg QEANCj4+ICAJX19fQyhHRVRfTE9HX0NBUFMsICJHZXQgTG9nIENhcGFiaWxpdGllcyIpLAkJCSAg XA0KPj4gIAlfX19DKENMRUFSX0xPRywgIkNsZWFyIExvZyIpLAkJCQkJICBcDQo+PiAgCV9fX0Mo R0VUX1NVUF9MT0dfU1VCTElTVCwgIkdldCBTdXBwb3J0ZWQgTG9ncyBTdWItTGlzdCIpLAkgIFwN Cj4+ICsJX19fQyhHRVRfU1VQUE9SVEVEX0ZFQVRVUkVTLCAiR2V0IFN1cHBvcnRlZCBGZWF0dXJl cyIpLA0KPgkgIFwNCj4+ICAJX19fQyhNQVgsICJpbnZhbGlkIC8gbGFzdCBjb21tYW5kIikNCj4+ DQo+PiAgI2RlZmluZSBfX19DKGEsIGIpIENYTF9NRU1fQ09NTUFORF9JRF8jI2ENCj4NCg0K