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 E1B92A0471 for ; Tue, 16 Jul 2019 04:58:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 70AB33195; Tue, 16 Jul 2019 04:58:46 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 412412C18 for ; Tue, 16 Jul 2019 04:58:44 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Jul 2019 19:58:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,496,1557212400"; d="scan'208";a="175276749" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by FMSMGA003.fm.intel.com with ESMTP; 15 Jul 2019 19:58:43 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 15 Jul 2019 19:58:43 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 15 Jul 2019 19:58:42 -0700 Received: from shsmsx105.ccr.corp.intel.com ([169.254.11.232]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.55]) with mapi id 14.03.0439.000; Tue, 16 Jul 2019 10:58:40 +0800 From: "Zhang, Xiao" To: "Anand H. Krishnan" CC: "dev@dpdk.org" , "Zhao1, Wei" Thread-Topic: [v4] net/e1000: i219 unit hang issue fix on reset/close Thread-Index: AQHVNm1+7s+e5dqXSE2y9SDmGv0TEKbMeFqLgAAaTfA= Date: Tue, 16 Jul 2019 02:58:40 +0000 Message-ID: References: <1562719355-17592-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-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] [v4] 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" SGkgQW5hbmQsDQoNClNvcnJ5LCBJIGRpZG4ndCBnZXQgeW91ciBsYXN0IGVtYWlsLg0KDQpUaGFu a3MsDQpYaWFvDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5hbmQg SC4gS3Jpc2huYW4gW21haWx0bzphbmFuZGhrcmlzaG5hbkBnbWFpbC5jb21dDQo+IFNlbnQ6IFR1 ZXNkYXksIEp1bHkgMTYsIDIwMTkgOTowMyBBTQ0KPiBUbzogWmhhbmcsIFhpYW8gPHhpYW8uemhh bmdAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBaaGFvMSwgV2VpIDx3ZWkuemhhbzFA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW3Y0XSBuZXQvZTEwMDA6IGkyMTkgdW5pdCBoYW5n IGlzc3VlIGZpeCBvbiByZXNldC9jbG9zZQ0KPiANCj4gWGlhbywNCj4gDQo+IEkgZGlkbid0IGhl YXIgYmFjayBmcm9tIHlvdSBvbiB0aGUgY29tbWVudHMuDQo+IA0KPiBUaGFua3MsDQo+IEFuYW5k DQo+IA0KPiBPbiBXZWQsIEp1bCAxMCwgMjAxOSBhdCAxMDoxOCBBTSBBbmFuZCBILiBLcmlzaG5h bg0KPiA8YW5hbmRoa3Jpc2huYW5AZ21haWwuY29tPiB3cm90ZToNCj4gPg0KPiA+IE1vcmUgY29t bWVudHMgaW5saW5lOg0KPiA+DQo+ID4gT24gVHVlLCBKdWwgOSwgMjAxOSBhdCA5OjE2IFBNIFhp YW8gWmhhbmcgPHhpYW8uemhhbmdAaW50ZWwuY29tPiB3cm90ZToNCj4gPiA+DQo+ID4gPiBVbml0 IGhhbmcgbWF5IG9jY3VyIGlmIG11bHRpcGxlIGRlc2NyaXB0b3JzIGFyZSBhdmFpbGFibGUgaW4g dGhlDQo+ID4gPiByaW5ncyBkdXJpbmcgcmVzZXQgb3IgY2xvc2UuIFRoaXMgc3RhdGUgY2FuIGJl IGRldGVjdGVkIGJ5IGNvbmZpZ3VyZQ0KPiA+ID4gc3RhdHVzIGJ5IGJpdCA4IGluIHJlZ2lzdGVy LiBJZiB0aGUgYml0IGlzIHNldCBhbmQgdGhlcmUgYXJlIHBlbmRpbmcNCj4gPiA+IGRlc2NyaXB0 b3JzIGluIG9uZSBvZiB0aGUgcmluZ3MsIHdlIG11c3QgZmx1c2ggdGhlbSBiZWZvcmUgcmVzZXQg b3IgY2xvc2UuDQo+ID4gPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogWGlhbyBaaGFuZyA8eGlhby56 aGFuZ0BpbnRlbC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICBkcml2ZXJzL25ldC9lMTAwMC9lMTAw MF9ldGhkZXYuaCB8ICAgNCArKw0KPiA+ID4gIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYu YyAgIHwgICA0ICsrDQo+ID4gPiAgZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYyAgICAgfCAx MDUNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiAgMyBm aWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGhkZXYuaA0KPiA+ID4gYi9kcml2ZXJzL25ldC9l MTAwMC9lMTAwMF9ldGhkZXYuaA0KPiA+ID4gaW5kZXggNjdhY2I3My4uMzQ5MTQ0YSAxMDA2NDQN Cj4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oDQo+ID4gPiArKysg Yi9kcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGhkZXYuaA0KPiA+ID4gQEAgLTM1LDYgKzM1LDkg QEANCj4gPiA+ICAjZGVmaW5lIElHQl9NQVhfUlhfUVVFVUVfTlVNICAgICAgICAgICA4DQo+ID4g PiAgI2RlZmluZSBJR0JfTUFYX1JYX1FVRVVFX05VTV84MjU3NiAgICAgMTYNCj4gPiA+DQo+ID4g PiArI2RlZmluZSBFMTAwMF9JMjE5X01BWF9SWF9RVUVVRV9OVU0gICAgICAgICAgICAyDQo+ID4g PiArI2RlZmluZSBFMTAwMF9JMjE5X01BWF9UWF9RVUVVRV9OVU0gICAgICAgICAgICAyDQo+ID4g PiArDQo+ID4gPiAgI2RlZmluZSBFMTAwMF9TWU5fRklMVEVSX0VOQUJMRSAgICAgICAgMHgwMDAw MDAwMSAvKiBzeW4gZmlsdGVyIGVuYWJsZQ0KPiBmaWVsZCAqLw0KPiA+ID4gICNkZWZpbmUgRTEw MDBfU1lOX0ZJTFRFUl9RVUVVRSAgICAgICAgIDB4MDAwMDAwMEUgLyogc3luIGZpbHRlciBxdWV1 ZQ0KPiBmaWVsZCAqLw0KPiA+ID4gICNkZWZpbmUgRTEwMDBfU1lOX0ZJTFRFUl9RVUVVRV9TSElG VCAgIDEgICAgICAgICAgLyogc3luIGZpbHRlciBxdWV1ZSBmaWVsZA0KPiAqLw0KPiA+ID4gQEAg LTUyMiw1ICs1MjUsNiBAQCBpbnQgaWdiX2FjdGlvbl9yc3Nfc2FtZShjb25zdCBzdHJ1Y3QNCj4g PiA+IHJ0ZV9mbG93X2FjdGlvbl9yc3MgKmNvbXAsICBpbnQgaWdiX2NvbmZpZ19yc3NfZmlsdGVy KHN0cnVjdCBydGVfZXRoX2Rldg0KPiAqZGV2LA0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGlnYl9ydGVfZmxvd19yc3NfY29uZiAqY29uZiwNCj4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgYWRkKTsNCj4gPiA+ICt2b2lkIGlnYl9mbHVzaF9kZXNjX3Jpbmdz KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCj4gPiA+DQo+ID4gPiAgI2VuZGlmIC8qIF9FMTAw MF9FVEhERVZfSF8gKi8NCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9lMTAwMC9pZ2Jf ZXRoZGV2LmMNCj4gPiA+IGIvZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jIGluZGV4IDNl ZTI4Y2YuLjg0NTEwMWIgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC9lMTAwMC9pZ2Jf ZXRoZGV2LmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYw0KPiA+ ID4gQEAgLTE1ODksNiArMTU4OSwxMCBAQCBldGhfaWdiX2Nsb3NlKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2KQ0KPiA+ID4gICAgICAgICBldGhfaWdiX3N0b3AoZGV2KTsNCj4gPiA+ICAgICAgICAg YWRhcHRlci0+c3RvcHBlZCA9IDE7DQo+ID4gPg0KPiA+ID4gKyAgICAgICAvKiBGbHVzaCBkZXNj IHJpbmdzIGZvciBpMjE5ICovDQo+ID4gPiArICAgICAgIGlmIChody0+bWFjLnR5cGUgPj0gZTEw MDBfcGNoX3NwdCkNCj4gPiA+ICsgICAgICAgICAgICAgICBpZ2JfZmx1c2hfZGVzY19yaW5ncyhk ZXYpOw0KPiA+ID4gKw0KPiA+DQo+ID4gSSBhbSBhIGJpdCBjb25mdXNlZCBhcyB0byB3aGljaCBk cml2ZXIgaGFuZGxlcyBpMjE5LiBJIHRob3VnaHQgaXQgaXMNCj4gPiB0aGUgZW1fZXRoZGV2LmMu DQo+ID4gQWxzbywgdGhlIHBsYWNlIHRvIHB1dCB0aGlzIGNvZGUsIEkgdGhpbmsgaXMgbW9yZSBh cHByb3ByaWF0ZSBpbiBldGhfZW1fc3RvcC4NCg0KWWVzLCBJIGNoZWNrZWQgd2l0aCB0aGUgY2Fy ZCwgaXQgdXNlZCBlbV9ldGhkZXYgZHJpdmVyIGFuZCBhZGRpbmcgdGhpcyBjb2RlIGluIHN0b3Ag b3BzIHdpbGwgYmUgYmV0dGVyLg0KDQo+ID4NCj4gPg0KPiA+ID4gICAgICAgICBlMTAwMF9waHlf aHdfcmVzZXQoaHcpOw0KPiA+ID4gICAgICAgICBpZ2JfcmVsZWFzZV9tYW5hZ2VhYmlsaXR5KGh3 KTsNCj4gPiA+ICAgICAgICAgaWdiX2h3X2NvbnRyb2xfcmVsZWFzZShodyk7DQo+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYw0KPiA+ID4gYi9kcml2ZXJzL25l dC9lMTAwMC9pZ2Jfcnh0eC5jIGluZGV4IGM1NjA2ZGUuLmNhZDI4ZjMgMTAwNjQ0DQo+ID4gPiAt LS0gYS9kcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jDQo+ID4gPiArKysgYi9kcml2ZXJzL25l dC9lMTAwMC9pZ2Jfcnh0eC5jDQo+ID4gPiBAQCAtMTgsNiArMTgsNyBAQA0KPiA+ID4gICNpbmNs dWRlIDxydGVfbG9nLmg+DQo+ID4gPiAgI2luY2x1ZGUgPHJ0ZV9kZWJ1Zy5oPg0KPiA+ID4gICNp bmNsdWRlIDxydGVfcGNpLmg+DQo+ID4gPiArI2luY2x1ZGUgPHJ0ZV9idXNfcGNpLmg+DQo+ID4g PiAgI2luY2x1ZGUgPHJ0ZV9tZW1vcnkuaD4NCj4gPiA+ICAjaW5jbHVkZSA8cnRlX21lbWNweS5o Pg0KPiA+ID4gICNpbmNsdWRlIDxydGVfbWVtem9uZS5oPg0KPiA+ID4gQEAgLTYzLDYgKzY0LDEw IEBADQo+ID4gPiAgI2RlZmluZSBJR0JfVFhfT0ZGTE9BRF9OT1RTVVBfTUFTSyBcDQo+ID4gPiAg ICAgICAgICAgICAgICAgKFBLVF9UWF9PRkZMT0FEX01BU0sgXiBJR0JfVFhfT0ZGTE9BRF9NQVNL KQ0KPiA+ID4NCj4gPiA+ICsvKiBQQ0kgb2Zmc2V0IGZvciBxdWVyeWluZyBkZXNjcmlwdG9yIHJp bmcgc3RhdHVzKi8NCj4gPiA+ICsjZGVmaW5lIFBDSUNGR19ERVNDX1JJTkdfU1RBVFVTICAgICAg ICAgICAweEU0DQo+ID4gPiArI2RlZmluZSBGTFVTSF9ERVNDX1JFUVVJUkVEICAgICAgICAgICAg ICAgMHgxMDANCj4gPiA+ICsNCj4gPiA+ICAvKioNCj4gPiA+ICAgKiBTdHJ1Y3R1cmUgYXNzb2Np YXRlZCB3aXRoIGVhY2ggZGVzY3JpcHRvciBvZiB0aGUgUlggcmluZyBvZiBhIFJYIHF1ZXVlLg0K PiA+ID4gICAqLw0KPiA+ID4gQEAgLTI5NjIsMyArMjk2NywxMDMgQEAgaWdiX2NvbmZpZ19yc3Nf ZmlsdGVyKHN0cnVjdCBydGVfZXRoX2Rldg0KPiA+ID4gKmRldiwNCj4gPiA+DQo+ID4gPiAgICAg ICAgIHJldHVybiAwOw0KPiA+ID4gIH0NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgdm9pZCBlMTAw MF9mbHVzaF90eF9yaW5nKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KSB7DQo+ID4gPiArICAgICAg IHN0cnVjdCBlMTAwMF9odyAqaHcgPSBFMTAwMF9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEt DQo+ID5kZXZfcHJpdmF0ZSk7DQo+ID4gPiArICAgICAgIHZvbGF0aWxlIHVuaW9uIGUxMDAwX2Fk dl90eF9kZXNjICp0eF9kZXNjOw0KPiA+ID4gKyAgICAgICB1aW50MzJfdCB0ZHQsIHRjdGwsIHR4 ZF9sb3dlciA9IEUxMDAwX1RYRF9DTURfSUZDUzsNCj4gPiA+ICsgICAgICAgdWludDE2X3Qgc2l6 ZSA9IDUxMjsNCj4gPiA+ICsgICAgICAgc3RydWN0IGlnYl90eF9xdWV1ZSAqdHhxOw0KPiA+ID4g KyAgICAgICBpbnQgaTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgaWYgKGRldi0+ZGF0YS0+dHhf cXVldWVzID09IE5VTEwpDQo+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ID4gKyAg ICAgICB0Y3RsID0gRTEwMDBfUkVBRF9SRUcoaHcsIEUxMDAwX1RDVEwpOw0KPiA+ID4gKyAgICAg ICBFMTAwMF9XUklURV9SRUcoaHcsIEUxMDAwX1RDVEwsIHRjdGwgfCBFMTAwMF9UQ1RMX0VOKTsN Cj4gPiA+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzICYm DQo+ID4gPiArICAgICAgICAgICAgICAgaSA8IEUxMDAwX0kyMTlfTUFYX1RYX1FVRVVFX05VTTsg aSsrKSB7DQo+ID4gPiArICAgICAgICAgICAgICAgdHhxID0gZGV2LT5kYXRhLT50eF9xdWV1ZXNb aV07DQo+ID4gPiArICAgICAgICAgICAgICAgdGR0ID0gRTEwMDBfUkVBRF9SRUcoaHcsIEUxMDAw X1REVChpKSk7DQo+ID4gPiArICAgICAgICAgICAgICAgaWYgKHRkdCAhPSB0eHEtPnR4X3RhaWwp DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gPiArICAgICAgICAg ICAgICAgdHhfZGVzYyA9ICZ0eHEtPnR4X3JpbmdbdHhxLT50eF90YWlsXTsNCj4gPiA+ICsgICAg ICAgICAgICAgICB0eF9kZXNjLT5yZWFkLmJ1ZmZlcl9hZGRyID0gdHhxLT50eF9yaW5nX3BoeXNf YWRkcjsNCj4gPg0KPiA+IFNob3VsZCB5b3UgYmUgdXNpbmcgcnRlX2NwdV90b19sZTY0IGhlcmU/ DQoNCldpbGwgYWRkIGNvbnZlcnNpb24gZm9yIHRoaXMgZmllbGQuDQoNCj4gPg0KPiA+DQo+ID4g PiArICAgICAgICAgICAgICAgdHhfZGVzYy0+cmVhZC5jbWRfdHlwZV9sZW4gPQ0KPiA+ID4gKyBy dGVfY3B1X3RvX2xlXzMyKHR4ZF9sb3dlciB8IHNpemUpOw0KPiA+DQo+ID4gVGhlcmUgaXMgYSBs b3dlci5kYXRhICBhbmQgdXBwZXIuZGF0YSB0aGF0IG5lZWRzIHRvIGJlIHNldCwgbm90IHRoaXMN Cj4gPiBmaWVsZCBBRkFJUi4NCg0KQXMgSSBjaGVja2VkIHRoZSBrZXJuZWwgZHJpdmVyLCBpbiB0 aGUgc3RydWN0IGUxMDAwX3R4X2Rlc2MsIHRoZSBsb3dlciBhbmQgdXBwZXIgZGF0YSBhcmUgY21k L2xlbmd0aCBhbmQgc3RhdHVzLg0KDQo+ID4NCj4gPg0KPiA+ID4gKyAgICAgICAgICAgICAgIHR4 X2Rlc2MtPnJlYWQub2xpbmZvX3N0YXR1cyA9IDA7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAg ICAgICAgcnRlX3dtYigpOw0KPiA+ID4gKyAgICAgICAgICAgICAgIHR4cS0+dHhfdGFpbCsrOw0K PiA+ID4gKyAgICAgICAgICAgICAgIGlmICh0eHEtPnR4X3RhaWwgPT0gdHhxLT5uYl90eF9kZXNj KQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdHhxLT50eF90YWlsID0gMDsNCj4gPiA+ ICsgICAgICAgICAgICAgICBydGVfaW9fd21iKCk7DQo+ID4gPiArICAgICAgICAgICAgICAgRTEw MDBfV1JJVEVfUkVHKGh3LCBFMTAwMF9URFQoaSksIHR4cS0+dHhfdGFpbCk7DQo+ID4NCj4gPiBT aG91bGQgeW91IGJlIHVzaW5nIEUxMDAwX1BDSV9SRUdfV1JJVEVfUkVMQVhFRC4gQ2FuIHlvdSBq dXN0IGNoZWNrDQo+ID4gb3RoZXIgaW5zdGFuY2VzIG9mIGhvdyB0aGlzIHJlZ2lzdGVyIGlzIHdy aXR0ZW4/DQoNCldpbGwgdXNlIEUxMDAwX1BDSV9SRUdfV1JJVEVfUkVMQVhFRCB0byB3cml0ZSBy ZWdpc3Rlci4NCg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEFuYW5kDQo+ID4NCj4gPg0KPiA+ID4g KyAgICAgICAgICAgICAgIHVzZWNfZGVsYXkoMjUwKTsNCj4gPiA+ICsgICAgICAgfQ0KPiA+ID4g K30NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgdm9pZCBlMTAwMF9mbHVzaF9yeF9yaW5nKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KSB7DQo+ID4gPiArICAgICAgIHVpbnQzMl90IHJjdGwsIHJ4ZGN0 bDsNCj4gPiA+ICsgICAgICAgc3RydWN0IGUxMDAwX2h3ICpodyA9IEUxMDAwX0RFVl9QUklWQVRF X1RPX0hXKGRldi0+ZGF0YS0NCj4gPmRldl9wcml2YXRlKTsNCj4gPiA+ICsgICAgICAgaW50IGk7 DQo+ID4gPiArDQo+ID4gPiArICAgICAgIHJjdGwgPSBFMTAwMF9SRUFEX1JFRyhodywgRTEwMDBf UkNUTCk7DQo+ID4gPiArICAgICAgIEUxMDAwX1dSSVRFX1JFRyhodywgRTEwMDBfUkNUTCwgcmN0 bCAmIH5FMTAwMF9SQ1RMX0VOKTsNCj4gPiA+ICsgICAgICAgRTEwMDBfV1JJVEVfRkxVU0goaHcp Ow0KPiA+ID4gKyAgICAgICB1c2VjX2RlbGF5KDE1MCk7DQo+ID4gPiArDQo+ID4gPiArICAgICAg IGZvciAoaSA9IDA7IGkgPCBkZXYtPmRhdGEtPm5iX3J4X3F1ZXVlcyAmJg0KPiA+ID4gKyAgICAg ICAgICAgICAgIGkgPCBFMTAwMF9JMjE5X01BWF9SWF9RVUVVRV9OVU07IGkrKykgew0KPiA+ID4g KyAgICAgICAgICAgICAgIHJ4ZGN0bCA9IEUxMDAwX1JFQURfUkVHKGh3LCBFMTAwMF9SWERDVEwo aSkpOw0KPiA+ID4gKyAgICAgICAgICAgICAgIC8qIHplcm8gdGhlIGxvd2VyIDE0IGJpdHMgKHBy ZWZldGNoIGFuZCBob3N0IHRocmVzaG9sZHMpICovDQo+ID4gPiArICAgICAgICAgICAgICAgcnhk Y3RsICY9IDB4ZmZmZmMwMDA7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAgICAgICAgLyogdXBk YXRlIHRocmVzaG9sZHM6IHByZWZldGNoIHRocmVzaG9sZCB0byAzMSwNCj4gPiA+ICsgICAgICAg ICAgICAgICAgKiBob3N0IHRocmVzaG9sZCB0byAxIGFuZCBtYWtlIHN1cmUgdGhlIGdyYW51bGFy aXR5DQo+ID4gPiArICAgICAgICAgICAgICAgICogaXMgImRlc2NyaXB0b3JzIiBhbmQgbm90ICJj YWNoZSBsaW5lcyINCj4gPiA+ICsgICAgICAgICAgICAgICAgKi8NCj4gPiA+ICsgICAgICAgICAg ICAgICByeGRjdGwgfD0gKDB4MUYgfCAoMVVMIDw8IDgpIHwNCj4gPiA+ICsgRTEwMDBfUlhEQ1RM X1RIUkVTSF9VTklUX0RFU0MpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICAgIEUxMDAw X1dSSVRFX1JFRyhodywgRTEwMDBfUlhEQ1RMKGkpLCByeGRjdGwpOw0KPiA+ID4gKyAgICAgICB9 DQo+ID4gPiArICAgICAgIC8qIG1vbWVudGFyaWx5IGVuYWJsZSB0aGUgUlggcmluZyBmb3IgdGhl IGNoYW5nZXMgdG8gdGFrZSBlZmZlY3QgKi8NCj4gPiA+ICsgICAgICAgRTEwMDBfV1JJVEVfUkVH KGh3LCBFMTAwMF9SQ1RMLCByY3RsIHwgRTEwMDBfUkNUTF9FTik7DQo+ID4gPiArICAgICAgIEUx MDAwX1dSSVRFX0ZMVVNIKGh3KTsNCj4gPiA+ICsgICAgICAgdXNlY19kZWxheSgxNTApOw0KPiA+ ID4gKyAgICAgICBFMTAwMF9XUklURV9SRUcoaHcsIEUxMDAwX1JDVEwsIHJjdGwgJiB+RTEwMDBf UkNUTF9FTik7IH0NCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgKiBpZ2JfZmx1c2hfZGVz Y19yaW5ncyAtIHJlbW92ZSBhbGwgZGVzY3JpcHRvcnMgZnJvbSB0aGUNCj4gPiA+ICtkZXNjcmlw dG9yIHJpbmdzDQo+ID4gPiArICoNCj4gPiA+ICsgKiBJbiBpMjE5LCB0aGUgZGVzY3JpcHRvciBy aW5ncyBtdXN0IGJlIGVtcHRpZWQgYmVmb3JlDQo+ID4gPiArcmVzZXR0aW5nL2Nsb3NpbmcgdGhl DQo+ID4gPiArICogSFcuIEZhaWx1cmUgdG8gZG8gdGhpcyB3aWxsIGNhdXNlIHRoZSBIVyB0byBl bnRlciBhIHVuaXQgaGFuZw0KPiA+ID4gK3N0YXRlIHdoaWNoDQo+ID4gPiArICogY2FuIG9ubHkg YmUgcmVsZWFzZWQgYnkgUENJIHJlc2V0IG9uIHRoZSBkZXZpY2UNCj4gPiA+ICsgKg0KPiA+ID4g KyAqLw0KPiA+ID4gKw0KPiA+ID4gK3ZvaWQgaWdiX2ZsdXNoX2Rlc2NfcmluZ3Moc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYpIHsNCj4gPiA+ICsgICAgICAgdWludDMyX3QgZmV4dG52bTExLCB0ZGxl bjsNCj4gPiA+ICsgICAgICAgc3RydWN0IGUxMDAwX2h3ICpodyA9IEUxMDAwX0RFVl9QUklWQVRF X1RPX0hXKGRldi0+ZGF0YS0NCj4gPmRldl9wcml2YXRlKTsNCj4gPiA+ICsgICAgICAgc3RydWN0 IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2ID0gUlRFX0VUSF9ERVZfVE9fUENJKGRldik7DQo+ID4g PiArICAgICAgIHVpbnQzMl90IGhhbmdfc3RhdGUgPSAwOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAg ICBmZXh0bnZtMTEgPSBFMTAwMF9SRUFEX1JFRyhodywgRTEwMDBfRkVYVE5WTTExKTsNCj4gPiA+ ICsgICAgICAgRTEwMDBfV1JJVEVfUkVHKGh3LCBFMTAwMF9GRVhUTlZNMTEsDQo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICBmZXh0bnZtMTEgfCBFMTAwMF9GRVhUTlZNMTFfRElTQUJMRV9N VUxSX0ZJWCk7DQo+ID4gPiArICAgICAgIHRkbGVuID0gRTEwMDBfUkVBRF9SRUcoaHcsIEUxMDAw X1RETEVOKDApKTsNCj4gPiA+ICsgICAgICAgcnRlX3BjaV9yZWFkX2NvbmZpZyhwY2lfZGV2LCAm aGFuZ19zdGF0ZSwgc2l6ZW9mKGhhbmdfc3RhdGUpLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lDRkdfREVTQ19SSU5HX1NUQVRVUyk7DQo+ID4gPiArDQo+ID4gPiAr ICAgICAgIC8qIGRvIG5vdGhpbmcgaWYgd2UncmUgbm90IGluIGZhdWx0eSBzdGF0ZSwgb3IgaWYg dGhlIHF1ZXVlIGlzIGVtcHR5ICovDQo+ID4gPiArICAgICAgIGlmICgoaGFuZ19zdGF0ZSAmIEZM VVNIX0RFU0NfUkVRVUlSRUQpICYmIHRkbGVuKSB7DQo+ID4gPiArICAgICAgICAgICAgICAgLyog Zmx1c2ggZGVzYyByaW5nICovDQo+ID4gPiArICAgICAgICAgICAgICAgZTEwMDBfZmx1c2hfdHhf cmluZyhkZXYpOw0KPiA+ID4gKyAgICAgICAgICAgICAgIHJ0ZV9wY2lfcmVhZF9jb25maWcocGNp X2RldiwgJmhhbmdfc3RhdGUsIHNpemVvZihoYW5nX3N0YXRlKSwNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lDRkdfREVTQ19SSU5HX1NUQVRVUyk7DQo+ ID4gPiArICAgICAgICAgICAgICAgaWYgKGhhbmdfc3RhdGUgJiBGTFVTSF9ERVNDX1JFUVVJUkVE KQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZTEwMDBfZmx1c2hfcnhfcmluZyhkZXYp Ow0KPiA+ID4gKyAgICAgICB9DQo+ID4gPiArfQ0KPiA+ID4gLS0NCj4gPiA+IDIuNy40DQo+ID4g Pg0K