From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhao1, Wei" Subject: Re: [PATCH v7 1/2] net/i40e: queue region set and flush Date: Tue, 10 Oct 2017 06:11:01 +0000 Message-ID: References: <1506672718-39160-1-git-send-email-wei.zhao1@intel.com> <1506676584-41030-1-git-send-email-wei.zhao1@intel.com> <1506676584-41030-2-git-send-email-wei.zhao1@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: "Yigit, Ferruh" , "dev@dpdk.org" Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 49DEB1B24C for ; Tue, 10 Oct 2017 08:11:05 +0200 (CEST) In-Reply-To: Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWlnaXQsIEZlcnJ1aA0K PiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgNCwgMjAxNyAxOjU1IEFNDQo+IFRvOiBaaGFvMSwg V2VpIDx3ZWkuemhhbzFAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIFtQQVRDSCB2NyAxLzJdIG5ldC9pNDBlOiBxdWV1ZSByZWdpb24gc2V0IGFuZCBm bHVzaA0KPiANCj4gT24gOS8yOS8yMDE3IDEwOjE2IEFNLCBXZWkgWmhhbyB3cm90ZToNCj4gPiBU aGlzIGZlYXR1cmUgZW5hYmxlIHF1ZXVlIHJlZ2lvbnMgY29uZmlndXJhdGlvbiBmb3IgUlNTIGlu IFBGLCBzbyB0aGF0DQo+ID4gZGlmZmVyZW50IHRyYWZmaWMgY2xhc3NlcyBvciBkaWZmZXJlbnQg cGFja2V0IGNsYXNzaWZpY2F0aW9uIHR5cGVzIGNhbg0KPiA+IGJlIHNlcGFyYXRlZCB0byBkaWZm ZXJlbnQgcXVldWVzIGluIGRpZmZlcmVudCBxdWV1ZSByZWdpb25zLlRoaXMgcGF0Y2gNCj4gPiBj YW4gc2V0IHF1ZXVlIHJlZ2lvbiByYW5nZSwgaXQgaW5jbHVkZSBxdWV1ZSBudW1iZXIgaW4gYSBy ZWdpb24gYW5kDQo+ID4gdGhlIGluZGV4IG9mIGZpcnN0IHF1ZXVlLg0KPiA+IFRoaXMgcGF0Y2gg ZW5hYmxlIG1hcHBpbmcgYmV0d2VlbiBkaWZmZXJlbnQgcHJpb3JpdGllcyAoVVApIGFuZA0KPiA+ IGRpZmZlcmVudCB0cmFmZmljIGNsYXNzZXMuSXQgYWxzbyBlbmFibGUgbWFwcGluZyBiZXR3ZWVu IGEgcmVnaW9uDQo+ID4gaW5kZXggYW5kIGEgc2VwY2lmaWMgZmxvd3R5cGUoUENUWVBFKS5JdCBh bHNvIHByb3ZpZGUgdGhlIHNvbHV0aW9uIG9mDQo+ID4gZmx1c2ggYWxsIGNvbmZpZ3VyYXRpb24g YWJvdXQgcXVldWUgcmVnaW9uIHRoZSBhYm92ZSBkZXNjcmliZWQuDQo+ID4NCj4gPiBTaWduZWQt b2ZmLWJ5OiBXZWkgWmhhbyA8d2VpLnpoYW8xQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gDQo+IDwu Li4+DQo+IA0KPiA+IEBAIC01NDEsNiArNTQ3LDM0IEBAIHN0cnVjdCBpNDBlX2V0aGVydHlwZV9y dWxlIHsNCj4gPiAgCXN0cnVjdCBydGVfaGFzaCAqaGFzaF90YWJsZTsNCj4gPiAgfTsNCj4gPg0K PiA+ICsvKiBxdWV1ZSByZWdpb24gaW5mbyAqLw0KPiA+ICtzdHJ1Y3QgaTQwZV9yZWdpb25faW5m byB7DQo+ID4gKwkvKiB0aGUgcmVnaW9uIGlkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24gKi8NCj4g PiArCXVpbnQ4X3QgcmVnaW9uX2lkOw0KPiA+ICsJLyogdGhlIHN0YXJ0IHF1ZXVlIGluZGV4IGZv ciB0aGlzIHJlZ2lvbiAqLw0KPiA+ICsJdWludDhfdCBxdWV1ZV9zdGFydF9pbmRleDsNCj4gPiAr CS8qIHRoZSB0b3RhbCBxdWV1ZSBudW1iZXIgb2YgdGhpcyBxdWV1ZSByZWdpb24gKi8NCj4gPiAr CXVpbnQ4X3QgcXVldWVfbnVtOw0KPiA+ICsJLyogdGhlIHRvdGFsIG51bWJlciBvZiB1c2VyIHBy aW9yaXR5IGZvciB0aGlzIHJlZ2lvbiAqLw0KPiA+ICsJdWludDhfdCB1c2VyX3ByaW9yaXR5X251 bTsNCj4gPiArCS8qIHRoZSBwYWNrZXQncyB1c2VyIHByaW9yaXR5IGZvciB0aGlzIHJlZ2lvbiAq Lw0KPiA+ICsJdWludDhfdCB1c2VyX3ByaW9yaXR5W0k0MEVfTUFYX1VTRVJfUFJJT1JJVFldOw0K PiA+ICsJLyogdGhlIHRvdGFsIG51bWJlciBvZiBmbG93dHlwZSBmb3IgdGhpcyByZWdpb24gKi8N Cj4gPiArCXVpbnQ4X3QgZmxvd3R5cGVfbnVtOw0KPiA+ICsJLyoqDQo+ID4gKwkgKiB0aGUgcGN0 eXBlIG9yIGhhcmR3YXJlIGZsb3d0eXBlIG9mIHBhY2tldCwNCj4gPiArCSAqIHRoZSBzcGVjaWZp YyBpbmRleCBmb3IgZWFjaCB0eXBlIGhhcyBiZWVuIGRlZmluZWQNCj4gPiArCSAqIGluIGZpbGUg aTQwZV90eXBlLmggYXMgZW51bSBpNDBlX2ZpbHRlcl9wY3R5cGUuDQo+ID4gKwkgKi8NCj4gPiAr CXVpbnQ4X3QgaHdfZmxvd3R5cGVbSTQwRV9GSUxURVJfUENUWVBFX01BWF07DQo+ID4gK307DQo+ ID4gKw0KPiA+ICtzdHJ1Y3QgaTQwZV9xdWV1ZV9yZWdpb25faW5mbyB7DQo+IA0KPiBXaGF0IGRv IHlvdSB0aGluayByZW5hbWluZzoNCj4gaTQwZV9yZWdpb25faW5mbyAtPiBpNDBlX3F1ZXVlX3Jl Z2lvbl9pbmZvIGk0MGVfcXVldWVfcmVnaW9uX2luZm8gLT4NCj4gaTQwZV9xdWV1ZV9yZWdpb25z DQoNCk9rDQoNCj4gDQo+ID4gKwkvKiB0aGUgdG90YWwgbnVtYmVyIG9mIHF1ZXVlIHJlZ2lvbiBm b3IgdGhpcyBwb3J0ICovDQo+ID4gKwl1aW50MTZfdCBxdWV1ZV9yZWdpb25fbnVtYmVyOw0KPiA+ ICsJc3RydWN0IGk0MGVfcmVnaW9uX2luZm8gcmVnaW9uW0k0MEVfUkVHSU9OX01BWF9JTkRFWCAr IDFdOyB9Ow0KPiA+ICsNCj4gPiAgLyogVHVubmVsIGZpbHRlciBudW1iZXIgSFcgc3VwcG9ydHMg Ki8gICNkZWZpbmUNCj4gPiBJNDBFX01BWF9UVU5ORUxfRklMVEVSX05VTSA0MDANCj4gPg0KPiAN Cj4gPC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiAraTQwZV9xdWV1ZV9yZWdpb25fc2V0 X2Zsb3d0eXBlKHN0cnVjdCBpNDBlX3BmICpwZiwNCj4gPiArCQkJc3RydWN0IHJ0ZV9pNDBlX3Jz c19yZWdpb25fY29uZiAqcnNzX3JlZ2lvbl9jb25mKSB7DQo+ID4gKwlpbnQzMl90IHJldCA9IC1F SU5WQUw7DQo+ID4gKwlzdHJ1Y3QgaTQwZV9xdWV1ZV9yZWdpb25faW5mbyAqaW5mbyA9ICZwZi0+ cXVldWVfcmVnaW9uOw0KPiA+ICsJdWludDE2X3QgaSwgajsNCj4gPiArCXVpbnQxNl90IHJlZ2lv bl9pbmRleCwgZmxvd3R5cGVfaW5kZXg7DQo+ID4gKw0KPiA+ICsJLyoqDQo+IA0KPiBUaGlzIGlz IGRveHlnZW4gc3l0bGUgY29tbWVudCwgb25seSBuZWRlZWQgZm9yIHB1YmxpYyBoZWFkZXJzLg0K DQpPaywgSSB3aWxsIGNoYW5nZSB0byB0aGlzIG1vZGUgOg0KDQoJLyogRm9yIHRoZSBwY3R5cGUg b3IgaGFyZHdhcmUgZmxvd3R5cGUgb2YgcGFja2V0LA0KCSAqIHRoZSBzcGVjaWZpYyBpbmRleCBm b3IgZWFjaCB0eXBlIGhhcyBiZWVuIGRlZmluZWQNCgkgKiBpbiBmaWxlIGk0MGVfdHlwZS5oIGFz IGVudW0gaTQwZV9maWx0ZXJfcGN0eXBlLg0KCSAqLw0KDQo+IA0KPiA+ICsJICogRm9yIHRoZSBw Y3R5cGUgb3IgaGFyZHdhcmUgZmxvd3R5cGUgb2YgcGFja2V0LA0KPiA+ICsJICogdGhlIHNwZWNp ZmljIGluZGV4IGZvciBlYWNoIHR5cGUgaGFzIGJlZW4gZGVmaW5lZA0KPiA+ICsJICogaW4gZmls ZSBpNDBlX3R5cGUuaCBhcyBlbnVtIGk0MGVfZmlsdGVyX3BjdHlwZS4NCj4gPiArCSAqLw0KPiA+ ICsNCj4gPC4uLj4NCj4gDQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICt9DQo+IA0KPiBNaXNzaW5n IGxpbmUuDQoNCk9rDQoNCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiAraTQwZV9xdWV1ZV9yZWdp b25fc2V0X3VzZXJfcHJpb3JpdHkoc3RydWN0IGk0MGVfcGYgKnBmLA0KPiA+ICsJCXN0cnVjdCBy dGVfaTQwZV9yc3NfcmVnaW9uX2NvbmYgKnJzc19yZWdpb25fY29uZikgew0KPiA+ICsJc3RydWN0 IGk0MGVfcXVldWVfcmVnaW9uX2luZm8gKmluZm8gPSAmcGYtPnF1ZXVlX3JlZ2lvbjsNCj4gPiAr CWludDMyX3QgcmV0ID0gLUVJTlZBTDsNCj4gPiArCXVpbnQxNl90IGksIGosIHJlZ2lvbl9pbmRl eDsNCj4gPiArDQo+IDwuLi4+DQo+IA0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK2k0MGVfcXVldWVf cmVnaW9uX2Rpc3BsYXlfYWxsX2luZm8oc3RydWN0IGk0MGVfcGYgKnBmLCB1aW50MTZfdA0KPiA+ ICtwb3J0X2lkKSB7DQo+ID4gKwl1aW50MTZfdCBpLCBqOw0KPiA+ICsJc3RydWN0IGk0MGVfcXVl dWVfcmVnaW9uX2luZm8gKmluZm8gPSAmcGYtPnF1ZXVlX3JlZ2lvbjsNCj4gPiArCXN0YXRpYyBj b25zdCBjaGFyICpxdWV1ZV9yZWdpb25faW5mb19zdGF0c19ib3JkZXIgPSAiLS0tLS0tLSI7DQo+ ID4gKw0KPiA+ICsJaWYgKCFpbmZvLT5xdWV1ZV9yZWdpb25fbnVtYmVyKQ0KPiA+ICsJCVBNRF9E UlZfTE9HKEVSUiwgInRoZXJlIGlzIG5vIGhhcyBiZWVuIHJlZ2lvbiBzZXQNCj4gYmVmb3JlIik7 DQo+ID4gKw0KPiA+ICsJcHJpbnRmKCJcbiAgJXMgQWxsIHF1ZXVlIHJlZ2lvbiBpbmZvIGZvciBw b3J0PSUyZCAlcyIsDQo+ID4gKwkJCXF1ZXVlX3JlZ2lvbl9pbmZvX3N0YXRzX2JvcmRlciwgcG9y dF9pZCwNCj4gPiArCQkJcXVldWVfcmVnaW9uX2luZm9fc3RhdHNfYm9yZGVyKTsNCj4gDQo+IHBy aW50ZiA/IFBsZWFzZSB1c2UgZHJpdmVyIGxvZ2dpbmcgZnVuY3Rpb25zLg0KPiANCg0KT2ssIEkg d2lsbCBjaGFuZ2UgdG8gUE1EX0RSVl9MT0coKQ0KDQo+ID4gKwlwcmludGYoIlxuICBxdWV1ZV9y ZWdpb25fbnVtYmVyOiAlLTE0dSBcbiIsDQo+ID4gK2luZm8tPnF1ZXVlX3JlZ2lvbl9udW1iZXIp Ow0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5xdWV1ZV9yZWdpb25fbnVtYmVy OyBpKyspIHsNCj4gPiArCQlwcmludGYoIlxuICByZWdpb25faWQ6ICUtMTR1IHF1ZXVlX251bWJl cjogJS0xNHUgIg0KPiA+ICsJCQkicXVldWVfc3RhcnRfaW5kZXg6ICUtMTR1IFxuIiwNCj4gPiAr CQkJaW5mby0+cmVnaW9uW2ldLnJlZ2lvbl9pZCwNCj4gPiArCQkJaW5mby0+cmVnaW9uW2ldLnF1 ZXVlX251bSwNCj4gPiArCQkJaW5mby0+cmVnaW9uW2ldLnF1ZXVlX3N0YXJ0X2luZGV4KTsNCj4g PiArDQo+ID4gKwkJcHJpbnRmKCIgIHVzZXJfcHJpb3JpdHlfbnVtIGlzICAlLTE0dSA6IiwNCj4g PiArCQkJCWluZm8tPnJlZ2lvbltpXS51c2VyX3ByaW9yaXR5X251bSk7DQo+ID4gKwkJZm9yIChq ID0gMDsgaiA8IGluZm8tPnJlZ2lvbltpXS51c2VyX3ByaW9yaXR5X251bTsgaisrKQ0KPiA+ICsJ CQlwcmludGYoIiAlLTE0dSAiLCBpbmZvLT5yZWdpb25baV0udXNlcl9wcmlvcml0eVtqXSk7DQo+ ID4gKw0KPiA+ICsJCXByaW50ZigiXG4gIGZsb3d0eXBlX251bSBpcyAgJS0xNHUgOiIsDQo+ID4g KwkJCQlpbmZvLT5yZWdpb25baV0uZmxvd3R5cGVfbnVtKTsNCj4gPiArCQlmb3IgKGogPSAwOyBq IDwgaW5mby0+cmVnaW9uW2ldLmZsb3d0eXBlX251bTsgaisrKQ0KPiA+ICsJCQlwcmludGYoIiAl LTE0dSAiLCBpbmZvLT5yZWdpb25baV0uaHdfZmxvd3R5cGVbal0pOw0KPiA+ICsJfQ0KPiA+ICsN Cj4gPiArCXByaW50ZigiXG5cbiIpOw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ ID4gK2ludCBydGVfcG1kX2k0MGVfcnNzX3F1ZXVlX3JlZ2lvbl9jb25mKHVpbnQxNl90IHBvcnRf aWQsDQo+ID4gKwkJCXN0cnVjdCBydGVfaTQwZV9yc3NfcmVnaW9uX2NvbmYgKnJzc19yZWdpb25f Y29uZikgew0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2Vz W3BvcnRfaWRdOw0KPiA+ICsJc3RydWN0IGk0MGVfcGYgKnBmID0gSTQwRV9ERVZfUFJJVkFURV9U T19QRihkZXYtPmRhdGEtDQo+ID5kZXZfcHJpdmF0ZSk7DQo+ID4gKwlzdHJ1Y3QgaTQwZV9odyAq aHcgPSBJNDBFX0RFVl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0NCj4gPmRldl9wcml2YXRlKTsN Cj4gPiArCWVudW0gcnRlX3BtZF9pNDBlX3F1ZXVlX3JlZ2lvbl9vcCBvcF90eXBlID0gcnNzX3Jl Z2lvbl9jb25mLQ0KPiA+b3A7DQo+ID4gKwlpbnQzMl90IHJldDsNCj4gPiArDQo+ID4gKwlSVEVf RVRIX1ZBTElEX1BPUlRJRF9PUl9FUlJfUkVUKHBvcnRfaWQsIC1FTk9ERVYpOw0KPiA+ICsNCj4g PiArCWlmICghaXNfaTQwZV9zdXBwb3J0ZWQoZGV2KSkNCj4gPiArCQlyZXR1cm4gLUVOT1RTVVA7 DQo+ID4gKw0KPiA+ICsJaWYgKCEoIWk0MGVfcXVldWVfcmVnaW9uX3BmX2NoZWNrX3JzcyhwZikp KQ0KPiA+ICsJCXJldHVybiAtRU5PVFNVUDsNCj4gPiArDQo+ID4gKwkvKioNCj4gPiArCSAqIFRo aXMgcXVldWUgcmVnaW9uIGZlYXR1cmUgb25seSBzdXBwb3J0IHBmIGJ5IG5vdy4gSXQgc2hvdWxk DQo+ID4gKwkgKiBiZSBjYWxsZWQgYWZ0ZXIgZGV2X3N0YXJ0LCBhbmQgd2lsbCBiZSBjbGVhciBh ZnRlciBkZXZfc3RvcC4NCj4gPiArCSAqICJSVEVfUE1EX0k0MEVfUlNTX1FVRVVFX1JFR0lPTl9B TExfRkxVU0hfT04iDQo+ID4gKwkgKiBpcyBqdXN0IGFuIGVuYWJsZSBmdW5jdGlvbiB3aGljaCBz ZXJ2ZXIgZm9yIG90aGVyIGNvbmZpZ3VyYXRpb24sDQo+ID4gKwkgKiBpdCBpcyBmb3IgYWxsIGNv bmZpZ3VyYXRpb24gYWJvdXQgcXVldWUgcmVnaW9uIGZyb20gdXAgbGF5ZXIsDQo+ID4gKwkgKiBh dCBmaXJzdCB3aWxsIG9ubHkga2VlcCBpbiBEUERLIHNvZnR3YXJlc3RvcmVkIGluIGRyaXZlciwN Cj4gPiArCSAqIG9ubHkgYWZ0ZXIgIkZMVVNIX09OIiwgaXQgY29tbWl0IGFsbCBjb25maWd1cmF0 aW9uIHRvIEhXLg0KPiA+ICsJICogQmVjYXVzZSBQTUQgaGFkIHRvIHNldCBoYXJkd2FyZSBjb25m aWd1cmF0aW9uIGF0IGEgdGltZSwgc28NCj4gPiArCSAqIGl0IHdpbGwgcmVjb3JkIGFsbCB1cCBs YXllciBjb21tYW5kIGF0IGZpcnN0Lg0KPiA+ICsJICogIlJURV9QTURfSTQwRV9SU1NfUVVFVUVf UkVHSU9OX0FMTF9GTFVTSF9PRkYiIGlzDQo+ID4gKwkgKiBqdXN0IGNsZWFuIGFsbCBjb25maWd1 cmF0aW9uIGFib3V0IHF1ZXVlIHJlZ2lvbiBqdXN0IG5vdywNCj4gPiArCSAqIGFuZCByZXN0b3Jl IGFsbCB0byBEUERLIGk0MGUgZHJpdmVyIGRlZmF1bHQNCj4gPiArCSAqIGNvbmZpZyB3aGVuIHN0 YXJ0IHVwLg0KPiA+ICsJICovDQo+ID4gKw0KPiA+ICsJc3dpdGNoIChvcF90eXBlKSB7DQo+ID4g KwljYXNlIFJURV9QTURfSTQwRV9RVUVVRV9SRUdJT05fU0VUOg0KPiA+ICsJCXJldCA9IGk0MGVf cXVldWVfcmVnaW9uX3NldF9yZWdpb24ocGYsIHJzc19yZWdpb25fY29uZik7DQo+ID4gKwkJYnJl YWs7DQo+ID4gKwljYXNlIFJURV9QTURfSTQwRV9SRUdJT05fRkxPV1RZUEVfU0VUOg0KPiA+ICsJ CXJldCA9IGk0MGVfcXVldWVfcmVnaW9uX3NldF9mbG93dHlwZShwZiwgcnNzX3JlZ2lvbl9jb25m KTsNCj4gPiArCQlicmVhazsNCj4gPiArCWNhc2UgUlRFX1BNRF9JNDBFX1VTRVJfUFJJT1JJVFlf UkVHSU9OX1NFVDoNCj4gPiArCQlyZXQgPSBpNDBlX3F1ZXVlX3JlZ2lvbl9zZXRfdXNlcl9wcmlv cml0eShwZiwNCj4gcnNzX3JlZ2lvbl9jb25mKTsNCj4gPiArCQlicmVhazsNCj4gPiArCWNhc2Ug UlRFX1BNRF9JNDBFX1JTU19RVUVVRV9SRUdJT05fQUxMX0ZMVVNIX09OOg0KPiA+ICsJCXJldCA9 IGk0MGVfZmx1c2hfcXVldWVfcmVnaW9uX2FsbF9jb25mKGRldiwgaHcsIHBmLCAxKTsNCj4gPiAr CQlicmVhazsNCj4gPiArCWNhc2UgUlRFX1BNRF9JNDBFX1JTU19RVUVVRV9SRUdJT05fQUxMX0ZM VVNIX09GRjoNCj4gPiArCQlyZXQgPSBpNDBlX2ZsdXNoX3F1ZXVlX3JlZ2lvbl9hbGxfY29uZihk ZXYsIGh3LCBwZiwgMCk7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJURV9QTURfSTQwRV9S U1NfUVVFVUVfUkVHSU9OX0lORk9fR0VUOg0KPiA+ICsJCXJldCA9IGk0MGVfcXVldWVfcmVnaW9u X2Rpc3BsYXlfYWxsX2luZm8ocGYsIHBvcnRfaWQpOw0KPiANCj4gRGlzcGxheWluZyBpcyBub3Qg YWx3YXlzIHZlcnkgdXNlZnVsIGluIEFQSSBsZXZlbC4NCj4gV2hhdCBkbyB5b3UgdGhpbmsgZ2V0 IGZpbGxzIHRoZSByc3NfcmVnaW9uX2NvbmYgd2l0aCBjdXJyZW50IGRldmljZSBzZXR0aW5ncw0K PiBhbmQgcmV0dXJuIGJhY2sgdG8gdGhlIGNhbGxlcj8NCg0KT2ssIGl0IHdpbGwgbm90IG9ubHkg cHJpbnQgYWxsIHJlZ2lvbiBpbmZvLCBidXQgYWxzbyBmaWxsIGEgc3RydWN0IGxpa2UgcnNzX3Jl Z2lvbl9jb25mLg0KV2l0aCB0aGUgQ0xJIGNvbW1hbmQgInNob3cgcG9ydCAjIHF1ZXVlLXJlZ2lv bi4uLiINCg0KDQo+IA0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJZGVmYXVsdDoNCj4gPiArCQlQTURf RFJWX0xPRyhXQVJOSU5HLCAib3AgdHlwZSAoJWQpIG5vdCBzdXBwb3J0ZWQiLA0KPiA+ICsJCQkg ICAgb3BfdHlwZSk7DQo+ID4gKwkJcmV0ID0gLUVJTlZBTDsNCj4gPiArCX0NCj4gPiArDQo+ID4g KwlJNDBFX1dSSVRFX0ZMVVNIKGh3KTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICt9 DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2k0MGUvcnRlX3BtZF9pNDBlLmgNCj4gPiBi L2RyaXZlcnMvbmV0L2k0MGUvcnRlX3BtZF9pNDBlLmggaW5kZXggMTU1YjdlOC4uMjIxOTMxOCAx MDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9pNDBlL3J0ZV9wbWRfaTQwZS5oDQo+ID4gKysr IGIvZHJpdmVycy9uZXQvaTQwZS9ydGVfcG1kX2k0MGUuaA0KPiA+IEBAIC05MSw2ICs5MSwzMyBA QCBlbnVtIHJ0ZV9wbWRfaTQwZV9wYWNrYWdlX2luZm8gew0KPiA+ICAJUlRFX1BNRF9JNDBFX1BL R19JTkZPX01BWCA9IDB4RkZGRkZGRkYgIH07DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAqICBPcHRp b24gdHlwZXMgb2YgcXVldWUgcmVnaW9uLg0KPiA+ICsgKi8NCj4gPiArZW51bSBydGVfcG1kX2k0 MGVfcXVldWVfcmVnaW9uX29wIHsNCj4gPiArCVJURV9QTURfSTQwRV9SRUdJT05fVU5ERUZJTkVE LA0KPiA+ICsJUlRFX1BNRF9JNDBFX1FVRVVFX1JFR0lPTl9TRVQsICAgICAgLyoqPCBhZGQgcXVl dWUgcmVnaW9uIHNldA0KPiAqLw0KPiA+ICsJUlRFX1BNRF9JNDBFX1JFR0lPTl9GTE9XVFlQRV9T RVQsICAgLyoqPCBhZGQgcGYgcmVnaW9uDQo+IHBjdHlwZSBzZXQgKi8NCj4gPiArCS8qKiogYWRk IHF1ZXVlIHJlZ2lvbiB1c2VyIHByaW9yaXR5IHNldCAqLw0KPiA+ICsJUlRFX1BNRF9JNDBFX1VT RVJfUFJJT1JJVFlfUkVHSU9OX1NFVCwNCj4gPiArCS8qKg0KPiA+ICsJICogQUxMIGNvbmZpZ3Vy YXRpb24gYWJvdXQgcXVldWUgcmVnaW9uIGZyb20gdXAgbGF5ZXINCj4gPiArCSAqIGF0IGZpcnN0 IHdpbGwgb25seSBrZWVwIGluIERQREsgc29mdHdhcmVzdG9yZWQgaW4gZHJpdmVyLA0KPiA+ICsJ ICogb25seSBhZnRlciAiIEZMVVNIX09OICIsIGl0IGNvbW1pdCBhbGwgY29uZmlndXJhdGlvbiB0 byBIVy4NCj4gPiArCSAqIEJlY2F1c2UgUE1EIGhhZCB0byBzZXQgaGFyZHdhcmUgY29uZmlndXJh dGlvbiBhdCBhIHRpbWUsIHNvDQo+ID4gKwkgKiBpdCB3aWxsIHJlY29yZCBhbGwgdXAgbGF5ZXIg Y29tbWFuZCBhdCBmaXJzdC4NCj4gPiArCSAqLw0KPiA+ICsJUlRFX1BNRF9JNDBFX1JTU19RVUVV RV9SRUdJT05fQUxMX0ZMVVNIX09OLA0KPiA+ICsJLyoqDQo+ID4gKwkgKiAiRkxVU0hfT0ZGICIg aXMganVzdCBjbGVhbiBhbGwgY29uZmlndXJhdGlvbiBhYm91dCBxdWV1ZQ0KPiA+ICsJICogcmVn aW9uIGp1c3Qgbm93LCBhbmQgcmVzdG9yZSBhbGwgdG8gRFBESyBpNDBlIGRyaXZlciBkZWZhdWx0 DQo+ID4gKwkgKiBjb25maWcgd2hlbiBzdGFydCB1cC4NCj4gPiArCSAqLw0KPiA+ICsJUlRFX1BN RF9JNDBFX1JTU19RVUVVRV9SRUdJT05fQUxMX0ZMVVNIX09GRiwNCj4gPiArCVJURV9QTURfSTQw RV9SU1NfUVVFVUVfUkVHSU9OX0lORk9fR0VULA0KPiA+ICsJUlRFX1BNRF9JNDBFX1FVRVVFX1JF R0lPTl9PUF9NQVgNCj4gDQo+IFRoZXNlIGFyZSBpbiBwdWJsaWMgaGVhZGVyIG5vdy4NCj4gQ2Fu IHlvdSBwbGVhc2UgdXNlIHNhbWUgbmFtZXNwYWNlIGZvciBhbGwgb3BzLg0KPiBJdCBjYW4gYmUg IlJURV9QTURfSTQwRV9SU1NfUVVFVUVfUkVHSU9OXyINCg0KT2sNCg0KPiANCj4gPiArfTsNCj4g PiArDQo+ID4gICNkZWZpbmUgUlRFX1BNRF9JNDBFX0REUF9OQU1FX1NJWkUgMzINCj4gPg0KPiA+ ICAvKioNCj4gPiBAQCAtMTQ2LDYgKzE3MywyNyBAQCBzdHJ1Y3QgcnRlX3BtZF9pNDBlX3B0eXBl X21hcHBpbmcgeyAgfTsNCj4gPg0KPiA+ICAvKioNCj4gPiArICogUXVldWUgcmVnaW9uIHJlbGF0 ZWQgaW5mb3JtYXRpb24uDQo+ID4gKyAqLw0KPiA+ICtzdHJ1Y3QgcnRlX2k0MGVfcnNzX3JlZ2lv bl9jb25mIHsNCj4gDQo+IENhbiB5b3UgcGxlYXNlIGJlIGNvbnNpc3RhbnQgaW4gdXNpbmcgcHVi bGljIG5hbWVzLg0KPiBUaGVyZSBhcmU6DQo+IHJzc19yZWdpb24NCj4gcXVldWVfcmVnaW9uDQo+ IHJzc19xdWV1ZV9yZWdpb24NCj4gDQo+IEFsc28gdGhlcmUgaXMgY29uZnVzaW9uIGJldHdlZW4g dXNpbmc6DQo+IHJ0ZV9pNDBlXw0KPiBydGVfcG1kX2k0MGVfDQoNCk9rDQoNCj4gDQo+ID4gKwkv KioqIHRoZSByZWdpb24gaWQgZm9yIHRoaXMgY29uZmlndXJhdGlvbiAqLw0KPiA+ICsJdWludDhf dCByZWdpb25faWQ7DQo+ID4gKwkvKiogdGhlIHBjdHlwZSBvciBoYXJkd2FyZSBmbG93dHlwZSBv ZiBwYWNrZXQsDQo+ID4gKwkgKiB0aGUgc3BlY2lmaWMgaW5kZXggZm9yIGVhY2ggdHlwZSBoYXMg YmVlbiBkZWZpbmVkDQo+ID4gKwkgKiBpbiBmaWxlIGk0MGVfdHlwZS5oIGFzIGVudW0gaTQwZV9m aWx0ZXJfcGN0eXBlLg0KPiA+ICsJICovDQo+ID4gKwl1aW50OF90IGh3X2Zsb3d0eXBlOw0KPiA+ ICsJLyoqKiB0aGUgc3RhcnQgcXVldWUgaW5kZXggZm9yIHRoaXMgcmVnaW9uICovDQo+ID4gKwl1 aW50OF90IHF1ZXVlX3N0YXJ0X2luZGV4Ow0KPiA+ICsJLyoqKiB0aGUgdG90YWwgcXVldWUgbnVt YmVyIG9mIHRoaXMgcXVldWUgcmVnaW9uICovDQo+ID4gKwl1aW50OF90IHF1ZXVlX251bTsNCj4g PiArCS8qKiogdGhlIHBhY2tldCdzIHVzZXIgcHJpb3JpdHkgZm9yIHRoaXMgcmVnaW9uICovDQo+ ID4gKwl1aW50OF90IHVzZXJfcHJpb3JpdHk7DQo+ID4gKwkgLyoqKiBPcHRpb24gdHlwZXMgb2Yg cXVldWUgcmVnaW9uICovDQo+ID4gKwllbnVtIHJ0ZV9wbWRfaTQwZV9xdWV1ZV9yZWdpb25fb3Ag b3A7IH07DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAgICogTm90aWZ5IFZGIHdoZW4gUEYgbGluayBz dGF0dXMgY2hhbmdlcy4NCj4gPiAgICoNCj4gPiAgICogQHBhcmFtIHBvcnQNCj4gPiBAQCAtNjU3 LDQgKzcwNSwxNiBAQCBpbnQNCj4gcnRlX3BtZF9pNDBlX3B0eXBlX21hcHBpbmdfcmVwbGFjZSh1 aW50OF90DQo+ID4gcG9ydCwgIGludCBydGVfcG1kX2k0MGVfYWRkX3ZmX21hY19hZGRyKHVpbnQ4 X3QgcG9ydCwgdWludDE2X3QgdmZfaWQsDQo+ID4gIAkJCQkgc3RydWN0IGV0aGVyX2FkZHIgKm1h Y19hZGRyKTsNCj4gPg0KPiA+ICsvKioNCj4gPiArICogRG8gUlNTIHF1ZXVlIHJlZ2lvbiBjb25m aWd1cmF0aW9uIGZvciB0aGF0IHBvcnQgYXMNCj4gPiArICogdGhlIGNvbW1hbmQgb3B0aW9uIHR5 cGUNCj4gPiArICoNCj4gPiArICogQHBhcmFtIHBvcnQNCj4gPiArICogICAgcG9pbnRlciBpZCBm b3IgdGhhdCBwb3J0IGRldmljZQ0KPiANCj4gcG9ydCBpZCA/DQoNCk9rDQoNCj4gDQo+ID4gKyAq IEBwYXJhbSBjb25mX3B0cg0KPiA+ICsgKiAgICBwb2ludGVyIHRvIHRoZSBzdHJ1Y3QgdGhhdCBj b250YWluIGFsbCB0aGUNCj4gPiArICogICAgcmVnaW9uIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVy cw0KPiA+ICsgKi8NCj4gPiAraW50IHJ0ZV9wbWRfaTQwZV9yc3NfcXVldWVfcmVnaW9uX2NvbmYo dWludDE2X3QgcG9ydF9pZCwNCj4gDQo+IEJ5IGRlZmluaW5nIHBvcnRfaWQgdWludDE2X3QsIHRo aXMgcGF0Y2hlcyBiZWNvbWVzIGRlcGVuZGVudCB0byB0aGUgcG9ydF9pZA0KPiB1cGRhdGUgcGF0 Y2hzZXQsIHBsZWFzZSBjbGFyaWZ5IHRoaXMgaW4gY292ZXIgbGV0dGVyLg0KDQoNCk9rDQoNCj4g DQo+ID4gKwkJc3RydWN0IHJ0ZV9pNDBlX3Jzc19yZWdpb25fY29uZiAqcnNzX3JlZ2lvbl9jb25m KTsNCj4gPiAgI2VuZGlmIC8qIF9QTURfSTQwRV9IXyAqLw0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9pNDBlL3J0ZV9wbWRfaTQwZV92ZXJzaW9uLm1hcA0KPiA+IGIvZHJpdmVycy9uZXQv aTQwZS9ydGVfcG1kX2k0MGVfdmVyc2lvbi5tYXANCj4gPiBpbmRleCBlZjg4ODJiLi4yOWQ2Yjc0 IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2k0MGUvcnRlX3BtZF9pNDBlX3ZlcnNpb24u bWFwDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvaTQwZS9ydGVfcG1kX2k0MGVfdmVyc2lvbi5tYXAN Cj4gPiBAQCAtNTAsNSArNTAsNiBAQCBEUERLXzE3LjExIHsNCj4gPiAgCWdsb2JhbDoNCj4gPg0K PiA+ICAJcnRlX3BtZF9pNDBlX2FkZF92Zl9tYWNfYWRkcjsNCj4gPiArCXJ0ZV9wbWRfaTQwZV9y c3NfcXVldWVfcmVnaW9uX2NvbmY7DQo+ID4NCj4gPiAgfSBEUERLXzE3LjA4Ow0KPiA+DQoNCg==