From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-outbound-2.vmware.com (smtp-outbound-2.vmware.com [208.91.2.13]) by dpdk.org (Postfix) with ESMTP id C896A9AE5 for ; Thu, 12 Feb 2015 19:40:32 +0100 (CET) Received: from sc9-mailhost2.vmware.com (sc9-mailhost2.vmware.com [10.113.161.72]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 9284B286DB; Thu, 12 Feb 2015 10:40:30 -0800 (PST) Received: from EX13-CAS-012.vmware.com (EX13-CAS-012.vmware.com [10.113.191.64]) by sc9-mailhost2.vmware.com (Postfix) with ESMTP id 89689A801C; Thu, 12 Feb 2015 10:40:30 -0800 (PST) Received: from EX13-MBX-026.vmware.com (10.113.191.46) by EX13-MBX-027.vmware.com (10.113.191.47) with Microsoft SMTP Server (TLS) id 15.0.913.22; Thu, 12 Feb 2015 10:40:26 -0800 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; Thu, 12 Feb 2015 10:40:14 -0800 From: Yong Wang To: Stephen Hemminger , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH 1/7] vmxnet3: add support for VLAN filtering Thread-Index: AQHQGbjnOy+BbWwcfUav3O/pvGLeHpztszQA Date: Thu, 12 Feb 2015 18:40:13 +0000 Message-ID: References: <1418793196-17953-1-git-send-email-stephen@networkplumber.org> <1418793196-17953-2-git-send-email-stephen@networkplumber.org> In-Reply-To: <1418793196-17953-2-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: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Cc: Stephen Hemminger Subject: Re: [dpdk-dev] [PATCH 1/7] vmxnet3: add support for VLAN filtering 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: Thu, 12 Feb 2015 18:40:33 -0000 T24gMTIvMTYvMTQsIDk6MTMgUE0sICJTdGVwaGVuIEhlbW1pbmdlciIgPHN0ZXBoZW5AbmV0d29y a3BsdW1iZXIub3JnPg0Kd3JvdGU6DQoNCj5Gcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c2hlbW1p bmdAYnJvY2FkZS5jb20+DQo+DQo+Vk1YTkVUMyBzdXBwb3J0cyBjb25maWd1cmluZyBmaWx0ZXIg dGFibGUgaW4gaG9zdC4NCj4NCj5TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEhlbW1pbmdlciA8c3Rl cGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+DQo+LS0tDQo+IGxpYi9saWJydGVfcG1kX3ZteG5ldDMv dm14bmV0M19ldGhkZXYuYyB8IDEwNw0KPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t DQo+IGxpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhkZXYuaCB8ICAgMiArLQ0KPiBs aWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfcnh0eC5jICAgfCAgMjUgLS0tLS0tLS0NCj4g MyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkNCj4NCj5k aWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQo+Yi9s aWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMNCj5pbmRleCBlZjBhZjE2Li4z MGQwNjU5IDEwMDY0NA0KPi0tLSBhL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhk ZXYuYw0KPisrKyBiL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYw0KPkBA IC04Nyw2ICs4NywxMiBAQCBzdGF0aWMgdm9pZCB2bXhuZXQzX2Rldl9zdGF0c19nZXQoc3RydWN0 IHJ0ZV9ldGhfZGV2DQo+KmRldiwNCj4gCQkJCXN0cnVjdCBydGVfZXRoX3N0YXRzICpzdGF0cyk7 DQo+IHN0YXRpYyB2b2lkIHZteG5ldDNfZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LA0KPiAJCQkJc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKTsNCj4rc3RhdGlj IGludCB2bXhuZXQzX2Rldl92bGFuX2ZpbHRlcl9zZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYs DQo+KwkJCQkgICAgICAgdWludDE2X3QgdmlkLCBpbnQgb24pOw0KPitzdGF0aWMgdm9pZCB2bXhu ZXQzX2Rldl92bGFuX29mZmxvYWRfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBpbnQNCj5t YXNrKTsNCj4rc3RhdGljIHZvaWQgdm14bmV0M19kZXZfdmxhbl9vZmZsb2FkX3NldF9jbGVhcihz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4rCQkJCQkJaW50IG1hc2ssIGludCBjbGVhcik7DQo+ Kw0KPiAjaWYgUFJPQ0VTU19TWVNfRVZFTlRTID09IDENCj4gc3RhdGljIHZvaWQgdm14bmV0M19w cm9jZXNzX2V2ZW50cyhzdHJ1Y3Qgdm14bmV0M19odyAqKTsNCj4gI2VuZGlmDQo+QEAgLTExMyw2 ICsxMTksOCBAQCBzdGF0aWMgc3RydWN0IGV0aF9kZXZfb3BzIHZteG5ldDNfZXRoX2Rldl9vcHMg PSB7DQo+IAkubGlua191cGRhdGUgICAgICAgICAgPSB2bXhuZXQzX2Rldl9saW5rX3VwZGF0ZSwN Cj4gCS5zdGF0c19nZXQgICAgICAgICAgICA9IHZteG5ldDNfZGV2X3N0YXRzX2dldCwNCj4gCS5k ZXZfaW5mb3NfZ2V0ICAgICAgICA9IHZteG5ldDNfZGV2X2luZm9fZ2V0LA0KPisJLnZsYW5fZmls dGVyX3NldCAgICAgID0gdm14bmV0M19kZXZfdmxhbl9maWx0ZXJfc2V0LA0KPisJLnZsYW5fb2Zm bG9hZF9zZXQgICAgID0gdm14bmV0M19kZXZfdmxhbl9vZmZsb2FkX3NldCwNCj4gCS5yeF9xdWV1 ZV9zZXR1cCAgICAgICA9IHZteG5ldDNfZGV2X3J4X3F1ZXVlX3NldHVwLA0KPiAJLnJ4X3F1ZXVl X3JlbGVhc2UgICAgID0gdm14bmV0M19kZXZfcnhfcXVldWVfcmVsZWFzZSwNCj4gCS50eF9xdWV1 ZV9zZXR1cCAgICAgICA9IHZteG5ldDNfZGV2X3R4X3F1ZXVlX3NldHVwLA0KPkBAIC0zNzEsNyAr Mzc5LDcgQEAgdm14bmV0M19zZXR1cF9kcml2ZXJfc2hhcmVkKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2KQ0KPiAJVm14bmV0M19EU0RldlJlYWQgKmRldlJlYWQgPSAmc2hhcmVkLT5kZXZSZWFkOw0K PiAJdWludDMyX3QgKm1hY19wdHI7DQo+IAl1aW50MzJfdCB2YWwsIGk7DQo+LQlpbnQgcmV0Ow0K PisJaW50IHJldCwgbWFzazsNCj4gDQo+IAlzaGFyZWQtPm1hZ2ljID0gVk1YTkVUM19SRVYxX01B R0lDOw0KPiAJZGV2UmVhZC0+bWlzYy5kcml2ZXJJbmZvLnZlcnNpb24gPSBWTVhORVQzX0RSSVZF Ul9WRVJTSU9OX05VTTsNCj5AQCAtNDQyLDkgKzQ1MCw2IEBAIHZteG5ldDNfc2V0dXBfZHJpdmVy X3NoYXJlZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gCWlmIChkZXYtPmRhdGEtPmRldl9j b25mLnJ4bW9kZS5od19pcF9jaGVja3N1bSkNCj4gCQlkZXZSZWFkLT5taXNjLnVwdEZlYXR1cmVz IHw9IFZNWE5FVDNfRl9SWENTVU07DQo+IA0KPi0JaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYucnht b2RlLmh3X3ZsYW5fc3RyaXApDQo+LQkJZGV2UmVhZC0+bWlzYy51cHRGZWF0dXJlcyB8PSBWTVhO RVQzX0ZfUlhWTEFOOw0KPi0NCj4gCWlmIChwb3J0X2NvbmYucnhtb2RlLm1xX21vZGUgPT0gRVRI X01RX1JYX1JTUykgew0KPiAJCXJldCA9IHZteG5ldDNfcnNzX2NvbmZpZ3VyZShkZXYpOw0KPiAJ CWlmIChyZXQgIT0gVk1YTkVUM19TVUNDRVNTKQ0KPkBAIC00NTYsMTEgKzQ2MSwxNCBAQCB2bXhu ZXQzX3NldHVwX2RyaXZlcl9zaGFyZWQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+IAkJZGV2 UmVhZC0+cnNzQ29uZkRlc2MuY29uZlBBICA9IGh3LT5yc3NfY29uZlBBOw0KPiAJfQ0KPiANCj4t CWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5od192bGFuX2ZpbHRlcikgew0KPi0JCXJl dCA9IHZteG5ldDNfdmxhbl9jb25maWd1cmUoZGV2KTsNCj4tCQlpZiAocmV0ICE9IFZNWE5FVDNf U1VDQ0VTUykNCj4tCQkJcmV0dXJuIHJldDsNCj4tCX0NCj4rCW1hc2sgPSAwOw0KPisJaWYgKGRl di0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLmh3X3ZsYW5fc3RyaXApDQo+KwkJbWFzayB8PSBFVEhf VkxBTl9TVFJJUF9NQVNLOw0KPisNCj4rCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5o d192bGFuX2ZpbHRlcikNCj4rCQltYXNrIHw9IEVUSF9WTEFOX0ZJTFRFUl9NQVNLOw0KPisNCj4r CXZteG5ldDNfZGV2X3ZsYW5fb2ZmbG9hZF9zZXRfY2xlYXIoZGV2LCBtYXNrLCAxKTsNCj4gDQo+ IAlQTURfSU5JVF9MT0coREVCVUcsDQo+IAkJICAgICAiV3JpdGluZyBNQUMgQWRkcmVzcyA6ICUw Mng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4IiwNCj5AQCAtNjkwLDEzICs2OTgsMjMgQEAgdm14 bmV0M19kZXZfc2V0X3J4bW9kZShzdHJ1Y3Qgdm14bmV0M19odyAqaHcsDQo+dWludDMyX3QgZmVh dHVyZSwgaW50IHNldCkgew0KPiAJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVUM19S RUdfQ01ELCBWTVhORVQzX0NNRF9VUERBVEVfUlhfTU9ERSk7DQo+IH0NCj4gDQo+K3N0YXRpYyB2 b2lkDQo+K3ZteG5ldDNfZGV2X3VwZGF0ZV9maWx0ZXJzKHN0cnVjdCB2bXhuZXQzX2h3ICpodykN Cj4rew0KPisJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01ELA0KPisJ CQkgICAgICAgVk1YTkVUM19DTURfVVBEQVRFX1ZMQU5fRklMVEVSUyk7DQo+K30NCg0KVGhpcyBm dW5jdGlvbiBpcyBub3QgcmVhbGx5IG5lY2Vzc2FyeSBnaXZlbiB3aGF0IGl0IGRvZXMuICBJZiB5 b3UgcHJlZmVyDQp0byBrZWVwIGl0LCBwbGVhc2UgcmVuYW1lIGl0IHRvIHZteG5ldDNfZGV2X3Vw ZGF0ZV92bGFuX2ZpbHRlcnMgdG8gYmUgbW9yZQ0KcHJlY2lzZS4NCg0KPisNCj4gLyogUHJvbWlz Y3VvdXMgc3VwcG9ydGVkIG9ubHkgaWYgVm14bmV0M19Ecml2ZXJTaGFyZWQgaXMgaW5pdGlhbGl6 ZWQgaW4NCj5hZGFwdGVyICovDQo+IHN0YXRpYyB2b2lkDQo+IHZteG5ldDNfZGV2X3Byb21pc2N1 b3VzX2VuYWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gew0KPiAJc3RydWN0IHZteG5l dDNfaHcgKmh3ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4rCXVpbnQzMl90ICp2Zl90YWJs ZSA9IGh3LT5zaGFyZWQtPmRldlJlYWQucnhGaWx0ZXJDb25mLnZmVGFibGU7DQo+IA0KPisJbWVt c2V0KHZmX3RhYmxlLCAwLCBWTVhORVQzX1ZGVF9TSVpFICogc2l6ZW9mKCp2Zl90YWJsZSkpOw0K PiAJdm14bmV0M19kZXZfc2V0X3J4bW9kZShodywgVk1YTkVUM19SWE1fUFJPTUlTQywgMSk7DQo+ Kwl2bXhuZXQzX2Rldl91cGRhdGVfZmlsdGVycyhodyk7DQo+IH0NCj4gDQo+IC8qIFByb21pc2N1 b3VzIHN1cHBvcnRlZCBvbmx5IGlmIFZteG5ldDNfRHJpdmVyU2hhcmVkIGlzIGluaXRpYWxpemVk IGluDQo+YWRhcHRlciAqLw0KPkBAIC03MDQsOCArNzIyLDExIEBAIHN0YXRpYyB2b2lkDQo+IHZt eG5ldDNfZGV2X3Byb21pc2N1b3VzX2Rpc2FibGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ IHsNCj4gCXN0cnVjdCB2bXhuZXQzX2h3ICpodyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ Kwl1aW50MzJfdCAqdmZfdGFibGUgPSBody0+c2hhcmVkLT5kZXZSZWFkLnJ4RmlsdGVyQ29uZi52 ZlRhYmxlOw0KPiANCj4rCW1lbXNldCh2Zl90YWJsZSwgMCwgVk1YTkVUM19WRlRfU0laRSAqIHNp emVvZigqdmZfdGFibGUpKTsNCg0KUmF0aGVyIHRoYW4gY2xlYXJpbmcgYWxsIHZsYW4gZmlsdGVy cywgd2Ugc2hvdWxkIHJlc3RvcmUgdGhlIHNhdmVkIGZpbHRlcnMNCmluIHNoYWRvd192ZnRhIGJl Zm9yZSBwcm9taXNjdW91cyBtb2RlIGlzIGVuYWJsZWQuICBUaGlzIGlzIGFsc28gbmVlZGVkDQp3 aGVuIHRoZSBkZXZpY2UgaXMgc3RvcHBlZC9yZXN0YXJ0ZWQuDQoNCj4gCXZteG5ldDNfZGV2X3Nl dF9yeG1vZGUoaHcsIFZNWE5FVDNfUlhNX1BST01JU0MsIDApOw0KPisJdm14bmV0M19kZXZfdXBk YXRlX2ZpbHRlcnMoaHcpOw0KPiB9DQo+IA0KPiAvKiBBbGxtdWx0aWNhc3Qgc3VwcG9ydGVkIG9u bHkgaWYgVm14bmV0M19Ecml2ZXJTaGFyZWQgaXMgaW5pdGlhbGl6ZWQgaW4NCj5hZGFwdGVyICov DQo+QEAgLTcyNiw2ICs3NDcsNzQgQEAgdm14bmV0M19kZXZfYWxsbXVsdGljYXN0X2Rpc2FibGUo c3RydWN0IHJ0ZV9ldGhfZGV2DQo+KmRldikNCj4gCXZteG5ldDNfZGV2X3NldF9yeG1vZGUoaHcs IFZNWE5FVDNfUlhNX0FMTF9NVUxUSSwgMCk7DQo+IH0NCj4gDQo+Ky8qIEVuYWJsZS9kaXNhYmxl IGZpbHRlciBvbiB2bGFuICovDQo+K3N0YXRpYyBpbnQNCj4rdm14bmV0M19kZXZfdmxhbl9maWx0 ZXJfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCB2aWQsIGludA0KPm9uKQ0K Pit7DQo+KwlzdHJ1Y3Qgdm14bmV0M19odyAqaHcgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0K PisJc3RydWN0IFZteG5ldDNfUnhGaWx0ZXJDb25mICpyeENvbmYgPSAmaHctPnNoYXJlZC0+ZGV2 UmVhZC5yeEZpbHRlckNvbmY7DQo+Kwl1aW50MzJfdCAqdmZfdGFibGUgPSBody0+c2hhcmVkLT5k ZXZSZWFkLnJ4RmlsdGVyQ29uZi52ZlRhYmxlOw0KDQpTaW5jZSB5b3UgYWxyZWFkeSBkZWZpbmVk IHJ4Q29uZiwgdmZfdGFibGUgY2FuIGJlIGRlZmluZWQgYXM6DQp1aW50MzJfdCAqdmZfdGFibGUg PSByeENvbmYtPnZmVGFibGU7DQoNCj4rDQo+KwkvKiBzYXZlIHN0YXRlIGZvciByZXN0b3JlICov DQo+KwlpZiAob24pDQo+KwkJVk1YTkVUM19TRVRfVkZUQUJMRV9FTlRSWShody0+c2hhZG93X3Zm dGEsIHZpZCk7DQo+KwllbHNlDQo+KwkJVk1YTkVUM19DTEVBUl9WRlRBQkxFX0VOVFJZKGh3LT5z aGFkb3dfdmZ0YSwgdmlkKTsNCj4rDQo+KwkvKiBkb24ndCBjaGFuZ2UgYWN0aXZlIGZpbHRlciBp ZiBpbiBwcm9taXNjaW91cyBtb2RlICovDQo+KwlpZiAocnhDb25mLT5yeE1vZGUgJiBWTVhORVQz X1JYTV9QUk9NSVNDKQ0KPisJCXJldHVybiAwOw0KPisNCj4rCS8qIHNldCBpbiBoYXJkd2FyZSAq Lw0KPisJaWYgKG9uKQ0KPisJCVZNWE5FVDNfU0VUX1ZGVEFCTEVfRU5UUlkodmZfdGFibGUsIHZp ZCk7DQo+KwllbHNlDQo+KwkJVk1YTkVUM19DTEVBUl9WRlRBQkxFX0VOVFJZKHZmX3RhYmxlLCB2 aWQpOw0KPisNCj4rCXZteG5ldDNfZGV2X3VwZGF0ZV9maWx0ZXJzKGh3KTsNCj4rCXJldHVybiAw Ow0KPit9DQo+Kw0KPisNCj4rc3RhdGljIHZvaWQNCj4rdm14bmV0M19kZXZfdmxhbl9vZmZsb2Fk X3NldF9jbGVhcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4rCQkJCQkJaW50IG1hc2ssIGlu dCBjbGVhcikNCg0KUmVtb3ZlIG9uIHRhYiBoZXJlIGZvciBiZXR0ZXIgaW5kZW50aW9uLg0KDQo+ K3sNCj4rCXN0cnVjdCB2bXhuZXQzX2h3ICpodyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ Kwl1aW50MzJfdCAqdmZfdGFibGUgPSBody0+c2hhcmVkLT5kZXZSZWFkLnJ4RmlsdGVyQ29uZi52 ZlRhYmxlOw0KPisJVm14bmV0M19EU0RldlJlYWQgKmRldlJlYWQgPSAmaHctPnNoYXJlZC0+ZGV2 UmVhZDsNCg0KZGV2UmVhZCBjYW4gYmUgZGVmaW5lZCBiZWZvcmUgdmZfdGFibGUgYW5kIHZmX3Rh YmxlIGFzDQpkZXZSZWFkLT5yeEZpbHRlckNvbmYudmZUYWJsZS4NCg0KPisNCj4rCWlmIChtYXNr ICYgRVRIX1ZMQU5fU1RSSVBfTUFTSykNCj4rCQlkZXZSZWFkLT5taXNjLnVwdEZlYXR1cmVzIHw9 IFVQVDFfRl9SWFZMQU47DQo+KwllbHNlDQo+KwkJZGV2UmVhZC0+bWlzYy51cHRGZWF0dXJlcyAm PSB+VVBUMV9GX1JYVkxBTjsNCg0KVGhlcmUgaXMgYSBtaXNzaW5nIFJFRyB3cml0ZSBhZnRlciBt YWtpbmcgY2hhbmdlcyB0byB1cHRGZWF0dXJlcyBmcm9tDQp0aGUgLnZsYW5fb2ZmbG9hZF9zZXQg Y2FsbGJhY2sgcGF0aCAoaS5lLCB3aGVuIOKAnGNsZWFyIiBpcyAwKS4NCg0KVk1YTkVUM19XUklU RV9CQVIxX1JFRyhzYywgVk1YTkVUM19SRUdfQ01ELCBWTVhORVQzX0NNRF9VUERBVEVfRkVBVFVS RSk7DQoNCj4rDQo+KwlpZiAobWFzayAmIEVUSF9WTEFOX0ZJTFRFUl9NQVNLKSB7DQo+KwkJaWYg KGNsZWFyKSB7DQo+KwkJCW1lbXNldChody0+c2hhZG93X3ZmdGEsIDAsDQo+KwkJCQkJVk1YTkVU M19WRlRfU0laRSAqIHNpemVvZih1aW50MzJfdCkpOw0KDQpSZW1vdmUgb25lIHRhYiBoZXJlIGZv ciBiZXR0ZXIgaW5kZW50aW9uLg0KDQpJbnN0ZWFkIG9mIHVpbnQzMl90LCBjaGFuZ2UgaXQgdG8g c2l6ZW9mKCpody0+c2hhZG93X3ZmdGEpIHRvIGJlDQpjb25zaXN0ZW50IHdpdGggdGhlIG1lbXNl dCBvZiB2Zl90YWJsZS4NCg0KIA0KPisJCQkvKiBhbGxvdyB1bnRhZ2dlZCBwa3RzICovDQo+KwkJ CVZNWE5FVDNfU0VUX1ZGVEFCTEVfRU5UUlkoaHctPnNoYWRvd192ZnRhLCAwKTsNCj4rCQl9DQo+ KwkJbWVtY3B5KHZmX3RhYmxlLCBody0+c2hhZG93X3ZmdGEsDQo+KwkJCQlWTVhORVQzX1ZGVF9T SVpFICogc2l6ZW9mKCp2Zl90YWJsZSkpOw0KPisJfSBlbHNlIHsNCj4rCQkvKiBhbGxvdyBhbnkg cGt0cyAtLSBubyBmaWx0ZXJpbmcgKi8NCj4rCQlpZiAoY2xlYXIpDQo+KwkJCW1lbXNldChody0+ c2hhZG93X3ZmdGEsIDB4ZmYsDQo+KwkJCQlWTVhORVQzX1ZGVF9TSVpFICogc2l6ZW9mKHVpbnQz Ml90KSk7DQo+KwkJbWVtc2V0KHZmX3RhYmxlLCAweGZmLCBWTVhORVQzX1ZGVF9TSVpFICogc2l6 ZW9mKHVpbnQzMl90KSk7DQoNClNhbWUgaGVyZS4NCg0KPisJfQ0KPisNCj4rCXZteG5ldDNfZGV2 X3VwZGF0ZV9maWx0ZXJzKGh3KTsNCj4rfQ0KPisNCj4rc3RhdGljIHZvaWQNCj4rdm14bmV0M19k ZXZfdmxhbl9vZmZsb2FkX3NldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgaW50IG1hc2spDQo+ K3sNCj4rCXZteG5ldDNfZGV2X3ZsYW5fb2ZmbG9hZF9zZXRfY2xlYXIoZGV2LCBtYXNrLCAwKTsN Cj4rfQ0KPisNCj4gI2lmIFBST0NFU1NfU1lTX0VWRU5UUyA9PSAxDQo+IHN0YXRpYyB2b2lkDQo+ IHZteG5ldDNfcHJvY2Vzc19ldmVudHMoc3RydWN0IHZteG5ldDNfaHcgKmh3KQ0KPmRpZmYgLS1n aXQgYS9saWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmgNCj5iL2xpYi9saWJy dGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhkZXYuaA0KPmluZGV4IDA5NDFjZmMuLjJjMTgwYWQg MTAwNjQ0DQo+LS0tIGEvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX2V0aGRldi5oDQo+ KysrIGIvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX2V0aGRldi5oDQo+QEAgLTExNSw2 ICsxMTUsNyBAQCBzdHJ1Y3Qgdm14bmV0M19odyB7DQo+IAlWTVhORVQzX1JTU0NvbmYJCSAqcnNz X2NvbmY7DQo+IAl1aW50NjRfdAkJCSByc3NfY29uZlBBOw0KPiAJdm14bmV0M19tZl90YWJsZV90 ICAgKm1mX3RhYmxlOw0KPisJdWludDMyX3QJICAgICAgc2hhZG93X3ZmdGFbVk1YTkVUM19WRlRf U0laRV07DQo+IH07DQo+IA0KPiAjZGVmaW5lIFZNWE5FVDNfR0VUX0FERFJfTE8ocmVnKSAgICgo dWludDMyX3QpKHJlZykpDQo+QEAgLTE2Nyw3ICsxNjgsNiBAQCBpbnQgIHZteG5ldDNfZGV2X3R4 X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2Rldg0KPipkZXYsIHVpbnQxNl90IHR4X3F1ZXVl X2lkLA0KPiBpbnQgdm14bmV0M19kZXZfcnh0eF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 KTsNCj4gDQo+IGludCB2bXhuZXQzX3Jzc19jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYpOw0KPi1pbnQgdm14bmV0M192bGFuX2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl dik7DQo+IA0KPiB1aW50MTZfdCB2bXhuZXQzX3JlY3ZfcGt0cyh2b2lkICpyeF9xdWV1ZSwgc3Ry dWN0IHJ0ZV9tYnVmICoqcnhfcGt0cywNCj4gCQl1aW50MTZfdCBuYl9wa3RzKTsNCj5kaWZmIC0t Z2l0IGEvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPmIvbGliL2xpYnJ0 ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPmluZGV4IDg0MjVmMzIuLjk4NzFmMTYgMTAw NjQ0DQo+LS0tIGEvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPisrKyBi L2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19yeHR4LmMNCj5AQCAtMTA1MSwyOCArMTA1 MSwzIEBAIHZteG5ldDNfcnNzX2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4g DQo+IAlyZXR1cm4gVk1YTkVUM19TVUNDRVNTOw0KPiB9DQo+LQ0KPi0vKg0KPi0gKiBDb25maWd1 cmUgVkxBTiBGaWx0ZXIgZmVhdHVyZQ0KPi0gKi8NCj4taW50DQo+LXZteG5ldDNfdmxhbl9jb25m aWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+LXsNCj4tCXVpbnQ4X3QgaTsNCj4tCXN0 cnVjdCB2bXhuZXQzX2h3ICpodyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+LQl1aW50MzJf dCAqdmZfdGFibGUgPSBody0+c2hhcmVkLT5kZXZSZWFkLnJ4RmlsdGVyQ29uZi52ZlRhYmxlOw0K Pi0NCj4tCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4tDQo+LQkvKiBWZXJpZnkgaWYgdGhpcyB0 YWcgaXMgYWxyZWFkeSBzZXQgKi8NCj4tCWZvciAoaSA9IDA7IGkgPCBWTVhORVQzX1ZGVF9TSVpF OyBpKyspIHsNCj4tCQkvKiBGaWx0ZXIgYWxsIHZsYW4gdGFncyBvdXQgYnkgZGVmYXVsdCAqLw0K Pi0JCXZmX3RhYmxlW2ldID0gMDsNCj4tCQkvKiBUby1EbzogUHJvdmlkZSBhbm90aGVyIHJvdXRp bmUgaW4gZGV2X29wcyBmb3IgdXNlciBjb25maWcgKi8NCj4tDQo+LQkJUE1EX0lOSVRfTE9HKERF QlVHLCAiUmVnaXN0ZXJpbmcgVkxBTiBwb3J0aWQ6ICUiUFJJdTgiIHRhZyAldSIsDQo+LQkJCQkJ ZGV2LT5kYXRhLT5wb3J0X2lkLCB2Zl90YWJsZVtpXSk7DQo+LQl9DQo+LQ0KPi0JcmV0dXJuIFZN WE5FVDNfU1VDQ0VTUzsNCj4tfQ0KPi0tIA0KPjIuMS4zDQoNCg0K