From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yongwang@vmware.com>
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 <dev@dpdk.org>; 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 <yongwang@vmware.com>
To: Stephen Hemminger <stephen@networkplumber.org>
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: <D11F620A.38883%yongwang@vmware.com>
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" <dev@dpdk.org>, Stephen Hemminger <shemming@brocade.com>
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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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