From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <jia.he@hxt-semitech.com>
Received: from barracuda.hxt-semitech.com (unknown [223.203.96.7])
 by dpdk.org (Postfix) with ESMTP id D5AF51B296
 for <stable@dpdk.org>; Tue,  7 Aug 2018 07:56:36 +0200 (CEST)
X-ASG-Debug-ID: 1533621389-093b7e119e95350001-wRLDh4
Received: from HXTBJIDCEMVIW01.hxtcorp.net ([10.128.0.14]) by
 barracuda.hxt-semitech.com with ESMTP id Nz4lkifZWfL76t2G (version=TLSv1
 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO);
 Tue, 07 Aug 2018 13:56:29 +0800 (CST)
X-Barracuda-Envelope-From: jia.he@hxt-semitech.com
Received: from HXTBJIDCEMVIW01.hxtcorp.net (10.128.0.14) by
 HXTBJIDCEMVIW01.hxtcorp.net (10.128.0.14) with Microsoft SMTP Server (TLS) id
 15.0.847.32; Tue, 7 Aug 2018 13:56:36 +0800
Received: from HXTBJIDCEMVIW01.hxtcorp.net ([fe80::f451:a443:c0b5:87d1]) by
 HXTBJIDCEMVIW01.hxtcorp.net ([fe80::f451:a443:c0b5:87d1%12]) with mapi id
 15.00.0847.030; Tue, 7 Aug 2018 13:56:36 +0800
From: "He, Jia" <jia.he@hxt-semitech.com>
To: Gavin Hu <gavin.hu@arm.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "Honnappa.Nagarahalli@arm.com" <Honnappa.Nagarahalli@arm.com>,
 "steve.capper@arm.com" <steve.capper@arm.com>, "Ola.Liljedahl@arm.com"
 <Ola.Liljedahl@arm.com>, "jerin.jacob@caviumnetworks.com"
 <jerin.jacob@caviumnetworks.com>, "hemant.agrawal@nxp.com"
 <hemant.agrawal@nxp.com>, "stable@dpdk.org" <stable@dpdk.org>
Thread-Topic: [PATCH v2] ring: fix c11 memory ordering issue
X-ASG-Orig-Subj: RE: [PATCH v2] ring: fix c11 memory ordering issue
Thread-Index: AQHULf2LWzJS2uNd5EaBDHS8Bg4RCaSzudaQ
Date: Tue, 7 Aug 2018 05:56:36 +0000
Message-ID: <88b4421b63ec4802892f3fc40d457f03@HXTBJIDCEMVIW01.hxtcorp.net>
References: <20180806011805.7857-1-gavin.hu@arm.com>
 <20180807031943.5331-1-gavin.hu@arm.com>
In-Reply-To: <20180807031943.5331-1-gavin.hu@arm.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.65.20.169]
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Barracuda-Connect: UNKNOWN[10.128.0.14]
X-Barracuda-Start-Time: 1533621389
X-Barracuda-Encrypted: ECDHE-RSA-AES256-SHA
X-Barracuda-URL: https://192.168.50.101:443/cgi-mod/mark.cgi
X-Virus-Scanned: by bsmtpd at hxt-semitech.com
X-Barracuda-BRTS-Status: 1
X-Barracuda-Bayes: INNOCENT GLOBAL 0.5000 1.0000 0.7500
X-Barracuda-Spam-Score: 0.75
X-Barracuda-Spam-Status: No, SCORE=0.75 using global scores of TAG_LEVEL=1000.0
 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.55197
 Rule breakdown below
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
X-Mailman-Approved-At: Wed, 08 Aug 2018 15:36:50 +0200
Subject: Re: [dpdk-stable] [PATCH v2] ring: fix c11 memory ordering issue
X-BeenThere: stable@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches for DPDK stable branches <stable.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/stable>,
 <mailto:stable-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/stable/>
List-Post: <mailto:stable@dpdk.org>
List-Help: <mailto:stable-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/stable>,
 <mailto:stable-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Aug 2018 05:56:37 -0000

SGkgR2F2aW4NCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2F2aW4gSHUg
W21haWx0bzpnYXZpbi5odUBhcm0uY29tXQ0KPiBTZW50OiAyMDE4xOo41MI3yNUgMTE6MjANCj4g
VG86IGRldkBkcGRrLm9yZw0KPiBDYzogZ2F2aW4uaHVAYXJtLmNvbTsgSG9ubmFwcGEuTmFnYXJh
aGFsbGlAYXJtLmNvbTsNCj4gc3RldmUuY2FwcGVyQGFybS5jb207IE9sYS5MaWxqZWRhaGxAYXJt
LmNvbTsNCj4gamVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tOyBoZW1hbnQuYWdyYXdhbEBu
eHAuY29tOyBIZSwgSmlhDQo+IDxqaWEuaGVAaHh0LXNlbWl0ZWNoLmNvbT47IHN0YWJsZUBkcGRr
Lm9yZw0KPiBTdWJqZWN0OiBbUEFUQ0ggdjJdIHJpbmc6IGZpeCBjMTEgbWVtb3J5IG9yZGVyaW5n
IGlzc3VlDQo+IA0KPiBUaGlzIHBhdGNoIGluY2x1ZGVzIHR3byBidWcgZml4ZXMoIzEgYW5kIDIp
IGFuZCB0d28gb3B0aW1pc2F0aW9ucygjMyBhbmQgIzQpLg0KDQpNYXliZSB5b3UgbmVlZCB0byBz
cGxpdCB0aGlzIGludG8gc21hbGwgcGFydHMuDQoNCj4gMSkgSW4gdXBkYXRlX3RhaWwsIHJlYWQg
aHQtPnRhaWwgdXNpbmcgX19hdG9taWNfbG9hZC5BbHRob3VnaCB0aGUNCj4gICAgY29tcGlsZXIg
Y3VycmVudGx5IHNlZW1zIHRvIGJlIGRvaW5nIHRoZSByaWdodCB0aGluZyBldmVuIHdpdGhvdXQN
Cj4gICAgX2F0b21pY19sb2FkLCB3ZSBkb24ndCB3YW50IHRvIGdpdmUgdGhlIGNvbXBpbGVyIGZy
ZWVkb20gdG8gb3B0aW1pc2UNCj4gICAgd2hhdCBzaG91bGQgYmUgYW4gYXRvbWljIGxvYWQsIGl0
IHNob3VsZCBub3QgYmUgYXJiaXRhcmlseSBtb3ZlZA0KPiAgICBhcm91bmQuDQo+IDIpIFN5bmNo
cm9uaXplIHRoZSBsb2FkLWFjcXVpcmUgb2YgdGhlIHRhaWwgYW5kIHRoZSBzdG9yZS1yZWxlYXNl
DQo+ICAgIHdpdGhpbiB1cGRhdGVfdGFpbCwgdGhlIHN0b3JlIHJlbGVhc2UgZW5zdXJlcyBhbGwg
dGhlIHJpbmcgb3BlcmF0aW9ucywNCj4gICAgZW5ncXVldSBvciBkZXF1ZXVlIGFyZSBzZWVuIGJ5
IHRoZSBvYnNlcnZlcnMgYXMgc29vbiBhcyB0aGV5IHNlZQ0KPiAgICB0aGUgdXBkYXRlZCB0YWls
LiBUaGUgbG9hZC1hY3F1aXJlIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0bHkgY29tcHUtDQo+ICAg
IHRhdGUgdGhlIGZyZWVfZW50cmllcyBvciBhdmFpbF9lbnRyaWVzLCByZXNwZWN0aXZlbHkgZm9y
IGVucXVldWUgYW5kDQo+ICAgIGRlcXVldWUgb3BlcmF0aW9ucywgdGhlIGRhdGEgZGVwZW5kZW5j
eSBpcyBub3QgcmVsaWFibGUgZm9yIG9yZGVyaW5nDQo+ICAgIGFzIHRoZSBjb21waWxlciBtaWdo
dCBicmVhayBpdCBieSBzYXZpbmcgdG8gdGVtcG9yYXJ5IHZhbHVlcyB0byBib29zdA0KPiAgICBw
ZXJmb3JtYW5jZS4NCg0KQ291bGQgeW91IGRlc2NyaWJlIHRoZSByYWNlIGNvbmRpdGlvbiBpbiBk
ZXRhaWxzPw0KZS5nLg0KY3B1IDEJCQljcHUyDQpjb2RlMQ0KCQkJCWNvZGUyDQoNCkNoZWVycywN
CkppYQ0KPiAzKSBJbiBfX3J0ZV9yaW5nX21vdmVfcHJvZF9oZWFkLCBtb3ZlIHRoZSBfX2F0b21p
Y19sb2FkX24gdXAgYW5kIG91dCBvZg0KPiAgICB0aGUgZG8ge30gd2hpbGUgbG9vcCBhcyB1cG9u
IGZhaWx1cmUgdGhlIG9sZF9oZWFkIHdpbGwgYmUgdXBkYXRlZCwNCj4gICAgYW5vdGhlciBsb2Fk
IGlzIGNvc3R5IGFuZCBub3QgbmVjZXNzYXJ5Lg0KPiA0KSBXaGVuIGNhbGxpbmcgX19hdG9taWNf
Y29tcGFyZV9leGNoYW5nZV9uLCByZWxheGVkIG9yZGVyaW5nIGZvciBib3RoDQo+ICAgIHN1Y2Nl
c3MgYW5kIGZhaWx1cmUsIGFzIG11bHRpcGxlIHRocmVhZHMgY2FuIHdvcmsgaW5kZXBlbmRlbnRs
eSBvbg0KPiAgICB0aGUgc2FtZSBlbmQgb2YgdGhlIHJpbmcgKGVpdGhlciBlbnF1ZXVlIG9yIGRl
cXVldWUpIHdpdGhvdXQNCj4gICAgc3luY2hyb25pemF0aW9uLCBub3QgYXMgb3BlcmF0aW5nIG9u
IHRhaWwsIHdoaWNoIGhhcyB0byBiZSBmaW5pc2hlZA0KPiAgICBpbiBzZXF1ZW5jZS4NCj4gDQo+
IFRoZSBwYXRjaCB3YXMgYmVuY2htYXJrZWQgd2l0aCB0ZXN0L3JpbmdfcGVyZl9hdXRvdGVzdCBh
bmQgaXQgZGVjcmVhc2VzIHRoZQ0KPiBlbnF1ZXVlL2RlcXVldWUgbGF0ZW5jeSBieSA1JSB+IDI0
LjYlIHdpdGggdHdvIGxjb3JlcywgdGhlIHJlYWwgZ2FpbnMgYXJlDQo+IGRlcGVuZGVudCBvbiB0
aGUgbnVtYmVyIG9mIGxjb3JlcywgZGVwdGggb2YgdGhlIHJpbmcsIFNQU0Mgb3IgTVBNQy4NCj4g
Rm9yIDEgbGNvcmUsIGl0IGFsc28gaW1wcm92ZXMgYSBsaXR0bGUsIGFib3V0IDMgfiA0JS4NCj4g
SXQgaXMgYSBiaWcgaW1wcm92ZW1lbnQsIGluIGNhc2Ugb2YgTVBNQywgd2l0aCByaW5ncyBzaXpl
IG9mIDMyLCBpdCBzYXZlcyBsYXRlbmN5IHVwDQo+IHRvICg2LjkwLTUuMjApLzYuOTAgPSAyNC42
JS4NCj4gDQo+IFRlc3QgcmVzdWx0IGRhdGE6DQo+IA0KPiBTUC9TQyBidWxrIGVucS9kZXF1ZXVl
IChzaXplOiA4KTogMTMuMTkNCj4gTVAvTUMgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogOCk6IDI1
Ljc5DQo+IFNQL1NDIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogMy44NQ0KPiBNUC9NQyBi
dWxrIGVucS9kZXF1ZXVlIChzaXplOiAzMik6IDYuOTANCj4gDQo+IFNQL1NDIGJ1bGsgZW5xL2Rl
cXVldWUgKHNpemU6IDgpOiAxMi4wNQ0KPiBNUC9NQyBidWxrIGVucS9kZXF1ZXVlIChzaXplOiA4
KTogMjMuMDYNCj4gU1AvU0MgYnVsayBlbnEvZGVxdWV1ZSAoc2l6ZTogMzIpOiAzLjYyDQo+IE1Q
L01DIGJ1bGsgZW5xL2RlcXVldWUgKHNpemU6IDMyKTogNS4yMA0KPiANCj4gRml4ZXM6IDM5MzY4
ZWJmYzYgKCJyaW5nOiBpbnRyb2R1Y2UgQzExIG1lbW9yeSBtb2RlbCBiYXJyaWVyIG9wdGlvbiIp
DQo+IENjOiBzdGFibGVAZHBkay5vcmcNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEdhdmluIEh1IDxn
YXZpbi5odUBhcm0uY29tPg0KPiBSZXZpZXdlZC1ieTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgPEhv
bm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+DQo+IFJldmlld2VkLWJ5OiBTdGV2ZSBDYXBwZXIg
PHN0ZXZlLmNhcHBlckBhcm0uY29tPg0KPiBSZXZpZXdlZC1ieTogT2xhIExpbGplZGFobCA8T2xh
LkxpbGplZGFobEBhcm0uY29tPg0KPiAtLS0NCj4gIGxpYi9saWJydGVfcmluZy9ydGVfcmluZ19j
MTFfbWVtLmggfCAzOA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0K
PiAgMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KPiAN
Cj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19jMTFfbWVtLmgNCj4gYi9s
aWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfYzExX21lbS5oDQo+IGluZGV4IDk0ZGYzYzRhNi4uY2Zh
M2JlNGE3IDEwMDY0NA0KPiAtLS0gYS9saWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfYzExX21lbS5o
DQo+ICsrKyBiL2xpYi9saWJydGVfcmluZy9ydGVfcmluZ19jMTFfbWVtLmgNCj4gQEAgLTIxLDcg
KzIxLDggQEAgdXBkYXRlX3RhaWwoc3RydWN0IHJ0ZV9yaW5nX2hlYWR0YWlsICpodCwgdWludDMy
X3Qgb2xkX3ZhbCwNCj4gdWludDMyX3QgbmV3X3ZhbCwNCj4gIAkgKiB3ZSBuZWVkIHRvIHdhaXQg
Zm9yIHRoZW0gdG8gY29tcGxldGUNCj4gIAkgKi8NCj4gIAlpZiAoIXNpbmdsZSkNCj4gLQkJd2hp
bGUgKHVubGlrZWx5KGh0LT50YWlsICE9IG9sZF92YWwpKQ0KPiArCQl3aGlsZSAodW5saWtlbHko
b2xkX3ZhbCAhPSBfX2F0b21pY19sb2FkX24oJmh0LT50YWlsLA0KPiArCQkJCQkJX19BVE9NSUNf
UkVMQVhFRCkpKQ0KPiAgCQkJcnRlX3BhdXNlKCk7DQo+IA0KPiAgCV9fYXRvbWljX3N0b3JlX24o
Jmh0LT50YWlsLCBuZXdfdmFsLCBfX0FUT01JQ19SRUxFQVNFKTsgQEAgLTYwLDIwDQo+ICs2MSwy
NCBAQCBfX3J0ZV9yaW5nX21vdmVfcHJvZF9oZWFkKHN0cnVjdCBydGVfcmluZyAqciwgdW5zaWdu
ZWQgaW50IGlzX3NwLA0KPiAgCXVuc2lnbmVkIGludCBtYXggPSBuOw0KPiAgCWludCBzdWNjZXNz
Ow0KPiANCj4gKwkqb2xkX2hlYWQgPSBfX2F0b21pY19sb2FkX24oJnItPnByb2QuaGVhZCwgX19B
VE9NSUNfUkVMQVhFRCk7DQo+ICAJZG8gew0KPiAgCQkvKiBSZXNldCBuIHRvIHRoZSBpbml0aWFs
IGJ1cnN0IGNvdW50ICovDQo+ICAJCW4gPSBtYXg7DQo+IA0KPiAtCQkqb2xkX2hlYWQgPSBfX2F0
b21pY19sb2FkX24oJnItPnByb2QuaGVhZCwNCj4gLQkJCQkJX19BVE9NSUNfQUNRVUlSRSk7DQo+
IA0KPiAtCQkvKg0KPiAtCQkgKiAgVGhlIHN1YnRyYWN0aW9uIGlzIGRvbmUgYmV0d2VlbiB0d28g
dW5zaWduZWQgMzJiaXRzIHZhbHVlDQo+ICsJCS8qIGxvYWQtYWNxdWlyZSBzeW5jaHJvbml6ZSB3
aXRoIHN0b3JlLXJlbGVhc2Ugb2YgaHQtPnRhaWwNCj4gKwkJICogaW4gdXBkYXRlX3RhaWwuDQo+
ICsJCSAqLw0KPiArCQljb25zdCB1aW50MzJfdCBjb25zX3RhaWwgPSBfX2F0b21pY19sb2FkX24o
JnItPmNvbnMudGFpbCwNCj4gKwkJCQkJCQlfX0FUT01JQ19BQ1FVSVJFKTsNCj4gKw0KPiArCQkv
KiBUaGUgc3VidHJhY3Rpb24gaXMgZG9uZSBiZXR3ZWVuIHR3byB1bnNpZ25lZCAzMmJpdHMgdmFs
dWUNCj4gIAkJICogKHRoZSByZXN1bHQgaXMgYWx3YXlzIG1vZHVsbyAzMiBiaXRzIGV2ZW4gaWYg
d2UgaGF2ZQ0KPiAgCQkgKiAqb2xkX2hlYWQgPiBjb25zX3RhaWwpLiBTbyAnZnJlZV9lbnRyaWVz
JyBpcyBhbHdheXMgYmV0d2VlbiAwDQo+ICAJCSAqIGFuZCBjYXBhY2l0eSAod2hpY2ggaXMgPCBz
aXplKS4NCj4gIAkJICovDQo+IC0JCSpmcmVlX2VudHJpZXMgPSAoY2FwYWNpdHkgKyByLT5jb25z
LnRhaWwgLSAqb2xkX2hlYWQpOw0KPiArCQkqZnJlZV9lbnRyaWVzID0gKGNhcGFjaXR5ICsgY29u
c190YWlsIC0gKm9sZF9oZWFkKTsNCj4gDQo+ICAJCS8qIGNoZWNrIHRoYXQgd2UgaGF2ZSBlbm91
Z2ggcm9vbSBpbiByaW5nICovDQo+ICAJCWlmICh1bmxpa2VseShuID4gKmZyZWVfZW50cmllcykp
DQo+IEBAIC04Nyw5ICs5MiwxMCBAQCBfX3J0ZV9yaW5nX21vdmVfcHJvZF9oZWFkKHN0cnVjdCBy
dGVfcmluZyAqciwgdW5zaWduZWQNCj4gaW50IGlzX3NwLA0KPiAgCQlpZiAoaXNfc3ApDQo+ICAJ
CQlyLT5wcm9kLmhlYWQgPSAqbmV3X2hlYWQsIHN1Y2Nlc3MgPSAxOw0KPiAgCQllbHNlDQo+ICsJ
CQkvKiBvbiBmYWlsdXJlLCAqb2xkX2hlYWQgaXMgdXBkYXRlZCAqLw0KPiAgCQkJc3VjY2VzcyA9
IF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfbigmci0+cHJvZC5oZWFkLA0KPiAgCQkJCQlvbGRf
aGVhZCwgKm5ld19oZWFkLA0KPiAtCQkJCQkwLCBfX0FUT01JQ19BQ1FVSVJFLA0KPiArCQkJCQkv
KndlYWs9Ki8wLCBfX0FUT01JQ19SRUxBWEVELA0KPiAgCQkJCQlfX0FUT01JQ19SRUxBWEVEKTsN
Cj4gIAl9IHdoaWxlICh1bmxpa2VseShzdWNjZXNzID09IDApKTsNCj4gIAlyZXR1cm4gbjsNCj4g
QEAgLTEyOCwxOCArMTM0LDIzIEBAIF9fcnRlX3JpbmdfbW92ZV9jb25zX2hlYWQoc3RydWN0IHJ0
ZV9yaW5nICpyLCBpbnQNCj4gaXNfc2MsDQo+ICAJaW50IHN1Y2Nlc3M7DQo+IA0KPiAgCS8qIG1v
dmUgY29ucy5oZWFkIGF0b21pY2FsbHkgKi8NCj4gKwkqb2xkX2hlYWQgPSBfX2F0b21pY19sb2Fk
X24oJnItPmNvbnMuaGVhZCwgX19BVE9NSUNfUkVMQVhFRCk7DQo+ICAJZG8gew0KPiAgCQkvKiBS
ZXN0b3JlIG4gYXMgaXQgbWF5IGNoYW5nZSBldmVyeSBsb29wICovDQo+ICAJCW4gPSBtYXg7DQo+
IC0JCSpvbGRfaGVhZCA9IF9fYXRvbWljX2xvYWRfbigmci0+Y29ucy5oZWFkLA0KPiAtCQkJCQlf
X0FUT01JQ19BQ1FVSVJFKTsNCj4gKw0KPiArCQkvKiB0aGlzIGxvYWQtYWNxdWlyZSBzeW5jaHJv
bml6ZSB3aXRoIHN0b3JlLXJlbGVhc2Ugb2YgaHQtPnRhaWwNCj4gKwkJICogaW4gdXBkYXRlX3Rh
aWwuDQo+ICsJCSAqLw0KPiArCQljb25zdCB1aW50MzJfdCBwcm9kX3RhaWwgPSBfX2F0b21pY19s
b2FkX24oJnItPnByb2QudGFpbCwNCj4gKwkJCQkJCQlfX0FUT01JQ19BQ1FVSVJFKTsNCj4gDQo+
ICAJCS8qIFRoZSBzdWJ0cmFjdGlvbiBpcyBkb25lIGJldHdlZW4gdHdvIHVuc2lnbmVkIDMyYml0
cyB2YWx1ZQ0KPiAgCQkgKiAodGhlIHJlc3VsdCBpcyBhbHdheXMgbW9kdWxvIDMyIGJpdHMgZXZl
biBpZiB3ZSBoYXZlDQo+ICAJCSAqIGNvbnNfaGVhZCA+IHByb2RfdGFpbCkuIFNvICdlbnRyaWVz
JyBpcyBhbHdheXMgYmV0d2VlbiAwDQo+ICAJCSAqIGFuZCBzaXplKHJpbmcpLTEuDQo+ICAJCSAq
Lw0KPiAtCQkqZW50cmllcyA9IChyLT5wcm9kLnRhaWwgLSAqb2xkX2hlYWQpOw0KPiArCQkqZW50
cmllcyA9IChwcm9kX3RhaWwgLSAqb2xkX2hlYWQpOw0KPiANCj4gIAkJLyogU2V0IHRoZSBhY3R1
YWwgZW50cmllcyBmb3IgZGVxdWV1ZSAqLw0KPiAgCQlpZiAobiA+ICplbnRyaWVzKQ0KPiBAQCAt
MTUyLDEwICsxNjMsMTEgQEAgX19ydGVfcmluZ19tb3ZlX2NvbnNfaGVhZChzdHJ1Y3QgcnRlX3Jp
bmcgKnIsIGludA0KPiBpc19zYywNCj4gIAkJaWYgKGlzX3NjKQ0KPiAgCQkJci0+Y29ucy5oZWFk
ID0gKm5ld19oZWFkLCBzdWNjZXNzID0gMTsNCj4gIAkJZWxzZQ0KPiArCQkJLyogb24gZmFpbHVy
ZSwgKm9sZF9oZWFkIHdpbGwgYmUgdXBkYXRlZCAqLw0KPiAgCQkJc3VjY2VzcyA9IF9fYXRvbWlj
X2NvbXBhcmVfZXhjaGFuZ2Vfbigmci0+Y29ucy5oZWFkLA0KPiAtCQkJCQkJCW9sZF9oZWFkLCAq
bmV3X2hlYWQsDQo+IC0JCQkJCQkJMCwgX19BVE9NSUNfQUNRVUlSRSwNCj4gLQkJCQkJCQlfX0FU
T01JQ19SRUxBWEVEKTsNCj4gKwkJCQkJCW9sZF9oZWFkLCAqbmV3X2hlYWQsDQo+ICsJCQkJCQkv
KndlYWs9Ki8wLCBfX0FUT01JQ19SRUxBWEVELA0KPiArCQkJCQkJX19BVE9NSUNfUkVMQVhFRCk7
DQo+ICAJfSB3aGlsZSAodW5saWtlbHkoc3VjY2VzcyA9PSAwKSk7DQo+ICAJcmV0dXJuIG47DQo+
ICB9DQo+IC0tDQo+IDIuMTEuMA0KDQo=