From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id DC1D41CA0A for ; Thu, 5 Apr 2018 11:19:29 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Apr 2018 02:19:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,410,1517904000"; d="scan'208";a="188852437" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga004.jf.intel.com with ESMTP; 05 Apr 2018 02:19:28 -0700 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 5 Apr 2018 02:19:27 -0700 Received: from bgsmsx106.gar.corp.intel.com (10.223.43.196) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 5 Apr 2018 02:19:26 -0700 Received: from bgsmsx101.gar.corp.intel.com ([169.254.1.52]) by BGSMSX106.gar.corp.intel.com ([169.254.1.143]) with mapi id 14.03.0319.002; Thu, 5 Apr 2018 14:49:23 +0530 From: "Yang, Zhiyong" To: "Bie, Tiwei" CC: "dev@dpdk.org" , "maxime.coquelin@redhat.com" , "thomas@monjalon.net" , "Tan, Jianfeng" , "Wang, Zhihong" , "Wang, Dong1" Thread-Topic: [PATCH v5] net/virtio-user: add support for server mode Thread-Index: AQHTzDji7ctdHT3O8UKEbRwWN7b67aPxe8iAgABoBQA= Date: Thu, 5 Apr 2018 09:19:23 +0000 Message-ID: References: <20180403122009.52876-2-zhiyong.yang@intel.com> <20180404171753.43422-1-zhiyong.yang@intel.com> <20180405082929.d53geeppwianqmy4@debian> In-Reply-To: <20180405082929.d53geeppwianqmy4@debian> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.223.10.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v5] net/virtio-user: add support for server mode 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: , X-List-Received-Date: Thu, 05 Apr 2018 09:19:31 -0000 VGl3ZWksDQoNClRoYW5rcyAgYSBsb3QgZm9yIHlvdXIgcmV2aWV3IGFuZCBjb21tZW50cy4NCg0K UmVwbHkgaW5saW5lLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEJp ZSwgVGl3ZWkNCj4gU2VudDogVGh1cnNkYXksIEFwcmlsIDUsIDIwMTggNDoyOSBQTQ0KPiBUbzog WWFuZywgWmhpeW9uZyA8emhpeW9uZy55YW5nQGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9y ZzsgbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IHRob21hc0Btb25qYWxvbi5uZXQ7DQo+IFRh biwgSmlhbmZlbmcgPGppYW5mZW5nLnRhbkBpbnRlbC5jb20+OyBXYW5nLCBaaGlob25nDQo+IDx6 aGlob25nLndhbmdAaW50ZWwuY29tPjsgV2FuZywgRG9uZzEgPGRvbmcxLndhbmdAaW50ZWwuY29t Pg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY1XSBuZXQvdmlydGlvLXVzZXI6IGFkZCBzdXBwb3J0 IGZvciBzZXJ2ZXIgbW9kZQ0KPiANCj4gT24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMDE6MTc6NTNB TSArMDgwMCwgemhpeW9uZy55YW5nQGludGVsLmNvbSB3cm90ZToNCj4gWy4uLl0NCj4gPiArc3Rh dGljIGludA0KPiA+ICt2aXJ0aW9fdXNlcl9zdGFydF9zZXJ2ZXIoc3RydWN0IHZpcnRpb191c2Vy X2RldiAqZGV2LCBzdHJ1Y3QNCj4gPiArc29ja2FkZHJfdW4gKnVuKSB7DQo+ID4gKwlpbnQgcmV0 Ow0KPiA+ICsJaW50IGZsYWc7DQo+ID4gKwlpbnQgZmQgPSBkZXYtPmxpc3RlbmZkOw0KPiA+ICsN Cj4gPiArCXJldCA9IGJpbmQoZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKil1biwgc2l6ZW9mKCp1bikp Ow0KPiA+ICsJaWYgKHJldCA8IDApIHsNCj4gPiArCQlQTURfRFJWX0xPRyhFUlIsICJmYWlsZWQg dG8gYmluZCB0byAlczogJXM7IHJlbW92ZSBpdCBhbmQNCj4gdHJ5IGFnYWluXG4iLA0KPiA+ICsJ CQkgICAgZGV2LT5wYXRoLCBzdHJlcnJvcihlcnJubykpOw0KPiA+ICsJCWdvdG8gZXJyOw0KPiA+ ICsJfQ0KPiA+ICsJcmV0ID0gbGlzdGVuKGZkLCBNQVhfVklSVElPX1VTRVJfQkFDS0xPRyk7DQo+ ID4gKwlpZiAocmV0IDwgMCkNCj4gPiArCQlnb3RvIGVycjsNCj4gPiArDQo+ID4gKwlmbGFnID0g ZmNudGwoZmQsIEZfR0VURkwpOw0KPiA+ICsJZmNudGwoZmQsIEZfU0VURkwsIGZsYWcgfCBPX05P TkJMT0NLKTsNCj4gPiArCWRldi0+dmhvc3RmZCA9IC0xOw0KPiA+ICsNCj4gPiArCXJldHVybiAw Ow0KPiA+ICtlcnI6DQo+ID4gKwljbG9zZShkZXYtPmxpc3RlbmZkKTsNCj4gDQo+IFRoZSBkZXYt Pmxpc3RlbmZkIGlzbid0IGNyZWF0ZWQgaW4gdGhpcyBmdW5jdGlvbiwgbWF5YmUgaXQncyBiZXR0 ZXIgdG8gYXZvaWQNCj4gY2xvc2luZyB0aGlzIGZpbGUgaW4gdGhpcyBmdW5jdGlvbi4NCj4gDQoN Ck9rLg0KDQo+ID4gKwlyZXR1cm4gLTE7DQo+ID4gK30NCj4gPiArDQo+ID4gIC8qKg0KPiA+ICAg KiBTZXQgdXAgZW52aXJvbm1lbnQgdG8gdGFsayB3aXRoIGEgdmhvc3QgdXNlciBiYWNrZW5kLg0K PiA+ICAgKg0KPiA+IEBAIC0zOTAsNiArNDE4LDcgQEAgdmhvc3RfdXNlcl9zZXR1cChzdHJ1Y3Qg dmlydGlvX3VzZXJfZGV2ICpkZXYpICB7DQo+ID4gIAlpbnQgZmQ7DQo+ID4gIAlpbnQgZmxhZzsN Cj4gPiArCWludCByZXQgPSAwOw0KPiA+ICAJc3RydWN0IHNvY2thZGRyX3VuIHVuOw0KPiA+DQo+ ID4gIAlmZCA9IHNvY2tldChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCk7IEBAIC00MDUsMTQgKzQz NCwyMCBAQA0KPiA+IHZob3N0X3VzZXJfc2V0dXAoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2 KQ0KPiA+ICAJbWVtc2V0KCZ1biwgMCwgc2l6ZW9mKHVuKSk7DQo+ID4gIAl1bi5zdW5fZmFtaWx5 ID0gQUZfVU5JWDsNCj4gPiAgCXNucHJpbnRmKHVuLnN1bl9wYXRoLCBzaXplb2YodW4uc3VuX3Bh dGgpLCAiJXMiLCBkZXYtPnBhdGgpOw0KPiA+IC0JaWYgKGNvbm5lY3QoZmQsIChzdHJ1Y3Qgc29j a2FkZHIgKikmdW4sIHNpemVvZih1bikpIDwgMCkgew0KPiA+IC0JCVBNRF9EUlZfTE9HKEVSUiwg ImNvbm5lY3QgZXJyb3IsICVzIiwgc3RyZXJyb3IoZXJybm8pKTsNCj4gPiAtCQljbG9zZShmZCk7 DQo+ID4gLQkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiArCWlmIChkZXYtPmlzX3NlcnZlcikgew0K PiA+ICsJCWRldi0+bGlzdGVuZmQgPSBmZDsNCj4gPiArCQlyZXQgPSB2aXJ0aW9fdXNlcl9zdGFy dF9zZXJ2ZXIoZGV2LCAmdW4pOw0KPiA+ICsJfSBlbHNlIHsNCj4gDQo+IE1heWJlIGl0J3MgYmV0 dGVyIHRvIGtlZXAgdGhlIHN0eWxlIGNvbnNpc3RlbnQuIEhvdyBhYm91dCBzb21ldGhpbmcgbGlr ZSB0aGlzOg0KPiANCj4gCWlmIChkZXYtPmlzX3NlcnZlcikgew0KPiAJCWlmICh2aXJ0aW9fdXNl cl9zdGFydF9zZXJ2ZXIoZmQsICZ1bikgPCAwKSB7DQo+IAkJCVBNRF9EUlZfTE9HKEVSUiwgc29t ZSBtZXNzYWdlcy4uLik7DQo+IAkJCWNsb3NlKGZkKTsNCj4gCQkJcmV0dXJuIC0xOw0KPiAJCX0N Cj4gCQlkZXYtPmxpc3RlbmZkID0gZmQ7DQo+IAkJZGV2LT52aG9zdGZkID0gLTE7DQo+IAl9IGVs c2Ugew0KPiANCg0KT2suIGl0IGxvb2tzIGJldHRlci4NCg0KU28sIHRoZSBmb2xsb3dpbmcgY29k ZSBjaGFuZ2VzIGFsc28uDQoNCj4gPiArCQlpZiAoY29ubmVjdChmZCwgKHN0cnVjdCBzb2NrYWRk ciAqKSZ1biwgc2l6ZW9mKHVuKSkgPCAwKSB7DQo+ID4gKwkJCVBNRF9EUlZfTE9HKEVSUiwgImNv bm5lY3QgZXJyb3IsICVzIiwNCj4gc3RyZXJyb3IoZXJybm8pKTsNCj4gPiArCQkJY2xvc2UoZmQp Ow0KPiA+ICsJCQlyZXR1cm4gLTE7DQo+ID4gKwkJfQ0KPiA+ICsJCWRldi0+dmhvc3RmZCA9IGZk Ow0KDQpLZWVwIGNvbnNpc3RlbmN5Lg0KDQo+ID4gIAl9DQo+ID4NCj4gPiAtCWRldi0+dmhvc3Rm ZCA9IGZkOw0KPiA+IC0JcmV0dXJuIDA7DQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4N Cj4gPiAgc3RhdGljIGludA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmly dGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMNCj4gPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0 aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiA+IGluZGV4IGY5MGZlZTllNS4uNDVlMzI0Njc5 IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9f dXNlcl9kZXYuYw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0 aW9fdXNlcl9kZXYuYw0KPiA+IEBAIC0yNTQsNyArMjU0LDggQEAgdmlydGlvX3VzZXJfZmlsbF9p bnRyX2hhbmRsZShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2DQo+ICpkZXYpDQo+ID4gIAlldGhfZGV2 LT5pbnRyX2hhbmRsZS0+ZmQgPSAtMTsNCj4gPiAgCWlmIChkZXYtPnZob3N0ZmQgPj0gMCkNCj4g PiAgCQlldGhfZGV2LT5pbnRyX2hhbmRsZS0+ZmQgPSBkZXYtPnZob3N0ZmQ7DQo+ID4gLQ0KPiAN Cj4gTWF5YmUgaXQncyBiZXR0ZXIgdG8ga2VlcCB0aGlzIGVtcHR5IGxpbmUgKGtlZXAgaXQgYmVm b3JlIHRoZSByZXR1cm4gMCkuDQo+DQoNCk9rLg0KIA0KPiA+ICsJZWxzZSBpZiAoZGV2LT5pc19z ZXJ2ZXIpDQo+ID4gKwkJZXRoX2Rldi0+aW50cl9oYW5kbGUtPmZkID0gZGV2LT5saXN0ZW5mZDsN Cj4gPiAgCXJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMjY3LDI0ICsyNjgsMjkgQEAg dmlydGlvX3VzZXJfZGV2X3NldHVwKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYNCj4gKmRldikNCj4g PiAgCWRldi0+dmhvc3RmZHMgPSBOVUxMOw0KPiA+ICAJZGV2LT50YXBmZHMgPSBOVUxMOw0KPiA+ DQo+ID4gLQlpZiAoaXNfdmhvc3RfdXNlcl9ieV90eXBlKGRldi0+cGF0aCkpIHsNCj4gPiAtCQlk ZXYtPm9wcyA9ICZvcHNfdXNlcjsNCj4gPiArCWlmIChkZXYtPmlzX3NlcnZlcikgew0KPiA+ICsJ CWRldi0+b3BzID0gJm9wc191c2VyOy8qIHNlcnZlciBtb2RlIG9ubHkgc3VwcG9ydHMgdmhvc3QN Cj4gdXNlciAqLw0KPiA+ICAJfSBlbHNlIHsNCj4gPiAtCQlkZXYtPm9wcyA9ICZvcHNfa2VybmVs Ow0KPiA+IC0NCj4gPiAtCQlkZXYtPnZob3N0ZmRzID0gbWFsbG9jKGRldi0+bWF4X3F1ZXVlX3Bh aXJzICoNCj4gc2l6ZW9mKGludCkpOw0KPiA+IC0JCWRldi0+dGFwZmRzID0gbWFsbG9jKGRldi0+ bWF4X3F1ZXVlX3BhaXJzICogc2l6ZW9mKGludCkpOw0KPiA+IC0JCWlmICghZGV2LT52aG9zdGZk cyB8fCAhZGV2LT50YXBmZHMpIHsNCj4gPiAtCQkJUE1EX0lOSVRfTE9HKEVSUiwgIkZhaWxlZCB0 byBtYWxsb2MiKTsNCj4gPiAtCQkJcmV0dXJuIC0xOw0KPiA+IC0JCX0NCj4gPiAtDQo+ID4gLQkJ Zm9yIChxID0gMDsgcSA8IGRldi0+bWF4X3F1ZXVlX3BhaXJzOyArK3EpIHsNCj4gPiAtCQkJZGV2 LT52aG9zdGZkc1txXSA9IC0xOw0KPiA+IC0JCQlkZXYtPnRhcGZkc1txXSA9IC0xOw0KPiA+ICsJ CWlmIChpc192aG9zdF91c2VyX2J5X3R5cGUoZGV2LT5wYXRoKSkgew0KPiA+ICsJCQlkZXYtPm9w cyA9ICZvcHNfdXNlcjsNCj4gPiArCQl9IGVsc2Ugew0KPiA+ICsJCQlkZXYtPm9wcyA9ICZvcHNf a2VybmVsOw0KPiA+ICsNCj4gPiArCQkJZGV2LT52aG9zdGZkcyA9IG1hbGxvYyhkZXYtPm1heF9x dWV1ZV9wYWlycyAqDQo+ID4gKwkJCQkJICAgICAgIHNpemVvZihpbnQpKTsNCj4gPiArCQkJZGV2 LT50YXBmZHMgPSBtYWxsb2MoZGV2LT5tYXhfcXVldWVfcGFpcnMgKg0KPiA+ICsJCQkJCSAgICAg c2l6ZW9mKGludCkpOw0KPiA+ICsJCQlpZiAoIWRldi0+dmhvc3RmZHMgfHwgIWRldi0+dGFwZmRz KSB7DQo+ID4gKwkJCQlQTURfSU5JVF9MT0coRVJSLCAiRmFpbGVkIHRvIG1hbGxvYyIpOw0KPiA+ ICsJCQkJcmV0dXJuIC0xOw0KPiA+ICsJCQl9DQo+ID4gKw0KPiA+ICsJCQlmb3IgKHEgPSAwOyBx IDwgZGV2LT5tYXhfcXVldWVfcGFpcnM7ICsrcSkgew0KPiA+ICsJCQkJZGV2LT52aG9zdGZkc1tx XSA9IC0xOw0KPiA+ICsJCQkJZGV2LT50YXBmZHNbcV0gPSAtMTsNCj4gPiArCQkJfQ0KPiA+ICAJ CX0NCj4gPiAgCX0NCj4gPiAtDQo+IA0KPiBUaGVyZSBpcyBubyBuZWVkIHRvIHJlbW92ZSB0aGlz IGVtcHR5IGxpbmUuDQo+IA0KT2sNCj4gPiAgCWlmIChkZXYtPm9wcy0+c2V0dXAoZGV2KSA8IDAp DQo+ID4gIAkJcmV0dXJuIC0xOw0KPiA+DQo+ID4gQEAgLTMzNywxNiArMzQzLDIxIEBAIHZpcnRp b191c2VyX2Rldl9pbml0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gY2hhciAqcGF0 aCwgaW50IHF1ZXVlcywNCj4gPiAgCQlyZXR1cm4gLTE7DQo+ID4gIAl9DQo+ID4NCj4gPiAtCWlm IChkZXYtPm9wcy0+c2VuZF9yZXF1ZXN0KGRldiwgVkhPU1RfVVNFUl9TRVRfT1dORVIsIE5VTEwp DQo+IDwgMCkgew0KPiA+IC0JCVBNRF9JTklUX0xPRyhFUlIsICJzZXRfb3duZXIgZmFpbHM6ICVz Iiwgc3RyZXJyb3IoZXJybm8pKTsNCj4gPiAtCQlyZXR1cm4gLTE7DQo+ID4gLQl9DQo+ID4gKwlp ZiAoZGV2LT52aG9zdGZkID49IDApIHsNCj4gPiArCQlpZiAoZGV2LT5vcHMtPnNlbmRfcmVxdWVz dChkZXYsDQo+IFZIT1NUX1VTRVJfU0VUX09XTkVSLCBOVUxMKSA8IDApIHsNCj4gPiArCQkJUE1E X0lOSVRfTE9HKEVSUiwgInNldF9vd25lciBmYWlsczogJXMiLA0KPiBzdHJlcnJvcihlcnJubykp Ow0KPiA+ICsJCQlyZXR1cm4gLTE7DQo+ID4gKwkJfQ0KPiA+DQo+ID4gLQlpZiAoZGV2LT5vcHMt PnNlbmRfcmVxdWVzdChkZXYsIFZIT1NUX1VTRVJfR0VUX0ZFQVRVUkVTLA0KPiA+IC0JCQkgICAg JmRldi0+ZGV2aWNlX2ZlYXR1cmVzKSA8IDApIHsNCj4gPiAtCQlQTURfSU5JVF9MT0coRVJSLCAi Z2V0X2ZlYXR1cmVzIGZhaWxlZDogJXMiLA0KPiBzdHJlcnJvcihlcnJubykpOw0KPiA+IC0JCXJl dHVybiAtMTsNCj4gPiArCQlpZiAoZGV2LT5vcHMtPnNlbmRfcmVxdWVzdChkZXYsDQo+IFZIT1NU X1VTRVJfR0VUX0ZFQVRVUkVTLA0KPiA+ICsJCQkJJmRldi0+ZGV2aWNlX2ZlYXR1cmVzKSA8IDAp IHsNCj4gPiArCQkJUE1EX0lOSVRfTE9HKEVSUiwgImdldF9mZWF0dXJlcyBmYWlsZWQ6ICVzIiwN Cj4gc3RyZXJyb3IoZXJybm8pKTsNCj4gPiArCQkJcmV0dXJuIC0xOw0KPiA+ICsJCX0NCj4gPiAr CX0gZWxzZSB7DQo+ID4gKwkJZGV2LT5kZXZpY2VfZmVhdHVyZXMgPQ0KPiBWSVJUSU9fVVNFUl9T VVBQT1JURURfRkVBVFVSRVM7DQo+IA0KPiBJZiB0aGUgYmFja2VuZCBkb2Vzbid0IHN1cHBvcnQg ZS5nLiBWSVJUSU9fUklOR19GX0lORElSRUNUX0RFU0MuDQo+IFdpbGwgaXQgY2F1c2UgYW55IHBy b2JsZW0/DQo+IA0KTGV0IG1lIHRyeSBpdCAgYW5kIHNlZSB3aGF0IHdpbGwgYmUgaGFwcGVuaW5n Lg0KDQo+ID4gIAl9DQo+ID4gKw0KPiA+ICAJaWYgKGRldi0+bWFjX3NwZWNpZmllZCkNCj4gPiAg CQlkZXYtPmRldmljZV9mZWF0dXJlcyB8PSAoMXVsbCA8PCBWSVJUSU9fTkVUX0ZfTUFDKTsNCj4g Pg0KPiA+IEBAIC0zODgsNiArMzk5LDExIEBAIHZpcnRpb191c2VyX2Rldl91bmluaXQoc3RydWN0 IHZpcnRpb191c2VyX2Rldg0KPiA+ICpkZXYpDQo+ID4NCj4gPiAgCWNsb3NlKGRldi0+dmhvc3Rm ZCk7DQo+ID4NCj4gPiArCWlmIChkZXYtPmlzX3NlcnZlciAmJiBkZXYtPmxpc3RlbmZkID49IDAp IHsNCj4gPiArCQljbG9zZShkZXYtPmxpc3RlbmZkKTsNCj4gPiArCQlkZXYtPmxpc3RlbmZkID0g LTE7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAJaWYgKGRldi0+dmhvc3RmZHMpIHsNCj4gPiAgCQlm b3IgKGkgPSAwOyBpIDwgZGV2LT5tYXhfcXVldWVfcGFpcnM7ICsraSkNCj4gPiAgCQkJY2xvc2Uo ZGV2LT52aG9zdGZkc1tpXSk7DQo+ID4gQEAgLTM5Niw2ICs0MTIsOSBAQCB2aXJ0aW9fdXNlcl9k ZXZfdW5pbml0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldikNCj4gPiAgCX0NCj4gPg0KPiA+ ICAJZnJlZShkZXYtPmlmbmFtZSk7DQo+ID4gKw0KPiA+ICsJaWYgKGRldi0+aXNfc2VydmVyKQ0K PiA+ICsJCXVubGluayhkZXYtPnBhdGgpOw0KPiA+ICB9DQo+IFsuLi5dDQo+ID4NCj4gPiAgc3Rh dGljIGludA0KPiA+ICBnZXRfc3RyaW5nX2FyZyhjb25zdCBjaGFyICprZXkgX19ydGVfdW51c2Vk LCBAQCAtMzc4LDEwICs0MzgsMTIgQEANCj4gPiB2aXJ0aW9fdXNlcl9wbWRfcHJvYmUoc3RydWN0 IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQ0KPiA+ICAJdWludDY0X3QgcXVldWVzID0gVklSVElPX1VT RVJfREVGX1FfTlVNOw0KPiA+ICAJdWludDY0X3QgY3EgPSBWSVJUSU9fVVNFUl9ERUZfQ1FfRU47 DQo+ID4gIAl1aW50NjRfdCBxdWV1ZV9zaXplID0gVklSVElPX1VTRVJfREVGX1FfU1o7DQo+ID4g Kwl1aW50NjRfdCBzZXJ2ZXJfbW9kZSA9IFZJUlRJT19VU0VSX0RFRl9TRVJWRVJfTU9ERTsNCj4g PiAgCWNoYXIgKnBhdGggPSBOVUxMOw0KPiA+ICAJY2hhciAqaWZuYW1lID0gTlVMTDsNCj4gPiAg CWNoYXIgKm1hY19hZGRyID0gTlVMTDsNCj4gPiAgCWludCByZXQgPSAtMTsNCj4gPiArCXN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKnZ1X2RldiA9IE5VTEw7DQo+IA0KPiBNYXliZSBpdCdzIGJldHRl ciB0byBtb3ZlIHRoZSBkZWZpbml0aW9uIG9mIHZ1X2RldiBhZnRlciBldGhfZGV2LiBBbmQgdGhl cmUNCj4gaXNuJ3Qgbm8gbmVlZCB0byBpbml0aWFsaXplIGl0Lg0KPiANCg0KT2suDQoNCnRoYW5r cw0KWmhpeW9uZw0KDQo=