From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 448EAA00E6 for ; Tue, 9 Jul 2019 17:48:56 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C02581B954; Tue, 9 Jul 2019 17:48:55 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 34A7DA3 for ; Tue, 9 Jul 2019 17:48:54 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jul 2019 08:48:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,470,1557212400"; d="scan'208";a="249185924" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga001.jf.intel.com with ESMTP; 09 Jul 2019 08:48:53 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 9 Jul 2019 08:48:52 -0700 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 9 Jul 2019 08:48:52 -0700 Received: from shsmsx105.ccr.corp.intel.com ([169.254.11.232]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.162]) with mapi id 14.03.0439.000; Tue, 9 Jul 2019 23:48:50 +0800 From: "Zhang, Xiao" To: "Anand H. Krishnan" CC: "dev@dpdk.org" , "Zhao1, Wei" Thread-Topic: [dpdk-dev] [v3] net/e1000: i219 unit hang issue fix on reset/close Thread-Index: AQHVNgY+MGUEAunb20qzoPb96D/WY6bBT0EAgAEftEA= Date: Tue, 9 Jul 2019 15:48:50 +0000 Message-ID: References: <1562675006-34178-1-git-send-email-xiao.zhang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjU2OGM1M2QtNDhkMS00ZmZmLWFhN2MtYWE0YjhiNzUyZTViIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiNlk4ZnRvbWdoVVBmb3NcL2NFUjF0VndrSUxcL280djQ0a1RscUpGUGJWaVp3N05TTkNQT1FISmVmM3hROGRmb3hiIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [v3] net/e1000: i219 unit hang issue fix on reset/close X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQpUaGUgdGFpbCBpbmRleCB3YXMgbWlzc2luZyBpbiB0aGlzIHBhdGNoLCBhbmQgYSBuZXcgcGF0 Y2ggaXMgc2VudCBvdXQuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBbmFu ZCBILiBLcmlzaG5hbiBbbWFpbHRvOmFuYW5kaGtyaXNobmFuQGdtYWlsLmNvbV0gDQpTZW50OiBU dWVzZGF5LCBKdWx5IDksIDIwMTkgMjozNyBQTQ0KVG86IFpoYW5nLCBYaWFvIDx4aWFvLnpoYW5n QGludGVsLmNvbT4NCkNjOiBkZXZAZHBkay5vcmc7IFpoYW8xLCBXZWkgPHdlaS56aGFvMUBpbnRl bC5jb20+DQpTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbdjNdIG5ldC9lMTAwMDogaTIxOSB1bml0 IGhhbmcgaXNzdWUgZml4IG9uIHJlc2V0L2Nsb3NlDQoNCkNvbW1lbnRzIGlubGluZS4NCg0KT24g VHVlLCBKdWwgOSwgMjAxOSBhdCA4OjU4IEFNIFhpYW8gWmhhbmcgPHhpYW8uemhhbmdAaW50ZWwu Y29tPiB3cm90ZToNCj4NCj4gVW5pdCBoYW5nIG1heSBvY2N1ciBpZiBtdWx0aXBsZSBkZXNjcmlw dG9ycyBhcmUgYXZhaWxhYmxlIGluIHRoZSByaW5ncyANCj4gZHVyaW5nIHJlc2V0IG9yIGNsb3Nl LiBUaGlzIHN0YXRlIGNhbiBiZSBkZXRlY3RlZCBieSBjb25maWd1cmUgc3RhdHVzIA0KPiBieSBi aXQgOCBpbiByZWdpc3Rlci4gSWYgdGhlIGJpdCBpcyBzZXQgYW5kIHRoZXJlIGFyZSBwZW5kaW5n IA0KPiBkZXNjcmlwdG9ycyBpbiBvbmUgb2YgdGhlIHJpbmdzLCB3ZSBtdXN0IGZsdXNoIHRoZW0g YmVmb3JlIHJlc2V0IG9yIGNsb3NlLg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBYaWFvIFpoYW5nIDx4 aWFvLnpoYW5nQGludGVsLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9l dGhkZXYuaCB8ICAgNCArKw0KPiAgZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jICAgfCAg IDQgKysNCj4gIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMgICAgIHwgMTA1ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxMTMg aW5zZXJ0aW9ucygrKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBf ZXRoZGV2LmggDQo+IGIvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmgNCj4gaW5kZXgg NjdhY2I3My4uMzQ5MTQ0YSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBf ZXRoZGV2LmgNCj4gKysrIGIvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmgNCj4gQEAg LTM1LDYgKzM1LDkgQEANCj4gICNkZWZpbmUgSUdCX01BWF9SWF9RVUVVRV9OVU0gICAgICAgICAg IDgNCj4gICNkZWZpbmUgSUdCX01BWF9SWF9RVUVVRV9OVU1fODI1NzYgICAgIDE2DQo+DQo+ICsj ZGVmaW5lIEUxMDAwX0kyMTlfTUFYX1JYX1FVRVVFX05VTSAgICAgICAgICAgIDINCj4gKyNkZWZp bmUgRTEwMDBfSTIxOV9NQVhfVFhfUVVFVUVfTlVNICAgICAgICAgICAgMg0KPiArDQo+ICAjZGVm aW5lIEUxMDAwX1NZTl9GSUxURVJfRU5BQkxFICAgICAgICAweDAwMDAwMDAxIC8qIHN5biBmaWx0 ZXIgZW5hYmxlIGZpZWxkICovDQo+ICAjZGVmaW5lIEUxMDAwX1NZTl9GSUxURVJfUVVFVUUgICAg ICAgICAweDAwMDAwMDBFIC8qIHN5biBmaWx0ZXIgcXVldWUgZmllbGQgKi8NCj4gICNkZWZpbmUg RTEwMDBfU1lOX0ZJTFRFUl9RVUVVRV9TSElGVCAgIDEgICAgICAgICAgLyogc3luIGZpbHRlciBx dWV1ZSBmaWVsZCAqLw0KPiBAQCAtNTIyLDUgKzUyNSw2IEBAIGludCBpZ2JfYWN0aW9uX3Jzc19z YW1lKGNvbnN0IHN0cnVjdCANCj4gcnRlX2Zsb3dfYWN0aW9uX3JzcyAqY29tcCwgIGludCBpZ2Jf Y29uZmlnX3Jzc19maWx0ZXIoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBpZ2JfcnRlX2Zsb3dfcnNzX2NvbmYgKmNvbmYsDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgYWRkKTsNCj4gK3ZvaWQgaWdiX2ZsdXNoX2Rlc2Nfcmlu Z3Moc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPg0KPiAgI2VuZGlmIC8qIF9FMTAwMF9FVEhE RVZfSF8gKi8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYyAN Cj4gYi9kcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmMgaW5kZXggM2VlMjhjZi4uODQ1MTAx YiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jDQo+ICsrKyBi L2RyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYw0KPiBAQCAtMTU4OSw2ICsxNTg5LDEwIEBA IGV0aF9pZ2JfY2xvc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ICAgICAgICAgZXRoX2ln Yl9zdG9wKGRldik7DQo+ICAgICAgICAgYWRhcHRlci0+c3RvcHBlZCA9IDE7DQo+DQo+ICsgICAg ICAgLyogRmx1c2ggZGVzYyByaW5ncyBmb3IgaTIxOSAqLw0KPiArICAgICAgIGlmIChody0+bWFj LnR5cGUgPj0gZTEwMDBfcGNoX3NwdCkNCj4gKyAgICAgICAgICAgICAgIGlnYl9mbHVzaF9kZXNj X3JpbmdzKGRldik7DQo+ICsNCj4gICAgICAgICBlMTAwMF9waHlfaHdfcmVzZXQoaHcpOw0KPiAg ICAgICAgIGlnYl9yZWxlYXNlX21hbmFnZWFiaWxpdHkoaHcpOw0KPiAgICAgICAgIGlnYl9od19j b250cm9sX3JlbGVhc2UoaHcpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZTEwMDAvaWdi X3J4dHguYyANCj4gYi9kcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jIGluZGV4IGM1NjA2ZGUu LjQ4ZTFjMWUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMNCj4g KysrIGIvZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYw0KPiBAQCAtMTgsNiArMTgsNyBAQA0K PiAgI2luY2x1ZGUgPHJ0ZV9sb2cuaD4NCj4gICNpbmNsdWRlIDxydGVfZGVidWcuaD4NCj4gICNp bmNsdWRlIDxydGVfcGNpLmg+DQo+ICsjaW5jbHVkZSA8cnRlX2J1c19wY2kuaD4NCj4gICNpbmNs dWRlIDxydGVfbWVtb3J5Lmg+DQo+ICAjaW5jbHVkZSA8cnRlX21lbWNweS5oPg0KPiAgI2luY2x1 ZGUgPHJ0ZV9tZW16b25lLmg+DQo+IEBAIC02Myw2ICs2NCwxMCBAQA0KPiAgI2RlZmluZSBJR0Jf VFhfT0ZGTE9BRF9OT1RTVVBfTUFTSyBcDQo+ICAgICAgICAgICAgICAgICAoUEtUX1RYX09GRkxP QURfTUFTSyBeIElHQl9UWF9PRkZMT0FEX01BU0spDQo+DQo+ICsvKiBQQ0kgb2Zmc2V0IGZvciBx dWVyeWluZyBkZXNjcmlwdG9yIHJpbmcgc3RhdHVzKi8NCj4gKyNkZWZpbmUgUENJQ0ZHX0RFU0Nf UklOR19TVEFUVVMgICAgICAgICAgIDB4RTQNCj4gKyNkZWZpbmUgRkxVU0hfREVTQ19SRVFVSVJF RCAgICAgICAgICAgICAgIDB4MTAwDQo+ICsNCj4gIC8qKg0KPiAgICogU3RydWN0dXJlIGFzc29j aWF0ZWQgd2l0aCBlYWNoIGRlc2NyaXB0b3Igb2YgdGhlIFJYIHJpbmcgb2YgYSBSWCBxdWV1ZS4N Cj4gICAqLw0KPiBAQCAtMjk2MiwzICsyOTY3LDEwMyBAQCBpZ2JfY29uZmlnX3Jzc19maWx0ZXIo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+DQo+ICAgICAgICAgcmV0dXJuIDA7DQo+ICB9DQo+ ICsNCj4gK3N0YXRpYyB2b2lkIGUxMDAwX2ZsdXNoX3R4X3Jpbmcoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYpIHsNCj4gKyAgICAgICBzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gRTEwMDBfREVWX1BSSVZB VEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ICsgICAgICAgdm9sYXRpbGUgdW5p b24gZTEwMDBfYWR2X3R4X2Rlc2MgKnR4X2Rlc2M7DQo+ICsgICAgICAgdWludDMyX3QgdGR0LCB0 Y3RsLCB0eGRfbG93ZXIgPSBFMTAwMF9UWERfQ01EX0lGQ1M7DQo+ICsgICAgICAgdWludDE2X3Qg c2l6ZSA9IDUxMjsNCj4gKyAgICAgICBzdHJ1Y3QgaWdiX3R4X3F1ZXVlICp0eHE7DQo+ICsgICAg ICAgaW50IGk7DQo+ICsNCj4gKyAgICAgICBpZiAoZGV2LT5kYXRhLT50eF9xdWV1ZXMgPT0gTlVM TCkNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gKyAgICAgICB0Y3RsID0gRTEwMDBfUkVB RF9SRUcoaHcsIEUxMDAwX1RDVEwpOw0KPiArICAgICAgIEUxMDAwX1dSSVRFX1JFRyhodywgRTEw MDBfVENUTCwgdGN0bCB8IEUxMDAwX1RDVExfRU4pOw0KPiArICAgICAgIGZvciAoaSA9IDA7IGkg PCBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcyAmJg0KPiArICAgICAgICAgICAgICAgaSA8IEUxMDAw X0kyMTlfTUFYX1RYX1FVRVVFX05VTTsgaSsrKSB7DQo+ICsgICAgICAgICAgICAgICB0eHEgPSBk ZXYtPmRhdGEtPnR4X3F1ZXVlc1tpXTsNCj4gKyAgICAgICAgICAgICAgIHRkdCA9IEUxMDAwX1JF QURfUkVHKGh3LCBFMTAwMF9URFQoaSkpOw0KPiArICAgICAgICAgICAgICAgaWYgKHRkdCAhPSB0 eHEtPnR4X3RhaWwpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsNCj4gKyAgICAg ICAgICAgICAgIHR4X2Rlc2MgPSB0eHEtPnR4X3Jpbmc7DQoNClRoaXMgZG9lc24ndCBzZWVtIHRv IGJlIHRoZSBkZXNjcmlwdG9yIGluIHRhaWwuIEFyZSB5b3Ugc3VyZSB0aGlzIGlzIHdoYXQgdGhl IG9yaWdpbmFsIHBhdGNoIGRvZXM/DQoNCg0KVGhhbmtzLA0KQW5hbmQNCg0KDQoNCj4gKyAgICAg ICAgICAgICAgIHR4X2Rlc2MtPnJlYWQuYnVmZmVyX2FkZHIgPSB0eHEtPnR4X3JpbmdfcGh5c19h ZGRyOw0KPiArICAgICAgICAgICAgICAgdHhfZGVzYy0+cmVhZC5jbWRfdHlwZV9sZW4gPSBydGVf Y3B1X3RvX2xlXzMyKHR4ZF9sb3dlciB8IHNpemUpOw0KPiArICAgICAgICAgICAgICAgdHhfZGVz Yy0+cmVhZC5vbGluZm9fc3RhdHVzID0gMDsNCj4gKw0KPiArICAgICAgICAgICAgICAgcnRlX3dt YigpOw0KPiArICAgICAgICAgICAgICAgdHhxLT50eF90YWlsKys7DQo+ICsgICAgICAgICAgICAg ICBpZiAodHhxLT50eF90YWlsID09IHR4cS0+bmJfdHhfZGVzYykNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgdHhxLT50eF90YWlsID0gMDsNCj4gKyAgICAgICAgICAgICAgIHJ0ZV9pb193bWIo KTsNCj4gKyAgICAgICAgICAgICAgIEUxMDAwX1dSSVRFX1JFRyhodywgRTEwMDBfVERUKGkpLCB0 eHEtPnR4X3RhaWwpOw0KPiArICAgICAgICAgICAgICAgdXNlY19kZWxheSgyNTApOw0KPiArICAg ICAgIH0NCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgZTEwMDBfZmx1c2hfcnhfcmluZyhzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldikgew0KPiArICAgICAgIHVpbnQzMl90IHJjdGwsIHJ4ZGN0bDsN Cj4gKyAgICAgICBzdHJ1Y3QgZTEwMDBfaHcgKmh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFco ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ICsgICAgICAgaW50IGk7DQo+ICsNCj4gKyAgICAg ICByY3RsID0gRTEwMDBfUkVBRF9SRUcoaHcsIEUxMDAwX1JDVEwpOw0KPiArICAgICAgIEUxMDAw X1dSSVRFX1JFRyhodywgRTEwMDBfUkNUTCwgcmN0bCAmIH5FMTAwMF9SQ1RMX0VOKTsNCj4gKyAg ICAgICBFMTAwMF9XUklURV9GTFVTSChodyk7DQo+ICsgICAgICAgdXNlY19kZWxheSgxNTApOw0K PiArDQo+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfcnhfcXVldWVzICYm DQo+ICsgICAgICAgICAgICAgICBpIDwgRTEwMDBfSTIxOV9NQVhfUlhfUVVFVUVfTlVNOyBpKysp IHsNCj4gKyAgICAgICAgICAgICAgIHJ4ZGN0bCA9IEUxMDAwX1JFQURfUkVHKGh3LCBFMTAwMF9S WERDVEwoaSkpOw0KPiArICAgICAgICAgICAgICAgLyogemVybyB0aGUgbG93ZXIgMTQgYml0cyAo cHJlZmV0Y2ggYW5kIGhvc3QgdGhyZXNob2xkcykgKi8NCj4gKyAgICAgICAgICAgICAgIHJ4ZGN0 bCAmPSAweGZmZmZjMDAwOw0KPiArDQo+ICsgICAgICAgICAgICAgICAvKiB1cGRhdGUgdGhyZXNo b2xkczogcHJlZmV0Y2ggdGhyZXNob2xkIHRvIDMxLA0KPiArICAgICAgICAgICAgICAgICogaG9z dCB0aHJlc2hvbGQgdG8gMSBhbmQgbWFrZSBzdXJlIHRoZSBncmFudWxhcml0eQ0KPiArICAgICAg ICAgICAgICAgICogaXMgImRlc2NyaXB0b3JzIiBhbmQgbm90ICJjYWNoZSBsaW5lcyINCj4gKyAg ICAgICAgICAgICAgICAqLw0KPiArICAgICAgICAgICAgICAgcnhkY3RsIHw9ICgweDFGIHwgKDFV TCA8PCA4KSB8IA0KPiArIEUxMDAwX1JYRENUTF9USFJFU0hfVU5JVF9ERVNDKTsNCj4gKw0KPiAr ICAgICAgICAgICAgICAgRTEwMDBfV1JJVEVfUkVHKGh3LCBFMTAwMF9SWERDVEwoaSksIHJ4ZGN0 bCk7DQo+ICsgICAgICAgfQ0KPiArICAgICAgIC8qIG1vbWVudGFyaWx5IGVuYWJsZSB0aGUgUlgg cmluZyBmb3IgdGhlIGNoYW5nZXMgdG8gdGFrZSBlZmZlY3QgKi8NCj4gKyAgICAgICBFMTAwMF9X UklURV9SRUcoaHcsIEUxMDAwX1JDVEwsIHJjdGwgfCBFMTAwMF9SQ1RMX0VOKTsNCj4gKyAgICAg ICBFMTAwMF9XUklURV9GTFVTSChodyk7DQo+ICsgICAgICAgdXNlY19kZWxheSgxNTApOw0KPiAr ICAgICAgIEUxMDAwX1dSSVRFX1JFRyhodywgRTEwMDBfUkNUTCwgcmN0bCAmIH5FMTAwMF9SQ1RM X0VOKTsgfQ0KPiArDQo+ICsvKioNCj4gKyAqIGlnYl9mbHVzaF9kZXNjX3JpbmdzIC0gcmVtb3Zl IGFsbCBkZXNjcmlwdG9ycyBmcm9tIHRoZSBkZXNjcmlwdG9yIA0KPiArcmluZ3MNCj4gKyAqDQo+ ICsgKiBJbiBpMjE5LCB0aGUgZGVzY3JpcHRvciByaW5ncyBtdXN0IGJlIGVtcHRpZWQgYmVmb3Jl IA0KPiArcmVzZXR0aW5nL2Nsb3NpbmcgdGhlDQo+ICsgKiBIVy4gRmFpbHVyZSB0byBkbyB0aGlz IHdpbGwgY2F1c2UgdGhlIEhXIHRvIGVudGVyIGEgdW5pdCBoYW5nIA0KPiArc3RhdGUgd2hpY2gN Cj4gKyAqIGNhbiBvbmx5IGJlIHJlbGVhc2VkIGJ5IFBDSSByZXNldCBvbiB0aGUgZGV2aWNlDQo+ ICsgKg0KPiArICovDQo+ICsNCj4gK3ZvaWQgaWdiX2ZsdXNoX2Rlc2NfcmluZ3Moc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYpIHsNCj4gKyAgICAgICB1aW50MzJfdCBmZXh0bnZtMTEsIHRkbGVuOw0K PiArICAgICAgIHN0cnVjdCBlMTAwMF9odyAqaHcgPSBFMTAwMF9ERVZfUFJJVkFURV9UT19IVyhk ZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCj4gKyAgICAgICBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2Ug KnBjaV9kZXYgPSBSVEVfRVRIX0RFVl9UT19QQ0koZGV2KTsNCj4gKyAgICAgICB1aW50MzJfdCBo YW5nX3N0YXRlID0gMDsNCj4gKw0KPiArICAgICAgIGZleHRudm0xMSA9IEUxMDAwX1JFQURfUkVH KGh3LCBFMTAwMF9GRVhUTlZNMTEpOw0KPiArICAgICAgIEUxMDAwX1dSSVRFX1JFRyhodywgRTEw MDBfRkVYVE5WTTExLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBmZXh0bnZtMTEgfCBFMTAw MF9GRVhUTlZNMTFfRElTQUJMRV9NVUxSX0ZJWCk7DQo+ICsgICAgICAgdGRsZW4gPSBFMTAwMF9S RUFEX1JFRyhodywgRTEwMDBfVERMRU4oMCkpOw0KPiArICAgICAgIHJ0ZV9wY2lfcmVhZF9jb25m aWcocGNpX2RldiwgJmhhbmdfc3RhdGUsIHNpemVvZihoYW5nX3N0YXRlKSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQQ0lDRkdfREVTQ19SSU5HX1NUQVRVUyk7DQo+ICsNCj4g KyAgICAgICAvKiBkbyBub3RoaW5nIGlmIHdlJ3JlIG5vdCBpbiBmYXVsdHkgc3RhdGUsIG9yIGlm IHRoZSBxdWV1ZSBpcyBlbXB0eSAqLw0KPiArICAgICAgIGlmICgoaGFuZ19zdGF0ZSAmIEZMVVNI X0RFU0NfUkVRVUlSRUQpICYmIHRkbGVuKSB7DQo+ICsgICAgICAgICAgICAgICAvKiBmbHVzaCBk ZXNjIHJpbmcgKi8NCj4gKyAgICAgICAgICAgICAgIGUxMDAwX2ZsdXNoX3R4X3JpbmcoZGV2KTsN Cj4gKyAgICAgICAgICAgICAgIHJ0ZV9wY2lfcmVhZF9jb25maWcocGNpX2RldiwgJmhhbmdfc3Rh dGUsIHNpemVvZihoYW5nX3N0YXRlKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBDSUNGR19ERVNDX1JJTkdfU1RBVFVTKTsNCj4gKyAgICAgICAgICAgICAgIGlm IChoYW5nX3N0YXRlICYgRkxVU0hfREVTQ19SRVFVSVJFRCkNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgZTEwMDBfZmx1c2hfcnhfcmluZyhkZXYpOw0KPiArICAgICAgIH0NCj4gK30NCj4gLS0N Cj4gMi43LjQNCj4NCg==