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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32A3FC2BA4C for ; Wed, 26 Jan 2022 09:02:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238722AbiAZJCl (ORCPT ); Wed, 26 Jan 2022 04:02:41 -0500 Received: from rtits2.realtek.com ([211.75.126.72]:45467 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237684AbiAZJCk (ORCPT ); Wed, 26 Jan 2022 04:02:40 -0500 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.73 with qID 20Q92bYP2023613, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.71/5.88) with ESMTPS id 20Q92bYP2023613 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Wed, 26 Jan 2022 17:02:37 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Wed, 26 Jan 2022 17:02:37 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXMBS04.realtek.com.tw (172.21.6.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 26 Jan 2022 17:02:36 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::35e4:d9d1:102d:605e]) by RTEXMBS04.realtek.com.tw ([fe80::35e4:d9d1:102d:605e%5]) with mapi id 15.01.2308.020; Wed, 26 Jan 2022 17:02:36 +0800 From: Hau To: Heiner Kallweit , "netdev@vger.kernel.org" CC: nic_swsd , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH net-next 1/1] r8169: enable RTL8125 ASPM L1.2 Thread-Topic: [PATCH net-next 1/1] r8169: enable RTL8125 ASPM L1.2 Thread-Index: AQHYEU71utwpaLacm0G/vN72YItAmaxzrMwAgAFTwtA= Date: Wed, 26 Jan 2022 09:02:36 +0000 Message-ID: <052d2be6e8f445f3a4890e259bdee8ce@realtek.com> References: <20220124181937.6331-1-hau@realtek.com> <23d3e690-da16-df03-4c75-dc92625b2c96@gmail.com> In-Reply-To: <23d3e690-da16-df03-4c75-dc92625b2c96@gmail.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.21.177.129] x-kse-serverinfo: RTEXMBS04.realtek.com.tw, 9 x-kse-attachmentfiltering-interceptor-info: no applicable attachment filtering rules found x-kse-antivirus-interceptor-info: scan successful x-kse-antivirus-info: =?utf-8?B?Q2xlYW4sIGJhc2VzOiAyMDIyLzEvMjYg5LiK5Y2IIDA4OjAzOjAw?= x-kse-bulkmessagesfiltering-scan-result: protection disabled Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-Attachment-Filter-Triggered-Rules: Clean X-KSE-Attachment-Filter-Triggered-Filters: Clean X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org DQoNCj4gT24gMjQuMDEuMjAyMiAxOToxOSwgQ2h1bmhhbyBMaW4gd3JvdGU6DQo+ID4gVGhpcyBw YXRjaCB3aWxsIGVuYWJsZSBSVEw4MTI1IEFTUE0gTDEuMiBvbiB0aGUgcGxhdGZvcm1zIHRoYXQg aGF2ZQ0KPiA+IHRlc3RlZCBSVEw4MTI1IHdpdGggQVNQTSBMMS4yIGVuYWJsZWQuDQo+ID4gUmVn aXN0ZXIgbWFjIG9jcCAweGMwYjIgd2lsbCBoZWxwIHRvIGlkZW50aWZ5IGlmIFJUTDgxMjUgaGFz IGJlZW4NCj4gPiB0ZXN0ZWQgb24gTDEuMiBlbmFibGVkIHBsYXRmb3JtLiBJZiBpdCBpcywgdGhp cyByZWdpc3RlciB3aWxsIGJlIHNldCB0byAweGYuDQo+ID4gSWYgbm90LCB0aGlzIHJlZ2lzdGVy IHdpbGwgYmUgZGVmYXVsdCB2YWx1ZSAwLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQ2h1bmhh byBMaW4gPGhhdUByZWFsdGVrLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9uZXQvZXRoZXJu ZXQvcmVhbHRlay9yODE2OV9tYWluLmMgfCA5OQ0KPiA+ICsrKysrKysrKysrKysrKysrKy0tLS0t DQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkN Cj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5 X21haW4uYw0KPiA+IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMN Cj4gPiBpbmRleCAxOWUyNjIxZTA2NDUuLmIxZTAxMzk2OWQ0YyAxMDA2NDQNCj4gPiAtLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYw0KPiA+ICsrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jDQo+ID4gQEAgLTIyMzgsMjEgKzIy MzgsNiBAQCBzdGF0aWMgdm9pZCBydGxfd29sX2VuYWJsZV9yeChzdHJ1Y3QNCj4gcnRsODE2OV9w cml2YXRlICp0cCkNCj4gPiAgCQkJQWNjZXB0QnJvYWRjYXN0IHwgQWNjZXB0TXVsdGljYXN0IHwN Cj4gQWNjZXB0TXlQaHlzKTsgIH0NCj4gPg0KPiA+IC1zdGF0aWMgdm9pZCBydGxfcHJlcGFyZV9w b3dlcl9kb3duKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKSAtew0KPiA+IC0JaWYgKHRwLT5k YXNoX3R5cGUgIT0gUlRMX0RBU0hfTk9ORSkNCj4gPiAtCQlyZXR1cm47DQo+ID4gLQ0KPiA+IC0J aWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExfR0lHQV9NQUNfVkVSXzMyIHx8DQo+ID4gLQkgICAg dHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMzMpDQo+ID4gLQkJcnRsX2VwaHlf d3JpdGUodHAsIDB4MTksIDB4ZmY2NCk7DQo+ID4gLQ0KPiA+IC0JaWYgKGRldmljZV9tYXlfd2Fr ZXVwKHRwX3RvX2Rldih0cCkpKSB7DQo+ID4gLQkJcGh5X3NwZWVkX2Rvd24odHAtPnBoeWRldiwg ZmFsc2UpOw0KPiA+IC0JCXJ0bF93b2xfZW5hYmxlX3J4KHRwKTsNCj4gPiAtCX0NCj4gPiAtfQ0K PiA+IC0NCj4gPiAgc3RhdGljIHZvaWQgcnRsX2luaXRfcnhjZmcoc3RydWN0IHJ0bDgxNjlfcHJp dmF0ZSAqdHApICB7DQo+ID4gIAlzd2l0Y2ggKHRwLT5tYWNfdmVyc2lvbikgew0KPiA+IEBAIC0y NjUwLDYgKzI2MzUsMzQgQEAgc3RhdGljIHZvaWQgcnRsX3BjaWVfc3RhdGVfbDJsM19kaXNhYmxl KHN0cnVjdA0KPiBydGw4MTY5X3ByaXZhdGUgKnRwKQ0KPiA+ICAJUlRMX1c4KHRwLCBDb25maWcz LCBSVExfUjgodHAsIENvbmZpZzMpICYgflJkeV90b19MMjMpOyAgfQ0KPiA+DQo+ID4gK3N0YXRp YyB2b2lkIHJ0bF9kaXNhYmxlX2V4aXRfbDEoc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHApIHsN Cj4gPiArCS8qIEJpdHMgY29udHJvbCB3aGljaCBldmVudHMgdHJpZ2dlciBBU1BNIEwxIGV4aXQ6 DQo+ID4gKwkgKiBCaXQgMTI6IHJ4ZHYNCj4gPiArCSAqIEJpdCAxMTogbHRyX21zZw0KPiA+ICsJ ICogQml0IDEwOiB0eGRtYV9wb2xsDQo+ID4gKwkgKiBCaXQgIDk6IHhhZG0NCj4gPiArCSAqIEJp dCAgODogcGt0YXZpDQo+ID4gKwkgKiBCaXQgIDc6IHR4cGxhDQo+ID4gKwkgKi8NCj4gPiArCXN3 aXRjaCAodHAtPm1hY192ZXJzaW9uKSB7DQo+ID4gKwljYXNlIFJUTF9HSUdBX01BQ19WRVJfMzQg Li4uIFJUTF9HSUdBX01BQ19WRVJfMzY6DQo+ID4gKwkJcnRsX2VyaV9jbGVhcl9iaXRzKHRwLCAw eGQ0LCAweDFmMDApOw0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJY2FzZSBSVExfR0lHQV9NQUNfVkVS XzM3IC4uLiBSVExfR0lHQV9NQUNfVkVSXzM4Og0KPiA+ICsJCXJ0bF9lcmlfY2xlYXJfYml0cyh0 cCwgMHhkNCwgMHgwYzAwKTsNCj4gPiArCQlicmVhazsNCj4gPiArCWNhc2UgUlRMX0dJR0FfTUFD X1ZFUl80MCAuLi4gUlRMX0dJR0FfTUFDX1ZFUl81MzoNCj4gPiArCQlydGxfZXJpX2NsZWFyX2Jp dHModHAsIDB4ZDQsIDB4MWY4MCk7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJUTF9HSUdB X01BQ19WRVJfNjAgLi4uIFJUTF9HSUdBX01BQ19WRVJfNjM6DQo+ID4gKwkJcjgxNjhfbWFjX29j cF9tb2RpZnkodHAsIDB4YzBhYywgMHgxZjgwLCAwKTsNCj4gPiArCQlicmVhazsNCj4gPiArCWRl ZmF1bHQ6DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRp YyB2b2lkIHJ0bF9lbmFibGVfZXhpdF9sMShzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCkgIHsN Cj4gPiAgCS8qIEJpdHMgY29udHJvbCB3aGljaCBldmVudHMgdHJpZ2dlciBBU1BNIEwxIGV4aXQ6 DQo+ID4gQEAgLTI2OTIsNiArMjcwNSwzMyBAQCBzdGF0aWMgdm9pZCBydGxfaHdfYXNwbV9jbGty ZXFfZW5hYmxlKHN0cnVjdA0KPiBydGw4MTY5X3ByaXZhdGUgKnRwLCBib29sIGVuYWJsZSkNCj4g PiAgCXVkZWxheSgxMCk7DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgdm9pZCBydGxfaHdfYXNw bV9sMTJfZW5hYmxlKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwLCBib29sDQo+ID4gK2VuYWJs ZSkgew0KPiA+ICsJLyogRG9uJ3QgZW5hYmxlIEwxLjIgaW4gdGhlIGNoaXAgaWYgT1MgY2FuJ3Qg Y29udHJvbCBBU1BNICovDQo+ID4gKwlpZiAoZW5hYmxlICYmIHRwLT5hc3BtX21hbmFnZWFibGUp IHsNCj4gPiArCQlyODE2OF9tYWNfb2NwX21vZGlmeSh0cCwgMHhlMDk0LCAweGZmMDAsIDApOw0K PiA+ICsJCXI4MTY4X21hY19vY3BfbW9kaWZ5KHRwLCAweGUwOTIsIDB4MDBmZiwgQklUKDIpKTsN Cj4gPiArCX0gZWxzZSB7DQo+ID4gKwkJcjgxNjhfbWFjX29jcF9tb2RpZnkodHAsIDB4ZTA5Miwg MHgwMGZmLCAwKTsNCj4gPiArCX0NCj4gPiArfQ0KPiA+ICsNCj4gDQo+IFJlZ2lzdGVyIEUwOTQg Yml0cyAwLi4xNSBhcmUgY2xlYXJlZCB3aGVuIGVuYWJsaW5nLCBidXQgbm90IHRvdWNoZWQgb24N Cj4gZGlzYWJsaW5nLiBJIHRoaXMgY29ycmVjdD8NCiAgIFJlZ2lzdGVyIEUwOTQgYml0cyA4Li4u MTUgaXMgYSB0aW1lciBjb3VudGVyIHRoYXQgaXMgdXNlZCB0byBjb250cm9sIHdoZW4gdG8gZGlz YWJsZSBlcGh5IHR4L3J4Lg0KICAgU2V0IGl0IHRvIDAgbWVhbnMgZGlzYWJsZSBlcGh5IHR4L3J4 IGltbWVkaWF0ZWx5IHdoZW4gY2VydGFpbiBjb25kaXRpb24gbWVldC4gDQogICBJdCBoYXMgbm8g bWVhbmluZyB3aGVuIHJlZ2lzdGVyIEUwOTIgYml0IDIgaXMgc2V0IHRvIDAuDQoNCj4gQW5kIGZv ciBiYXNpY2FsbHkgdGhlIHNhbWUgcHVycG9zZSB3ZSBoYXZlIHRoZSBmb2xsb3dpbmcgZnVuY3Rp b24uDQo+ICJkb24ndCBlbmFibGUgTDEuMiBpbiB0aGUgY2hpcCIgaXMgbm90IGNvdmVyZWQgYnkg QVNQTV9lbiBpbiBDb25maWc1Pw0KICAgUmVnaXN0ZXIgRTA5MiBpcyBsaWtlICBBU1BNX2VuIGlu IENvbmZpZzUuIEJ1dCBpdCBjb250cm9scyBMMSBzdWJzdGF0ZSAoTDEuMS9MMS4yKSBlbmFibGUg c3RhdHVzLg0KDQo+IA0KPiBzdGF0aWMgdm9pZCBydGxfaHdfYXNwbV9jbGtyZXFfZW5hYmxlKHN0 cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwLCBib29sDQo+IGVuYWJsZSkgew0KPiAJLyogRG9uJ3Qg ZW5hYmxlIEFTUE0gaW4gdGhlIGNoaXAgaWYgT1MgY2FuJ3QgY29udHJvbCBBU1BNICovDQo+IAlp ZiAoZW5hYmxlICYmIHRwLT5hc3BtX21hbmFnZWFibGUpIHsNCj4gCQlSVExfVzgodHAsIENvbmZp ZzUsIFJUTF9SOCh0cCwgQ29uZmlnNSkgfCBBU1BNX2VuKTsNCj4gCQlSVExfVzgodHAsIENvbmZp ZzIsIFJUTF9SOCh0cCwgQ29uZmlnMikgfCBDbGtSZXFFbik7DQo+IAl9IGVsc2Ugew0KPiAJCVJU TF9XOCh0cCwgQ29uZmlnMiwgUlRMX1I4KHRwLCBDb25maWcyKSAmIH5DbGtSZXFFbik7DQo+IAkJ UlRMX1c4KHRwLCBDb25maWc1LCBSVExfUjgodHAsIENvbmZpZzUpICYgfkFTUE1fZW4pOw0KPiAJ fQ0KPiANCj4gCXVkZWxheSgxMCk7DQo+IH0NCj4gDQo+IA0KPiA+ICtzdGF0aWMgdm9pZCBydGxf cHJlcGFyZV9wb3dlcl9kb3duKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKSB7DQo+ID4gKwlp ZiAodHAtPmRhc2hfdHlwZSAhPSBSVExfREFTSF9OT05FKQ0KPiA+ICsJCXJldHVybjsNCj4gPiAr DQo+ID4gKwlpZiAodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMzIgfHwNCj4g PiArCSAgICB0cC0+bWFjX3ZlcnNpb24gPT0gUlRMX0dJR0FfTUFDX1ZFUl8zMykNCj4gPiArCQly dGxfZXBoeV93cml0ZSh0cCwgMHgxOSwgMHhmZjY0KTsNCj4gPiArDQo+ID4gKwlpZiAoZGV2aWNl X21heV93YWtldXAodHBfdG9fZGV2KHRwKSkpIHsNCj4gPiArCQlydGxfZGlzYWJsZV9leGl0X2wx KHRwKTsNCj4gPiArCQlwaHlfc3BlZWRfZG93bih0cC0+cGh5ZGV2LCBmYWxzZSk7DQo+ID4gKwkJ cnRsX3dvbF9lbmFibGVfcngodHApOw0KPiA+ICsJfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0 aWMgdm9pZCBydGxfc2V0X2ZpZm9fc2l6ZShzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCwgdTE2 IHJ4X3N0YXQsDQo+ID4gIAkJCSAgICAgIHUxNiB0eF9zdGF0LCB1MTYgcnhfZHluLCB1MTYgdHhf ZHluKSAgeyBAQCAtDQo+IDM2NzUsNiArMzcxNSw3DQo+ID4gQEAgc3RhdGljIHZvaWQgcnRsX2h3 X3N0YXJ0XzgxMjViKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKQ0KPiA+ICAJcnRsX2VwaHlf aW5pdCh0cCwgZV9pbmZvXzgxMjViKTsNCj4gPiAgCXJ0bF9od19zdGFydF84MTI1X2NvbW1vbih0 cCk7DQo+ID4NCj4gPiArCXJ0bF9od19hc3BtX2wxMl9lbmFibGUodHAsIHRydWUpOw0KPiA+ICAJ cnRsX2h3X2FzcG1fY2xrcmVxX2VuYWJsZSh0cCwgdHJ1ZSk7ICB9DQo+ID4NCj4gPiBAQCAtNTI1 NSw2ICs1Mjk2LDIwIEBAIHN0YXRpYyB2b2lkIHJ0bF9pbml0X21hY19hZGRyZXNzKHN0cnVjdA0K PiBydGw4MTY5X3ByaXZhdGUgKnRwKQ0KPiA+ICAJcnRsX3Jhcl9zZXQodHAsIG1hY19hZGRyKTsN Cj4gPiAgfQ0KPiA+DQo+ID4gKy8qIG1hYyBvY3AgMHhjMGIyIHdpbGwgaGVscCB0byBpZGVudGlm eSBpZiBSVEw4MTI1IGhhcyBiZWVuIHRlc3RlZA0KPiA+ICsgKiBvbiBMMS4yIGVuYWJsZWQgcGxh dGZvcm0uIElmIGl0IGlzLCB0aGlzIHJlZ2lzdGVyIHdpbGwgYmUgc2V0IHRvIDB4Zi4NCj4gPiAr ICogSWYgbm90LCB0aGlzIHJlZ2lzdGVyIHdpbGwgYmUgZGVmYXVsdCB2YWx1ZSAwLg0KPiA+ICsg Ki8NCj4gPiArc3RhdGljIGJvb2wgcnRsX3BsYXRmb3JtX2wxMl9lbmFibGVkKHN0cnVjdCBydGw4 MTY5X3ByaXZhdGUgKnRwKSB7DQo+ID4gKwlzd2l0Y2ggKHRwLT5tYWNfdmVyc2lvbikgew0KPiA+ ICsJY2FzZSBSVExfR0lHQV9NQUNfVkVSXzYwIC4uLiBSVExfR0lHQV9NQUNfVkVSXzYzOg0KPiA+ ICsJCXJldHVybiAocjgxNjhfbWFjX29jcF9yZWFkKHRwLCAweGMwYjIpICYgMHhmKSA/IHRydWUg OiBmYWxzZTsNCj4gPiArCWRlZmF1bHQ6DQo+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ICsJfQ0K PiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgaW50IHJ0bF9pbml0X29uZShzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgY29uc3Qgc3RydWN0DQo+ID4gcGNpX2RldmljZV9pZCAqZW50KSAgew0KPiA+ICAJ c3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHA7DQo+ID4gQEAgLTUzMzMsMTEgKzUzODgsMTUgQEAg c3RhdGljIGludCBydGxfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsDQo+IGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpDQo+ID4gIAkgKiBDaGlwcyBmcm9tIFJUTDgxNjhoIHBh cnRpYWxseSBoYXZlIGlzc3VlcyB3aXRoIEwxLjIsIGJ1dCBzZWVtDQo+ID4gIAkgKiB0byB3b3Jr IGZpbmUgd2l0aCBMMSBhbmQgTDEuMS4NCj4gPiAgCSAqLw0KPiA+IC0JaWYgKHRwLT5tYWNfdmVy c2lvbiA+PSBSVExfR0lHQV9NQUNfVkVSXzQ1KQ0KPiA+IC0JCXJjID0gcGNpX2Rpc2FibGVfbGlu a19zdGF0ZShwZGV2LCBQQ0lFX0xJTktfU1RBVEVfTDFfMik7DQo+ID4gLQllbHNlDQo+ID4gLQkJ cmMgPSBwY2lfZGlzYWJsZV9saW5rX3N0YXRlKHBkZXYsIFBDSUVfTElOS19TVEFURV9MMSk7DQo+ ID4gLQl0cC0+YXNwbV9tYW5hZ2VhYmxlID0gIXJjOw0KPiA+ICsJaWYgKCFydGxfcGxhdGZvcm1f bDEyX2VuYWJsZWQodHApKSB7DQo+ID4gKwkJaWYgKHRwLT5tYWNfdmVyc2lvbiA+PSBSVExfR0lH QV9NQUNfVkVSXzQ1KQ0KPiA+ICsJCQlyYyA9IHBjaV9kaXNhYmxlX2xpbmtfc3RhdGUocGRldiwN Cj4gUENJRV9MSU5LX1NUQVRFX0wxXzIpOw0KPiA+ICsJCWVsc2UNCj4gPiArCQkJcmMgPSBwY2lf ZGlzYWJsZV9saW5rX3N0YXRlKHBkZXYsDQo+IFBDSUVfTElOS19TVEFURV9MMSk7DQo+ID4gKwkJ dHAtPmFzcG1fbWFuYWdlYWJsZSA9ICFyYzsNCj4gPiArCX0gZWxzZSB7DQo+ID4gKwkJdHAtPmFz cG1fbWFuYWdlYWJsZSA9IHBjaWVfYXNwbV9lbmFibGVkKHBkZXYpOw0KPiA+ICsJfQ0KPiA+DQo+ ID4gIAl0cC0+ZGFzaF90eXBlID0gcnRsX2NoZWNrX2Rhc2godHApOw0KPiA+DQo+IA0KPiAtLS0t LS1QbGVhc2UgY29uc2lkZXIgdGhlIGVudmlyb25tZW50IGJlZm9yZSBwcmludGluZyB0aGlzIGUt bWFpbC4NCg==