From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-outbound-2.vmware.com (smtp-outbound-2.vmware.com [208.91.2.13]) by dpdk.org (Postfix) with ESMTP id A07125A1D for ; Tue, 10 Mar 2015 00:32:50 +0100 (CET) Received: from sc9-mailhost3.vmware.com (sc9-mailhost3.vmware.com [10.113.161.73]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 4BB022AE4B; Mon, 9 Mar 2015 16:32:49 -0700 (PDT) Received: from EX13-CAS-011.vmware.com (EX13-CAS-011.vmware.com [10.113.191.63]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id 3D2F54025C; Mon, 9 Mar 2015 16:32:49 -0700 (PDT) Received: from EX13-MBX-026.vmware.com (10.113.191.46) by EX13-MBX-030.vmware.com (10.113.191.50) with Microsoft SMTP Server (TLS) id 15.0.913.22; Mon, 9 Mar 2015 16:32:48 -0700 Received: from EX13-MBX-026.vmware.com ([fe80::858b:7f42:fd7c:703d]) by EX13-MBX-026.vmware.com ([fe80::858b:7f42:fd7c:703d%17]) with mapi id 15.00.0913.011; Mon, 9 Mar 2015 16:32:48 -0700 From: Yong Wang To: Stephen Hemminger Thread-Topic: [PATCH v3 07/10] vmxnet3: support jumbo frames Thread-Index: AQHQV6ICQEDwuIgHEEWTjggsrdRekp0U4wcAgAABJwA= Date: Mon, 9 Mar 2015 23:32:48 +0000 Message-ID: References: <1425600635-20628-1-git-send-email-stephen@networkplumber.org> <1425600635-20628-8-git-send-email-stephen@networkplumber.org> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.113.160.246] Content-Type: text/plain; charset="utf-8" Content-ID: <402120F193886C49ACF392ED8ED90EA6@pa-exch1.vmware.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Cc: "dev@dpdk.org" , Stephen Hemminger Subject: Re: [dpdk-dev] [PATCH v3 07/10] vmxnet3: support jumbo frames X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Mar 2015 23:32:51 -0000 T24gMy85LzE1LCA0OjI4IFBNLCAiWW9uZyBXYW5nIiA8eW9uZ3dhbmdAdm13YXJlLmNvbT4gd3Jv dGU6DQoNCj5PbiAzLzUvMTUsIDQ6MTAgUE0sICJTdGVwaGVuIEhlbW1pbmdlciIgPHN0ZXBoZW5A bmV0d29ya3BsdW1iZXIub3JnPg0KPndyb3RlOg0KPg0KPj5Gcm9tOiBTdGVwaGVuIEhlbW1pbmdl ciA8c2hlbW1pbmdAYnJvY2FkZS5jb20+DQo+Pg0KPj5BZGQgc3VwcG9ydCBmb3IgbGlua2luZyBt dWx0aS1zZWdtZW50IGJ1ZmZlcnMgdG9nZXRoZXIgdG8NCj4+aGFuZGxlIEp1bWJvIHBhY2tldHMu DQo+Pg0KPj5TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3Jr cGx1bWJlci5vcmc+DQo+Pi0tLQ0KPj4gbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX2V0 aGRldi5jIHwgIDMgKy0NCj4+IGxpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19yaW5nLmgg ICB8ICAyICsNCj4+IGxpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19yeHR4LmMgICB8IDc2 DQo+PisrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPj4gMyBmaWxlcyBjaGFuZ2Vk LCA1MCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkNCj4+DQo+PmRpZmYgLS1naXQgYS9s aWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMNCj4+Yi9saWIvbGlicnRlX3Bt ZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMNCj4+aW5kZXggMzViYjU2MS4uNGYxYmM0ZiAxMDA2 NDQNCj4+LS0tIGEvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQo+Pisr KyBiL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYw0KPj5AQCAtNDAxLDYg KzQwMSw3IEBAIHZteG5ldDNfc2V0dXBfZHJpdmVyX3NoYXJlZChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikNCj4+IHsNCj4+IAlzdHJ1Y3QgcnRlX2V0aF9jb25mIHBvcnRfY29uZiA9IGRldi0+ZGF0 YS0+ZGV2X2NvbmY7DQo+PiAJc3RydWN0IHZteG5ldDNfaHcgKmh3ID0gZGV2LT5kYXRhLT5kZXZf cHJpdmF0ZTsNCj4+Kwl1aW50MzJfdCBtdHUgPSBkZXYtPmRhdGEtPm10dTsNCj4+IAlWbXhuZXQz X0RyaXZlclNoYXJlZCAqc2hhcmVkID0gaHctPnNoYXJlZDsNCj4+IAlWbXhuZXQzX0RTRGV2UmVh ZCAqZGV2UmVhZCA9ICZzaGFyZWQtPmRldlJlYWQ7DQo+PiAJdWludDMyX3QgKm1hY19wdHI7DQo+ PkBAIC00MTgsNyArNDE5LDcgQEAgdm14bmV0M19zZXR1cF9kcml2ZXJfc2hhcmVkKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2KQ0KPj4gCWRldlJlYWQtPm1pc2MuZHJpdmVySW5mby52bXhuZXQzUmV2 U3B0ID0gMTsNCj4+IAlkZXZSZWFkLT5taXNjLmRyaXZlckluZm8udXB0VmVyU3B0ICAgICA9IDE7 DQo+PiANCj4+LQlkZXZSZWFkLT5taXNjLm10dSA9IHJ0ZV9sZV90b19jcHVfMzIoZGV2LT5kYXRh LT5tdHUpOw0KPj4rCWRldlJlYWQtPm1pc2MubXR1ID0gcnRlX2xlX3RvX2NwdV8zMihtdHUpOw0K Pg0KPkkgZGlkbuKAmXQgc2VlIHdoZXJlIG10dSBpcyB1c2VkIHRvIGNhbGN1bGF0ZSBob3cgbWFu eSByeCBkZXNjcmlwdG9ycyB3aWxsDQo+YmUgbmVlZGVkIGZvciBlYWNoIHBhY2tldC4gIEZ1cnRo ZXJtb3JlLCBhcyBwb2ludGVkIG91dCBieSB0aGUgZm9sbG93aW5nDQo+Y29kZSBjb21tZW50cywg dGhlIGRldmljZSByZXF1aXJlcyB0aGUgZmlyc3QgcnggYnVmZmVyIG9mIGEgcGFja2V0IGJlIG9m DQo+dHlwZSBWTVhORVQzX1JYRF9CVFlQRV9IRUFEIHdpdGggdGhlIHJlbWFpbmluZyBidWZmZXJz IG9mIHR5cGUNCj5WTVhORVQzX1JYRF9CVFlQRV9OT0RZLiAgVGhpcyBuZWVkcyB0byBiZSB0YWtl biBjYXJlIG9mIHdoZW4gcG9wdWxhdGluZyByeA0KPnJpbmdzIGluIHZteG5ldDNfcG9zdF9yeF9i dWZzKCkuIEN1cnJlbnRseSB3ZSBkb27igJl0IGRvIHRoaXMgYmVjYXVzZSBubw0KPnNjYXR0ZXIt cnggaXMgc3VwcG9ydGVkIGFuZCBvbmx5IG9uZSBkZXNjcmlwdG9yIGlzIG5lZWRlZCBmb3IgYSBw YWNrZXQNCj4odGh1cyBhbGwgdHlwZXMgc2hvdWxkIGJlIEhFQUQpLiBPdGhlcndpc2UsIHRoZSBk ZXZpY2Ugd2lsbCBjb21wbGFpbiB3aXRoDQoNClRvIGNsYXJpZnksIGluIHRoaXMgY2FzZSBvbmx5 IHRoZSAxc3QgcmluZyB3aWxsIGJlIHVzZWQgYW5kIHRodXMgYWxsIHR5cGVzDQp3aWxsIGJlIEhF QUQuDQoNCj5lcnJvciByZXR1cm5lZC4gIEZvciB0aGUgMm5kIHJ4IHJpbmcsIHR5cGUgbmVlZHMg dG8gYmUgQk9EWSBmb3IgYWxsDQo+ZGVzY3JpcHRvcnMgc3RpbGwuDQo+DQo+UmVsYXRlZCB0byB0 aGlzLCBjb3VsZCB5b3Ugc2hhcmUgd2hhdCB0ZXN0cyBoYXZlIGJlZW4gZG9uZSB0byBjb3ZlciB0 aGVzZQ0KPm5ldyBmZWF0dXJlcz8NCj4NCj5zdGF0aWMgaW50DQo+dm14bmV0M19wb3N0X3J4X2J1 ZnModm14bmV0M19yeF9xdWV1ZV90ICpyeHEsIHVpbnQ4X3QgcmluZ19pZCkNCj57DQo+ICAgICAg ICBpbnQgZXJyID0gMDsNCj4gICAgICAgIHVpbnQzMl90IGkgPSAwLCB2YWwgPSAwOw0KPiAgICAg ICAgc3RydWN0IHZteG5ldDNfY21kX3JpbmcgKnJpbmcgPSAmcnhxLT5jbWRfcmluZ1tyaW5nX2lk XTsNCj4NCj4gICAgICAgIGlmIChyaW5nX2lkID09IDApIHsNCj4JLyogVXN1YWxseTogT25lIEhF QUQgdHlwZSBidWYgcGVyIHBhY2tldA0KPgkqIHZhbCA9IChyaW5nLT5uZXh0MmZpbGwgJSByeHEt Pmh3LT5idWZzX3Blcl9wa3QpID8NCj4JKiBWTVhORVQzX1JYRF9CVFlQRV9CT0RZIDogVk1YTkVU M19SWERfQlRZUEVfSEVBRDsNCj4JKi8NCj4NCj4JLyogV2UgdXNlIHNpbmdsZSBwYWNrZXQgYnVm ZmVyIHNvIGFsbCBoZWFkcyBoZXJlICovDQo+CXZhbCA9IFZNWE5FVDNfUlhEX0JUWVBFX0hFQUQ7 DQo+ICAgICAgICB9IGVsc2Ugew0KPgkvKiBBbGwgQk9EWSB0eXBlIGJ1ZmZlcnMgZm9yIDJuZCBy aW5nICovDQo+CXZhbCA9IFZNWE5FVDNfUlhEX0JUWVBFX0JPRFk7DQo+ICAgICAgICB9DQo+DQo+ DQo+DQo+PiAJZGV2UmVhZC0+bWlzYy5xdWV1ZURlc2NQQSAgPSBody0+cXVldWVEZXNjUEE7DQo+ PiAJZGV2UmVhZC0+bWlzYy5xdWV1ZURlc2NMZW4gPSBody0+cXVldWVfZGVzY19sZW47DQo+PiAJ ZGV2UmVhZC0+bWlzYy5udW1UeFF1ZXVlcyAgPSBody0+bnVtX3R4X3F1ZXVlczsNCj4+ZGlmZiAt LWdpdCBhL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19yaW5nLmgNCj4+Yi9saWIvbGli cnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfcmluZy5oDQo+PmluZGV4IDYxMjQ4N2UuLjU1Y2VhZGYg MTAwNjQ0DQo+Pi0tLSBhL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19yaW5nLmgNCj4+ KysrIGIvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3JpbmcuaA0KPj5AQCAtMTcxLDYg KzE3MSw4IEBAIHR5cGVkZWYgc3RydWN0IHZteG5ldDNfcnhfcXVldWUgew0KPj4gCXVpbnQzMl90 ICAgICAgICAgICAgICAgICAgICBxaWQxOw0KPj4gCXVpbnQzMl90ICAgICAgICAgICAgICAgICAg ICBxaWQyOw0KPj4gCVZteG5ldDNfUnhRdWV1ZURlc2MgICAgICAgICAqc2hhcmVkOw0KPj4rCXN0 cnVjdCBydGVfbWJ1ZgkJICAgICpzdGFydF9zZWc7DQo+PisJc3RydWN0IHJ0ZV9tYnVmCQkgICAg Kmxhc3Rfc2VnOw0KPj4gCXN0cnVjdCB2bXhuZXQzX3J4cV9zdGF0cyAgICBzdGF0czsNCj4+IAli b29sICAgICAgICAgICAgICAgICAgICAgICAgc3RvcHBlZDsNCj4+IAl1aW50MTZfdCAgICAgICAg ICAgICAgICAgICAgcXVldWVfaWQ7ICAgICAgLyoqPCBEZXZpY2UgUlggcXVldWUgaW5kZXguDQo+ PiovDQo+PmRpZmYgLS1naXQgYS9saWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfcnh0eC5j DQo+PmIvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPj5pbmRleCBiYTQ4 YTEyLi41Y2YxODdhIDEwMDY0NA0KPj4tLS0gYS9saWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5l dDNfcnh0eC5jDQo+PisrKyBiL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19yeHR4LmMN Cj4+QEAgLTU3MSw3ICs1NzEsNiBAQCB2bXhuZXQzX3JlY3ZfcGt0cyh2b2lkICpyeF9xdWV1ZSwg c3RydWN0IHJ0ZV9tYnVmDQo+PioqcnhfcGt0cywgdWludDE2X3QgbmJfcGt0cykNCj4+IAl2bXhu ZXQzX3J4X3F1ZXVlX3QgKnJ4cTsNCj4+IAlWbXhuZXQzX1J4Q29tcERlc2MgKnJjZDsNCj4+IAl2 bXhuZXQzX2J1Zl9pbmZvX3QgKnJiaTsNCj4+LQlWbXhuZXQzX1J4RGVzYyAqcnhkOw0KPj4gCXN0 cnVjdCBydGVfbWJ1ZiAqcnhtID0gTlVMTDsNCj4+IAlzdHJ1Y3Qgdm14bmV0M19odyAqaHc7DQo+ PiANCj4+QEAgLTU5Niw0MiArNTk1LDE4IEBAIHZteG5ldDNfcmVjdl9wa3RzKHZvaWQgKnJ4X3F1 ZXVlLCBzdHJ1Y3QgcnRlX21idWYNCj4+KipyeF9wa3RzLCB1aW50MTZfdCBuYl9wa3RzKQ0KPj4g DQo+PiAJCWlkeCA9IHJjZC0+cnhkSWR4Ow0KPj4gCQlyaW5nX2lkeCA9ICh1aW50OF90KSgocmNk LT5ycUlEID09IHJ4cS0+cWlkMSkgPyAwIDogMSk7DQo+Pi0JCXJ4ZCA9IChWbXhuZXQzX1J4RGVz YyAqKXJ4cS0+Y21kX3JpbmdbcmluZ19pZHhdLmJhc2UgKyBpZHg7DQo+PiAJCXJiaSA9IHJ4cS0+ Y21kX3JpbmdbcmluZ19pZHhdLmJ1Zl9pbmZvICsgaWR4Ow0KPj4gDQo+Pi0JCWlmICh1bmxpa2Vs eShyY2QtPnNvcCAhPSAxIHx8IHJjZC0+ZW9wICE9IDEpKSB7DQo+Pi0JCQlydGVfcGt0bWJ1Zl9m cmVlX3NlZyhyYmktPm0pOw0KPj4tCQkJUE1EX1JYX0xPRyhERUJVRywgIlBhY2tldCBzcHJlYWQg YWNyb3NzIG11bHRpcGxlIGJ1ZmZlcnNcbikiKTsNCj4+LQkJCWdvdG8gcmNkX2RvbmU7DQo+Pi0J CX0NCj4+IA0KPj4gCQlQTURfUlhfTE9HKERFQlVHLCAicnhkIGlkeDogJWQgcmluZyBpZHg6ICVk LiIsIGlkeCwgcmluZ19pZHgpOw0KPj4gDQo+PiAjaWZkZWYgUlRFX0xJQlJURV9WTVhORVQzX0RF QlVHX0RSSVZFUg0KPj4rCQlWbXhuZXQzX1J4RGVzYyAqcnhkDQo+PisJCQk9IChWbXhuZXQzX1J4 RGVzYyAqKXJ4cS0+Y21kX3JpbmdbcmluZ19pZHhdLmJhc2UgKyBpZHg7DQo+PiAJCVZNWE5FVDNf QVNTRVJUKHJjZC0+bGVuIDw9IHJ4ZC0+bGVuKTsNCj4+IAkJVk1YTkVUM19BU1NFUlQocmJpLT5t KTsNCj4+ICNlbmRpZg0KPj4tCQlpZiAodW5saWtlbHkocmNkLT5sZW4gPT0gMCkpIHsNCj4+LQkJ CVBNRF9SWF9MT0coREVCVUcsICJSeCBidWYgd2FzIHNraXBwZWQuIHJ4cmluZ1slZF1bJWRdXG4p IiwNCj4+LQkJCQkgICByaW5nX2lkeCwgaWR4KTsNCj4+LSNpZmRlZiBSVEVfTElCUlRFX1ZNWE5F VDNfREVCVUdfRFJJVkVSDQo+Pi0JCQlWTVhORVQzX0FTU0VSVChyY2QtPnNvcCAmJiByY2QtPmVv cCk7DQo+Pi0jZW5kaWYNCj4+LQkJCXJ0ZV9wa3RtYnVmX2ZyZWVfc2VnKHJiaS0+bSk7DQo+Pi0J CQlnb3RvIHJjZF9kb25lOw0KPj4tCQl9DQo+PiANCj4+LQkJLyogQXNzdW1pbmcgYSBwYWNrZXQg aXMgY29taW5nIGluIGEgc2luZ2xlIHBhY2tldCBidWZmZXIgKi8NCj4+LQkJaWYgKHVubGlrZWx5 KHJ4ZC0+YnR5cGUgIT0gVk1YTkVUM19SWERfQlRZUEVfSEVBRCkpIHsNCj4+LQkJCVBNRF9SWF9M T0coREVCVUcsDQo+Pi0JCQkJICAgIkFsZXJ0IDogTWlzYmVoYXZpbmcgZGV2aWNlLCBpbmNvcnJl Y3QgIg0KPj4tCQkJCSAgICIgYnVmZmVyIHR5cGUgdXNlZC4gaVBhY2tldCBkcm9wcGVkLiIpOw0K Pj4tCQkJcnRlX3BrdG1idWZfZnJlZV9zZWcocmJpLT5tKTsNCj4+LQkJCWdvdG8gcmNkX2RvbmU7 DQo+Pi0JCX0NCj4+LSNpZmRlZiBSVEVfTElCUlRFX1ZNWE5FVDNfREVCVUdfRFJJVkVSDQo+Pi0J CVZNWE5FVDNfQVNTRVJUKHJ4ZC0+YnR5cGUgPT0gVk1YTkVUM19SWERfQlRZUEVfSEVBRCk7DQo+ Pi0jZW5kaWYNCj4+IAkJLyogR2V0IHRoZSBwYWNrZXQgYnVmZmVyIHBvaW50ZXIgZnJvbSBidWZf aW5mbyAqLw0KPj4gCQlyeG0gPSByYmktPm07DQo+PiANCj4+QEAgLTY0Myw3ICs2MTgsNyBAQCB2 bXhuZXQzX3JlY3ZfcGt0cyh2b2lkICpyeF9xdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmDQo+Pioqcnhf cGt0cywgdWludDE2X3QgbmJfcGt0cykNCj4+IAkJcnhxLT5jbWRfcmluZ1tyaW5nX2lkeF0ubmV4 dDJjb21wID0gaWR4Ow0KPj4gDQo+PiAJCS8qIEZvciBSQ0Qgd2l0aCBFT1Agc2V0LCBjaGVjayBp ZiB0aGVyZSBpcyBmcmFtZSBlcnJvciAqLw0KPj4tCQlpZiAodW5saWtlbHkocmNkLT5lcnIpKSB7 DQo+PisJCWlmICh1bmxpa2VseShyY2QtPmVvcCAmJiByY2QtPmVycikpIHsNCj4+IAkJCXJ4cS0+ c3RhdHMuZHJvcF90b3RhbCsrOw0KPj4gCQkJcnhxLT5zdGF0cy5kcm9wX2VycisrOw0KPj4gDQo+ PkBAIC02NjksOSArNjQ0LDQ5IEBAIHZteG5ldDNfcmVjdl9wa3RzKHZvaWQgKnJ4X3F1ZXVlLCBz dHJ1Y3QgcnRlX21idWYNCj4+KipyeF9wa3RzLCB1aW50MTZfdCBuYl9wa3RzKQ0KPj4gCQlyeG0t Pm9sX2ZsYWdzID0gMDsNCj4+IAkJcnhtLT52bGFuX3RjaSA9IDA7DQo+PiANCj4+LQkJdm14bmV0 M19yeF9vZmZsb2FkKHJjZCwgcnhtKTsNCj4+KwkJLyoNCj4+KwkJICogSWYgdGhpcyBpcyB0aGUg Zmlyc3QgYnVmZmVyIG9mIHRoZSByZWNlaXZlZCBwYWNrZXQsDQo+PisJCSAqIHNldCB0aGUgcG9p bnRlciB0byB0aGUgZmlyc3QgbWJ1ZiBvZiB0aGUgcGFja2V0DQo+PisJCSAqIE90aGVyd2lzZSwg dXBkYXRlIHRoZSB0b3RhbCBsZW5ndGggYW5kIHRoZSBudW1iZXIgb2Ygc2VnbWVudHMNCj4+KwkJ ICogb2YgdGhlIGN1cnJlbnQgc2NhdHRlcmVkIHBhY2tldCwgYW5kIHVwZGF0ZSB0aGUgcG9pbnRl ciB0bw0KPj4rCQkgKiB0aGUgbGFzdCBtYnVmIG9mIHRoZSBjdXJyZW50IHBhY2tldC4NCj4+KwkJ ICovDQo+PisJCWlmIChyY2QtPnNvcCkgew0KPj4rI2lmZGVmIFJURV9MSUJSVEVfVk1YTkVUM19E RUJVR19EUklWRVINCj4+KwkJCVZNWE5FVDNfQVNTRVJUKCFyeHEtPnN0YXJ0X3NlZyk7DQo+PisJ CQlWTVhORVQzX0FTU0VSVChyeGQtPmJ0eXBlID09IFZNWE5FVDNfUlhEX0JUWVBFX0hFQUQpOw0K Pj4rI2VuZGlmDQo+PisNCj4+KwkJCWlmICh1bmxpa2VseShyY2QtPmxlbiA9PSAwKSkgew0KPj4r CQkJCVBNRF9SWF9MT0coREVCVUcsDQo+PisJCQkJCSAgICJSeCBidWYgd2FzIHNraXBwZWQuIHJ4 cmluZ1slZF1bJWRdKSIsDQo+PisJCQkJCSAgIHJpbmdfaWR4LCBpZHgpOw0KPj4rCQkJCXJ0ZV9w a3RtYnVmX2ZyZWVfc2VnKHJiaS0+bSk7DQo+PisJCQkJZ290byByY2RfZG9uZTsNCj4+KwkJCX0N Cj4+Kw0KPj4rCQkJcnhxLT5zdGFydF9zZWcgPSByeG07DQo+PisJCQl2bXhuZXQzX3J4X29mZmxv YWQocmNkLCByeG0pOw0KPj4rCQl9IGVsc2Ugew0KPj4rCQkJc3RydWN0IHJ0ZV9tYnVmICpzdGFy dCA9IHJ4cS0+c3RhcnRfc2VnOw0KPj4rDQo+PisjaWZkZWYgUlRFX0xJQlJURV9WTVhORVQzX0RF QlVHX0RSSVZFUg0KPj4rCQkJVk1YTkVUM19BU1NFUlQocnhkLT5idHlwZSA9PSBWTVhORVQzX1JY RF9CVFlQRV9CT0RZKTsNCj4+KwkJCVZNWE5FVDNfQVNTRVJUKHN0YXJ0ICE9IE5VTEwpOw0KPj4r I2VuZGlmDQo+PisNCj4+KwkJCXN0YXJ0LT5wa3RfbGVuICs9IHJ4bS0+ZGF0YV9sZW47DQo+PisJ CQlzdGFydC0+bmJfc2VncysrOw0KPj4rDQo+PisJCQlyeHEtPmxhc3Rfc2VnLT5uZXh0ID0gcnht Ow0KPj4rCQl9DQo+PisJCXJ4cS0+bGFzdF9zZWcgPSByeG07DQo+PisNCj4+KwkJaWYgKHJjZC0+ ZW9wKSB7DQo+PisJCQlyeF9wa3RzW25iX3J4KytdID0gcnhxLT5zdGFydF9zZWc7DQo+PisJCQly eHEtPnN0YXJ0X3NlZyA9IE5VTEw7DQo+PisJCX0NCj4+IA0KPj4tCQlyeF9wa3RzW25iX3J4Kytd ID0gcnhtOw0KPj4gcmNkX2RvbmU6DQo+PiAJCXJ4cS0+Y21kX3JpbmdbcmluZ19pZHhdLm5leHQy Y29tcCA9IGlkeDsNCj4+IAkJVk1YTkVUM19JTkNfUklOR19JRFhfT05MWShyeHEtPmNtZF9yaW5n W3JpbmdfaWR4XS5uZXh0MmNvbXAsDQo+PnJ4cS0+Y21kX3JpbmdbcmluZ19pZHhdLnNpemUpOw0K Pj5AQCAtOTc1LDYgKzk5MCw3IEBAIHZteG5ldDNfZGV2X3J4dHhfaW5pdChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldikNCj4+IAkJCX0NCj4+IAkJfQ0KPj4gCQlyeHEtPnN0b3BwZWQgPSBGQUxTRTsN Cj4+KwkJcnhxLT5zdGFydF9zZWcgPSBOVUxMOw0KPj4gCX0NCj4+IA0KPj4gCWZvciAoaSA9IDA7 IGkgPCBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlczsgaSsrKSB7DQo+Pi0tIA0KPj4yLjEuNA0KPj4N Cj4NCg0K