From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <jianfeng.tan@intel.com>
Received: from mga18.intel.com (mga18.intel.com [134.134.136.126])
 by dpdk.org (Postfix) with ESMTP id 09B3B7CDE;
 Tue, 12 Dec 2017 06:25:11 +0100 (CET)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 11 Dec 2017 21:25:10 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.45,394,1508828400"; 
   d="scan'208";a="2060411"
Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206])
 by orsmga008.jf.intel.com with ESMTP; 11 Dec 2017 21:25:10 -0800
Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by
 FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS)
 id 14.3.319.2; Mon, 11 Dec 2017 21:25:10 -0800
Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by
 FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS)
 id 14.3.319.2; Mon, 11 Dec 2017 21:25:09 -0800
Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by
 SHSMSX104.ccr.corp.intel.com ([169.254.5.152]) with mapi id 14.03.0319.002;
 Tue, 12 Dec 2017 13:25:08 +0800
From: "Tan, Jianfeng" <jianfeng.tan@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, Victor Kaplansky
 <vkaplans@redhat.com>, "dev@dpdk.org" <dev@dpdk.org>, "yliu@fridaylinux.org"
 <yliu@fridaylinux.org>, "Bie, Tiwei" <tiwei.bie@intel.com>
CC: "stable@dpdk.org" <stable@dpdk.org>, "jfreiman@redhat.com"
 <jfreiman@redhat.com>
Thread-Topic: [PATCH] vhost_user: protect active rings from async ring changes
Thread-Index: AQHTbpnxJQ34Q0Trw06BgnNCg0sNi6M3lqyw//+K7wCAAYTXcP//9U4AgACJ7ZD//5DjAADPZSrA
Date: Tue, 12 Dec 2017 05:25:07 +0000
Message-ID: <ED26CBA2FAD1BF48A8719AEF02201E365138349F@SHSMSX103.ccr.corp.intel.com>
References: <20171206135329.652-1-vkaplans@redhat.com>
 <ED26CBA2FAD1BF48A8719AEF02201E36513789F8@SHSMSX103.ccr.corp.intel.com>
 <00a522dc-2287-b3ed-7ca4-e666f6217c91@redhat.com>
 <ED26CBA2FAD1BF48A8719AEF02201E3651379F80@SHSMSX103.ccr.corp.intel.com>
 <7352a09d-f90d-5b3a-51f9-bfc82faf744e@redhat.com>
 <ED26CBA2FAD1BF48A8719AEF02201E365137ACAC@SHSMSX103.ccr.corp.intel.com>
 <ea080aa6-8f0b-4788-bc71-3fdf5b2d636e@redhat.com>
In-Reply-To: <ea080aa6-8f0b-4788-bc71-3fdf5b2d636e@redhat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.239.127.40]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH] vhost_user: protect active rings from async
	ring changes
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <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: Tue, 12 Dec 2017 05:25:12 -0000

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWF4aW1lIENvcXVlbGlu
IFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgRGVj
ZW1iZXIgOCwgMjAxNyA2OjEyIFBNDQo+IFRvOiBUYW4sIEppYW5mZW5nOyBWaWN0b3IgS2FwbGFu
c2t5OyBkZXZAZHBkay5vcmc7IHlsaXVAZnJpZGF5bGludXgub3JnOyBCaWUsDQo+IFRpd2VpDQo+
IENjOiBzdGFibGVAZHBkay5vcmc7IGpmcmVpbWFuQHJlZGhhdC5jb20NCj4gU3ViamVjdDogUmU6
IFtQQVRDSF0gdmhvc3RfdXNlcjogcHJvdGVjdCBhY3RpdmUgcmluZ3MgZnJvbSBhc3luYyByaW5n
DQo+IGNoYW5nZXMNCj4gDQo+IEhpIEppYW5mZW5nLA0KPiANCj4gT24gMTIvMDgvMjAxNyAwOTo1
MSBBTSwgVGFuLCBKaWFuZmVuZyB3cm90ZToNCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwg
TWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IE1heGltZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5j
b3F1ZWxpbkByZWRoYXQuY29tXQ0KPiA+PiBTZW50OiBGcmlkYXksIERlY2VtYmVyIDgsIDIwMTcg
NDozNiBQTQ0KPiA+PiBUbzogVGFuLCBKaWFuZmVuZzsgVmljdG9yIEthcGxhbnNreTsgZGV2QGRw
ZGsub3JnOyB5bGl1QGZyaWRheWxpbnV4Lm9yZzsNCj4gQmllLA0KPiA+PiBUaXdlaQ0KPiA+PiBD
Yzogc3RhYmxlQGRwZGsub3JnOyBqZnJlaW1hbkByZWRoYXQuY29tDQo+ID4+IFN1YmplY3Q6IFJl
OiBbUEFUQ0hdIHZob3N0X3VzZXI6IHByb3RlY3QgYWN0aXZlIHJpbmdzIGZyb20gYXN5bmMgcmlu
Zw0KPiA+PiBjaGFuZ2VzDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IE9uIDEyLzA4LzIwMTcgMDM6
MTQgQU0sIFRhbiwgSmlhbmZlbmcgd3JvdGU6DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IE1heGltZSBDb3F1ZWxpbiBbbWFpbHRv
Om1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiA+Pj4+IFNlbnQ6IFRodXJzZGF5LCBEZWNl
bWJlciA3LCAyMDE3IDY6MDIgUE0NCj4gPj4+PiBUbzogVGFuLCBKaWFuZmVuZzsgVmljdG9yIEth
cGxhbnNreTsgZGV2QGRwZGsub3JnOw0KPiB5bGl1QGZyaWRheWxpbnV4Lm9yZzsNCj4gPj4gQmll
LA0KPiA+Pj4+IFRpd2VpDQo+ID4+Pj4gQ2M6IHN0YWJsZUBkcGRrLm9yZzsgamZyZWltYW5AcmVk
aGF0LmNvbQ0KPiA+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHZob3N0X3VzZXI6IHByb3RlY3Qg
YWN0aXZlIHJpbmdzIGZyb20gYXN5bmMgcmluZw0KPiA+Pj4+IGNoYW5nZXMNCj4gPj4+Pg0KPiA+
Pj4+DQo+ID4+Pj4NCj4gPj4+PiBPbiAxMi8wNy8yMDE3IDEwOjMzIEFNLCBUYW4sIEppYW5mZW5n
IHdyb3RlOg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl
LS0tLS0NCj4gPj4+Pj4+IEZyb206IFZpY3RvciBLYXBsYW5za3kgW21haWx0bzp2a2FwbGFuc0By
ZWRoYXQuY29tXQ0KPiA+Pj4+Pj4gU2VudDogV2VkbmVzZGF5LCBEZWNlbWJlciA2LCAyMDE3IDk6
NTYgUE0NCj4gPj4+Pj4+IFRvOiBkZXZAZHBkay5vcmc7IHlsaXVAZnJpZGF5bGludXgub3JnOyBC
aWUsIFRpd2VpOyBUYW4sIEppYW5mZW5nOw0KPiA+Pj4+Pj4gdmthcGxhbnNAcmVkaGF0LmNvbQ0K
PiA+Pj4+Pj4gQ2M6IHN0YWJsZUBkcGRrLm9yZzsgamZyZWltYW5AcmVkaGF0LmNvbTsgTWF4aW1l
IENvcXVlbGluDQo+ID4+Pj4+PiBTdWJqZWN0OiBbUEFUQ0hdIHZob3N0X3VzZXI6IHByb3RlY3Qg
YWN0aXZlIHJpbmdzIGZyb20gYXN5bmMgcmluZw0KPiA+PiBjaGFuZ2VzDQo+ID4+Pj4+Pg0KPiA+
Pj4+Pj4gV2hlbiBwZXJmb3JtaW5nIGxpdmUgbWlncmF0aW9uIG9yIG1lbW9yeSBob3QtcGx1Z2dp
bmcsDQo+ID4+Pj4+PiB0aGUgY2hhbmdlcyB0byB0aGUgZGV2aWNlIGFuZCB2cmluZ3MgbWFkZSBi
eSBtZXNzYWdlIGhhbmRsZXINCj4gPj4+Pj4+IGRvbmUgaW5kZXBlbmRlbnRseSBmcm9tIHZyaW5n
IHVzYWdlIGJ5IFBNRCB0aHJlYWRzLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoaXMgY2F1c2VzIGZv
ciBleGFtcGxlIHNlZ2ZhdWxzIGR1cmluZyBsaXZlLW1pZ3JhdGlvbg0KPiA+Pj4+Pg0KPiA+Pj4+
PiBzZWdmYXVscyAtPnNlZ2ZhdWx0cz8NCj4gPj4+Pj4NCj4gPj4+Pj4+IHdpdGggTVEgZW5hYmxl
LCBidXQgaW4gZ2VuZXJhbCB2aXJ0dWFsbHkgYW55IHJlcXVlc3QNCj4gPj4+Pj4+IHNlbnQgYnkg
cWVtdSBjaGFuZ2luZyB0aGUgc3RhdGUgb2YgZGV2aWNlIGNhbiBjYXVzZQ0KPiA+Pj4+Pj4gcHJv
YmxlbXMuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhlc2UgcGF0Y2hlcyBmaXhlcyBhbGwgYWJvdmUg
aXNzdWVzIGJ5IGFkZGluZyBhIHNwaW5sb2NrDQo+ID4+Pj4+PiB0byBldmVyeSB2cmluZyBhbmQg
cmVxdWlyaW5nIG1lc3NhZ2UgaGFuZGxlciB0byBzdGFydCBvcGVyYXRpb24NCj4gPj4+Pj4+IG9u
bHkgYWZ0ZXIgZW5zdXJpbmcgdGhhdCBhbGwgUE1EIHRocmVhZHMgcmVsYXRlZCB0byB0aGUgZGl2
ZWNlDQo+ID4+Pj4+DQo+ID4+Pj4+IEFub3RoZXIgdHlwbzogZGl2ZWNlLg0KPiA+Pj4+Pg0KPiA+
Pj4+Pj4gYXJlIG91dCBvZiBjcml0aWNhbCBzZWN0aW9uIGFjY2Vzc2luZyB0aGUgdnJpbmcgZGF0
YS4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBFYWNoIHZyaW5nIGhhcyBpdHMgb3duIGxvY2sgaW4gb3Jk
ZXIgdG8gbm90IGNyZWF0ZSBjb250ZW50aW9uDQo+ID4+Pj4+PiBiZXR3ZWVuIFBNRCB0aHJlYWRz
IG9mIGRpZmZlcmVudCB2cmluZ3MgYW5kIHRvIHByZXZlbnQNCj4gPj4+Pj4+IHBlcmZvcm1hbmNl
IGRlZ3JhZGF0aW9uIGJ5IHNjYWxpbmcgcXVldWUgcGFpciBudW1iZXIuDQo+ID4+Pj4+DQo+ID4+
Pj4+IEFsc28gd29uZGVyIGhvdyBtdWNoIG92ZXJoZWFkIGl0IGJyaW5ncy4NCj4gPj4+Pj4NCj4g
Pj4+Pj4gSW5zdGVhZCBvZiBsb2NraW5nIGVhY2ggdnJpbmcsIGNhbiB3ZSBqdXN0LCB3YWl0aW5n
IGEgd2hpbGUgKDEwdXMgZm9yDQo+ID4+IGV4YW1wbGUpDQo+ID4+Pj4gYWZ0ZXIgY2FsbCBkZXN0
cm95X2RldmljZSgpIGNhbGxiYWNrIHNvIHRoYXQgZXZlcnkgUE1EIHRocmVhZCBoYXMNCj4gZW5v
dWdoDQo+ID4+Pj4gdGltZSB0byBza2lwIG91dCB0aGUgY3JpdGVyaWFsIGFyZWE/DQo+ID4+Pj4N
Cj4gPj4+PiBObywgYmVjYXVzZSB3ZSBhcmUgbm90IGRlc3Ryb3lpbmcgdGhlIGRldmljZSB3aGVu
IGl0IGlzIG5lZWRlZC4NCj4gPj4+PiBBY3R1YWxseSwgb25jZSBkZXN0cm95X2RldmljZSgpIGlz
IGNhbGxlZCwgaXQgaXMgbGlrZWx5IHRoYXQgdGhlDQo+ID4+Pj4gYXBwbGljYXRpb24gaGFzIHRh
a2VuIGNhcmUgdGhlIHJpbmcgYXJlbid0IGJlaW5nIHByb2Nlc3NlZCBhbnltb3JlDQo+ID4+Pj4g
YmVmb3JlIHJldHVybmluZyBmcm9tIHRoZSBjYWxsYmFjayAoVGhpcyBpcyBhdCBsZWFzdCB0aGUg
Y2FzZSB3aXRoIFZob3N0DQo+ID4+Pj4gUE1EKS4NCj4gPj4+DQo+ID4+PiBPSywgSSBkaWQgbm90
IHB1dCBpdCByaWdodCB3YXkgYXMgdGhlcmUgYXJlIG11bHRpcGxlIGNhc2VzIGFib3ZlOiBtaWdy
YXRpb24NCj4gPj4gYW5kIG1lbW9yeSBob3QgcGx1Zy4gTGV0IG1lIHRyeSBhZ2FpbjoNCj4gPj4+
DQo+ID4+PiBXaGVuZXZlciBhIHZob3N0IHRocmVhZCBoYW5kbGVzIGEgbWVzc2FnZSBhZmZlY3Rp
bmcgUE1EIHRocmVhZHMsDQo+IChsaWtlDQo+ID4+IFNFVF9NRU1fVEFCTEUsIEdFVF9WUklOR19C
QVNFLCBldGMpIHdlIGNhbiByZW1vdmUgdGhlIGRldiBmbGFnIC0NCj4gPj4gVklSVElPX0RFVl9S
VU5OSU5HLCBhbmQgd2FpdCBmb3IgYSB3aGlsZSBzbyB0aGF0IFBNRCB0aHJlYWRzIHNraXAgb3V0
DQo+IG9mDQo+ID4+IHRob3NlIGNyaXRlcmlhbCBhcmVhLiBBZnRlciBtZXNzYWdlIGhhbmRsaW5n
LCByZXNldCB0aGUgZmxhZyAtDQo+ID4+IFZJUlRJT19ERVZfUlVOTklORy4NCj4gPj4NCj4gPj4g
SSB0aGluayB5b3UgbWVhbiBjbGVhcmluZyB2cSdzIGVuYWJsZWQgZmxhZywgYmVjYXVzZSBQTUQg
dGhyZWFkcyBuZXZlcg0KPiA+PiBjaGVjayB0aGUgVklSVElPX0RFVl9SVU5OSU5HIGZsYWcuDQo+
ID4NCj4gPiBBaCwgeWVzLg0KPiA+DQo+ID4+DQo+ID4+PiBJIHN1cHBvc2UgaXQgY2FuIHdvcmss
IGJhc2luZyBvbiBhbiBhc3N1bXB0aW9uIHRoYXQgUE1EIHRocmVhZHMgd29yaw0KPiBpbg0KPiA+
PiBwb2xsaW5nIG1vZGUgYW5kIGNhbiBza2lwIGNyaXRlcmlhbCBhcmVhIHF1aWNrbHkgYW5kIGlu
ZXZpdGFibHkuDQo+ID4+DQo+ID4+IFRoYXQgc291bmRzIHZlcnkgZnJhZ2lsZSwgYmVjYXVzZSBp
ZiB0aGUgQ1BVIGFyZW4ndCBwZXJmZWN0bHkgaXNvbGF0ZWQsDQo+ID4+IHlvdXIgUE1EIHRocmVh
ZCBjYW4gYmUgcHJlZW1wdGVkIGZvciBpbnRlcnJ1cHQgaGFuZGxpbmcgZm9yIGV4YW1wbGUuDQo+
ID4+DQo+ID4+IE9yIHdoYXQgaWYgZm9yIHNvbWUgcmVhc29uIHRoZSBQTUQgdGhyZWFkIENQVSBz
dGFsbHMgZm9yIGEgc2hvcnQgd2hpbGU/DQo+ID4+DQo+ID4+IFRoZSBsYXRlciBpcyB1bmxpa2Vs
eSwgYnV0IGlmIGl0IGhhcHBlbnMsIGl0IHdpbGwgYmUgaGFyZCB0byBkZWJ1Zy4NCj4gPj4NCj4g
Pj4gTGV0J3Mgc2VlIGZpcnN0IHRoZSBwZXJmb3JtYW5jZSBpbXBhY3Qgb2YgdXNpbmcgdGhlIHNw
aW5sb2NrLiBJdCBtaWdodA0KPiA+PiBub3QgYmUgdGhhdCBpbXBvcnRhbnQgYmVjYXVzZSA5OS45
OTk5JSBvZiB0aGUgdGltZXMsIGl0IHdpbGwgbm90IGV2ZW4NCj4gPj4gc3Bpbi4NCj4gPg0KPiA+
IEZhaXIgZW5vdWdoLg0KPiANCj4gSSBkaWQgc29tZSBiZW5jaG1hcmtzIG9uIG15IEJyb2Fkd2Vs
bCB0ZXN0IGJlbmNoIChzZWUgcGF0Y2ggYmVsb3cpLCBhbmQNCj4gaXQgc2VlbXMgdGhhdCBkZXBl
bmRpbmcgb24gdGhlIGJlbmNobWFyaywgcGVyZnMgYXJlIG9uIHBhciwgb3IgYmV0dGVyDQo+IHdp
dGggdGhlIHNwaW5sb2NrISBJIGd1ZXNzIGl0IGV4cGxhaW5zIGJlY2F1c2Ugd2l0aCB0aGUgc3Bp
bmxvY2sgdGhlcmUNCj4gaXMgYSBiZXR0ZXIgYmF0Y2hpbmcgYW5kIGxlc3MgY29uY3VycmVudCBh
Y2Nlc3NlcyBvbiB0aGUgcmluZ3MsIGJ1dCBJJ20NCj4gbm90IHN1cmUuDQo+IA0KPiBQbGVhc2Ug
ZmluZCBteSByZXN1bHRzIGJlbG93IChDUFUgRTUtMjY2NyB2NCBAIDMuMjBHSHopOg0KPiANCj4g
ICAgICAgIEJlbmNoICAgICAgICAgdjE3LjExICAgICB2MTcuMTEgKyBzcGlubG9jaw0KPiAgIC0t
LS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgICBQVlAg
QmlkaXIgcnVuMSAgIDE5LjI5TXBwcyAgIDE5LjI2TXBwcw0KPiAgICBQVlAgQmlkaXIgcnVuMiAg
IDE5LjI2TXBwcyAgIDE5LjI4TXBwcw0KPiAgICBUeE9ubHkgICAgICAgICAgIDE4LjQ3TXBwcyAg
IDE4LjgzTXBwcw0KPiAgICBSeE9ubHkgICAgICAgICAgIDEzLjgzTXBwcyAgIDEzLjgzTXBwcw0K
PiAgICBJTyBMb29wYmFjayAgICAgIDcuOTRNcHBzICAgIDcuOTdNcHBzDQo+IA0KDQpUaGlzIG51
bWJlciBzZWVtcyByZWFsbHkgZ29vZCBmb3IgdGhyb3VnaHB1dC4NCg0KRllJLCB3ZSBhcmUgcmVj
ZW50bHkgZG9pbmcgYSB0ZXN0IHRvIG1lYXN1cmUgaG93IGxvbmcgaXQgdGFrZXMgZm9yIGEgbm9v
cCAobWVhbnMgdGhlcmUgaXMgbm8gcGFja2V0cyBvbiB0aGUgdmlydHF1ZXVlKSB2aG9zdCBkZXF1
ZXVlIG9wZXJhdGlvbi4gSXQncyBsaWtlOg0KDQogICAgc3RhcnRfdHNjID0gcnRlX3JkdHNjKCk7
DQogICAgZm9yIChqID0gMDsgaiA8IDEwMDAwMDAwOyArK2opIA0KICAgICAgICAgICAgbmJfcngg
PSBydGVfZXRoX3J4X2J1cnN0KHBvcnRfaWQsIHF1ZXVlX2lkLCBwa3RzX2J1cnN0LCBuYl9wa3Rf
cGVyX2J1cnN0KTsNCiAgICBlbmRfdHNjID0gcnRlX3JkdHNjKCk7DQogICAgcHJpbnRmKCIlIlBS
SXU2NCJcbiIsIChlbmRfdHNjIC0gc3RhcnRfdHNjKSAvIDEwMDAwMDAwKTsNCg0KVHVybnMgb3V0
IHRoYXQgdGhpcyBwYXRjaCB3aWxsIG1ha2UgaXQgZnJvbSA1MCBjeWNsZXMgLT4gODAgY3ljbGVz
IGZvciBlYWNoIG5vb3AgcnRlX2V0aF9yeF9idXJzdCgpIG9wZXJhdGlvbiBvbiB2aG9zdCBwb3J0
LiBNeSBzZXJ2ZXIgaXMgSGFzd2VsbCAyLjNHSHouDQoNCk5vdGUgdGhhdCBJJ20gbm90IGFnYWlu
c3QgdGhpcyBwYXRjaC4gSnVzdCB0aGF0IGlmIHN1Y2ggb3BlcmF0aW9uIHRha2VzIHNvIG1hbnkg
Y3ljbGVzLCB3ZSBtaWdodCBjb25zaWRlciB0byBpbnRyb2R1Y2UgaW50ZXJydXB0IG1vZGUgZm9y
IHZob3N0IHBvcnRzLg0KDQpUaGFua3MsDQpKaWFuZmVuZw0KDQoNCj4gDQo+IA0KPiBQYXRjaDoN
Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQo+IA0KPiAgRnJvbSA3ZTE4Y2VmY2U2ODIyMzU1NThmZWQ2NmExZmI4N2FiOTM3ZWM5Mjk3
IE1vbiBTZXAgMTcgMDA6MDA6MDANCj4gMjAwMQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h
eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBEYXRlOiBGcmksIDggRGVjIDIwMTcgMDQ6MjE6
MjUgLTA1MDANCj4gU3ViamVjdDogW1BBVENIXSB2aG9zdDogc3BpbmxvY2sgYmVuY2htYXJraW5n
DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkBy
ZWRoYXQuY29tPg0KPiAtLS0NCj4gICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0LmMgICAgICB8ICAy
ICsrDQo+ICAgbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5oICAgICAgfCAgMiArKw0KPiAgIGxpYi9s
aWJydGVfdmhvc3QvdmlydGlvX25ldC5jIHwgMTIgKysrKysrKysrKysrDQo+ICAgMyBmaWxlcyBj
aGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92
aG9zdC92aG9zdC5jIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5jDQo+IGluZGV4IDRmOGI3M2Eu
LmQ5NzUyY2YgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYw0KPiArKysg
Yi9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmMNCj4gQEAgLTIxOSw2ICsyMTksOCBAQCBzdHJ1Y3Qg
dmlydGlvX25ldCAqDQo+ICAgCXZxLT5raWNrZmQgPSBWSVJUSU9fVU5JTklUSUFMSVpFRF9FVkVO
VEZEOw0KPiAgIAl2cS0+Y2FsbGZkID0gVklSVElPX1VOSU5JVElBTElaRURfRVZFTlRGRDsNCj4g
DQo+ICsJcnRlX3NwaW5sb2NrX2luaXQoJnZxLT5hY2Nlc3NfbG9jayk7DQo+ICsNCj4gICAJdmhv
c3RfdXNlcl9pb3RsYl9pbml0KGRldiwgdnJpbmdfaWR4KTsNCj4gICAJLyogQmFja2VuZHMgYXJl
IHNldCB0byAtMSBpbmRpY2F0aW5nIGFuIGluYWN0aXZlIGRldmljZS4gKi8NCj4gICAJdnEtPmJh
Y2tlbmQgPSAtMTsNCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuaCBiL2xp
Yi9saWJydGVfdmhvc3Qvdmhvc3QuaA0KPiBpbmRleCAxY2M4MWMxLi41NjI0MmE4IDEwMDY0NA0K
PiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gKysrIGIvbGliL2xpYnJ0ZV92aG9z
dC92aG9zdC5oDQo+IEBAIC0xMzEsNiArMTMxLDggQEAgc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSB7
DQo+ICAgCXN0cnVjdCBiYXRjaF9jb3B5X2VsZW0JKmJhdGNoX2NvcHlfZWxlbXM7DQo+ICAgCXVp
bnQxNl90CQliYXRjaF9jb3B5X25iX2VsZW1zOw0KPiANCj4gKwlydGVfc3BpbmxvY2tfdCBhY2Nl
c3NfbG9jazsNCj4gKw0KPiAgIAlydGVfcndsb2NrX3QJaW90bGJfbG9jazsNCj4gICAJcnRlX3J3
bG9ja190CWlvdGxiX3BlbmRpbmdfbG9jazsNCj4gICAJc3RydWN0IHJ0ZV9tZW1wb29sICppb3Rs
Yl9wb29sOw0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aXJ0aW9fbmV0LmMgYi9s
aWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYw0KPiBpbmRleCA2ZmVlMTZlLi41MGNjM2RlIDEw
MDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYw0KPiArKysgYi9saWIv
bGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYw0KPiBAQCAtMzI5LDYgKzMyOSw4IEBADQo+ICAgCWlm
ICh1bmxpa2VseSh2cS0+ZW5hYmxlZCA9PSAwKSkNCj4gICAJCXJldHVybiAwOw0KPiANCj4gKwly
dGVfc3BpbmxvY2tfbG9jaygmdnEtPmFjY2Vzc19sb2NrKTsNCj4gKw0KPiAgIAlpZiAoZGV2LT5m
ZWF0dXJlcyAmICgxVUxMIDw8IFZJUlRJT19GX0lPTU1VX1BMQVRGT1JNKSkNCj4gICAJCXZob3N0
X3VzZXJfaW90bGJfcmRfbG9jayh2cSk7DQo+IA0KPiBAQCAtNDE5LDYgKzQyMSw4IEBADQo+ICAg
CWlmIChkZXYtPmZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElPX0ZfSU9NTVVfUExBVEZPUk0pKQ0K
PiAgIAkJdmhvc3RfdXNlcl9pb3RsYl9yZF91bmxvY2sodnEpOw0KPiANCj4gKwlydGVfc3Bpbmxv
Y2tfdW5sb2NrKCZ2cS0+YWNjZXNzX2xvY2spOw0KPiArDQo+ICAgCXJldHVybiBjb3VudDsNCj4g
ICB9DQo+IA0KPiBAQCAtNjU0LDYgKzY1OCw4IEBADQo+ICAgCWlmICh1bmxpa2VseSh2cS0+ZW5h
YmxlZCA9PSAwKSkNCj4gICAJCXJldHVybiAwOw0KPiANCj4gKwlydGVfc3BpbmxvY2tfbG9jaygm
dnEtPmFjY2Vzc19sb2NrKTsNCj4gKw0KPiAgIAlpZiAoZGV2LT5mZWF0dXJlcyAmICgxVUxMIDw8
IFZJUlRJT19GX0lPTU1VX1BMQVRGT1JNKSkNCj4gICAJCXZob3N0X3VzZXJfaW90bGJfcmRfbG9j
ayh2cSk7DQo+IA0KPiBAQCAtNzE1LDYgKzcyMSw4IEBADQo+ICAgCWlmIChkZXYtPmZlYXR1cmVz
ICYgKDFVTEwgPDwgVklSVElPX0ZfSU9NTVVfUExBVEZPUk0pKQ0KPiAgIAkJdmhvc3RfdXNlcl9p
b3RsYl9yZF91bmxvY2sodnEpOw0KPiANCj4gKwlydGVfc3BpbmxvY2tfdW5sb2NrKCZ2cS0+YWNj
ZXNzX2xvY2spOw0KPiArDQo+ICAgCXJldHVybiBwa3RfaWR4Ow0KPiAgIH0NCj4gDQo+IEBAIC0x
MTgzLDYgKzExOTEsOCBAQA0KPiAgIAlpZiAodW5saWtlbHkodnEtPmVuYWJsZWQgPT0gMCkpDQo+
ICAgCQlyZXR1cm4gMDsNCj4gDQo+ICsJcnRlX3NwaW5sb2NrX2xvY2soJnZxLT5hY2Nlc3NfbG9j
ayk7DQo+ICsNCj4gICAJdnEtPmJhdGNoX2NvcHlfbmJfZWxlbXMgPSAwOw0KPiANCj4gICAJaWYg
KGRldi0+ZmVhdHVyZXMgJiAoMVVMTCA8PCBWSVJUSU9fRl9JT01NVV9QTEFURk9STSkpDQo+IEBA
IC0xMzU2LDYgKzEzNjYsOCBAQA0KPiAgIAlpZiAoZGV2LT5mZWF0dXJlcyAmICgxVUxMIDw8IFZJ
UlRJT19GX0lPTU1VX1BMQVRGT1JNKSkNCj4gICAJCXZob3N0X3VzZXJfaW90bGJfcmRfdW5sb2Nr
KHZxKTsNCj4gDQo+ICsJcnRlX3NwaW5sb2NrX3VubG9jaygmdnEtPmFjY2Vzc19sb2NrKTsNCj4g
Kw0KPiAgIAlpZiAodW5saWtlbHkocmFycF9tYnVmICE9IE5VTEwpKSB7DQo+ICAgCQkvKg0KPiAg
IAkJICogSW5qZWN0IGl0IHRvIHRoZSBoZWFkIG9mICJwa3RzIiBhcnJheSwgc28gdGhhdCBzd2l0
Y2gncyBtYWMNCj4gLS0NCj4gMS44LjMuMQ0K