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 5A2D15947 for ; Fri, 6 Mar 2015 22:55:20 +0100 (CET) Received: from sc9-mailhost3.vmware.com (sc9-mailhost3.vmware.com [10.113.161.73]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id BE1E02AB06; Fri, 6 Mar 2015 13:55:18 -0800 (PST) Received: from EX13-CAS-011.vmware.com (EX13-CAS-011.vmware.com [10.113.191.63]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id B85E540385; Fri, 6 Mar 2015 13:55:18 -0800 (PST) Received: from EX13-MBX-026.vmware.com (10.113.191.46) by EX13-MBX-011.vmware.com (10.113.191.31) with Microsoft SMTP Server (TLS) id 15.0.913.22; Fri, 6 Mar 2015 13:55:00 -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; Fri, 6 Mar 2015 13:55:00 -0800 From: Yong Wang To: Stephen Hemminger Thread-Topic: [PATCH v3 02/10] vmxnet3: enable VLAN filtering Thread-Index: AQHQV6H9JfgFyH8la0m4r6m0+J2+Rp0QARqA Date: Fri, 6 Mar 2015 21:54:59 +0000 Message-ID: References: <1425600635-20628-1-git-send-email-stephen@networkplumber.org> <1425600635-20628-3-git-send-email-stephen@networkplumber.org> In-Reply-To: <1425600635-20628-3-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: <9DBE0DEC9CFB5246AFFF7238079EEE5C@pa-exch1.vmware.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Cc: "dev@dpdk.org" , Stephen Hemminger Subject: Re: [dpdk-dev] [PATCH v3 02/10] vmxnet3: enable 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: Fri, 06 Mar 2015 21:55:21 -0000 T24gMy81LzE1LCA0OjEwIFBNLCAiU3RlcGhlbiBIZW1taW5nZXIiIDxzdGVwaGVuQG5ldHdvcmtw bHVtYmVyLm9yZz4gd3JvdGU6DQoNCj5Gcm9tOiBTdGVwaGVuIEhlbW1pbmdlciA8c2hlbW1pbmdA YnJvY2FkZS5jb20+DQo+DQo+U3VwcG9ydCB0aGUgVkxBTiBmaWx0ZXIgZnVuY3Rpb25hbGl0eSBv ZiB0aGUgVk1YTkVUMyBpbnRlcmZhY2UuDQo+DQo+U2lnbmVkLW9mZi1ieTogU3RlcGhlbiBIZW1t aW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPg0KDQpBY2tlZC1ieTogWW9uZyBXYW5n IDx5b25nd2FuZ0B2bXdhcmUuY29tPg0KDQo+LS0tDQo+IGxpYi9saWJydGVfcG1kX3ZteG5ldDMv dm14bmV0M19ldGhkZXYuYyB8IDEwNQ0KPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t DQo+IGxpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhkZXYuaCB8ICAgNCArLQ0KPiBs aWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfcnh0eC5jICAgfCAgMzEgKy0tLS0tLS0tLQ0K PiAzIGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkNCj4N Cj5kaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX2V0aGRldi5jDQo+ Yi9saWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmMNCj5pbmRleCA0Yzg4MmVl Li5mNGMyZjEyIDEwMDY0NA0KPi0tLSBhL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19l dGhkZXYuYw0KPisrKyBiL2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhkZXYuYw0K PkBAIC04Nyw2ICs4NywxMiBAQCBzdGF0aWMgdm9pZCB2bXhuZXQzX2Rldl9zdGF0c19nZXQoc3Ry dWN0IHJ0ZV9ldGhfZGV2DQo+KmRldiwNCj4gCQkJCXN0cnVjdCBydGVfZXRoX3N0YXRzICpzdGF0 cyk7DQo+IHN0YXRpYyB2b2lkIHZteG5ldDNfZGV2X2luZm9fZ2V0KHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2LA0KPiAJCQkJc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gKmRldl9pbmZvKTsNCj4rc3Rh dGljIGludCB2bXhuZXQzX2Rldl92bGFuX2ZpbHRlcl9zZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsDQo+KwkJCQkgICAgICAgdWludDE2X3QgdmlkLCBpbnQgb24pOw0KPitzdGF0aWMgdm9pZCB2 bXhuZXQzX2Rldl92bGFuX29mZmxvYWRfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBpbnQN Cj5tYXNrKTsNCj4rc3RhdGljIHZvaWQgdm14bmV0M19kZXZfdmxhbl9vZmZsb2FkX3NldF9jbGVh cihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4rCQkJCQkJaW50IG1hc2ssIGludCBjbGVhcik7 DQo+Kw0KPiAjaWYgUFJPQ0VTU19TWVNfRVZFTlRTID09IDENCj4gc3RhdGljIHZvaWQgdm14bmV0 M19wcm9jZXNzX2V2ZW50cyhzdHJ1Y3Qgdm14bmV0M19odyAqKTsNCj4gI2VuZGlmDQo+QEAgLTEx Myw2ICsxMTksOCBAQCBzdGF0aWMgc3RydWN0IGV0aF9kZXZfb3BzIHZteG5ldDNfZXRoX2Rldl9v cHMgPSB7DQo+IAkubGlua191cGRhdGUgICAgICAgICAgPSB2bXhuZXQzX2Rldl9saW5rX3VwZGF0 ZSwNCj4gCS5zdGF0c19nZXQgICAgICAgICAgICA9IHZteG5ldDNfZGV2X3N0YXRzX2dldCwNCj4g CS5kZXZfaW5mb3NfZ2V0ICAgICAgICA9IHZteG5ldDNfZGV2X2luZm9fZ2V0LA0KPisJLnZsYW5f ZmlsdGVyX3NldCAgICAgID0gdm14bmV0M19kZXZfdmxhbl9maWx0ZXJfc2V0LA0KPisJLnZsYW5f b2ZmbG9hZF9zZXQgICAgID0gdm14bmV0M19kZXZfdmxhbl9vZmZsb2FkX3NldCwNCj4gCS5yeF9x dWV1ZV9zZXR1cCAgICAgICA9IHZteG5ldDNfZGV2X3J4X3F1ZXVlX3NldHVwLA0KPiAJLnJ4X3F1 ZXVlX3JlbGVhc2UgICAgID0gdm14bmV0M19kZXZfcnhfcXVldWVfcmVsZWFzZSwNCj4gCS50eF9x dWV1ZV9zZXR1cCAgICAgICA9IHZteG5ldDNfZGV2X3R4X3F1ZXVlX3NldHVwLA0KPkBAIC0zOTgs NyArNDA2LDcgQEAgdm14bmV0M19zZXR1cF9kcml2ZXJfc2hhcmVkKHN0cnVjdCBydGVfZXRoX2Rl diAqZGV2KQ0KPiAJVm14bmV0M19EU0RldlJlYWQgKmRldlJlYWQgPSAmc2hhcmVkLT5kZXZSZWFk Ow0KPiAJdWludDMyX3QgKm1hY19wdHI7DQo+IAl1aW50MzJfdCB2YWwsIGk7DQo+LQlpbnQgcmV0 Ow0KPisJaW50IHJldCwgbWFzazsNCj4gDQo+IAlzaGFyZWQtPm1hZ2ljID0gVk1YTkVUM19SRVYx X01BR0lDOw0KPiAJZGV2UmVhZC0+bWlzYy5kcml2ZXJJbmZvLnZlcnNpb24gPSBWTVhORVQzX0RS SVZFUl9WRVJTSU9OX05VTTsNCj5AQCAtNDcwLDkgKzQ3OCw2IEBAIHZteG5ldDNfc2V0dXBfZHJp dmVyX3NoYXJlZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gCWlmIChkZXYtPmRhdGEtPmRl dl9jb25mLnJ4bW9kZS5od19pcF9jaGVja3N1bSkNCj4gCQlkZXZSZWFkLT5taXNjLnVwdEZlYXR1 cmVzIHw9IFZNWE5FVDNfRl9SWENTVU07DQo+IA0KPi0JaWYgKGRldi0+ZGF0YS0+ZGV2X2NvbmYu cnhtb2RlLmh3X3ZsYW5fc3RyaXApDQo+LQkJZGV2UmVhZC0+bWlzYy51cHRGZWF0dXJlcyB8PSBW TVhORVQzX0ZfUlhWTEFOOw0KPi0NCj4gCWlmIChwb3J0X2NvbmYucnhtb2RlLm1xX21vZGUgPT0g RVRIX01RX1JYX1JTUykgew0KPiAJCXJldCA9IHZteG5ldDNfcnNzX2NvbmZpZ3VyZShkZXYpOw0K PiAJCWlmIChyZXQgIT0gVk1YTkVUM19TVUNDRVNTKQ0KPkBAIC00ODQsMTEgKzQ4OSwxNCBAQCB2 bXhuZXQzX3NldHVwX2RyaXZlcl9zaGFyZWQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+IAkJ ZGV2UmVhZC0+cnNzQ29uZkRlc2MuY29uZlBBICA9IGh3LT5yc3NfY29uZlBBOw0KPiAJfQ0KPiAN Cj4tCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9kZS5od192bGFuX2ZpbHRlcikgew0KPi0J CXJldCA9IHZteG5ldDNfdmxhbl9jb25maWd1cmUoZGV2KTsNCj4tCQlpZiAocmV0ICE9IFZNWE5F VDNfU1VDQ0VTUykNCj4tCQkJcmV0dXJuIHJldDsNCj4tCX0NCj4rCW1hc2sgPSAwOw0KPisJaWYg KGRldi0+ZGF0YS0+ZGV2X2NvbmYucnhtb2RlLmh3X3ZsYW5fc3RyaXApDQo+KwkJbWFzayB8PSBF VEhfVkxBTl9TVFJJUF9NQVNLOw0KPisNCj4rCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLnJ4bW9k ZS5od192bGFuX2ZpbHRlcikNCj4rCQltYXNrIHw9IEVUSF9WTEFOX0ZJTFRFUl9NQVNLOw0KPisN Cj4rCXZteG5ldDNfZGV2X3ZsYW5fb2ZmbG9hZF9zZXRfY2xlYXIoZGV2LCBtYXNrLCAxKTsNCj4g DQo+IAlQTURfSU5JVF9MT0coREVCVUcsDQo+IAkJICAgICAiV3JpdGluZyBNQUMgQWRkcmVzcyA6 ICUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4IiwNCj5AQCAtNzIwLDggKzcyOCwxMyBAQCBz dGF0aWMgdm9pZA0KPiB2bXhuZXQzX2Rldl9wcm9taXNjdW91c19lbmFibGUoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYpDQo+IHsNCj4gCXN0cnVjdCB2bXhuZXQzX2h3ICpodyA9IGRldi0+ZGF0YS0+ ZGV2X3ByaXZhdGU7DQo+Kwl1aW50MzJfdCAqdmZfdGFibGUgPSBody0+c2hhcmVkLT5kZXZSZWFk LnJ4RmlsdGVyQ29uZi52ZlRhYmxlOw0KPiANCj4rCW1lbXNldCh2Zl90YWJsZSwgMCwgVk1YTkVU M19WRlRfVEFCTEVfU0laRSk7DQo+IAl2bXhuZXQzX2Rldl9zZXRfcnhtb2RlKGh3LCBWTVhORVQz X1JYTV9QUk9NSVNDLCAxKTsNCj4rDQo+KwlWTVhORVQzX1dSSVRFX0JBUjFfUkVHKGh3LCBWTVhO RVQzX1JFR19DTUQsDQo+KwkJCSAgICAgICBWTVhORVQzX0NNRF9VUERBVEVfVkxBTl9GSUxURVJT KTsNCj4gfQ0KPiANCj4gLyogUHJvbWlzY3VvdXMgc3VwcG9ydGVkIG9ubHkgaWYgVm14bmV0M19E cml2ZXJTaGFyZWQgaXMgaW5pdGlhbGl6ZWQgaW4NCj5hZGFwdGVyICovDQo+QEAgLTcyOSw4ICs3 NDIsMTIgQEAgc3RhdGljIHZvaWQNCj4gdm14bmV0M19kZXZfcHJvbWlzY3VvdXNfZGlzYWJsZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gew0KPiAJc3RydWN0IHZteG5ldDNfaHcgKmh3ID0g ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4rCXVpbnQzMl90ICp2Zl90YWJsZSA9IGh3LT5zaGFy ZWQtPmRldlJlYWQucnhGaWx0ZXJDb25mLnZmVGFibGU7DQo+IA0KPisJbWVtY3B5KHZmX3RhYmxl LCBody0+c2hhZG93X3ZmdGEsIFZNWE5FVDNfVkZUX1RBQkxFX1NJWkUpOw0KPiAJdm14bmV0M19k ZXZfc2V0X3J4bW9kZShodywgVk1YTkVUM19SWE1fUFJPTUlTQywgMCk7DQo+KwlWTVhORVQzX1dS SVRFX0JBUjFfUkVHKGh3LCBWTVhORVQzX1JFR19DTUQsDQo+KwkJCSAgICAgICBWTVhORVQzX0NN RF9VUERBVEVfVkxBTl9GSUxURVJTKTsNCj4gfQ0KPiANCj4gLyogQWxsbXVsdGljYXN0IHN1cHBv cnRlZCBvbmx5IGlmIFZteG5ldDNfRHJpdmVyU2hhcmVkIGlzIGluaXRpYWxpemVkIGluDQo+YWRh cHRlciAqLw0KPkBAIC03NTEsNiArNzY4LDc2IEBAIHZteG5ldDNfZGV2X2FsbG11bHRpY2FzdF9k aXNhYmxlKHN0cnVjdCBydGVfZXRoX2Rldg0KPipkZXYpDQo+IAl2bXhuZXQzX2Rldl9zZXRfcnht b2RlKGh3LCBWTVhORVQzX1JYTV9BTExfTVVMVEksIDApOw0KPiB9DQo+IA0KPisvKiBFbmFibGUv ZGlzYWJsZSBmaWx0ZXIgb24gdmxhbiAqLw0KPitzdGF0aWMgaW50DQo+K3ZteG5ldDNfZGV2X3Zs YW5fZmlsdGVyX3NldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgdmlkLCBpbnQN Cj5vbikNCj4rew0KPisJc3RydWN0IHZteG5ldDNfaHcgKmh3ID0gZGV2LT5kYXRhLT5kZXZfcHJp dmF0ZTsNCj4rCXN0cnVjdCBWbXhuZXQzX1J4RmlsdGVyQ29uZiAqcnhDb25mID0gJmh3LT5zaGFy ZWQtPmRldlJlYWQucnhGaWx0ZXJDb25mOw0KPisJdWludDMyX3QgKnZmX3RhYmxlID0gcnhDb25m LT52ZlRhYmxlOw0KPisNCj4rCS8qIHNhdmUgc3RhdGUgZm9yIHJlc3RvcmUgKi8NCj4rCWlmIChv bikNCj4rCQlWTVhORVQzX1NFVF9WRlRBQkxFX0VOVFJZKGh3LT5zaGFkb3dfdmZ0YSwgdmlkKTsN Cj4rCWVsc2UNCj4rCQlWTVhORVQzX0NMRUFSX1ZGVEFCTEVfRU5UUlkoaHctPnNoYWRvd192ZnRh LCB2aWQpOw0KPisNCj4rCS8qIGRvbid0IGNoYW5nZSBhY3RpdmUgZmlsdGVyIGlmIGluIHByb21p c2Npb3VzIG1vZGUgKi8NCj4rCWlmIChyeENvbmYtPnJ4TW9kZSAmIFZNWE5FVDNfUlhNX1BST01J U0MpDQo+KwkJcmV0dXJuIDA7DQo+Kw0KPisJLyogc2V0IGluIGhhcmR3YXJlICovDQo+KwlpZiAo b24pDQo+KwkJVk1YTkVUM19TRVRfVkZUQUJMRV9FTlRSWSh2Zl90YWJsZSwgdmlkKTsNCj4rCWVs c2UNCj4rCQlWTVhORVQzX0NMRUFSX1ZGVEFCTEVfRU5UUlkodmZfdGFibGUsIHZpZCk7DQo+Kw0K PisJVk1YTkVUM19XUklURV9CQVIxX1JFRyhodywgVk1YTkVUM19SRUdfQ01ELA0KPisJCQkgICAg ICAgVk1YTkVUM19DTURfVVBEQVRFX1ZMQU5fRklMVEVSUyk7DQo+KwlyZXR1cm4gMDsNCj4rfQ0K PisNCj4rc3RhdGljIHZvaWQNCj4rdm14bmV0M19kZXZfdmxhbl9vZmZsb2FkX3NldF9jbGVhcihz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4rCQkJCSAgIGludCBtYXNrLCBpbnQgY2xlYXIpDQo+ K3sNCj4rCXN0cnVjdCB2bXhuZXQzX2h3ICpodyA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ KwlWbXhuZXQzX0RTRGV2UmVhZCAqZGV2UmVhZCA9ICZody0+c2hhcmVkLT5kZXZSZWFkOw0KPisJ dWludDMyX3QgKnZmX3RhYmxlID0gZGV2UmVhZC0+cnhGaWx0ZXJDb25mLnZmVGFibGU7DQo+Kw0K PisJaWYgKG1hc2sgJiBFVEhfVkxBTl9TVFJJUF9NQVNLKQ0KPisJCWRldlJlYWQtPm1pc2MudXB0 RmVhdHVyZXMgfD0gVVBUMV9GX1JYVkxBTjsNCj4rCWVsc2UNCj4rCQlkZXZSZWFkLT5taXNjLnVw dEZlYXR1cmVzICY9IH5VUFQxX0ZfUlhWTEFOOw0KPisNCj4rCVZNWE5FVDNfV1JJVEVfQkFSMV9S RUcoaHcsIFZNWE5FVDNfUkVHX0NNRCwNCj4rCQkJICAgICAgIFZNWE5FVDNfQ01EX1VQREFURV9G RUFUVVJFKTsNCj4rDQo+KwlpZiAobWFzayAmIEVUSF9WTEFOX0ZJTFRFUl9NQVNLKSB7DQo+KwkJ aWYgKGNsZWFyKSB7DQo+KwkJCW1lbXNldChody0+c2hhZG93X3ZmdGEsIDAsDQo+KwkJCSAgICAg ICBWTVhORVQzX1ZGVF9UQUJMRV9TSVpFKTsNCj4rCQkJLyogYWxsb3cgdW50YWdnZWQgcGt0cyAq Lw0KPisJCQlWTVhORVQzX1NFVF9WRlRBQkxFX0VOVFJZKGh3LT5zaGFkb3dfdmZ0YSwgMCk7DQo+ KwkJfQ0KPisJCW1lbWNweSh2Zl90YWJsZSwgaHctPnNoYWRvd192ZnRhLCBWTVhORVQzX1ZGVF9U QUJMRV9TSVpFKTsNCj4rCX0gZWxzZSB7DQo+KwkJLyogYWxsb3cgYW55IHBrdHMgLS0gbm8gZmls dGVyaW5nICovDQo+KwkJaWYgKGNsZWFyKQ0KPisJCQltZW1zZXQoaHctPnNoYWRvd192ZnRhLCAw eGZmLCBWTVhORVQzX1ZGVF9UQUJMRV9TSVpFKTsNCj4rCQltZW1zZXQodmZfdGFibGUsIDB4ZmYs IFZNWE5FVDNfVkZUX1RBQkxFX1NJWkUpOw0KPisJfQ0KPisNCj4rCVZNWE5FVDNfV1JJVEVfQkFS MV9SRUcoaHcsIFZNWE5FVDNfUkVHX0NNRCwNCj4rCQkJICAgICAgIFZNWE5FVDNfQ01EX1VQREFU RV9WTEFOX0ZJTFRFUlMpOw0KPit9DQo+Kw0KPitzdGF0aWMgdm9pZA0KPit2bXhuZXQzX2Rldl92 bGFuX29mZmxvYWRfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBpbnQgbWFzaykNCj4rew0K PisJdm14bmV0M19kZXZfdmxhbl9vZmZsb2FkX3NldF9jbGVhcihkZXYsIG1hc2ssIDApOw0KPit9 DQo+Kw0KPiAjaWYgUFJPQ0VTU19TWVNfRVZFTlRTID09IDENCj4gc3RhdGljIHZvaWQNCj4gdm14 bmV0M19wcm9jZXNzX2V2ZW50cyhzdHJ1Y3Qgdm14bmV0M19odyAqaHcpDQo+ZGlmZiAtLWdpdCBh L2xpYi9saWJydGVfcG1kX3ZteG5ldDMvdm14bmV0M19ldGhkZXYuaA0KPmIvbGliL2xpYnJ0ZV9w bWRfdm14bmV0My92bXhuZXQzX2V0aGRldi5oDQo+aW5kZXggMDk5OTNjZi4uZTlkNjdhNyAxMDA2 NDQNCj4tLS0gYS9saWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmgNCj4rKysg Yi9saWIvbGlicnRlX3BtZF92bXhuZXQzL3ZteG5ldDNfZXRoZGV2LmgNCj5AQCAtMTIxLDggKzEy MSwxMSBAQCBzdHJ1Y3Qgdm14bmV0M19odyB7DQo+IAlWTVhORVQzX1JTU0NvbmYJCSAqcnNzX2Nv bmY7DQo+IAl1aW50NjRfdAkJCSByc3NfY29uZlBBOw0KPiAJdm14bmV0M19tZl90YWJsZV90ICAg Km1mX3RhYmxlOw0KPisJdWludDMyX3QJICAgICAgc2hhZG93X3ZmdGFbVk1YTkVUM19WRlRfU0la RV07DQo+IH07DQo+IA0KPisjZGVmaW5lIFZNWE5FVDNfVkZUX1RBQkxFX1NJWkUJICAgKFZNWE5F VDNfVkZUX1NJWkUgKiBzaXplb2YodWludDMyX3QpKQ0KPisNCj4gI2RlZmluZSBWTVhORVQzX0dF VF9BRERSX0xPKHJlZykgICAoKHVpbnQzMl90KShyZWcpKQ0KPiAjZGVmaW5lIFZNWE5FVDNfR0VU X0FERFJfSEkocmVnKSAgICgodWludDMyX3QpKCgodWludDY0X3QpKHJlZykpID4+IDMyKSkNCj4g DQo+QEAgLTE3Myw3ICsxNzYsNiBAQCBpbnQgIHZteG5ldDNfZGV2X3R4X3F1ZXVlX3NldHVwKHN0 cnVjdCBydGVfZXRoX2Rldg0KPipkZXYsIHVpbnQxNl90IHR4X3F1ZXVlX2lkLA0KPiBpbnQgdm14 bmV0M19kZXZfcnh0eF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsNCj4gDQo+IGludCB2 bXhuZXQzX3Jzc19jb25maWd1cmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPi1pbnQgdm14 bmV0M192bGFuX2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQo+IA0KPiB1aW50 MTZfdCB2bXhuZXQzX3JlY3ZfcGt0cyh2b2lkICpyeF9xdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoq cnhfcGt0cywNCj4gCQl1aW50MTZfdCBuYl9wa3RzKTsNCj5kaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPmIvbGliL2xpYnJ0ZV9wbWRfdm14bmV0My92 bXhuZXQzX3J4dHguYw0KPmluZGV4IDRkOGEwMTAuLjVmZTNkZTUgMTAwNjQ0DQo+LS0tIGEvbGli L2xpYnJ0ZV9wbWRfdm14bmV0My92bXhuZXQzX3J4dHguYw0KPisrKyBiL2xpYi9saWJydGVfcG1k X3ZteG5ldDMvdm14bmV0M19yeHR4LmMNCj5AQCAtNzM4LDkgKzczOCw5IEBAIHZteG5ldDNfZGV2 X3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiAJCXJldHVybiAtRUlO VkFMOw0KPiAJfQ0KPiANCj4tCWlmICgodHhfY29uZi0+dHhxX2ZsYWdzICYgRVRIX1RYUV9GTEFH U19OT09GRkxPQURTKSAhPQ0KPi0JICAgIEVUSF9UWFFfRkxBR1NfTk9PRkZMT0FEUykgew0KPi0J CVBNRF9JTklUX0xPRyhFUlIsICJUWCBub3Qgc3VwcG9ydCBvZmZsb2FkIGZ1bmN0aW9uIHlldCIp Ow0KPisJaWYgKCh0eF9jb25mLT50eHFfZmxhZ3MgJiBFVEhfVFhRX0ZMQUdTX05PWFNVTVMpICE9 DQo+KwkgICAgRVRIX1RYUV9GTEFHU19OT1hTVU1TKSB7DQo+KwkJUE1EX0lOSVRfTE9HKEVSUiwg IlRYIG5vIHN1cHBvcnQgZm9yIGNoZWNrc3VtIG9mZmxvYWQgeWV0Iik7DQo+IAkJcmV0dXJuIC1F SU5WQUw7DQo+IAl9DQo+IA0KPkBAIC0xMDQ1LDI4ICsxMDQ1LDMgQEAgdm14bmV0M19yc3NfY29u ZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KPiANCj4gCXJldHVybiBWTVhORVQzX1NV Q0NFU1M7DQo+IH0NCj4tDQo+LS8qDQo+LSAqIENvbmZpZ3VyZSBWTEFOIEZpbHRlciBmZWF0dXJl DQo+LSAqLw0KPi1pbnQNCj4tdm14bmV0M192bGFuX2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldikNCj4tew0KPi0JdWludDhfdCBpOw0KPi0Jc3RydWN0IHZteG5ldDNfaHcgKmh3ID0g ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4tCXVpbnQzMl90ICp2Zl90YWJsZSA9IGh3LT5zaGFy ZWQtPmRldlJlYWQucnhGaWx0ZXJDb25mLnZmVGFibGU7DQo+LQ0KPi0JUE1EX0lOSVRfRlVOQ19U UkFDRSgpOw0KPi0NCj4tCS8qIFZlcmlmeSBpZiB0aGlzIHRhZyBpcyBhbHJlYWR5IHNldCAqLw0K Pi0JZm9yIChpID0gMDsgaSA8IFZNWE5FVDNfVkZUX1NJWkU7IGkrKykgew0KPi0JCS8qIEZpbHRl ciBhbGwgdmxhbiB0YWdzIG91dCBieSBkZWZhdWx0ICovDQo+LQkJdmZfdGFibGVbaV0gPSAwOw0K Pi0JCS8qIFRvLURvOiBQcm92aWRlIGFub3RoZXIgcm91dGluZSBpbiBkZXZfb3BzIGZvciB1c2Vy IGNvbmZpZyAqLw0KPi0NCj4tCQlQTURfSU5JVF9MT0coREVCVUcsICJSZWdpc3RlcmluZyBWTEFO IHBvcnRpZDogJSJQUkl1OCIgdGFnICV1IiwNCj4tCQkJCQlkZXYtPmRhdGEtPnBvcnRfaWQsIHZm X3RhYmxlW2ldKTsNCj4tCX0NCj4tDQo+LQlyZXR1cm4gVk1YTkVUM19TVUNDRVNTOw0KPi19DQo+ LS0gDQo+Mi4xLjQNCj4NCg0K