From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-outbound-1.vmware.com (smtp-outbound-1.vmware.com [208.91.2.12]) by dpdk.org (Postfix) with ESMTP id D66D15952 for ; Tue, 10 Mar 2015 00:28:55 +0100 (CET) Received: from sc9-mailhost1.vmware.com (sc9-mailhost1.vmware.com [10.113.161.71]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id EE46F2A124; Mon, 9 Mar 2015 16:28:52 -0700 (PDT) Received: from EX13-CAS-010.vmware.com (EX13-CAS-010.vmware.com [10.113.191.62]) by sc9-mailhost1.vmware.com (Postfix) with ESMTP id E72B418315; Mon, 9 Mar 2015 16:28:52 -0700 (PDT) Received: from EX13-MBX-026.vmware.com (10.113.191.46) by EX13-MBX-029.vmware.com (10.113.191.49) with Microsoft SMTP Server (TLS) id 15.0.913.22; Mon, 9 Mar 2015 16:28:40 -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:28:40 -0700 From: Yong Wang To: Stephen Hemminger Thread-Topic: [PATCH v3 07/10] vmxnet3: support jumbo frames Thread-Index: AQHQV6ICQEDwuIgHEEWTjggsrdRekp0U4wcA Date: Mon, 9 Mar 2015 23:28:39 +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: <1425600635-20628-8-git-send-email-stephen@networkplumber.org> 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: <82A8F3E62CE12248857AA1C5F86203BB@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:28:56 -0000 T24gMy81LzE1LCA0OjEwIFBNLCAiU3RlcGhlbiBIZW1taW5nZXIiIDxzdGVwaGVuQG5ldHdvcmtw bHVtYmVyLm9yZz4gd3JvdGU6DQoNCj5Gcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c2hlbW1pbmdA YnJvY2FkZS5jb20+DQo+DQo+QWRkIHN1cHBvcnQgZm9yIGxpbmtpbmcgbXVsdGktc2VnbWVudCBi dWZmZXJzIHRvZ2V0aGVyIHRvDQo+aGFuZGxlIEp1bWJvIHBhY2tldHMuDQo+DQo+U2lnbmVkLW9m Zi1ieTogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPg0KPi0t LQ0KPiBsaWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMgfCAgMyArLQ0KPiBs aWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfcmluZy5oICAgfCAgMiArDQo+IGxpYi9saWJy dGVfcG1kX3ZteG5ldDMvdm14bmV0M19yeHR4LmMgICB8IDc2DQo+KysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tDQo+IDMgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgMzEg ZGVsZXRpb25zKC0pDQo+DQo+ZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14 bmV0M19ldGhkZXYuYw0KPmIvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX2V0aGRldi5j DQo+aW5kZXggMzViYjU2MS4uNGYxYmM0ZiAxMDA2NDQNCj4tLS0gYS9saWIvbGlicnRlX3BtZF92 bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMNCj4rKysgYi9saWIvbGlicnRlX3BtZF92bXhuZXQzL3Zt eG5ldDNfZXRoZGV2LmMNCj5AQCAtNDAxLDYgKzQwMSw3IEBAIHZteG5ldDNfc2V0dXBfZHJpdmVy X3NoYXJlZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gew0KPiAJc3RydWN0IHJ0ZV9ldGhf Y29uZiBwb3J0X2NvbmYgPSBkZXYtPmRhdGEtPmRldl9jb25mOw0KPiAJc3RydWN0IHZteG5ldDNf aHcgKmh3ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4rCXVpbnQzMl90IG10dSA9IGRldi0+ ZGF0YS0+bXR1Ow0KPiAJVm14bmV0M19Ecml2ZXJTaGFyZWQgKnNoYXJlZCA9IGh3LT5zaGFyZWQ7 DQo+IAlWbXhuZXQzX0RTRGV2UmVhZCAqZGV2UmVhZCA9ICZzaGFyZWQtPmRldlJlYWQ7DQo+IAl1 aW50MzJfdCAqbWFjX3B0cjsNCj5AQCAtNDE4LDcgKzQxOSw3IEBAIHZteG5ldDNfc2V0dXBfZHJp dmVyX3NoYXJlZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gCWRldlJlYWQtPm1pc2MuZHJp dmVySW5mby52bXhuZXQzUmV2U3B0ID0gMTsNCj4gCWRldlJlYWQtPm1pc2MuZHJpdmVySW5mby51 cHRWZXJTcHQgICAgID0gMTsNCj4gDQo+LQlkZXZSZWFkLT5taXNjLm10dSA9IHJ0ZV9sZV90b19j cHVfMzIoZGV2LT5kYXRhLT5tdHUpOw0KPisJZGV2UmVhZC0+bWlzYy5tdHUgPSBydGVfbGVfdG9f Y3B1XzMyKG10dSk7DQoNCkkgZGlkbuKAmXQgc2VlIHdoZXJlIG10dSBpcyB1c2VkIHRvIGNhbGN1 bGF0ZSBob3cgbWFueSByeCBkZXNjcmlwdG9ycyB3aWxsDQpiZSBuZWVkZWQgZm9yIGVhY2ggcGFj a2V0LiAgRnVydGhlcm1vcmUsIGFzIHBvaW50ZWQgb3V0IGJ5IHRoZSBmb2xsb3dpbmcNCmNvZGUg Y29tbWVudHMsIHRoZSBkZXZpY2UgcmVxdWlyZXMgdGhlIGZpcnN0IHJ4IGJ1ZmZlciBvZiBhIHBh Y2tldCBiZSBvZg0KdHlwZSBWTVhORVQzX1JYRF9CVFlQRV9IRUFEIHdpdGggdGhlIHJlbWFpbmlu ZyBidWZmZXJzIG9mIHR5cGUNClZNWE5FVDNfUlhEX0JUWVBFX05PRFkuICBUaGlzIG5lZWRzIHRv IGJlIHRha2VuIGNhcmUgb2Ygd2hlbiBwb3B1bGF0aW5nIHJ4DQpyaW5ncyBpbiB2bXhuZXQzX3Bv c3RfcnhfYnVmcygpLiBDdXJyZW50bHkgd2UgZG9u4oCZdCBkbyB0aGlzIGJlY2F1c2Ugbm8NCnNj YXR0ZXItcnggaXMgc3VwcG9ydGVkIGFuZCBvbmx5IG9uZSBkZXNjcmlwdG9yIGlzIG5lZWRlZCBm b3IgYSBwYWNrZXQNCih0aHVzIGFsbCB0eXBlcyBzaG91bGQgYmUgSEVBRCkuIE90aGVyd2lzZSwg dGhlIGRldmljZSB3aWxsIGNvbXBsYWluIHdpdGgNCmVycm9yIHJldHVybmVkLiAgRm9yIHRoZSAy bmQgcnggcmluZywgdHlwZSBuZWVkcyB0byBiZSBCT0RZIGZvciBhbGwNCmRlc2NyaXB0b3JzIHN0 aWxsLg0KDQpSZWxhdGVkIHRvIHRoaXMsIGNvdWxkIHlvdSBzaGFyZSB3aGF0IHRlc3RzIGhhdmUg YmVlbiBkb25lIHRvIGNvdmVyIHRoZXNlDQpuZXcgZmVhdHVyZXM/DQoNCnN0YXRpYyBpbnQNCnZt eG5ldDNfcG9zdF9yeF9idWZzKHZteG5ldDNfcnhfcXVldWVfdCAqcnhxLCB1aW50OF90IHJpbmdf aWQpDQp7DQogICAgICAgIGludCBlcnIgPSAwOw0KICAgICAgICB1aW50MzJfdCBpID0gMCwgdmFs ID0gMDsNCiAgICAgICAgc3RydWN0IHZteG5ldDNfY21kX3JpbmcgKnJpbmcgPSAmcnhxLT5jbWRf cmluZ1tyaW5nX2lkXTsNCg0KICAgICAgICBpZiAocmluZ19pZCA9PSAwKSB7DQoJLyogVXN1YWxs eTogT25lIEhFQUQgdHlwZSBidWYgcGVyIHBhY2tldA0KCSogdmFsID0gKHJpbmctPm5leHQyZmls bCAlIHJ4cS0+aHctPmJ1ZnNfcGVyX3BrdCkgPw0KCSogVk1YTkVUM19SWERfQlRZUEVfQk9EWSA6 IFZNWE5FVDNfUlhEX0JUWVBFX0hFQUQ7DQoJKi8NCg0KCS8qIFdlIHVzZSBzaW5nbGUgcGFja2V0 IGJ1ZmZlciBzbyBhbGwgaGVhZHMgaGVyZSAqLw0KCXZhbCA9IFZNWE5FVDNfUlhEX0JUWVBFX0hF QUQ7DQogICAgICAgIH0gZWxzZSB7DQoJLyogQWxsIEJPRFkgdHlwZSBidWZmZXJzIGZvciAybmQg cmluZyAqLw0KCXZhbCA9IFZNWE5FVDNfUlhEX0JUWVBFX0JPRFk7DQogICAgICAgIH0NCg0KDQoN Cj4gCWRldlJlYWQtPm1pc2MucXVldWVEZXNjUEEgID0gaHctPnF1ZXVlRGVzY1BBOw0KPiAJZGV2 UmVhZC0+bWlzYy5xdWV1ZURlc2NMZW4gPSBody0+cXVldWVfZGVzY19sZW47DQo+IAlkZXZSZWFk LT5taXNjLm51bVR4UXVldWVzICA9IGh3LT5udW1fdHhfcXVldWVzOw0KPmRpZmYgLS1naXQgYS9s aWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfcmluZy5oDQo+Yi9saWIvbGlicnRlX3BtZF92 bXhuZXQzL3ZteG5ldDNfcmluZy5oDQo+aW5kZXggNjEyNDg3ZS4uNTVjZWFkZiAxMDA2NDQNCj4t LS0gYS9saWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfcmluZy5oDQo+KysrIGIvbGliL2xp YnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3JpbmcuaA0KPkBAIC0xNzEsNiArMTcxLDggQEAgdHlw ZWRlZiBzdHJ1Y3Qgdm14bmV0M19yeF9xdWV1ZSB7DQo+IAl1aW50MzJfdCAgICAgICAgICAgICAg ICAgICAgcWlkMTsNCj4gCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICBxaWQyOw0KPiAJVm14 bmV0M19SeFF1ZXVlRGVzYyAgICAgICAgICpzaGFyZWQ7DQo+KwlzdHJ1Y3QgcnRlX21idWYJCSAg ICAqc3RhcnRfc2VnOw0KPisJc3RydWN0IHJ0ZV9tYnVmCQkgICAgKmxhc3Rfc2VnOw0KPiAJc3Ry dWN0IHZteG5ldDNfcnhxX3N0YXRzICAgIHN0YXRzOw0KPiAJYm9vbCAgICAgICAgICAgICAgICAg ICAgICAgIHN0b3BwZWQ7DQo+IAl1aW50MTZfdCAgICAgICAgICAgICAgICAgICAgcXVldWVfaWQ7 ICAgICAgLyoqPCBEZXZpY2UgUlggcXVldWUgaW5kZXguDQo+Ki8NCj5kaWZmIC0tZ2l0IGEvbGli L2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPmIvbGliL2xpYnJ0ZV9wbWRfdm14 bmV0My92bXhuZXQzX3J4dHguYw0KPmluZGV4IGJhNDhhMTIuLjVjZjE4N2EgMTAwNjQ0DQo+LS0t IGEvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPisrKyBiL2xpYi9saWJy dGVfcG1kX3ZteG5ldDMvdm14bmV0M19yeHR4LmMNCj5AQCAtNTcxLDcgKzU3MSw2IEBAIHZteG5l dDNfcmVjdl9wa3RzKHZvaWQgKnJ4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21idWYNCj4qKnJ4X3BrdHMs IHVpbnQxNl90IG5iX3BrdHMpDQo+IAl2bXhuZXQzX3J4X3F1ZXVlX3QgKnJ4cTsNCj4gCVZteG5l dDNfUnhDb21wRGVzYyAqcmNkOw0KPiAJdm14bmV0M19idWZfaW5mb190ICpyYmk7DQo+LQlWbXhu ZXQzX1J4RGVzYyAqcnhkOw0KPiAJc3RydWN0IHJ0ZV9tYnVmICpyeG0gPSBOVUxMOw0KPiAJc3Ry dWN0IHZteG5ldDNfaHcgKmh3Ow0KPiANCj5AQCAtNTk2LDQyICs1OTUsMTggQEAgdm14bmV0M19y ZWN2X3BrdHModm9pZCAqcnhfcXVldWUsIHN0cnVjdCBydGVfbWJ1Zg0KPioqcnhfcGt0cywgdWlu dDE2X3QgbmJfcGt0cykNCj4gDQo+IAkJaWR4ID0gcmNkLT5yeGRJZHg7DQo+IAkJcmluZ19pZHgg PSAodWludDhfdCkoKHJjZC0+cnFJRCA9PSByeHEtPnFpZDEpID8gMCA6IDEpOw0KPi0JCXJ4ZCA9 IChWbXhuZXQzX1J4RGVzYyAqKXJ4cS0+Y21kX3JpbmdbcmluZ19pZHhdLmJhc2UgKyBpZHg7DQo+ IAkJcmJpID0gcnhxLT5jbWRfcmluZ1tyaW5nX2lkeF0uYnVmX2luZm8gKyBpZHg7DQo+IA0KPi0J CWlmICh1bmxpa2VseShyY2QtPnNvcCAhPSAxIHx8IHJjZC0+ZW9wICE9IDEpKSB7DQo+LQkJCXJ0 ZV9wa3RtYnVmX2ZyZWVfc2VnKHJiaS0+bSk7DQo+LQkJCVBNRF9SWF9MT0coREVCVUcsICJQYWNr ZXQgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSBidWZmZXJzXG4pIik7DQo+LQkJCWdvdG8gcmNkX2Rv bmU7DQo+LQkJfQ0KPiANCj4gCQlQTURfUlhfTE9HKERFQlVHLCAicnhkIGlkeDogJWQgcmluZyBp ZHg6ICVkLiIsIGlkeCwgcmluZ19pZHgpOw0KPiANCj4gI2lmZGVmIFJURV9MSUJSVEVfVk1YTkVU M19ERUJVR19EUklWRVINCj4rCQlWbXhuZXQzX1J4RGVzYyAqcnhkDQo+KwkJCT0gKFZteG5ldDNf UnhEZXNjICopcnhxLT5jbWRfcmluZ1tyaW5nX2lkeF0uYmFzZSArIGlkeDsNCj4gCQlWTVhORVQz X0FTU0VSVChyY2QtPmxlbiA8PSByeGQtPmxlbik7DQo+IAkJVk1YTkVUM19BU1NFUlQocmJpLT5t KTsNCj4gI2VuZGlmDQo+LQkJaWYgKHVubGlrZWx5KHJjZC0+bGVuID09IDApKSB7DQo+LQkJCVBN RF9SWF9MT0coREVCVUcsICJSeCBidWYgd2FzIHNraXBwZWQuIHJ4cmluZ1slZF1bJWRdXG4pIiwN Cj4tCQkJCSAgIHJpbmdfaWR4LCBpZHgpOw0KPi0jaWZkZWYgUlRFX0xJQlJURV9WTVhORVQzX0RF QlVHX0RSSVZFUg0KPi0JCQlWTVhORVQzX0FTU0VSVChyY2QtPnNvcCAmJiByY2QtPmVvcCk7DQo+ LSNlbmRpZg0KPi0JCQlydGVfcGt0bWJ1Zl9mcmVlX3NlZyhyYmktPm0pOw0KPi0JCQlnb3RvIHJj ZF9kb25lOw0KPi0JCX0NCj4gDQo+LQkJLyogQXNzdW1pbmcgYSBwYWNrZXQgaXMgY29taW5nIGlu IGEgc2luZ2xlIHBhY2tldCBidWZmZXIgKi8NCj4tCQlpZiAodW5saWtlbHkocnhkLT5idHlwZSAh PSBWTVhORVQzX1JYRF9CVFlQRV9IRUFEKSkgew0KPi0JCQlQTURfUlhfTE9HKERFQlVHLA0KPi0J CQkJICAgIkFsZXJ0IDogTWlzYmVoYXZpbmcgZGV2aWNlLCBpbmNvcnJlY3QgIg0KPi0JCQkJICAg IiBidWZmZXIgdHlwZSB1c2VkLiBpUGFja2V0IGRyb3BwZWQuIik7DQo+LQkJCXJ0ZV9wa3RtYnVm X2ZyZWVfc2VnKHJiaS0+bSk7DQo+LQkJCWdvdG8gcmNkX2RvbmU7DQo+LQkJfQ0KPi0jaWZkZWYg UlRFX0xJQlJURV9WTVhORVQzX0RFQlVHX0RSSVZFUg0KPi0JCVZNWE5FVDNfQVNTRVJUKHJ4ZC0+ YnR5cGUgPT0gVk1YTkVUM19SWERfQlRZUEVfSEVBRCk7DQo+LSNlbmRpZg0KPiAJCS8qIEdldCB0 aGUgcGFja2V0IGJ1ZmZlciBwb2ludGVyIGZyb20gYnVmX2luZm8gKi8NCj4gCQlyeG0gPSByYmkt Pm07DQo+IA0KPkBAIC02NDMsNyArNjE4LDcgQEAgdm14bmV0M19yZWN2X3BrdHModm9pZCAqcnhf cXVldWUsIHN0cnVjdCBydGVfbWJ1Zg0KPioqcnhfcGt0cywgdWludDE2X3QgbmJfcGt0cykNCj4g CQlyeHEtPmNtZF9yaW5nW3JpbmdfaWR4XS5uZXh0MmNvbXAgPSBpZHg7DQo+IA0KPiAJCS8qIEZv ciBSQ0Qgd2l0aCBFT1Agc2V0LCBjaGVjayBpZiB0aGVyZSBpcyBmcmFtZSBlcnJvciAqLw0KPi0J CWlmICh1bmxpa2VseShyY2QtPmVycikpIHsNCj4rCQlpZiAodW5saWtlbHkocmNkLT5lb3AgJiYg cmNkLT5lcnIpKSB7DQo+IAkJCXJ4cS0+c3RhdHMuZHJvcF90b3RhbCsrOw0KPiAJCQlyeHEtPnN0 YXRzLmRyb3BfZXJyKys7DQo+IA0KPkBAIC02NjksOSArNjQ0LDQ5IEBAIHZteG5ldDNfcmVjdl9w a3RzKHZvaWQgKnJ4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21idWYNCj4qKnJ4X3BrdHMsIHVpbnQxNl90 IG5iX3BrdHMpDQo+IAkJcnhtLT5vbF9mbGFncyA9IDA7DQo+IAkJcnhtLT52bGFuX3RjaSA9IDA7 DQo+IA0KPi0JCXZteG5ldDNfcnhfb2ZmbG9hZChyY2QsIHJ4bSk7DQo+KwkJLyoNCj4rCQkgKiBJ ZiB0aGlzIGlzIHRoZSBmaXJzdCBidWZmZXIgb2YgdGhlIHJlY2VpdmVkIHBhY2tldCwNCj4rCQkg KiBzZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGZpcnN0IG1idWYgb2YgdGhlIHBhY2tldA0KPisJCSAq IE90aGVyd2lzZSwgdXBkYXRlIHRoZSB0b3RhbCBsZW5ndGggYW5kIHRoZSBudW1iZXIgb2Ygc2Vn bWVudHMNCj4rCQkgKiBvZiB0aGUgY3VycmVudCBzY2F0dGVyZWQgcGFja2V0LCBhbmQgdXBkYXRl IHRoZSBwb2ludGVyIHRvDQo+KwkJICogdGhlIGxhc3QgbWJ1ZiBvZiB0aGUgY3VycmVudCBwYWNr ZXQuDQo+KwkJICovDQo+KwkJaWYgKHJjZC0+c29wKSB7DQo+KyNpZmRlZiBSVEVfTElCUlRFX1ZN WE5FVDNfREVCVUdfRFJJVkVSDQo+KwkJCVZNWE5FVDNfQVNTRVJUKCFyeHEtPnN0YXJ0X3NlZyk7 DQo+KwkJCVZNWE5FVDNfQVNTRVJUKHJ4ZC0+YnR5cGUgPT0gVk1YTkVUM19SWERfQlRZUEVfSEVB RCk7DQo+KyNlbmRpZg0KPisNCj4rCQkJaWYgKHVubGlrZWx5KHJjZC0+bGVuID09IDApKSB7DQo+ KwkJCQlQTURfUlhfTE9HKERFQlVHLA0KPisJCQkJCSAgICJSeCBidWYgd2FzIHNraXBwZWQuIHJ4 cmluZ1slZF1bJWRdKSIsDQo+KwkJCQkJICAgcmluZ19pZHgsIGlkeCk7DQo+KwkJCQlydGVfcGt0 bWJ1Zl9mcmVlX3NlZyhyYmktPm0pOw0KPisJCQkJZ290byByY2RfZG9uZTsNCj4rCQkJfQ0KPisN Cj4rCQkJcnhxLT5zdGFydF9zZWcgPSByeG07DQo+KwkJCXZteG5ldDNfcnhfb2ZmbG9hZChyY2Qs IHJ4bSk7DQo+KwkJfSBlbHNlIHsNCj4rCQkJc3RydWN0IHJ0ZV9tYnVmICpzdGFydCA9IHJ4cS0+ c3RhcnRfc2VnOw0KPisNCj4rI2lmZGVmIFJURV9MSUJSVEVfVk1YTkVUM19ERUJVR19EUklWRVIN Cj4rCQkJVk1YTkVUM19BU1NFUlQocnhkLT5idHlwZSA9PSBWTVhORVQzX1JYRF9CVFlQRV9CT0RZ KTsNCj4rCQkJVk1YTkVUM19BU1NFUlQoc3RhcnQgIT0gTlVMTCk7DQo+KyNlbmRpZg0KPisNCj4r CQkJc3RhcnQtPnBrdF9sZW4gKz0gcnhtLT5kYXRhX2xlbjsNCj4rCQkJc3RhcnQtPm5iX3NlZ3Mr KzsNCj4rDQo+KwkJCXJ4cS0+bGFzdF9zZWctPm5leHQgPSByeG07DQo+KwkJfQ0KPisJCXJ4cS0+ bGFzdF9zZWcgPSByeG07DQo+Kw0KPisJCWlmIChyY2QtPmVvcCkgew0KPisJCQlyeF9wa3RzW25i X3J4KytdID0gcnhxLT5zdGFydF9zZWc7DQo+KwkJCXJ4cS0+c3RhcnRfc2VnID0gTlVMTDsNCj4r CQl9DQo+IA0KPi0JCXJ4X3BrdHNbbmJfcngrK10gPSByeG07DQo+IHJjZF9kb25lOg0KPiAJCXJ4 cS0+Y21kX3JpbmdbcmluZ19pZHhdLm5leHQyY29tcCA9IGlkeDsNCj4gCQlWTVhORVQzX0lOQ19S SU5HX0lEWF9PTkxZKHJ4cS0+Y21kX3JpbmdbcmluZ19pZHhdLm5leHQyY29tcCwNCj5yeHEtPmNt ZF9yaW5nW3JpbmdfaWR4XS5zaXplKTsNCj5AQCAtOTc1LDYgKzk5MCw3IEBAIHZteG5ldDNfZGV2 X3J4dHhfaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gCQkJfQ0KPiAJCX0NCj4gCQly eHEtPnN0b3BwZWQgPSBGQUxTRTsNCj4rCQlyeHEtPnN0YXJ0X3NlZyA9IE5VTEw7DQo+IAl9DQo+ IA0KPiAJZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzOyBpKyspIHsNCj4t LSANCj4yLjEuNA0KPg0KDQo=