From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yongwang@vmware.com>
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 <dev@dpdk.org>; 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 <yongwang@vmware.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Thread-Topic: [PATCH v3 07/10] vmxnet3: support jumbo frames
Thread-Index: AQHQV6ICQEDwuIgHEEWTjggsrdRekp0U4wcAgAABJwA=
Date: Mon, 9 Mar 2015 23:32:48 +0000
Message-ID: <D1237B72.39F61%yongwang@vmware.com>
References: <1425600635-20628-1-git-send-email-stephen@networkplumber.org>
 <1425600635-20628-8-git-send-email-stephen@networkplumber.org>
 <D1237604.39F07%yongwang@vmware.com>
In-Reply-To: <D1237604.39F07%yongwang@vmware.com>
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" <dev@dpdk.org>, Stephen Hemminger <shemming@brocade.com>
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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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