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 513CDA04DE; Fri, 23 Oct 2020 07:10:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 211CC6A68; Fri, 23 Oct 2020 07:09:59 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 923746968 for ; Fri, 23 Oct 2020 07:09:57 +0200 (CEST) IronPort-SDR: o9NLSWd6BJ00N4aisd6I6SJHvAMQGtFINymiyDA3WnmpP7IQgEbCHE9uDvk3NLP+AbNmFA/vIn NwbpLHN59kDA== X-IronPort-AV: E=McAfee;i="6000,8403,9782"; a="229264247" X-IronPort-AV: E=Sophos;i="5.77,407,1596524400"; d="scan'208";a="229264247" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Oct 2020 22:09:55 -0700 IronPort-SDR: tlu83QAwi1Ay4orTZ149woGJi7ilNhOCErnFE1ut+2/87dkcj5FxV/6XfKc7UNuSJaBvB5eWF9 lodwC2gd8qNA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,407,1596524400"; d="scan'208";a="523381780" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga006.fm.intel.com with ESMTP; 22 Oct 2020 22:09:55 -0700 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 22 Oct 2020 22:09:54 -0700 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 23 Oct 2020 13:09:52 +0800 Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.1713.004; Fri, 23 Oct 2020 13:09:52 +0800 From: "Ling, WeiX" To: "Guo, Jia" , "Wu, Jingjing" , "Zhang, Qi Z" , "Xing, Beilei" , "Wang, Haiyue" , "Yang, Qiming" CC: "dev@dpdk.org" , "Yigit, Ferruh" , "mb@smartsharesystems.com" , "stephen@networkplumber.org" , "barbette@kth.se" , "Feifei.wang2@arm.com" , "Richardson, Bruce" , "Guo, Jia" , "Zhang, Helin" Thread-Topic: [dpdk-dev] [PATCH v5 5/5] net/iavf: fix vector rx burst for iavf Thread-Index: AQHWo6I3tgE1dkamy0ixKocsP3xcjamkriMQ Date: Fri, 23 Oct 2020 05:09:51 +0000 Message-ID: <6068c0af487348f79d1921582d4bd948@intel.com> References: <20200827075452.1751-1-jia.guo@intel.com> <20201016094431.96889-1-jia.guo@intel.com> <20201016094431.96889-6-jia.guo@intel.com> In-Reply-To: <20201016094431.96889-6-jia.guo@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v5 5/5] net/iavf: fix vector rx burst for iavf 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" VGVzdGVkLWJ5OiBMaW5nLCBXZWkgPHdlaXgubGluZ0BpbnRlbC5jb20+DQoNClJlZ2FyZHMsDQpM aW5nIFdlaQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldiA8ZGV2 LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBKZWZmIEd1bw0KPiBTZW50OiBGcmlkYXks IE9jdG9iZXIgMTYsIDIwMjAgMDU6NDUgUE0NCj4gVG86IFd1LCBKaW5namluZyA8amluZ2ppbmcu d3VAaW50ZWwuY29tPjsgWmhhbmcsIFFpIFoNCj4gPHFpLnouemhhbmdAaW50ZWwuY29tPjsgWGlu ZywgQmVpbGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+OyBXYW5nLCBIYWl5dWUNCj4gPGhhaXl1 ZS53YW5nQGludGVsLmNvbT47IFlhbmcsIFFpbWluZyA8cWltaW5nLnlhbmdAaW50ZWwuY29tPg0K PiBDYzogZGV2QGRwZGsub3JnOyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29t PjsNCj4gbWJAc21hcnRzaGFyZXN5c3RlbXMuY29tOyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9y ZzsNCj4gYmFyYmV0dGVAa3RoLnNlOyBGZWlmZWkud2FuZzJAYXJtLmNvbTsgUmljaGFyZHNvbiwg QnJ1Y2UNCj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgR3VvLCBKaWEgPGppYS5ndW9A aW50ZWwuY29tPjsgWmhhbmcsIEhlbGluDQo+IDxoZWxpbi56aGFuZ0BpbnRlbC5jb20+DQo+IFN1 YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIHY1IDUvNV0gbmV0L2lhdmY6IGZpeCB2ZWN0b3Igcngg YnVyc3QgZm9yIGlhdmYNCj4gDQo+IFRoZSBsaW1pdGF0aW9uIG9mIGJ1cnN0IHNpemUgaW4gdmVj dG9yIHJ4IHdhcyByZW1vdmVkLCBzaW5jZSBpdCBzaG91bGQgcmV0cmlldmUNCj4gYXMgbXVjaCBy ZWNlaXZlZCBwYWNrZXRzIGFzIHBvc3NpYmxlLiBBbmQgYWxzbyB0aGUgc2NhdHRlcmVkIHJlY2Vp dmUgcGF0aA0KPiBzaG91bGQgdXNlIGEgd3JhcHBlciBmdW5jdGlvbiB0byBhY2hpZXZlIHRoZSBn b2FsIG9mIGJ1cnN0IG1heGltaXppbmcuDQo+IA0KPiBCdWd6aWxsYSBJRDogNTE2DQo+IEZpeGVz OiAzMTljNDIxZjM4OTAgKCJuZXQvYXZmOiBlbmFibGUgU1NFIFJ4IFR4IikNCj4gRml4ZXM6IDEx NjJmNWEwZWYzMSAoIm5ldC9pYXZmOiBzdXBwb3J0IGZsZXhpYmxlIFJ4IGRlc2NyaXB0b3IgaW4g U1NFIHBhdGgiKQ0KPiBGaXhlczogNWI2ZTg4NTkwODFkICgibmV0L2lhdmY6IHN1cHBvcnQgZmxl eGlibGUgUnggZGVzY3JpcHRvciBpbiBBVlggcGF0aCIpDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBK ZWZmIEd1byA8amlhLmd1b0BpbnRlbC5jb20+DQo+IEFja2VkLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8 bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0L2lhdmYvaWF2 Zl9yeHR4X3ZlY19zc2UuYyB8IDEwMyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0NCj4gIDEg ZmlsZSBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfc3NlLmMNCj4gYi9kcml2 ZXJzL25ldC9pYXZmL2lhdmZfcnh0eF92ZWNfc3NlLmMNCj4gaW5kZXggODVjNWJkNGFmMC4uMTFh Y2FhMDI5ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvaWF2Zi9pYXZmX3J4dHhfdmVjX3Nz ZS5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2lhdmYvaWF2Zl9yeHR4X3ZlY19zc2UuYw0KPiBAQCAt Mzc5LDEwICszNzksMTIgQEAgZmxleF9kZXNjX3RvX3B0eXBlX3YoX19tMTI4aSBkZXNjc1s0XSwg c3RydWN0DQo+IHJ0ZV9tYnVmICoqcnhfcGt0cywNCj4gIAlyeF9wa3RzWzNdLT5wYWNrZXRfdHlw ZSA9DQo+IHR5cGVfdGFibGVbX21tX2V4dHJhY3RfZXBpMTYocHR5cGVfYWxsLCA3KV07ICB9DQo+ IA0KPiAtLyogTm90aWNlOg0KPiArLyoqDQo+ICsgKiB2UE1EIHJhdyByZWNlaXZlIHJvdXRpbmUs IG9ubHkgYWNjZXB0KG5iX3BrdHMgPj0NCj4gK0lBVkZfVlBNRF9ERVNDU19QRVJfTE9PUCkNCj4g KyAqDQo+ICsgKiBOb3RpY2U6DQo+ICAgKiAtIG5iX3BrdHMgPCBJQVZGX1ZQTURfREVTQ1NfUEVS X0xPT1AsIGp1c3QgcmV0dXJuIG5vIHBhY2tldA0KPiAtICogLSBuYl9wa3RzID4gSUFWRl9WUE1E X1JYX01BWF9CVVJTVCwgb25seSBzY2FuDQo+IElBVkZfVlBNRF9SWF9NQVhfQlVSU1QNCj4gLSAq ICAgbnVtYmVycyBvZiBERCBiaXRzDQo+ICsgKiAtIGZsb29yIGFsaWduIG5iX3BrdHMgdG8gYSBJ QVZGX1ZQTURfREVTQ1NfUEVSX0xPT1AgcG93ZXItb2YtdHdvDQo+ICAgKi8NCj4gIHN0YXRpYyBp bmxpbmUgdWludDE2X3QNCj4gIF9yZWN2X3Jhd19wa3RzX3ZlYyhzdHJ1Y3QgaWF2Zl9yeF9xdWV1 ZSAqcnhxLCBzdHJ1Y3QgcnRlX21idWYgKipyeF9wa3RzLA0KPiBAQCAtNDEzLDkgKzQxNSw2IEBA IF9yZWN2X3Jhd19wa3RzX3ZlYyhzdHJ1Y3QgaWF2Zl9yeF9xdWV1ZSAqcnhxLA0KPiBzdHJ1Y3Qg cnRlX21idWYgKipyeF9wa3RzLA0KPiAgCQkJb2Zmc2V0b2Yoc3RydWN0IHJ0ZV9tYnVmLCByeF9k ZXNjcmlwdG9yX2ZpZWxkczEpICsgOCk7DQo+ICAJX19tMTI4aSBkZF9jaGVjaywgZW9wX2NoZWNr Ow0KPiANCj4gLQkvKiBuYl9wa3RzIHNoYWxsIGJlIGxlc3MgZXF1YWwgdGhhbiBJQVZGX1ZQTURf UlhfTUFYX0JVUlNUICovDQo+IC0JbmJfcGt0cyA9IFJURV9NSU4obmJfcGt0cywgSUFWRl9WUE1E X1JYX01BWF9CVVJTVCk7DQo+IC0NCj4gIAkvKiBuYl9wa3RzIGhhcyB0byBiZSBmbG9vci1hbGln bmVkIHRvIElBVkZfVlBNRF9ERVNDU19QRVJfTE9PUA0KPiAqLw0KPiAgCW5iX3BrdHMgPSBSVEVf QUxJR05fRkxPT1IobmJfcGt0cywNCj4gSUFWRl9WUE1EX0RFU0NTX1BFUl9MT09QKTsNCj4gDQo+ IEBAIC02MjcsMTAgKzYyNiwxMyBAQCBfcmVjdl9yYXdfcGt0c192ZWMoc3RydWN0IGlhdmZfcnhf cXVldWUgKnJ4cSwNCj4gc3RydWN0IHJ0ZV9tYnVmICoqcnhfcGt0cywNCj4gIAlyZXR1cm4gbmJf cGt0c19yZWNkOw0KPiAgfQ0KPiANCj4gLS8qIE5vdGljZToNCj4gKy8qKg0KPiArICogdlBNRCBy YXcgcmVjZWl2ZSByb3V0aW5lIGZvciBmbGV4IFJ4RCwNCj4gKyAqIG9ubHkgYWNjZXB0KG5iX3Br dHMgPj0gSUFWRl9WUE1EX0RFU0NTX1BFUl9MT09QKQ0KPiArICoNCj4gKyAqIE5vdGljZToNCj4g ICAqIC0gbmJfcGt0cyA8IElBVkZfVlBNRF9ERVNDU19QRVJfTE9PUCwganVzdCByZXR1cm4gbm8g cGFja2V0DQo+IC0gKiAtIG5iX3BrdHMgPiBJQVZGX1ZQTURfUlhfTUFYX0JVUlNULCBvbmx5IHNj YW4NCj4gSUFWRl9WUE1EX1JYX01BWF9CVVJTVA0KPiAtICogICBudW1iZXJzIG9mIEREIGJpdHMN Cj4gKyAqIC0gZmxvb3IgYWxpZ24gbmJfcGt0cyB0byBhIElBVkZfVlBNRF9ERVNDU19QRVJfTE9P UCBwb3dlci1vZi10d28NCj4gICAqLw0KPiAgc3RhdGljIGlubGluZSB1aW50MTZfdA0KPiAgX3Jl Y3ZfcmF3X3BrdHNfdmVjX2ZsZXhfcnhkKHN0cnVjdCBpYXZmX3J4X3F1ZXVlICpyeHEsIEBAIC02 ODgsOSArNjkwLDYNCj4gQEAgX3JlY3ZfcmF3X3BrdHNfdmVjX2ZsZXhfcnhkKHN0cnVjdCBpYXZm X3J4X3F1ZXVlICpyeHEsDQo+ICAJY29uc3QgX19tMTI4aSBlb3BfY2hlY2sgPSBfbW1fc2V0X2Vw aTY0eCgweDAwMDAwMDAyMDAwMDAwMDJMTCwNCj4gIAkJCQkJCSAweDAwMDAwMDAyMDAwMDAwMDJM TCk7DQo+IA0KPiAtCS8qIG5iX3BrdHMgc2hhbGwgYmUgbGVzcyBlcXVhbCB0aGFuIElBVkZfVlBN RF9SWF9NQVhfQlVSU1QgKi8NCj4gLQluYl9wa3RzID0gUlRFX01JTihuYl9wa3RzLCBJQVZGX1ZQ TURfUlhfTUFYX0JVUlNUKTsNCj4gLQ0KPiAgCS8qIG5iX3BrdHMgaGFzIHRvIGJlIGZsb29yLWFs aWduZWQgdG8gSUFWRl9WUE1EX0RFU0NTX1BFUl9MT09QDQo+ICovDQo+ICAJbmJfcGt0cyA9IFJU RV9BTElHTl9GTE9PUihuYl9wa3RzLA0KPiBJQVZGX1ZQTURfREVTQ1NfUEVSX0xPT1ApOw0KPiAN Cj4gQEAgLTk0NSwxNSArOTQ0LDE1IEBAIGlhdmZfcmVjdl9wa3RzX3ZlY19mbGV4X3J4ZCh2b2lk ICpyeF9xdWV1ZSwNCj4gc3RydWN0IHJ0ZV9tYnVmICoqcnhfcGt0cywNCj4gIAlyZXR1cm4gX3Jl Y3ZfcmF3X3BrdHNfdmVjX2ZsZXhfcnhkKHJ4X3F1ZXVlLCByeF9wa3RzLCBuYl9wa3RzLA0KPiBO VUxMKTsgIH0NCj4gDQo+IC0vKiB2UE1EIHJlY2VpdmUgcm91dGluZSB0aGF0IHJlYXNzZW1ibGVz IHNjYXR0ZXJlZCBwYWNrZXRzDQo+ICsvKioNCj4gKyAqIHZQTUQgcmVjZWl2ZSByb3V0aW5lIHRo YXQgcmVhc3NlbWJsZXMgc2luZ2xlIGJ1cnN0IG9mIDMyIHNjYXR0ZXJlZA0KPiArcGFja2V0cw0K PiArICoNCj4gICAqIE5vdGljZToNCj4gICAqIC0gbmJfcGt0cyA8IElBVkZfVlBNRF9ERVNDU19Q RVJfTE9PUCwganVzdCByZXR1cm4gbm8gcGFja2V0DQo+IC0gKiAtIG5iX3BrdHMgPiBWUE1EX1JY X01BWF9CVVJTVCwgb25seSBzY2FuDQo+IElBVkZfVlBNRF9SWF9NQVhfQlVSU1QNCj4gLSAqICAg bnVtYmVycyBvZiBERCBiaXRzDQo+ICAgKi8NCj4gLXVpbnQxNl90DQo+IC1pYXZmX3JlY3Zfc2Nh dHRlcmVkX3BrdHNfdmVjKHZvaWQgKnJ4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21idWYgKipyeF9wa3Rz LA0KPiAtCQkJICAgIHVpbnQxNl90IG5iX3BrdHMpDQo+ICtzdGF0aWMgdWludDE2X3QNCj4gK2lh dmZfcmVjdl9zY2F0dGVyZWRfYnVyc3RfdmVjKHZvaWQgKnJ4X3F1ZXVlLCBzdHJ1Y3QgcnRlX21i dWYgKipyeF9wa3RzLA0KPiArCQkJICAgICAgdWludDE2X3QgbmJfcGt0cykNCj4gIHsNCj4gIAlz dHJ1Y3QgaWF2Zl9yeF9xdWV1ZSAqcnhxID0gcnhfcXVldWU7DQo+ICAJdWludDhfdCBzcGxpdF9m bGFnc1tJQVZGX1ZQTURfUlhfTUFYX0JVUlNUXSA9IHswfTsgQEAgLTk4NiwxNg0KPiArOTg1LDQz IEBAIGlhdmZfcmVjdl9zY2F0dGVyZWRfcGt0c192ZWModm9pZCAqcnhfcXVldWUsIHN0cnVjdCBy dGVfbWJ1Zg0KPiAqKnJ4X3BrdHMsDQo+ICAJCSZzcGxpdF9mbGFnc1tpXSk7DQo+ICB9DQo+IA0K PiAtLyogdlBNRCByZWNlaXZlIHJvdXRpbmUgdGhhdCByZWFzc2VtYmxlcyBzY2F0dGVyZWQgcGFj a2V0cyBmb3IgZmxleCBSeEQNCj4gKy8qKg0KPiArICogdlBNRCByZWNlaXZlIHJvdXRpbmUgdGhh dCByZWFzc2VtYmxlcyBzY2F0dGVyZWQgcGFja2V0cy4NCj4gKyAqLw0KPiArdWludDE2X3QNCj4g K2lhdmZfcmVjdl9zY2F0dGVyZWRfcGt0c192ZWModm9pZCAqcnhfcXVldWUsIHN0cnVjdCBydGVf bWJ1ZiAqKnJ4X3BrdHMsDQo+ICsJCQkgICAgIHVpbnQxNl90IG5iX3BrdHMpDQo+ICt7DQo+ICsJ dWludDE2X3QgcmV0dmFsID0gMDsNCj4gKw0KPiArCXdoaWxlIChuYl9wa3RzID4gSUFWRl9WUE1E X1JYX01BWF9CVVJTVCkgew0KPiArCQl1aW50MTZfdCBidXJzdDsNCj4gKw0KPiArCQlidXJzdCA9 IGlhdmZfcmVjdl9zY2F0dGVyZWRfYnVyc3RfdmVjKHJ4X3F1ZXVlLA0KPiArCQkJCQkJICAgICAg cnhfcGt0cyArIHJldHZhbCwNCj4gKw0KPiBJQVZGX1ZQTURfUlhfTUFYX0JVUlNUKTsNCj4gKwkJ cmV0dmFsICs9IGJ1cnN0Ow0KPiArCQluYl9wa3RzIC09IGJ1cnN0Ow0KPiArCQlpZiAoYnVyc3Qg PCBJQVZGX1ZQTURfUlhfTUFYX0JVUlNUKQ0KPiArCQkJcmV0dXJuIHJldHZhbDsNCj4gKwl9DQo+ ICsNCj4gKwlyZXR1cm4gcmV0dmFsICsgaWF2Zl9yZWN2X3NjYXR0ZXJlZF9idXJzdF92ZWMocnhf cXVldWUsDQo+ICsJCQkJCQkgICAgICByeF9wa3RzICsgcmV0dmFsLA0KPiArCQkJCQkJICAgICAg bmJfcGt0cyk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogdlBNRCByZWNlaXZlIHJvdXRpbmUg dGhhdCByZWFzc2VtYmxlcyBzaW5nbGUgYnVyc3Qgb2YgMzIgc2NhdHRlcmVkDQo+ICtwYWNrZXRz DQo+ICsgKiBmb3IgZmxleCBSeEQNCj4gKyAqDQo+ICAgKiBOb3RpY2U6DQo+ICAgKiAtIG5iX3Br dHMgPCBJQVZGX1ZQTURfREVTQ1NfUEVSX0xPT1AsIGp1c3QgcmV0dXJuIG5vIHBhY2tldA0KPiAt ICogLSBuYl9wa3RzID4gVlBNRF9SWF9NQVhfQlVSU1QsIG9ubHkgc2Nhbg0KPiBJQVZGX1ZQTURf UlhfTUFYX0JVUlNUDQo+IC0gKiAgIG51bWJlcnMgb2YgREQgYml0cw0KPiAgICovDQo+IC11aW50 MTZfdA0KPiAtaWF2Zl9yZWN2X3NjYXR0ZXJlZF9wa3RzX3ZlY19mbGV4X3J4ZCh2b2lkICpyeF9x dWV1ZSwNCj4gLQkJCQkgICAgICBzdHJ1Y3QgcnRlX21idWYgKipyeF9wa3RzLA0KPiAtCQkJCSAg ICAgIHVpbnQxNl90IG5iX3BrdHMpDQo+ICtzdGF0aWMgdWludDE2X3QNCj4gK2lhdmZfcmVjdl9z Y2F0dGVyZWRfYnVyc3RfdmVjX2ZsZXhfcnhkKHZvaWQgKnJ4X3F1ZXVlLA0KPiArCQkJCSAgICAg ICBzdHJ1Y3QgcnRlX21idWYgKipyeF9wa3RzLA0KPiArCQkJCSAgICAgICB1aW50MTZfdCBuYl9w a3RzKQ0KPiAgew0KPiAgCXN0cnVjdCBpYXZmX3J4X3F1ZXVlICpyeHEgPSByeF9xdWV1ZTsNCj4g IAl1aW50OF90IHNwbGl0X2ZsYWdzW0lBVkZfVlBNRF9SWF9NQVhfQlVSU1RdID0gezB9OyBAQCAt MTAyOCw2DQo+ICsxMDU0LDMzIEBAIGlhdmZfcmVjdl9zY2F0dGVyZWRfcGt0c192ZWNfZmxleF9y eGQodm9pZCAqcnhfcXVldWUsDQo+ICAJCSZzcGxpdF9mbGFnc1tpXSk7DQo+ICB9DQo+IA0KPiAr LyoqDQo+ICsgKiB2UE1EIHJlY2VpdmUgcm91dGluZSB0aGF0IHJlYXNzZW1ibGVzIHNjYXR0ZXJl ZCBwYWNrZXRzIGZvciBmbGV4IFJ4RA0KPiArKi8gdWludDE2X3QgaWF2Zl9yZWN2X3NjYXR0ZXJl ZF9wa3RzX3ZlY19mbGV4X3J4ZCh2b2lkICpyeF9xdWV1ZSwNCj4gKwkJCQkgICAgICBzdHJ1Y3Qg cnRlX21idWYgKipyeF9wa3RzLA0KPiArCQkJCSAgICAgIHVpbnQxNl90IG5iX3BrdHMpDQo+ICt7 DQo+ICsJdWludDE2X3QgcmV0dmFsID0gMDsNCj4gKw0KPiArCXdoaWxlIChuYl9wa3RzID4gSUFW Rl9WUE1EX1JYX01BWF9CVVJTVCkgew0KPiArCQl1aW50MTZfdCBidXJzdDsNCj4gKw0KPiArCQli dXJzdCA9IGlhdmZfcmVjdl9zY2F0dGVyZWRfYnVyc3RfdmVjX2ZsZXhfcnhkKHJ4X3F1ZXVlLA0K PiArCQkJCQkJcnhfcGt0cyArIHJldHZhbCwNCj4gKw0KPiAJSUFWRl9WUE1EX1JYX01BWF9CVVJT VCk7DQo+ICsJCXJldHZhbCArPSBidXJzdDsNCj4gKwkJbmJfcGt0cyAtPSBidXJzdDsNCj4gKwkJ aWYgKGJ1cnN0IDwgSUFWRl9WUE1EX1JYX01BWF9CVVJTVCkNCj4gKwkJCXJldHVybiByZXR2YWw7 DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIHJldHZhbCArIGlhdmZfcmVjdl9zY2F0dGVyZWRfYnVy c3RfdmVjX2ZsZXhfcnhkKHJ4X3F1ZXVlLA0KPiArCQkJCQkJICAgICAgcnhfcGt0cyArIHJldHZh bCwNCj4gKwkJCQkJCSAgICAgIG5iX3BrdHMpOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW5saW5l IHZvaWQNCj4gIHZ0eDEodm9sYXRpbGUgc3RydWN0IGlhdmZfdHhfZGVzYyAqdHhkcCwgc3RydWN0 IHJ0ZV9tYnVmICpwa3QsIHVpbnQ2NF90IGZsYWdzKQ0KPiB7DQo+IC0tDQo+IDIuMjAuMQ0KDQo=