From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 2C119A0096 for ; Wed, 5 Jun 2019 16:34:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0BE0E1BAD7; Wed, 5 Jun 2019 16:34:25 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 073081B94E for ; Wed, 5 Jun 2019 16:34:22 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP; 05 Jun 2019 07:34:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,550,1549958400"; d="scan'208";a="181957906" Received: from irsmsx106.ger.corp.intel.com ([163.33.3.31]) by fmsmga002.fm.intel.com with ESMTP; 05 Jun 2019 07:34:21 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.108]) by IRSMSX106.ger.corp.intel.com ([169.254.8.166]) with mapi id 14.03.0415.000; Wed, 5 Jun 2019 15:34:20 +0100 From: "Ferriter, Cian" To: "Yigit, Ferruh" , "Richardson, Bruce" , "Mcnamara, John" , "Kovacevic, Marko" CC: "dev@dpdk.org" Thread-Topic: [PATCH 19.08] net/pcap: enable infinitely rxing a pcap file Thread-Index: AQHU8FZeXOOXssqYzEW71k9DEg7amaZ/THeAgAMSr7A= Date: Wed, 5 Jun 2019 14:34:20 +0000 Message-ID: <579B86492DFB364BBA627A48FB30C90E75D519C3@IRSMSX102.ger.corp.intel.com> References: <20190411110048.6626-1-cian.ferriter@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiM2ZhNDlmMzYtYmExNi00NjYwLTgxZmEtZTRmZWMwMmY5NzJiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiemZmYmh5VXM3bXJYVlA2cVlTNkhOSXN5WlJqaDd5eDVYQ0w2RjF2N3VBOWwrTkY3SDNVMGdXbjRsRjUyajFnTyJ9 dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 19.08] net/pcap: enable infinitely rxing a pcap file 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" SGkgRmVycnVoLA0KDQpUaGFua3MgZm9yIHRoZSByZXZpZXchDQoNCkkndmUgcG9zdGVkIHRoZSB2 MiBvZiB0aGlzIHBhdGNoLg0KDQpNeSByZXBsaWVzIGFyZSBpbmxpbmUNCg0KVGhhbmtzLA0KQ2lh bg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlpZ2l0LCBGZXJydWgN Cj4gU2VudDogMjcgTWF5IDIwMTkgMTY6MTUNCj4gVG86IEZlcnJpdGVyLCBDaWFuIDxjaWFuLmZl cnJpdGVyQGludGVsLmNvbT47IFJpY2hhcmRzb24sIEJydWNlDQo+IDxicnVjZS5yaWNoYXJkc29u QGludGVsLmNvbT47IE1jbmFtYXJhLCBKb2huDQo+IDxqb2huLm1jbmFtYXJhQGludGVsLmNvbT47 IEtvdmFjZXZpYywgTWFya28NCj4gPG1hcmtvLmtvdmFjZXZpY0BpbnRlbC5jb20+DQo+IENjOiBk ZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxOS4wOF0gbmV0L3BjYXA6IGVuYWJs ZSBpbmZpbml0ZWx5IHJ4aW5nIGEgcGNhcCBmaWxlDQo+IA0KPiBPbiA0LzExLzIwMTkgMTI6MDAg UE0sIENpYW4gRmVycml0ZXIgd3JvdGU6DQo+ID4gSXQgY2FuIGJlIHVzZWZ1bCB0byB1c2UgcGNh cCBmaWxlcyBmb3Igc29tZSBydWRpbWVudGFsIHBlcmZvcm1hbmNlDQo+ID4gdGVzdGluZy4gVGhp cyBwYXRjaCBlbmFibGVzIHRoaXMgZnVuY3Rpb25hbGl0eSBpbiB0aGUgcGNhcCBkcml2ZXIuDQo+ ID4NCj4gPiBBdCBhIGhpZ2ggbGV2ZWwsIHRoaXMgd29ya3MgYnkgY3JlYWluZyBhIHJpbmcgb2Yg c3VmZmljaWVudCBzaXplIHRvDQo+ID4gc3RvcmUgdGhlIHBhY2tldHMgaW4gdGhlIHBjYXAgZmls ZSBwYXNzZWQgdG8gdGhlIGFwcGxpY2F0aW9uLiBXaGVuIHRoZQ0KPiA+IHJ4IGZ1bmN0aW9uIGZv ciB0aGlzIG1vZGUgaXMgY2FsbGVkLCBwYWNrZXRzIGFyZSBkZXF1ZXVlZCBmcm9tIHRoZQ0KPiA+ IHJpbmcgZm9yIHVzZSBieSB0aGUgYXBwbGljYXRpb24gYW5kIGFsc28gZW5xdWV1ZWQgYmFjayBv biB0byB0aGUgcmluZw0KPiA+IHRvIGJlICJyZWNlaXZlZCIgYWdhaW4uDQo+ID4NCj4gPiBBIHR4 X2Ryb3AgbW9kZSBpcyBhbHNvIGFkZGVkIHNpbmNlIHRyYW5zbWl0dGluZyB0byBhIHR4X3BjYXAg ZmlsZQ0KPiA+IGlzbid0IGRlc2lyYWJsZSBhdCBhIGhpZ2ggdHJhZmZpYyByYXRlLg0KPiA+DQo+ ID4gSnVtYm8gZnJhbWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgbW9kZS4gV2hlbiBmaWxs aW5nIHRoZSByaW5nIGF0DQo+ID4gcnggcXVldWUgc2V0dXAgdGltZSwgdGhlIHByZXNlbmNlIG9m IG11bHRpIHNlZ21lbnQgbWJ1ZnMgaXMgY2hlY2tlZCBmb3IuDQo+ID4gVGhlIFBNRCB3aWxsIGV4 aXQgb24gZGV0ZWN0aW9uIG9mIHRoZXNlIG11bHRpIHNlZ21lbnQgbWJ1ZnMuDQo+ID4NCj4gPiBT aWduZWQtb2ZmLWJ5OiBDaWFuIEZlcnJpdGVyIDxjaWFuLmZlcnJpdGVyQGludGVsLmNvbT4NCj4g PiAtLS0NCj4gPiAgZG9jL2d1aWRlcy9uaWNzL3BjYXBfcmluZy5yc3QgICB8ICAxNSArKysNCj4g PiAgZHJpdmVycy9uZXQvcGNhcC9ydGVfZXRoX3BjYXAuYyB8IDIwOQ0KPiA+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjE1IGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9u aWNzL3BjYXBfcmluZy5yc3QNCj4gPiBiL2RvYy9ndWlkZXMvbmljcy9wY2FwX3JpbmcucnN0IGlu ZGV4IGMxZWY5MTk2Yi4uNDVmNTVhMzQ1IDEwMDY0NA0KPiA+IC0tLSBhL2RvYy9ndWlkZXMvbmlj cy9wY2FwX3JpbmcucnN0DQo+ID4gKysrIGIvZG9jL2d1aWRlcy9uaWNzL3BjYXBfcmluZy5yc3QN Cj4gPiBAQCAtMTA2LDYgKzEwNiwyMSBAQCBSdW50aW1lIENvbmZpZyBPcHRpb25zDQo+ID4NCj4g PiAgICAgLS12ZGV2ICduZXRfcGNhcDAsaWZhY2U9ZXRoMCxwaHlfbWFjPTEnDQo+ID4NCj4gPiAr LSBVc2UgdGhlIFJYIFBDQVAgZmlsZSB0byBpbmZpbml0ZWx5IHJlY2VpdmUgcGFja2V0cw0KPiA+ ICsNCj4gPiArIEluIGNhc2UgYGByeF9wY2FwPWBgIGNvbmZpZ3VyYXRpb24gaXMgc2V0LCB1c2Vy IG1heSB3YW50IHRvIHVzZSB0aGUNCj4gPiArIHNlbGVjdGVkIFBDQVAgZmlsZSBmb3IgcnVkaW1l bnRhbCBwZXJmb3JtYW5jZSB0ZXN0aW5nLiBUaGlzIGNhbiBiZSBkb25lDQo+IHdpdGggYSBgYGRl dmFyZ2BgIGBgaW5maW5pdGVfcnhgYCwgZm9yIGV4YW1wbGU6Og0KPiA+ICsNCj4gPiArICAgLS12 ZGV2ICduZXRfcGNhcDAscnhfcGNhcD1maWxlX3J4LnBjYXAsaW5maW5pdGVfcng9MSx0eF9kcm9w PTEnDQo+ID4gKw0KPiA+ICsgV2hlbiB0aGlzIG1vZGUgaXMgdXNlZCwgaXQgaXMgcmVjb21tZW5k ZWQgdG8gdXNlIHRoZSBgYHR4X2Ryb3BgYA0KPiBgYGRldmFyZ2BgLg0KPiA+ICsNCj4gPiArLSBE cm9wIGFsbCBwYWNrZXRzIG9uIHRyYW5zbWl0DQo+ID4gKw0KPiA+ICsgVGhlIHVzZXIgbWF5IHdh bnQgdG8gZHJvcCBhbGwgcGFja2V0cyBvbiB0eCBmb3IgYSBkZXZpY2UuIFRoaXMgY2FuIGJlIGRv bmUNCj4gd2l0aCB0aGUgYGB0eF9kcm9wYGAgYGBkZXZhcmdgYCwgZm9yIGV4YW1wbGU6Og0KPiA+ ICsNCj4gPiArICAgLS12ZGV2ICduZXRfcGNhcDAscnhfcGNhcD1maWxlX3J4LnBjYXAsdHhfZHJv cD0xJw0KPiANCj4gSXMgdGhlcmUgYSBwZXJmb3JtYW5jZSBkcm9wIHdoZW4gdHggZmlsZXMgYXJl IGRpcmVjdGVkIHRvICdsb29wYmFjaycNCj4gaW50ZXJmYWNlLA0KPiBsaWtlOiAtLXZkZXYgJ25l dF9wY2FwMCxyeF9wY2FwPWZpbGVfcngucGNhcCx0eF9pZmFjZT1sbycgPw0KPiBJZiBubyBwZXJm b3JtYW5jZSBkcm9wIEkgYW0gZm9yIHVzaW5nICdsbycgaW50ZXJmYWNlIGluc3RlYWQgb2YgYWRk aW5nIG5ldw0KPiBkZXZhcmdzLg0KPiANCg0KV2hpbGUgSSBkaWQgdGhpbmsgb2YgdXNpbmcgL2Rl di9udWxsIGFzIG1ldGhvZCBvZiBkcm9wcGluZyBwYWNrZXRzLCBJIGRpZG4ndCB0aGluayB0byB1 c2UgdGhlIGxvb3BiYWNrIGludGVyZmFjZS4gVGhlIHJlYXNvbiBJIGltcGxlbWVudGVkIHRoZSB0 eF9kcm9wIGZlYXR1cmUgYWZ0ZXIgdHJ5aW5nICd0eF9wY2FwPS9kZXYvbnVsbCcgd2FzIHRoYXQg dGhlIGZpbGUgd3JpdGVzIHByb3ZlZCB0b28gZXhwZW5zaXZlLg0KDQpJJ3ZlIHRyaWVkIG91dCB0 aGUgbG9vcGJhY2sgaW50ZXJmYWNlIGFzIHBlciB5b3VyIHJlY29tbWVuZGF0aW9uIGFuZCBpdCBz dWZmZXJzIGZyb20gdGhlIHNhbWUgcHJvYmxlbSBhcyB1c2luZyAvZGV2L251bGwuIEJlbG93IGlz IGEgY29tcGFyaXNvbiBvZiB0aGUgdGhyZWUgb3B0aW9ucyBmb3IgZHJvcHBpbmcgcGFja2V0cy4N Cg0KPSB0eF9kcm9wID0NCkNNRDogdGVzdHBtZCAtbCAxLDIgLS1maWxlLXByZWZpeD1iYXNpYyAt dyAwOjAwLjAgLS12ZGV2IG5ldF9wY2FwMCxyeF9wY2FwPS9vcHQvY2lhbi9vdnMvc2NyaXB0cy9w Y2Fwcy91ZHAucGNhcCxpbmZpbml0ZV9yeD0xLHR4X2Ryb3A9MSAtLXZkZXYgbmV0X3BjYXAxLHJ4 X3BjYXA9L29wdC9jaWFuL292cy9zY3JpcHRzL3BjYXBzL3VkcC5wY2FwLGluZmluaXRlX3J4PTEs dHhfZHJvcD0xIC0tIC0tbm8tZmx1c2gtcnggLS1yeHE9MSAtLXR4cT0xIC0taQ0KRm9yIGVhY2gg cG9ydDoNClR4LXBwczogICAgIDIyNjgwODU2DQoNCj0gbG8gPQ0KQ01EOiB0ZXN0cG1kIC1sIDEs MiAtLWZpbGUtcHJlZml4PWJhc2ljIC13IDA6MDAuMCAtLXZkZXYgbmV0X3BjYXAwLHJ4X3BjYXA9 L29wdC9jaWFuL292cy9zY3JpcHRzL3BjYXBzL3VkcC5wY2FwLHR4X2lmYWNlPWxvLGluZmluaXRl X3J4PTEgLS12ZGV2IG5ldF9wY2FwMSxyeF9wY2FwPS9vcHQvY2lhbi9vdnMvc2NyaXB0cy9wY2Fw cy91ZHAucGNhcCx0eF9pZmFjZT1sbyxpbmZpbml0ZV9yeD0xIC0tIC0tbm8tZmx1c2gtcnggLS1y eHE9MSAtLXR4cT0xIC0taQ0KRm9yIGVhY2ggcG9ydDoNClR4LXBwczogICAgICAgMjU1NTA3DQoN Cj0gL2Rldi9udWxsID0NCkNNRDogdGVzdHBtZCAtbCAxLDIgLS1maWxlLXByZWZpeD1iYXNpYyAt dyAwOjAwLjAgLS12ZGV2IG5ldF9wY2FwMCxyeF9wY2FwPS9vcHQvY2lhbi9vdnMvc2NyaXB0cy9w Y2Fwcy91ZHAucGNhcCx0eF9wY2FwPS9kZXYvbnVsbCxpbmZpbml0ZV9yeD0xIC0tdmRldiBuZXRf cGNhcDEscnhfcGNhcD0vb3B0L2NpYW4vb3ZzL3NjcmlwdHMvcGNhcHMvdWRwLnBjYXAsdHhfcGNh cD0vZGV2L251bGwsaW5maW5pdGVfcng9MSAtLSAtLW5vLWZsdXNoLXJ4IC0tcnhxPTEgLS10eHE9 MSAtLWkNCkZvciBlYWNoIHBvcnQ6DQpUeC1wcHM6ICAgICAgMzEwNjEzMQ0KICANCg0KRm9yIHRo ZSBjYXNlIHdoZXJlIHRoZSBsb29wYmFjayBvciBsb2NhbCBpbnRlcmZhY2UgaXMgYmVpbmcgdXNl ZCB0byBkcm9wIHBhY2tldHMsIHBlcmYgdG9wIHNob3dzIHRoYXQgdGhlIG1ham9yaXR5IG9mIHRp bWUgaXMgYmVpbmcgc3BlbnQgaW4ga2VybmVsIGZ1bmN0aW9ucyBzdWNoIGFzIHRwYWNrZXRfcmN2 LCBkb19zeXNjYWxsXzY0IGFuZCBrZnJlZV9za2IuDQpGb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIC9k ZXYvbnVsbCBpcyBiZWluZyB1c2VkIHRvIGRyb3AgcGFja2V0cywgcGVyZiB0b3Agc2hvd3MgdGhh dCB0aGUgbWFqb3JpdHkgb2YgdGltZSBpcyBiZWluZyBzcGVudCBpbiBsaWJjIGZpbGUgb3BlcmF0 aW9uIGZ1bmN0aW9ucyBzdWNoIGFzIF9JT19md3JpdGUgYW5kIF9JT19maWxlX3hzcHV0bi4NCg0K VHhfZHJvcCBpcyA3LjMgdGltZXMgZmFzdGVyIHRoYW4gL2Rldi9udWxsIGFuZCB+ODkgdGltZXMg ZmFzdGVyIHRoYW4gbG8gc28gaXQncyB0aGUgcHJlZmVycmVkIG1ldGhvZCBmb3IgZHJvcHBpbmcg cGFja2V0cy4NCg0KPiA+ICsNCj4gPiAgRXhhbXBsZXMgb2YgVXNhZ2UNCj4gPiAgXl5eXl5eXl5e Xl5eXl5eXl4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhf cGNhcC5jDQo+ID4gYi9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jIGluZGV4IDM1MzUz OGYxNi4uYjcyZGI5NzNhIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L3BjYXAvcnRlX2V0 aF9wY2FwLmMNCj4gPiArKysgYi9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jDQo+IDwu Li4+DQo+IA0KPiA+IEBAIC0xNzgsNiArMTg2LDQwIEBAIGV0aF9wY2FwX2dhdGhlcl9kYXRhKHVu c2lnbmVkIGNoYXIgKmRhdGEsIHN0cnVjdA0KPiBydGVfbWJ1ZiAqbWJ1ZikNCj4gPiAgCX0NCj4g PiAgfQ0KPiA+DQo+ID4gK3N0YXRpYyB1aW50MTZfdA0KPiA+ICtldGhfcGNhcF9yeF9pbmZpbml0 ZSh2b2lkICpxdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywgdWludDE2X3QNCj4gPiArbmJf cGt0cykgew0KPiA+ICsJaW50IGk7DQo+ID4gKwlzdHJ1Y3QgcGNhcF9yeF9xdWV1ZSAqcGNhcF9x ID0gcXVldWU7DQo+ID4gKw0KPiA+ICsJaWYgKHVubGlrZWx5KG5iX3BrdHMgPT0gMCkpDQo+ID4g KwkJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICsJaWYgKHJ0ZV9wa3RtYnVmX2FsbG9jX2J1bGsocGNh cF9xLT5tYl9wb29sLCBidWZzLCBuYl9wa3RzKSAhPSAwKQ0KPiA+ICsJCXJldHVybiAwOw0KPiA+ ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBuYl9wa3RzOyBpKyspIHsNCj4gPiArCQlzdHJ1Y3Qg cnRlX21idWYgKnBjYXBfYnVmOw0KPiA+ICsJCWludCBlcnIgPSBydGVfcmluZ19kZXF1ZXVlKHBj YXBfcS0+cGt0cywgKHZvaWQNCj4gKiopJnBjYXBfYnVmKTsNCj4gPiArCQlpZiAoZXJyKQ0KPiA+ ICsJCQlydGVfcGFuaWMoImZhaWxlZCB0byBkZXF1ZXVlIGZyb20gcGNhcCBwa3RzDQo+IHJpbmdc biIpOw0KPiANCj4gUGxlYXNlIGRvbid0IGhhdmUgYW55IHJ0ZV9wYW5pYygpIGluIHRoZSBkcml2 ZXIgY29kZSwgdGhlcmUgYXJlIGEgZmV3IG1vcmUgaW4NCj4gcGF0Y2guDQo+IA0KDQpGaXhlZCBp biB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ID4gKw0KPiA+ICsJCXJ0ZV9tZW1jcHkocnRlX3BrdG1i dWZfbXRvZChidWZzW2ldLCB2b2lkICopLA0KPiA+ICsJCQkJcnRlX3BrdG1idWZfbXRvZChwY2Fw X2J1Ziwgdm9pZCAqKSwNCj4gPiArCQkJCXBjYXBfYnVmLT5kYXRhX2xlbik7DQo+ID4gKwkJYnVm c1tpXS0+ZGF0YV9sZW4gPSBwY2FwX2J1Zi0+ZGF0YV9sZW47DQo+ID4gKwkJYnVmc1tpXS0+cGt0 X2xlbiA9IHBjYXBfYnVmLT5wa3RfbGVuOw0KPiA+ICsJCWJ1ZnNbaV0tPnBvcnQgPSBwY2FwX3Et PnBvcnRfaWQ7DQo+ID4gKw0KPiA+ICsJCS8qIGVucXVldWUgcGFja2V0IGJhY2sgb24gcmluZyB0 byBhbGxvdyBpbmZpbml0ZSByeCAqLw0KPiA+ICsJCXJ0ZV9yaW5nX2VucXVldWUocGNhcF9xLT5w a3RzLCBwY2FwX2J1Zik7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcGNhcF9xLT5yeF9zdGF0LnBr dHMgKz0gaTsNCj4gDQo+IEZvciBjb25zaXN0ZW5jeSwgY2FuIHlvdSBwbGVhc2UgdXBkYXRlICJw Y2FwX3EtPnJ4X3N0YXQuYnl0ZXMiIHRvbz8NCj4gDQoNCkZpeGVkIGluIHRoZSBuZXh0IHZlcnNp b24uDQoNCj4gPiArDQo+ID4gKwlyZXR1cm4gaTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGlj IHVpbnQxNl90DQo+ID4gIGV0aF9wY2FwX3J4KHZvaWQgKnF1ZXVlLCBzdHJ1Y3QgcnRlX21idWYg KipidWZzLCB1aW50MTZfdCBuYl9wa3RzKSAgew0KPiANCj4gPC4uLj4NCj4gDQo+ID4gQEAgLTQ0 Nyw2ICs1MDksMjQgQEAgb3Blbl9zaW5nbGVfcnhfcGNhcChjb25zdCBjaGFyICpwY2FwX2ZpbGVu YW1lLA0KPiBwY2FwX3QgKipwY2FwKQ0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0KPiA+ ICtzdGF0aWMgdWludDY0X3QNCj4gPiArY291bnRfcGFja2V0c19pbl9wY2FwcyhwY2FwX3QgKipw Y2FwLCBzdHJ1Y3QgcGNhcF9yeF9xdWV1ZSAqcGNhcF9xKQ0KPiB7DQo+ID4gKwljb25zdCB1X2No YXIgKnBhY2tldDsNCj4gPiArCXN0cnVjdCBwY2FwX3BrdGhkciBoZWFkZXI7DQo+ID4gKwl1aW50 NjRfdCBwY2FwX3BrdF9jb3VudDsNCj4gDQo+IENvbXBpbGVyIGlzIGNvbXBsYWluaW5nIGFib3V0 IHVuaW5pdGlhbGl6ZWQgJ3BjYXBfcGt0X2NvdW50Jy4NCj4gDQoNClRoaXMgaXMgdmFsaWQgYW5k IEkgc2VlIHRoZSBzYW1lIHdhcm5pbmcuIE5vdCBzdXJlIHdoeSBJIGRpZG4ndCBzZWUgdGhpcyBi ZWZvcmUsIEkgZG9uJ3QgcmVtZW1iZXIgc3BlY2lmaWNhbGx5IGlnbm9yaW5nIHRoaXMgd2Fybmlu Zy4uLg0KDQpGaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ID4gKw0KPiA+ICsJd2hpbGUg KChwYWNrZXQgPSBwY2FwX25leHQoKnBjYXAsICZoZWFkZXIpKSkNCj4gPiArCQlwY2FwX3BrdF9j b3VudCsrOw0KPiANCj4gSXQgc2VlbXMgdGhlcmUgaXMgbm8gcXVpY2tlciB3YXkgdG8gZ2V0IG51 bWJlciBvZiBwYWNrZXRzIGZyb20gYSBwY2FwIGZpbGUsIGlmDQo+IGFueW9uZSBrbm93IGEgd2F5 LCBjb21tZW50IGlzIHdlbGNvbWUuDQo+IA0KPiA+ICsNCj4gPiArCS8qIHRoZSBwY2FwIGlzIHJl b3BlbmVkIHNvIGl0IGNhbiBiZSB1c2VkIGFzIG5vcm1hbCBsYXRlciAqLw0KPiA+ICsJcGNhcF9j bG9zZSgqcGNhcCk7DQo+ID4gKwkqcGNhcCA9IE5VTEw7DQo+ID4gKwlvcGVuX3NpbmdsZV9yeF9w Y2FwKHBjYXBfcS0+bmFtZSwgcGNhcCk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHBjYXBfcGt0X2Nv dW50Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgaW50DQo+ID4gIGV0aF9kZXZfc3RhcnQo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpICB7DQo+IA0KPiA8Li4uPg0KPiANCj4gPiBAQCAtNjcx LDYgKzc1Miw0OSBAQCBldGhfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs DQo+ID4gIAlwY2FwX3EtPnF1ZXVlX2lkID0gcnhfcXVldWVfaWQ7DQo+ID4gIAlkZXYtPmRhdGEt PnJ4X3F1ZXVlc1tyeF9xdWV1ZV9pZF0gPSBwY2FwX3E7DQo+ID4NCj4gPiArCWlmIChpbnRlcm5h bHMtPmluZmluaXRlX3J4KSB7DQo+ID4gKwkJc3RydWN0IHBtZF9wcm9jZXNzX3ByaXZhdGUgKnBw Ow0KPiA+ICsJCWNoYXIgcmluZ19uYW1lW05BTUVfTUFYXTsNCj4gPiArCQl1aW50MTZfdCBudW1f cnggPSAwOw0KPiA+ICsJCXN0YXRpYyB1aW50MzJfdCByaW5nX251bWJlcjsNCj4gPiArCQl1aW50 NjRfdCBwY2FwX3BrdF9jb3VudCA9IDA7DQo+ID4gKwkJcGNhcF90ICoqcGNhcDsNCj4gPiArDQo+ ID4gKwkJcHAgPSBydGVfZXRoX2RldmljZXNbcGNhcF9xLT5wb3J0X2lkXS5wcm9jZXNzX3ByaXZh dGU7DQo+ID4gKwkJcGNhcCA9ICZwcC0+cnhfcGNhcFtwY2FwX3EtPnF1ZXVlX2lkXTsNCj4gPiAr DQo+ID4gKwkJaWYgKHVubGlrZWx5KCpwY2FwID09IE5VTEwpKQ0KPiA+ICsJCQlydGVfcGFuaWMo Im5vIHBhY2tldHMgaW4gcGNhcCB0byBmaWxsIHJpbmcgd2l0aFxuIik7DQo+ID4gKw0KPiA+ICsJ CXBjYXBfcGt0X2NvdW50ID0gY291bnRfcGFja2V0c19pbl9wY2FwcyhwY2FwLCBwY2FwX3EpOw0K PiA+ICsNCj4gPiArCQlzbnByaW50ZihyaW5nX25hbWUsIHNpemVvZihyaW5nX25hbWUpLCAiUENB UF9SSU5HJSINCj4gUFJJdTE2LA0KPiA+ICsJCQkJcmluZ19udW1iZXIpOw0KPiA+ICsNCj4gPiAr CQlwY2FwX3EtPnBrdHMgPSBydGVfcmluZ19jcmVhdGUocmluZ19uYW1lLA0KPiA+ICsJCQkJcnRl X2FsaWduNjRwb3cyKHBjYXBfcGt0X2NvdW50ICsgMSksIDAsDQo+ID4gKwkJCQlSSU5HX0ZfU1Bf RU5RIHwgUklOR19GX1NDX0RFUSk7DQo+ID4gKwkJcmluZ19udW1iZXIrKzsNCj4gPiArCQlpZiAo IXBjYXBfcS0+cGt0cykNCj4gPiArCQkJcnRlX3BhbmljKCJmYWlsZWQgdG8gYWxsb2MgcmluZ1xu Iik7DQo+ID4gKw0KPiA+ICsNCj4gPiArCQlzdHJ1Y3QgcnRlX21idWYgKmJ1ZnNbcGNhcF9wa3Rf Y291bnRdOw0KPiANCj4gQ2FuIHlvdSBwbGVhc2UgbW92ZSBkZWNlbGVyYXRpb24gdG8gdGhlIGJl Z2lubmluZyBvZiB0aGUgZnVuY3Rpb24uDQo+IA0KDQpJIGhhdmUgcmV3b3JrZWQgdGhpcyBzZWN0 aW9uIHNvIHRoYXQgd2UgZG9uJ3QgbmVlZCB0byBkZWNsYXJlIGEgdmFyaWFibGUgbGVuZ3RoIGFy cmF5IG9mIG1idWZzIGJhc2VkIG9uIHRoZSBhbW91bnQgb2YgcGNhcHMgaW4gdGhlIGZpbGUgcGFz c2VkLg0KDQo+ID4gKwkJaWYgKHJ0ZV9wa3RtYnVmX2FsbG9jX2J1bGsobWJfcG9vbCwgYnVmcywg cGNhcF9wa3RfY291bnQpDQo+ICE9IDApDQo+ID4gKwkJCXJldHVybiAwOw0KPiANCj4gU2hvdWxk IHRoaXMgcmV0dXJuIGVycm9yPw0KPiANCg0KT29vcHMsIHRoaXMgc2hvdWxkIHJldHVybiBhbiBl cnJvciwgbm90IHN1Y2Nlc3MhIQ0KDQpGaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ID4g Kw0KPiA+ICsJCW51bV9yeCA9IGV0aF9wY2FwX3J4KHBjYXBfcSwgYnVmcywgcGNhcF9wa3RfY291 bnQpOw0KPiA+ICsNCj4gPiArCQkvKiBjaGVjayBmb3IgbXVsdGlzZWcgbWJ1ZnMgKi8NCj4gPiAr CQlmb3IgKGkgPSAwOyBpIDwgbnVtX3J4OyBpKyspIHsNCj4gPiArCQkJaWYgKGJ1ZnNbaV0tPm5i X3NlZ3MgIT0gMSkNCj4gPiArCQkJCXJ0ZV9wYW5pYygianVtYm8gZnJhbWVzIGFyZSBub3Qgc3Vw cG9ydGVkDQo+IGluIGluZmluaXRlIHJ4DQo+ID4gK21vZGVcbiIpOw0KPiANCj4gVGhpcyBuZWVk IHRvIGJlIHJlcGxhY2VkIHdpdGggcmV0dXJuaW5nIGVycm9yLCBhbmQgcGxlYXNlIHJlbWVtYmVy IHRvDQo+IGNsZWFudXAgaW4gdGhhdCBjYXNlLg0KPiANCg0KRml4ZWQgaW4gdGhlIG5leHQgdmVy c2lvbi4NCg0KPiA+ICsJCX0NCj4gPiArDQo+ID4gKwkJcnRlX3JpbmdfZW5xdWV1ZV9idWxrKHBj YXBfcS0+cGt0cywgKHZvaWQgKiBjb25zdCAqKWJ1ZnMsDQo+ID4gKwkJCQludW1fcngsIE5VTEwp Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiAgCXJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPC4uLj4N Cj4gDQo+ID4gQEAgLTExMzIsOSArMTI4NSwxOCBAQCBldGhfZnJvbV9wY2FwcyhzdHJ1Y3QgcnRl X3ZkZXZfZGV2aWNlICp2ZGV2LA0KPiA+ICAJCX0NCj4gPiAgCX0NCj4gPg0KPiA+IC0JZXRoX2Rl di0+cnhfcGt0X2J1cnN0ID0gZXRoX3BjYXBfcng7DQo+ID4gKwkvKiBhc3NpZ24gcnggb3BzICov DQo+ID4gKwlpZiAoaW5maW5pdGVfcngpIHsNCj4gPiArCQlldGhfZGV2LT5yeF9wa3RfYnVyc3Qg PSBldGhfcGNhcF9yeF9pbmZpbml0ZTsNCj4gPiArCQlpbnRlcm5hbHMtPmluZmluaXRlX3J4ID0g aW5maW5pdGVfcng7DQo+IA0KPiBTaW5jZSAiaW5maW5pdGVfcngiIGNhbiBiZSAwIG9yIDEsIGlz bid0IGl0IGJldHRlciB0byBzZXQgImludGVybmFscy0+aW5maW5pdGVfcngiDQo+IG91dCBvZiB0 aGlzIGNoZWNrLCBhbHRob3VnaCBmdW5jdGlvbmFsbHkgaXQgd2lsbCBiZSBzYW1lIChzaW5jZSBp bnRlcm5hbHMgaXMgYWxsDQo+IHplcm8gYnkgZGVmYXVsdCksIGxvZ2ljYWxseSBiZXR0ZXIgSSB0 aGluaw0KPiANCg0KQWdyZWVkLCBJJ3ZlIGRvbmUgdGhpcyBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0K DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCWV0aF9kZXYtPnJ4X3BrdF9idXJzdCA9IGV0aF9wY2Fw X3J4Ow0KPiA+ICsJfQ0KPiA+DQo+ID4gLQlpZiAodXNpbmdfZHVtcGVycykNCj4gPiArCS8qIGFz c2lnbiB0eCBvcHMgKi8NCj4gPiArCWlmIChpbmZpbml0ZV9yeCkNCj4gPiArCQlldGhfZGV2LT50 eF9wa3RfYnVyc3QgPSBldGhfdHhfZHJvcDsNCj4gDQo+IFNob3VsZG4ndCBzZXQgJ3R4X3BrdF9i dXJzdCcgd2l0aCAnaW5maW5pdGVfcngnIGNoZWNrLCBJIGd1ZXNzIGludGVudGlvbiB3YXMNCj4g J3R4X2Ryb3AnIGNoZWNrLg0KPiANCg0KQ29ycmVjdCwgdGhpcyBzaG91bGQgY2hlY2sgdHhfZHJv cCEgRml4ZWQgaW4gdGhlIG5leHQgdmVyc2lvbi4NCg0KPiA+ICsJZWxzZSBpZiAodXNpbmdfZHVt cGVycykNCj4gPiAgCQlldGhfZGV2LT50eF9wa3RfYnVyc3QgPSBldGhfcGNhcF90eF9kdW1wZXI7 DQo+ID4gIAllbHNlDQo+ID4gIAkJZXRoX2Rldi0+dHhfcGt0X2J1cnN0ID0gZXRoX3BjYXBfdHg7 DQo+IA0KPiA8Li4uPg0KPiANCj4gPiBAQCAtMTIxNyw2ICsxMzgwLDE3IEBAIHBtZF9wY2FwX3By b2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKmRldikNCj4gPiAgCXBjYXBzLm51bV9vZl9xdWV1 ZSA9IDA7DQo+ID4NCj4gPiAgCWlmIChpc19yeF9wY2FwKSB7DQo+ID4gKwkJLyoNCj4gPiArCQkg KiBXZSBjaGVjayB3aGV0aGVyIHdlIHdhbnQgdG8gaW5maW5pdGVseSByeCB0aGUgcGNhcCBmaWxl DQo+ID4gKwkJICovDQo+ID4gKwkJaWYgKHJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhfUENB UF9JTkZJTklURV9SWF9BUkcpDQo+ID09IDEpIHsNCj4gDQo+IFdoYXQgZG8geW91IHRoaW5rIHBy aW50aW5nIGEgd2FybmluZyBpZiB1c2VyIHByb3ZpZGVkIHRoZSB2YWx1ZSBtb3JlIHRoYW4NCj4g b25jZT8NCj4gDQoNClNvdW5kcyBsaWtlIGEgZ29vZCBpZGVhLCBJJ3ZlIGFkZGVkIHRoaXMgaW4g dGhlIG5leHQgdmVyc2lvbi4NCg0KPiA+ICsJCQlyZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3Zs aXN0LA0KPiA+ICsJCQkJCUVUSF9QQ0FQX0lORklOSVRFX1JYX0FSRywNCj4gPiArCQkJCQkmZ2V0 X2luZmluaXRlX3J4X2FyZywgJmluZmluaXRlX3J4KTsNCj4gPiArCQkJaWYgKHJldCA8IDApDQo+ ID4gKwkJCQlnb3RvIGZyZWVfa3ZsaXN0Ow0KPiA+ICsJCX0NCj4gPiArDQo+ID4gIAkJcmV0ID0g cnRlX2t2YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX1BDQVBfUlhfUENBUF9BUkcsDQo+ID4gIAkJ CQkmb3Blbl9yeF9wY2FwLCAmcGNhcHMpOw0KPiA+ICAJfSBlbHNlIHsNCj4gPiBAQCAtMTIyOCwx OCArMTQwMiwzMCBAQCBwbWRfcGNhcF9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlDQo+ICpk ZXYpDQo+ID4gIAkJZ290byBmcmVlX2t2bGlzdDsNCj4gPg0KPiA+ICAJLyoNCj4gPiAtCSAqIFdl IGNoZWNrIHdoZXRoZXIgd2Ugd2FudCB0byBvcGVuIGEgVFggc3RyZWFtIHRvIGEgcmVhbCBOSUMg b3IgYQ0KPiA+IC0JICogcGNhcCBmaWxlDQo+ID4gKwkgKiBXZSBjaGVjayB3aGV0aGVyIHdlIHdh bnQgdG8gb3BlbiBhIFRYIHN0cmVhbSB0byBhIHJlYWwgTklDLA0KPiA+ICsJICogYSBwY2FwIGZp bGUsIG9yIGRyb3AgcGFja2V0cyBvbiB0eA0KPiA+ICAJICovDQo+ID4gIAlpc190eF9wY2FwID0g cnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9QQ0FQX1RYX1BDQVBfQVJHKSA/IDENCj4gOiAw Ow0KPiA+ICAJZHVtcGVycy5udW1fb2ZfcXVldWUgPSAwOw0KPiA+DQo+ID4gLQlpZiAoaXNfdHhf cGNhcCkNCj4gPiArCXR4X2Ryb3AgPSBydGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwgRVRIX1BDQVBf VFhfRFJPUF9BUkcpID8gMSA6DQo+IDA7DQo+IA0KPiBDYW4gZHJvcCB0aGlzIGxpbmUsIGJlbG93 IGFscmVhZHkgZ2V0dGluZyB0aGUgJ3R4X2Ryb3AnIHZhbHVlLCBvdmVyd3JpdGluZyB0aGlzDQo+ IG9uZS4NCj4gDQo+ID4gKwlpZiAocnRlX2t2YXJnc19jb3VudChrdmxpc3QsIEVUSF9QQ0FQX1RY X0RST1BfQVJHKSA9PSAxKSB7DQo+ID4gKwkJcmV0ID0gcnRlX2t2YXJnc19wcm9jZXNzKGt2bGlz dCwgRVRIX1BDQVBfVFhfRFJPUF9BUkcsDQo+ID4gKwkJCQkmZ2V0X3R4X2Ryb3BfYXJnLCAmdHhf ZHJvcCk7DQo+ID4gKwkJaWYgKHJldCA8IDApDQo+ID4gKwkJCWdvdG8gZnJlZV9rdmxpc3Q7DQo+ ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKHR4X2Ryb3ApIHsNCj4gPiArCQkvKiBhZGQgZHVtbXkg cXVldWUgd2hpY2ggY291bnRzIGRyb3BwZWQgcGFja2V0cyAqLw0KPiA+ICsJCXJldCA9IGFkZF9x dWV1ZSgmZHVtcGVycywgImR1bW15IiwgInR4X2Ryb3AiLCBOVUxMLA0KPiBOVUxMKTsNCj4gDQo+ IFRoaXMgd2lsbCBicmVhayB0aGUgbXVsdGlwbGUgcXVldWUgdXNlIGNhc2UuIEluc3RlYWQgb2Yg YWRkaW5nIGEgc2luZ2xlIHF1ZXVlLA0KPiBuZWVkIHRvIGZpbmQgYSB3YXkgdG8gYWRkIG11bHRp cGxlIHF1ZXVlcyBhcyB1c2VyIHdhbnQgYW5kIGFsbCB3aWxsIGp1c3QgaWdub3JlDQo+IHRoZSBw YWNrdGV0cy4NCj4gDQoNCkkndmUgZml4ZWQgdGhpcyBpbiB0aGUgbGF0ZXN0IHZlcnNpb24gc28g b25lIGRyb3AgcXVldWUgaXMgYWRkZWQgcGVyIHJ4cSBvbiB0aGUgZGV2aWNlLg0KDQo+ID4gKwl9 IGVsc2UgaWYgKGlzX3R4X3BjYXApIHsNCj4gPiAgCQlyZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Mo a3ZsaXN0LCBFVEhfUENBUF9UWF9QQ0FQX0FSRywNCj4gPiAgCQkJCSZvcGVuX3R4X3BjYXAsICZk dW1wZXJzKTsNCj4gPiAtCWVsc2UNCj4gPiArCX0gZWxzZSB7DQo+ID4gIAkJcmV0ID0gcnRlX2t2 YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX1BDQVBfVFhfSUZBQ0VfQVJHLA0KPiA+ICAJCQkJJm9w ZW5fdHhfaWZhY2UsICZkdW1wZXJzKTsNCj4gPiArCX0NCj4gPg0KPiA+ICAJaWYgKHJldCA8IDAp DQo+ID4gIAkJZ290byBmcmVlX2t2bGlzdDsNCj4gDQo+IDwuLi4+DQoNCg==