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 899F8C27C53 for ; Fri, 7 Jun 2024 15:46:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A3F476B009D; Fri, 7 Jun 2024 11:46:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9EE4C6B009E; Fri, 7 Jun 2024 11:46:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B6046B009F; Fri, 7 Jun 2024 11:46:12 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 685616B009D for ; Fri, 7 Jun 2024 11:46:12 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 21072A2F28 for ; Fri, 7 Jun 2024 15:46:12 +0000 (UTC) X-FDA: 82204518984.28.5F9FFE4 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf14.hostedemail.com (Postfix) with ESMTP id C0A76100014 for ; Fri, 7 Jun 2024 15:46:07 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf14.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=1717775168; 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=/OHJPwafl7C7FRXAKQis5izcbAtMoVq94h5OfhgtxE8=; b=s9LOhwJAMor7bkSOAVWyT39uJroLP58rJ1oOfm4MaWXC/WLkZwKYo+BRWvBzd+oF9vLTVI y6Fv2zMIc6DjRaoiUBH2tLtwpXOCs4tsBJpxQZp3gXGevEJag48He1+kK98sojSjBth2a8 RO4fe40y7PtYHHyUJbJ3IrkQD9OazRA= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf14.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=1717775168; a=rsa-sha256; cv=none; b=pC5pNvtmZQSqaehHMtAFo0Ce7obZgdCDTa3OrQKRC9hAyiJ4BqjX2xEouHxeIKaETclSHv 0w4PZ2SETWTdT0F3sxcDrB0v20rJKSXmUapOfpWM7tTBZT99qQvTUvfEc5vS+CJu/w4dqX rMrW/mZJqjqQgcSbiKd8kJn9fQmWIC0= Received: from mail.maildlp.com (unknown [172.18.186.231]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Vwlmf3kxYz6GCgr; Fri, 7 Jun 2024 23:41:38 +0800 (CST) Received: from lhrpeml100005.china.huawei.com (unknown [7.191.160.25]) by mail.maildlp.com (Postfix) with ESMTPS id E1D911402CB; Fri, 7 Jun 2024 23:46:02 +0800 (CST) Received: from lhrpeml500006.china.huawei.com (7.191.161.198) by lhrpeml100005.china.huawei.com (7.191.160.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Fri, 7 Jun 2024 16:46:02 +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; Fri, 7 Jun 2024 16:46:02 +0100 From: Shiju Jose To: Daniel Ferguson CC: "linux-edac@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "david@redhat.com" , "Vilas.Sridharan@amd.com" , "leo.duran@amd.com" , "Yazen.Ghannam@amd.com" , "rientjes@google.com" , "jiaqiyan@google.com" , "tony.luck@intel.com" , "Jon.Grimm@amd.com" , "dave.hansen@linux.intel.com" , "rafael@kernel.org" , "lenb@kernel.org" , "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" , tanxiaofei , "Zengtao (B)" , "kangkang.shen@futurewei.com" , wanghuiqiang , Linuxarm , "ira.weiny@intel.com" , "vishal.l.verma@intel.com" , "alison.schofield@intel.com" , "dave.jiang@intel.com" , Jonathan Cameron , "dave@stgolabs.net" , "dan.j.williams@intel.com" , "linux-mm@kvack.org" , "linux-acpi@vger.kernel.org" , "linux-cxl@vger.kernel.org" Subject: RE: [RFC PATCH v8 10/10] ras: scrub: ACPI RAS2: Add memory ACPI RAS2 driver Thread-Topic: [RFC PATCH v8 10/10] ras: scrub: ACPI RAS2: Add memory ACPI RAS2 driver Thread-Index: AQHaknlRNDQEUQ8LZ0WAYACoMfWy2bG56kQAgAJ2exA= Date: Fri, 7 Jun 2024 15:46:02 +0000 Message-ID: References: <20240419164720.1765-1-shiju.jose@huawei.com> <20240419164720.1765-11-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.195.244.131] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Queue-Id: C0A76100014 X-Stat-Signature: qpix56k7sq9soo4mp9nhrwcbod5yyq3r X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1717775167-38100 X-HE-Meta: U2FsdGVkX1/QVsaxWziuiRisr/cQNev134D6XJT3NMOy3NmWfcKS46KcllHITEQk3yHcTJ3xa0NAstZ7CChMM3Yl60oVApyQvj9j9lFE0zNINDMLTyVgCVel0HGV2QczGKp8PQLdI8YBP/zEOmTJA7dK1FepWlbRY9zHfl1EXFzZkWu5X38px982bbCEtP50zgyRKfcg8Pdzq62b0M2vpidpQylwPKJTcE3gwbzzGwnvIxMWHMIR72/MuK5UfHlfO5YYUxdFE2hiPNvatzd4gjUk8Nz1ByIgfwPImdl2tdtcGCGh63mY+Fomf7dAh4N/MI3kkrPfIM137pV+WwNHnrn9qshppLJJGXTAMiONqDtrJrT/QHf2iqsASnYdjWxAl3Y8VStLg2oqozWIycVsxjavcntl42VIN0NYCSNrupy3tl6NPqiy4upJh28ZW9mEcDWS3K4AR5nw6Qd1+fSTbse12p+DDXYT6x4imMh8Vws50sFRAwuZznZRHv3fj4cpUJ7z988wusesEtJKKxYoUwKz3d1xZwWZBmYPbMxpbFP0DEQD0zZ3cSicy+OmIIAwcuMYSEEbc/SLp1BJuXv1JbPM9cXJDVCpFt7wIDD+bVS8Xku5UsUO1wwiVoJqDF8MfR5KPsxX8+Pls5e+ROABzoq1MdaOA6ItZDjM2IubNRqx6jZZc0tDf+LjriQJh5hQlp3mjloL/YOPn8WHB+qX6gitPEVfF+ZhZOxKpSZ890ZobmSePRaFPDw5an0lVLNGlg5EU6FOwCdIWG3OjYvqcahWW6p8/gZ1wPZt1j1MkIIzFDjwsHUopHUL7GL4D2YSbsOWC6KMhhh9G0DjK/p9LaghYDsYONTcf+aTGwO4wcS829NhVu+AmC+mcqRHbbJc5uTd7cZyjbZfRaDNKj8zZZjX+V/rDxpK0TpkqZS6jVkPGj4ijATo0lWCmYmo35yYJVbSWQt1ITDW/Krrqyc rUMtLKfv 4t49AnrSerEWcAArtc+8MrOcmYo8J4MIP/h1EPAwPo5EViMyp35ygcG3Du2LRULrzz37R+bATWAXZyWgh6J/uOPdUij9PGh4P/NoujOS+soDUmb7aJuyG/ouCZXmr2e/n8/qhPaoiU0tkwbOSmZR8ZqP6hRWPowQ7g93kMxHCs0w8wTqfaFuc2bGAjsYgY6RpdXxK3GQ/LkH/8huBS6dulcxaSHFA8PC+qhyAn0D7NsSJ+5ak7h9YwKtSRjCRxF3LvAGCz4k+HmnLUosyD6Ia8ZDKnSsgJqHJsbWoY3d1b+BosDWL40Zo0rmNcSYzErXhqsc11a35P6HGbTALWaw3yhgr/A1eMeOcOu8zlDsRQkVPKFqJx7llBslhYuB4eeD4fJvol7Ng2/GKngIY1+cwmNvNsrXi7Ba5JHBTiCkJY2VGdSmlOFpsYIREGT1/TAhUQhE4k71yUy1zW57dGWmBrVGQ21YSYB2gpR7PAYSYbSOid0Ve8QbnFQRTzJkguRW6oeNX+2T3pBYMYhC9+e53Sl7MH/8IaYL6Xpv+joEV4h65qchQBMbmAJpqU93bUgcVhBVnQUlypl4SgsiQgwqZ+E4CBgdyQk1rqNa+eNqp7kFT5lsZR09i+/y0NZgsZtK7nwktPp82L4zbBEELw7g/izuZyjn97uHwahjLMjssiRF+KQMLpIj72RLjiPL6m0CW3R6l5fecbfvHO71ba4jVrhJxeHhbNcnjVx72lTuzZwE1hyspqmQhYUdJiv9rNZNZbeXmvCFfL4E9Yb1ApCqUzFpxgXkT/Vg2gDKffAXp2i47e7c2SCA9XO3jjHWn7n2GoNkIUwmiXUGaY1j8+tXFIx0arGl6zSIzg30P2lTuwUvfvTYAt2TkF58lSevTZp6DdeHiQkz5pZxsc3LWdR0/aWsOiKXZgDdtqYyQIN97MTAOy47qFAosBdX9jess0U5fEx3FPlVVSJSYpIw= 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: SGkgRGFuaWVsLA0KDQpUaGFua3MgZm9yIHRoZSBmZWVkYmFjay4NCg0KPi0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+RnJvbTogRGFuaWVsIEZlcmd1c29uIDxkYW5pZWxmQG9zLmFtcGVyZWNv bXB1dGluZy5jb20+DQo+U2VudDogMDUgSnVuZSAyMDI0IDIyOjMzDQo+VG86IFNoaWp1IEpvc2Ug PHNoaWp1Lmpvc2VAaHVhd2VpLmNvbT4NCj5DYzogbGludXgtZWRhY0B2Z2VyLmtlcm5lbC5vcmc7 IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ZGF2aWRAcmVkaGF0LmNvbTsgVmlsYXMu U3JpZGhhcmFuQGFtZC5jb207IGxlby5kdXJhbkBhbWQuY29tOw0KPllhemVuLkdoYW5uYW1AYW1k LmNvbTsgcmllbnRqZXNAZ29vZ2xlLmNvbTsgamlhcWl5YW5AZ29vZ2xlLmNvbTsNCj50b255Lmx1 Y2tAaW50ZWwuY29tOyBKb24uR3JpbW1AYW1kLmNvbTsgZGF2ZS5oYW5zZW5AbGludXguaW50ZWwu Y29tOw0KPnJhZmFlbEBrZXJuZWwub3JnOyBsZW5iQGtlcm5lbC5vcmc7IG5hb3lhLmhvcmlndWNo aUBuZWMuY29tOw0KPmphbWVzLm1vcnNlQGFybS5jb207IGp0aG91Z2h0b25AZ29vZ2xlLmNvbTsg c29tYXN1bmRhcmFtLmFAaHBlLmNvbTsNCj5lcmRlbWFrdGFzQGdvb2dsZS5jb207IHBnb25kYUBn b29nbGUuY29tOyBkdWVud2VuQGdvb2dsZS5jb207DQo+bWlrZS5tYWx2ZXN0dXRvQGludGVsLmNv bTsgZ3RoZWxlbkBnb29nbGUuY29tOw0KPndzY2h3YXJ0ekBhbXBlcmVjb21wdXRpbmcuY29tOyBk ZmVyZ3Vzb25AYW1wZXJlY29tcHV0aW5nLmNvbTsNCj53YnNAb3MuYW1wZXJlY29tcHV0aW5nLmNv bTsgbmlmYW4uY3hsQGdtYWlsLmNvbTsgdGFueGlhb2ZlaQ0KPjx0YW54aWFvZmVpQGh1YXdlaS5j b20+OyBaZW5ndGFvIChCKSA8cHJpbWUuemVuZ0BoaXNpbGljb24uY29tPjsNCj5rYW5na2FuZy5z aGVuQGZ1dHVyZXdlaS5jb207IHdhbmdodWlxaWFuZyA8d2FuZ2h1aXFpYW5nQGh1YXdlaS5jb20+ Ow0KPkxpbnV4YXJtIDxsaW51eGFybUBodWF3ZWkuY29tPjsgaXJhLndlaW55QGludGVsLmNvbTsN Cj52aXNoYWwubC52ZXJtYUBpbnRlbC5jb207IGFsaXNvbi5zY2hvZmllbGRAaW50ZWwuY29tOyBk YXZlLmppYW5nQGludGVsLmNvbTsNCj5Kb25hdGhhbiBDYW1lcm9uIDxqb25hdGhhbi5jYW1lcm9u QGh1YXdlaS5jb20+OyBkYXZlQHN0Z29sYWJzLm5ldDsNCj5kYW4uai53aWxsaWFtc0BpbnRlbC5j b207IGxpbnV4LW1tQGt2YWNrLm9yZzsgbGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmc7DQo+bGlu dXgtY3hsQHZnZXIua2VybmVsLm9yZw0KPlN1YmplY3Q6IFJlOiBbUkZDIFBBVENIIHY4IDEwLzEw XSByYXM6IHNjcnViOiBBQ1BJIFJBUzI6IEFkZCBtZW1vcnkgQUNQSQ0KPlJBUzIgZHJpdmVyDQo+ DQo+PiArLyogQ29udGV4dCAtIGxvY2sgbXVzdCBiZSBoZWxkICovDQo+PiArc3RhdGljIGludCBy YXMyX2dldF9wYXRyb2xfc2NydWJfcnVubmluZyhzdHJ1Y3QgcmFzMl9zY3J1Yl9jdHggKnJhczJf Y3R4LA0KPj4gKwkJCQkJIGJvb2wgKnJ1bm5pbmcpDQo+PiArew0KPj4gKwlzdHJ1Y3QgYWNwaV9y YXMyX3BzX3NoYXJlZF9tZW0gX19pb21lbSAqcHNfc20gPSAodm9pZCAqKQ0KPj4gKwkJCQkJcmFz Ml9jdHgtPnBjY19zdWJzcGFjZS0NCj4+cGNjX2NvbW1fYWRkcjsNCj4+ICsJaW50IHJldDsNCj4+ ICsNCj4+ICsJaWYgKHJhczJfY3R4LT5iZykNCj4+ICsJCSpydW5uaW5nID0gdHJ1ZTsNCj4+ICsN Cj4+ICsJcHNfc20tPmNvbW1vbi5zZXRfY2FwYWJpbGl0aWVzWzBdID0NCj5SQVMyX1NVUFBPUlRf SFdfUEFSVE9MX1NDUlVCOw0KPj4gKwlwc19zbS0+cGFyYW1zLnBhdHJvbF9zY3J1Yl9jb21tYW5k ID0NCj5SQVMyX0dFVF9QQVRST0xfUEFSQU1FVEVSUzsNCj4NCj5OZWVkIHRvIHJlc2V0IHRoZSBh ZGRyZXNzIHJhbmdlIChiYXNlIGFuZCBzaXplKS4gQSB1c2VyIG1heSBoYXZlIHByZXZpb3VzbHkN Cj5jYWxsZWQgIkVuYWJsZSBCYWNrZ3JvdW5kIiB3aGVyZSB0aGUgY29kZSB6ZXJvcyBvdXQgdGhl c2UgcGFyYW1ldGVycy4NCj4JcHNfc20tPnBhcmFtcy5yZXF1ZXN0ZWRfYWRkcmVzc19yYW5nZVsw XSA9IHJhczJfY3R4LT5iYXNlOw0KPglwc19zbS0+cGFyYW1zLnJlcXVlc3RlZF9hZGRyZXNzX3Jh bmdlWzFdID0gcmFzMl9jdHgtPnNpemU7DQpUaGUgYWRkcmVzcyByYW5nZSBpcyBiZWluZyBzZXQg dG8gdGhlIGFib3ZlIGluIHRoZSByYXMyX2h3X3NjcnViX3NldF9lbmFibGVkX29kKCksIGJlY2F1 c2UgdGhleSBhcmUNCnZhbGlkIGZvciBvbi1kZW1hbmQgc2NydWJiaW5nIG9ubHkuIA0KDQpIb3dl dmVyIHRoZSByYXMyX2N0eC0+YmFzZSBhbmQgcmFzMl9jdHgtPnNpemUgYXJlIHNldCB0byB0aGUg IA0KcmFzMl9jdHgtPmJhc2UgPSBwc19zbS0+cGFyYW1zLmFjdHVhbF9hZGRyZXNzX3JhbmdlWzBd Ow0KcmFzMl9jdHgtPnNpemUgPSBwc19zbS0+cGFyYW1zLmFjdHVhbF9hZGRyZXNzX3JhbmdlWzFd Ow0KaW4gdGhlIHJhczJfdXBkYXRlX3BhdHJvbF9zY3J1Yl9wYXJhbXNfY2FjaGUoKSwgd2hpY2gg aXMgY2FsbGVkIGFmdGVyIGVuYWJsaW5nIGJnIHNjcnViIGFuZCBvbi1kZW1hbmQgc2NydWIuIA0K VGh1cyByYXMyX2N0eC0+YmFzZSBhbmQgcmFzMl9jdHgtPnNpemUgbWF5IGhhdmUgYSAwIG9yIGdh cmJhZ2UgdmFsdWUgZm9yIGJnIHNjcnViIGJlY2F1c2UgYWRkcmVzcyByYW5nZSBpcyBub3QgdmFs aWQgZm9yIGJnIHNjcnViYmluZyBhcyBwZXJjIEFDUEkgc3BlY2lmaWNhdGlvbi4gSSB3aWxsIGFk ZCBjaGVja3MgdG8gcmV0YWluIHRoZSBjYWNoZWQgYWRkcmVzcyByYW5nZSBpZiBiZyBzY3J1YiBp cyBlbmFibGVkLiANCj4NCj4NCj4+ICsNCj4+ICsJcmV0ID0gcmFzMl9zZW5kX3BjY19jbWQocmFz Ml9jdHgsIFJBUzJfUENDX0NNRF9FWEVDKTsNCj4+ICsJaWYgKHJldCkgew0KPj4gKwkJZGV2X2Vy cihyYXMyX2N0eC0+ZGV2LCAiZmFpbGVkIHRvIHJlYWQgcGFyYW1ldGVyc1xuIik7DQo+PiArCQly ZXR1cm4gcmV0Ow0KPj4gKwl9DQo+PiArDQo+PiArCSpydW5uaW5nID0gcHNfc20tPnBhcmFtcy5m bGFncyAmDQo+PiArUkFTMl9QQVRST0xfU0NSVUJfRkxBR19TQ1JVQkJFUl9SVU5OSU5HOw0KPj4g Kw0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludCByYXMyX2h3X3Nj cnViX3dyaXRlX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LCB1NjQgcmF0ZSkgew0KPj4gKwlzdHJ1 Y3QgcmFzMl9zY3J1Yl9jdHggKnJhczJfY3R4ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+PiAr CWJvb2wgcnVubmluZzsNCj4+ICsJaW50IHJldDsNCj4+ICsNCj4+ICsJZ3VhcmQobXV0ZXgpKCZy YXMyX2N0eC0+bG9jayk7DQo+PiArCXJldCA9IHJhczJfZ2V0X3BhdHJvbF9zY3J1Yl9ydW5uaW5n KHJhczJfY3R4LCAmcnVubmluZyk7DQo+PiArCWlmIChyZXQpDQo+PiArCQlyZXR1cm4gcmV0Ow0K Pj4gKw0KPj4gKwlpZiAocnVubmluZykNCj4+ICsJCXJldHVybiAtRUJVU1k7DQo+DQo+DQo+SSBz dWdnZXN0IHdlIGRvIG5vdCBjaGVjayBpZiB0aGUgcGF0cm9sIHNjcnViIGlzIHJ1bm5pbmcgd2hl biB3ZSBhcmUgbWVyZWx5DQo+dXBkYXRpbmcgY2FjaGVkIHZhbHVlcy4gTW9yZSBpbXBvcnRhbnRs eSwgaWYgd2UgaGFkIHByZXZpb3VzbHkgd3JvdGUgYW4gaW52YWxpZA0KPnZhbHVlICh0aGF0IGlz IG9ubHkgaW52YWxpZGF0ZWQgYnkgZmlybXdhcmUgYWZ0ZXIgZXhlY3V0aW5nIGEgY29tbWFuZCks IHRoZW4NCj53aGVuIHdlIHRyeSB0byB3cml0ZSBhIGNvcnJlY3QgdmFsdWUsIHRoaXMgInJhczJf Z2V0X3BhdHJvbF9zY3J1Yl9ydW5uaW5nIg0KPmNoZWNrIHdpbGwgYWx3YXlzIGZhaWwsIHRoZXJl Zm9yZSBwcmV2ZW50aW5nIHVzIGZyb20gY29ycmVjdGluZyBvdXIgZXJyb3IuDQoNCkluIG91ciBv cGluaW9uLCB3cml0ZSB0aGUgcmF0ZSBhbmQgcmFuZ2UgZXRjLCB0aG91Z2ggdXBkYXRpbmcgdGhl IGNhY2hlZCB2YWx1ZXMsIHNob3VsZCBiZSBhbGxvd2VkIG9ubHkgd2hlbiB0aGUgc2NydWIgaXMg Tk9UIHJ1bm5pbmcgdG8gYXZvaWQgY29uZnVzaW9uIHRoaW5raW5nIHRoZXkgYXJlIGFjdHVhbGx5 IHNldCBpbiB0aGUgcnVubmluZyBzY3J1YmJlciwgd2hlbiByZWFkIHRoZW0gYmFjayBpbiB0aGUg dXNlcnNwYWNlLg0KPg0KPj4gKw0KPj4gKwlpZiAocmF0ZSA8IHJhczJfY3R4LT5yYXRlX21pbiB8 fCByYXRlID4gcmFzMl9jdHgtPnJhdGVfbWF4KQ0KPj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+PiAr DQo+PiArCXJhczJfY3R4LT5yYXRlID0gcmF0ZTsNCj4+ICsNCj4+ICsJcmV0dXJuIDA7DQo+PiAr fQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgcmFzMl9od19zY3J1Yl9yZWFkX3JhdGUoc3RydWN0IGRl dmljZSAqZGV2LCB1NjQgKnJhdGUpIHsNCj4+ICsJc3RydWN0IHJhczJfc2NydWJfY3R4ICpyYXMy X2N0eCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPj4gKw0KPj4gKwkqcmF0ZSA9IHJhczJfY3R4 LT5yYXRlOw0KPj4gKw0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGlu dCByYXMyX2h3X3NjcnViX3JlYWRfcmF0ZV9hdmFpbChzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NA0K Pj4gKyptaW4sIHU2NCAqbWF4KSB7DQo+PiArCXN0cnVjdCByYXMyX3NjcnViX2N0eCAqcmFzMl9j dHggPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4+ICsNCj4+ICsJKm1pbiA9IHJhczJfY3R4LT5y YXRlX21pbjsNCj4+ICsJKm1heCA9IHJhczJfY3R4LT5yYXRlX21heDsNCj4+ICsNCj4+ICsJcmV0 dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgcmFzMl9od19zY3J1Yl9yZWFkX3Jh bmdlKHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0ICpiYXNlLA0KPj4gK3U2NCAqc2l6ZSkgew0KPj4g KwlzdHJ1Y3QgcmFzMl9zY3J1Yl9jdHggKnJhczJfY3R4ID0gZGV2X2dldF9kcnZkYXRhKGRldik7 DQo+PiArDQo+PiArCSpiYXNlID0gcmFzMl9jdHgtPmJhc2U7DQo+PiArCSpzaXplID0gcmFzMl9j dHgtPnNpemU7DQo+PiArDQo+PiArCXJldHVybiAwOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMg aW50IHJhczJfaHdfc2NydWJfd3JpdGVfcmFuZ2Uoc3RydWN0IGRldmljZSAqZGV2LCB1NjQgYmFz ZSwNCj4+ICt1NjQgc2l6ZSkgew0KPj4gKwlzdHJ1Y3QgcmFzMl9zY3J1Yl9jdHggKnJhczJfY3R4 ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+PiArCWJvb2wgcnVubmluZzsNCj4+ICsJaW50IHJl dDsNCj4+ICsNCj4+ICsJZ3VhcmQobXV0ZXgpKCZyYXMyX2N0eC0+bG9jayk7DQo+PiArCXJldCA9 IHJhczJfZ2V0X3BhdHJvbF9zY3J1Yl9ydW5uaW5nKHJhczJfY3R4LCAmcnVubmluZyk7DQo+PiAr CWlmIChyZXQpDQo+PiArCQlyZXR1cm4gcmV0Ow0KPj4gKw0KPj4gKwlpZiAocnVubmluZykNCj4+ ICsJCXJldHVybiAtRUJVU1k7DQo+DQo+SSBzdWdnZXN0IHdlIGRvIG5vdCBjaGVjayBpZiB0aGUg cGF0cm9sIHNjcnViIGlzIHJ1bm5pbmcuIFNlZSBwcmV2aW91cyBjb21tZW50DQo+YWJvdmUuDQpT YW1lIGFzIGFib3ZlLg0KDQo+DQo+PiArDQo+PiArCXJhczJfY3R4LT5iYXNlID0gYmFzZTsNCj4+ ICsJcmFzMl9jdHgtPnNpemUgPSBzaXplOw0KPj4gKw0KPj4gKwlyZXR1cm4gMDsNCj4+ICt9DQo+ PiArDQo+PiArc3RhdGljIGludCByYXMyX2h3X3NjcnViX3NldF9lbmFibGVkX2JnKHN0cnVjdCBk ZXZpY2UgKmRldiwgYm9vbA0KPj4gK2VuYWJsZSkgew0KPj4gKwlzdHJ1Y3QgcmFzMl9zY3J1Yl9j dHggKnJhczJfY3R4ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+PiArCXN0cnVjdCBhY3BpX3Jh czJfcHNfc2hhcmVkX21lbSBfX2lvbWVtICpwc19zbSA9ICh2b2lkICopDQo+PiArCQkJCQlyYXMy X2N0eC0+cGNjX3N1YnNwYWNlLQ0KPj5wY2NfY29tbV9hZGRyOw0KPj4gKwlpbnQgcmV0Ow0KPj4g Kw0KPj4gKwlndWFyZChtdXRleCkoJnJhczJfY3R4LT5sb2NrKTsNCj4+ICsJcHNfc20tPmNvbW1v bi5zZXRfY2FwYWJpbGl0aWVzWzBdID0NCj5SQVMyX1NVUFBPUlRfSFdfUEFSVE9MX1NDUlVCOw0K Pj4gKwlpZiAoZW5hYmxlKSB7DQo+PiArCQlwc19zbS0+cGFyYW1zLnJlcXVlc3RlZF9hZGRyZXNz X3JhbmdlWzBdID0gMDsNCj4+ICsJCXBzX3NtLT5wYXJhbXMucmVxdWVzdGVkX2FkZHJlc3NfcmFu Z2VbMV0gPSAwOw0KPj4gKwkJcHNfc20tPnBhcmFtcy5zY3J1Yl9wYXJhbXNfaW4gJj0NCj5+UkFT Ml9QQVRST0xfU0NSVUJfUkFURV9JTl9NQVNLOw0KPj4gKwkJcHNfc20tPnBhcmFtcy5zY3J1Yl9w YXJhbXNfaW4gfD0NCj5GSUVMRF9QUkVQKFJBUzJfUEFUUk9MX1NDUlVCX1JBVEVfSU5fTUFTSywN Cj4+ICsJCQkJCQkJICAgIHJhczJfY3R4LT5yYXRlKTsNCj4+ICsJCXBzX3NtLT5wYXJhbXMucGF0 cm9sX3NjcnViX2NvbW1hbmQgPQ0KPlJBUzJfU1RBUlRfUEFUUk9MX1NDUlVCQkVSOw0KPj4gKwl9 IGVsc2Ugew0KPj4gKwkJcHNfc20tPnBhcmFtcy5wYXRyb2xfc2NydWJfY29tbWFuZCA9DQo+UkFT Ml9TVE9QX1BBVFJPTF9TQ1JVQkJFUjsNCj4+ICsJfQ0KPj4gKwlwc19zbS0+cGFyYW1zLnNjcnVi X3BhcmFtc19pbiAmPQ0KPn5SQVMyX1BBVFJPTF9TQ1JVQl9FTl9CQUNLR1JPVU5EOw0KPj4gKwlw c19zbS0+cGFyYW1zLnNjcnViX3BhcmFtc19pbiB8PQ0KPkZJRUxEX1BSRVAoUkFTMl9QQVRST0xf U0NSVUJfRU5fQkFDS0dST1VORCwNCj4+ICsJCQkJCQkgICAgZW5hYmxlKTsNCj4+ICsNCj4+ICsJ cmV0ID0gcmFzMl9zZW5kX3BjY19jbWQocmFzMl9jdHgsIFJBUzJfUENDX0NNRF9FWEVDKTsNCj4+ ICsJaWYgKHJldCkgew0KPj4gKwkJZGV2X2VycihyYXMyX2N0eC0+ZGV2LCAiJXM6IGZhaWxlZCB0 byBlbmFibGUoJWQpIGJhY2tncm91bmQNCj5zY3J1YmJpbmdcbiIsDQo+PiArCQkJX19mdW5jX18s IGVuYWJsZSk7DQo+PiArCQlyZXR1cm4gcmV0Ow0KPj4gKwl9DQo+PiArCXJhczJfY3R4LT5iZyA9 IHRydWU7DQo+PiArDQo+PiArCS8qIFVwZGF0ZSB0aGUgY2FjaGUgdG8gYWNjb3VudCBmb3Igcm91 bmRpbmcgb2Ygc3VwcGxpZWQgcGFyYW1ldGVycyBhbmQNCj5zaW1pbGFyICovDQo+PiArCXJldHVy biByYXMyX3VwZGF0ZV9wYXRyb2xfc2NydWJfcGFyYW1zX2NhY2hlKHJhczJfY3R4KTsNCj4+ICt9 DQo+PiArDQo+PiArc3RhdGljIGludCByYXMyX2h3X3NjcnViX2dldF9lbmFibGVkX2JnKHN0cnVj dCBkZXZpY2UgKmRldiwgYm9vbA0KPj4gKyplbmFibGVkKSB7DQo+PiArCXN0cnVjdCByYXMyX3Nj cnViX2N0eCAqcmFzMl9jdHggPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4+ICsNCj4+ICsJKmVu YWJsZWQgPSByYXMyX2N0eC0+Ymc7DQo+PiArDQo+PiArCXJldHVybiAwOw0KPj4gK30NCj4+ICsN Cj4+ICtzdGF0aWMgaW50IHJhczJfaHdfc2NydWJfc2V0X2VuYWJsZWRfb2Qoc3RydWN0IGRldmlj ZSAqZGV2LCBib29sDQo+PiArZW5hYmxlKSB7DQo+PiArCXN0cnVjdCByYXMyX3NjcnViX2N0eCAq cmFzMl9jdHggPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4+ICsJc3RydWN0IGFjcGlfcmFzMl9w c19zaGFyZWRfbWVtIF9faW9tZW0gKnBzX3NtID0gKHZvaWQgKikNCj4+ICsJCQkJCXJhczJfY3R4 LT5wY2Nfc3Vic3BhY2UtDQo+PnBjY19jb21tX2FkZHI7DQo+PiArCWJvb2wgZW5hYmxlZDsNCj4+ ICsJaW50IHJldDsNCj4+ICsNCj4+ICsJZ3VhcmQobXV0ZXgpKCZyYXMyX2N0eC0+bG9jayk7DQo+ PiArCXBzX3NtLT5jb21tb24uc2V0X2NhcGFiaWxpdGllc1swXSA9DQo+UkFTMl9TVVBQT1JUX0hX X1BBUlRPTF9TQ1JVQjsNCj4+ICsJaWYgKGVuYWJsZSkgew0KPj4gKwkJaWYgKCFyYXMyX2N0eC0+ c2l6ZSkgew0KPj4gKwkJCWRldl93YXJuKHJhczJfY3R4LT5kZXYsDQo+PiArCQkJCSAiJXM6IElu dmFsaWQgcmVxdWVzdGVkIGFkZHJlc3MgcmFuZ2UsDQo+cmVxdWVzdGVkX2FkZHJlc3NfcmFuZ2Vb MF09MHglbGx4ICINCj4+ICsJCQkJICJyZXF1ZXN0ZWRfYWRkcmVzc19yYW5nZVsxXT0weCVsbHhc biIsDQo+X19mdW5jX18sDQo+PiArCQkJCSBwc19zbS0+cGFyYW1zLnJlcXVlc3RlZF9hZGRyZXNz X3JhbmdlWzBdLA0KPj4gKwkJCQkgcHNfc20tPnBhcmFtcy5yZXF1ZXN0ZWRfYWRkcmVzc19yYW5n ZVsxXSk7DQo+PiArCQkJcmV0dXJuIC1FUkFOR0U7DQo+PiArCQl9DQo+PiArCQlyZXQgPSByYXMy X2dldF9wYXRyb2xfc2NydWJfcnVubmluZyhyYXMyX2N0eCwgJmVuYWJsZWQpOw0KPj4gKwkJaWYg KHJldCkNCj4+ICsJCQlyZXR1cm4gcmV0Ow0KPj4gKw0KPj4gKwkJaWYgKGVuYWJsZWQpDQo+PiAr CQkJcmV0dXJuIDA7DQo+PiArDQo+PiArCQlwc19zbS0+cGFyYW1zLnNjcnViX3BhcmFtc19pbiAm PQ0KPn5SQVMyX1BBVFJPTF9TQ1JVQl9SQVRFX0lOX01BU0s7DQo+PiArCQlwc19zbS0+cGFyYW1z LnNjcnViX3BhcmFtc19pbiB8PQ0KPkZJRUxEX1BSRVAoUkFTMl9QQVRST0xfU0NSVUJfUkFURV9J Tl9NQVNLLA0KPj4gKwkJCQkJCQkgICAgcmFzMl9jdHgtPnJhdGUpOw0KPj4gKwkJcHNfc20tPnBh cmFtcy5yZXF1ZXN0ZWRfYWRkcmVzc19yYW5nZVswXSA9IHJhczJfY3R4LT5iYXNlOw0KPj4gKwkJ cHNfc20tPnBhcmFtcy5yZXF1ZXN0ZWRfYWRkcmVzc19yYW5nZVsxXSA9IHJhczJfY3R4LT5zaXpl Ow0KPg0KPg0KPldlIG5lZWQgdG8gY2xlYXIgdGhlIFJBUzJfUEFUUk9MX1NDUlVCX0VOX0JBQ0tH Uk9VTkQgYml0IGluIHRoZSBpbnB1dA0KPnBhcmFtZXRlcnMuDQo+VGhpcyBpcyBpbiBjYXNlICJF bmFibGUgQmFja2dyb3VuZCIgd2FzIHByZXZpb3VzbHkgY2FsbGVkLCBhbmQgdGhpcyBiaXQgd2Fz IHNldC4NCj4NCj4JCXBzX3NtLT5wYXJhbXMuc2NydWJfcGFyYW1zX2luICY9DQo+flJBUzJfUEFU Uk9MX1NDUlVCX0VOX0JBQ0tHUk9VTkQ7DQpXZSBuZWVkIHRvIHN0b3AgYmFja2dyb3VuZCBzY3J1 YiBpZiBpdCBpcyBhbHJlYWR5IHJ1bm5pbmcgYmVmb3JlIHN0YXJ0IGFuIG9uLWRlbWFuZCBzY3J1 YmJpbmcuIA0KVGhlIFJBUzJfUEFUUk9MX1NDUlVCX0VOX0JBQ0tHUk9VTkQgYml0IHdvdWxkIGJl IGNsZWFyZWQgd2l0aCBkaXNhYmxlICBiZyBzY3J1Yg0Kd2l0aCB0aGUgZm9sbG93aW5nIGNvZGUN CmluIHJhczJfaHdfc2NydWJfc2V0X2VuYWJsZWRfYmcoKSB3aGVuIGRpc2FibGUgYmFja2dyb3Vu ZCBzY3J1YignZW5hYmxlJyBpcyAwIGluIHRoaXMgY2FzZSkuDQpwc19zbS0+cGFyYW1zLnNjcnVi X3BhcmFtc19pbiAmPSB+UkFTMl9QQVRST0xfU0NSVUJfRU5fQkFDS0dST1VORDsNCnBzX3NtLT5w YXJhbXMuc2NydWJfcGFyYW1zX2luIHw9IEZJRUxEX1BSRVAoUkFTMl9QQVRST0xfU0NSVUJfRU5f QkFDS0dST1VORCwNCgkJCQkJCSAgICBlbmFibGUpOw0KSG9wZSBpdCBtYWtlIHNlbnNlPw0KPg0K Pg0KPj4gKwkJcHNfc20tPnBhcmFtcy5wYXRyb2xfc2NydWJfY29tbWFuZCA9DQo+UkFTMl9TVEFS VF9QQVRST0xfU0NSVUJCRVI7DQo+PiArCX0gZWxzZSB7DQo+PiArCQlwc19zbS0+cGFyYW1zLnBh dHJvbF9zY3J1Yl9jb21tYW5kID0NCj5SQVMyX1NUT1BfUEFUUk9MX1NDUlVCQkVSOw0KPj4gKwl9 DQo+PiArDQo+PiArCXJldCA9IHJhczJfc2VuZF9wY2NfY21kKHJhczJfY3R4LCBSQVMyX1BDQ19D TURfRVhFQyk7DQo+PiArCWlmIChyZXQpIHsNCj4+ICsJCWRldl9lcnIocmFzMl9jdHgtPmRldiwg ImZhaWxlZCB0byBlbmFibGUoJWQpIHRoZSBkZW1hbmQNCj5zY3J1YmJpbmdcbiIsIGVuYWJsZSk7 DQo+PiArCQlyZXR1cm4gcmV0Ow0KPj4gKwl9DQo+PiArCXJhczJfY3R4LT5iZyA9IGZhbHNlOw0K Pj4gKw0KPj4gKwlyZXR1cm4gcmFzMl91cGRhdGVfcGF0cm9sX3NjcnViX3BhcmFtc19jYWNoZShy YXMyX2N0eCk7DQo+PiArfQ0KPg0KPg0KVGhhbmtzLA0KU2hpanUNCg==