From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 330D6A0096 for ; Wed, 5 Jun 2019 16:12:11 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 258A31BA96; Wed, 5 Jun 2019 16:12:10 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140059.outbound.protection.outlook.com [40.107.14.59]) by dpdk.org (Postfix) with ESMTP id 0866E1BA92 for ; Wed, 5 Jun 2019 16:12:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uovJwQTKhHdFvKnf1AjP0phCIT/2uU78zEp+totdF+Q=; b=LMUllRHaVDWcFqDUflskCkcvNJwOAWEwy8Y0K/ihTqOyASmKyc3LtJp3Lsk1H1UmJPD0TeTF2CzFovZe7LUGntKNYpeoRNUPDrjHDLGrhMdyk4aoPcPEwjPQM3SKto8gYVR4xXu/V65y5neYF4/9QRLZ8xQRJ3fFQtXF4GRuI9g= Received: from AM0PR08MB4418.eurprd08.prod.outlook.com (20.179.35.207) by AM0PR08MB3409.eurprd08.prod.outlook.com (20.177.43.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.12; Wed, 5 Jun 2019 14:12:06 +0000 Received: from AM0PR08MB4418.eurprd08.prod.outlook.com ([fe80::3d70:79e6:7ede:4ab2]) by AM0PR08MB4418.eurprd08.prod.outlook.com ([fe80::3d70:79e6:7ede:4ab2%7]) with mapi id 15.20.1965.011; Wed, 5 Jun 2019 14:12:06 +0000 From: "Ruifeng Wang (Arm Technology China)" To: "Medvedkin, Vladimir" , "bruce.richardson@intel.com" CC: "dev@dpdk.org" , Honnappa Nagarahalli , "Gavin Hu (Arm Technology China)" , nd , nd Thread-Topic: [PATCH v1 1/2] lib/lpm: memory orderings to avoid race conditions for v1604 Thread-Index: AQHVG2NBXYMjAwiPhUa292+3eDnt7aaM4iQAgAAyJaA= Date: Wed, 5 Jun 2019 14:12:06 +0000 Message-ID: References: <20190605055451.30473-1-ruifeng.wang@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ruifeng.Wang@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 44d6b8ba-a1c3-438f-e13d-08d6e9bfca5f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR08MB3409; x-ms-traffictypediagnostic: AM0PR08MB3409: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 00594E8DBA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39860400002)(136003)(376002)(199004)(189003)(13464003)(25786009)(7696005)(6506007)(5660300002)(53546011)(102836004)(55236004)(446003)(53936002)(8936002)(52536014)(81156014)(81166006)(486006)(316002)(86362001)(186003)(26005)(229853002)(305945005)(8676002)(76176011)(2501003)(6116002)(14444005)(5024004)(256004)(4326008)(54906003)(66066001)(6436002)(7736002)(2906002)(99286004)(476003)(6246003)(55016002)(71190400001)(71200400001)(74316002)(33656002)(110136005)(68736007)(66446008)(76116006)(66556008)(72206003)(64756008)(66476007)(478600001)(3846002)(11346002)(73956011)(14454004)(9686003)(66946007); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR08MB3409; H:AM0PR08MB4418.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: jF6sjyBf2zemHgpLQo7S0KDefWDs0rhUcrJNmqgAk0mGKykZAGKItEM1AKB1/1L7mjbBBkmKUMI0W8QaRDJMuxCrAZdSuw3tLZfgc/PQAHaZzfA2nEBbcMnyeUcejtZYKCUrLhyH3clqGmiUl7EJly+7E+0eNAPCGNyzKmasOKCKcmzMg4H6YA4H2NCOOnuJ3LhePylbNK2KA8SkXnWM3F+TLIUx7H2RbtDe1QPIS7zrTcl+psWmXn1GrG+YnzhNkPnbP2y6KWbfddiXAUSPYEFlH7n/TDCKNUveT2DEwPJmYEW75AcgSyb0HnyTQOzEt8j1a16bZc+Av+s9G8MuXGpKlYOOWz/fI4tCXBGz4bM59SBSH3DU5I0hWoeIhQDlMJzoyGJupDOvqPQD5ZI3FpwFF2LQdaYJV90uwg4N3fA= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44d6b8ba-a1c3-438f-e13d-08d6e9bfca5f X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2019 14:12:06.1701 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Ruifeng.Wang@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3409 Subject: Re: [dpdk-dev] [PATCH v1 1/2] lib/lpm: memory orderings to avoid race conditions for v1604 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVmxhZGltaXIsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWVk dmVka2luLCBWbGFkaW1pciA8dmxhZGltaXIubWVkdmVka2luQGludGVsLmNvbT4NCj4gU2VudDog V2VkbmVzZGF5LCBKdW5lIDUsIDIwMTkgMTg6NTANCj4gVG86IFJ1aWZlbmcgV2FuZyAoQXJtIFRl Y2hub2xvZ3kgQ2hpbmEpIDxSdWlmZW5nLldhbmdAYXJtLmNvbT47DQo+IGJydWNlLnJpY2hhcmRz b25AaW50ZWwuY29tDQo+IENjOiBkZXZAZHBkay5vcmc7IEhvbm5hcHBhIE5hZ2FyYWhhbGxpDQo+ IDxIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPjsgR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5 IENoaW5hKQ0KPiA8R2F2aW4uSHVAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPg0KPiBTdWJqZWN0 OiBSZTogW1BBVENIIHYxIDEvMl0gbGliL2xwbTogbWVtb3J5IG9yZGVyaW5ncyB0byBhdm9pZCBy YWNlDQo+IGNvbmRpdGlvbnMgZm9yIHYxNjA0DQo+IA0KPiBIaSBXYW5nLA0KPiANCj4gT24gMDUv MDYvMjAxOSAwNjo1NCwgUnVpZmVuZyBXYW5nIHdyb3RlOg0KPiA+IFdoZW4gYSB0Ymw4IGdyb3Vw IGlzIGdldHRpbmcgYXR0YWNoZWQgdG8gYSB0YmwyNCBlbnRyeSwgbG9va3VwIG1pZ2h0DQo+ID4g ZmFpbCBldmVuIHRob3VnaCB0aGUgZW50cnkgaXMgY29uZmlndXJlZCBpbiB0aGUgdGFibGUuDQo+ ID4NCj4gPiBGb3IgZXg6IGNvbnNpZGVyIGEgTFBNIHRhYmxlIGNvbmZpZ3VyZWQgd2l0aCAxMC4x MC4xMC4xLzI0Lg0KPiA+IFdoZW4gYSBuZXcgZW50cnkgMTAuMTAuMTAuMzIvMjggaXMgYmVpbmcg YWRkZWQsIGEgbmV3IHRibDggZ3JvdXAgaXMNCj4gPiBhbGxvY2F0ZWQgYW5kIHRibDI0IGVudHJ5 IGlzIGNoYW5nZWQgdG8gcG9pbnQgdG8gdGhlIHRibDggZ3JvdXAuIElmDQo+ID4gdGhlIHRibDI0 IGVudHJ5IGlzIHdyaXR0ZW4gd2l0aG91dCB0aGUgdGJsOCBncm91cCBlbnRyaWVzIHVwZGF0ZWQs IGENCj4gPiBsb29rdXAgb24gMTAuMTAuMTAuOSB3aWxsIHJldHVybiBmYWlsdXJlLg0KPiA+DQo+ ID4gQ29ycmVjdCBtZW1vcnkgb3JkZXJpbmdzIGFyZSByZXF1aXJlZCB0byBlbnN1cmUgdGhhdCB0 aGUgc3RvcmUgdG8NCj4gPiB0YmwyNCBkb2VzIG5vdCBoYXBwZW4gYmVmb3JlIHRoZSBzdG9yZXMg dG8gdGJsOCBncm91cCBlbnRyaWVzDQo+ID4gY29tcGxldGUuDQo+ID4NCj4gPiBUaGUgb3JkZXJp bmdzIGhhdmUgaW1wYWN0IG9uIExQTSBwZXJmb3JtYW5jZSB0ZXN0Lg0KPiA+IE9uIEFybSBBNzIg cGxhdGZvcm0sIGRlbGV0ZSBvcGVyYXRpb24gaGFzIDIuNyUgZGVncmFkYXRpb24sIHdoaWxlIGFk ZA0KPiA+IC8gbG9va3VwIGhhcyBubyBub3RhYmxlIHBlcmZvcm1hbmNlIGNoYW5nZS4NCj4gPiBP biB4ODYgRTUgcGxhdGZvcm0sIGFkZCBvcGVyYXRpb24gaGFzIDQuMyUgZGVncmFkYXRpb24sIGRl bGV0ZQ0KPiA+IG9wZXJhdGlvbiBoYXMgMi4yJSAtIDEwLjIlIGRlZ3JhZGF0aW9uLCBsb29rdXAg aGFzIG5vIHBlcmZvcm1hbmNlDQo+ID4gY2hhbmdlLg0KPiANCj4gSSB0aGluayBpdCBpcyBwb3Nz aWJsZSB0byBhdm9pZCBhZGQvZGVsIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uDQo+IA0KPiAxLiBF eHBsaWNpdGx5IG1hcmsgc3RydWN0IHJ0ZV9scG1fdGJsX2VudHJ5IDQtYnl0ZSBhbGlnbmVkDQo+ IA0KPiAyLiBDYXN0IHZhbHVlIHRvIHVpbnQzMl90ICh1aW50MTZfdCBmb3IgMi4wIHZlcnNpb24p IG9uIG1lbW9yeSB3cml0ZQ0KPiANCj4gMy4gVXNlIHJ0ZV93bWIoKSBhZnRlciBtZW1vcnkgd3Jp dGUNCj4gDQoNClRoYW5rcyBmb3IgeW91ciBzdWdnZXN0aW9ucy4NClBvaW50IDEgJiAyIG1ha2Ug c2Vuc2UuDQoNCkZvciBwb2ludCAzLCBhcmUgeW91IHN1Z2dlc3RpbmcgdXNpbmcgcnRlX3dtYigp IGluc3RlYWQgb2YgX19hdG9taWNfc3RvcmUoKT8gDQpydGVfd21iKCkgaXMgRFBESyBtYWRlIG1l bW9yeSBtb2RlbC4gTWF5YmUgd2UgY2FuIHVzZSBfX2F0b21pY19zdG9yZSgpIHdpdGggJ1JURV9V U0VfQzExX01FTV9NT0RFTD15JywgYW5kIHVzZSBydGVfd21iKCkgb3RoZXJ3aXNlPw0KDQo+ID4N Cj4gPiBTaWduZWQtb2ZmLWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8aG9ubmFwcGEubmFnYXJh aGFsbGlAYXJtLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBSdWlmZW5nIFdhbmcgPHJ1aWZlbmcu d2FuZ0Bhcm0uY29tPg0KPiA+IC0tLQ0KPiA+ICAgbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5jIHwg MzIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0NCj4gPiAgIGxpYi9saWJydGVfbHBt L3J0ZV9scG0uaCB8ICA0ICsrKysNCj4gPiAgIDIgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9u cygrKSwgNyBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2xw bS9ydGVfbHBtLmMgYi9saWIvbGlicnRlX2xwbS9ydGVfbHBtLmMgaW5kZXgNCj4gPiA2YjdiMjhh MmUuLjZlYzQ1MGEwOCAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX2xwbS9ydGVfbHBtLmMN Cj4gPiArKysgYi9saWIvbGlicnRlX2xwbS9ydGVfbHBtLmMNCj4gPiBAQCAtODA2LDcgKzgwNiw4 IEBAIGFkZF9kZXB0aF9zbWFsbF92MTYwNChzdHJ1Y3QgcnRlX2xwbSAqbHBtLA0KPiB1aW50MzJf dCBpcCwgdWludDhfdCBkZXB0aCwNCj4gPiAgIAkJCS8qIFNldHRpbmcgdGJsMjQgZW50cnkgaW4g b25lIGdvIHRvIGF2b2lkIHJhY2UNCj4gPiAgIAkJCSAqIGNvbmRpdGlvbnMNCj4gPiAgIAkJCSAq Lw0KPiA+IC0JCQlscG0tPnRibDI0W2ldID0gbmV3X3RibDI0X2VudHJ5Ow0KPiA+ICsJCQlfX2F0 b21pY19zdG9yZSgmbHBtLT50YmwyNFtpXSwgJm5ld190YmwyNF9lbnRyeSwNCj4gPiArCQkJCQlf X0FUT01JQ19SRUxFQVNFKTsNCj4gPg0KPiA+ICAgCQkJY29udGludWU7DQo+ID4gICAJCX0NCj4g PiBAQCAtMTAxNyw3ICsxMDE4LDExIEBAIGFkZF9kZXB0aF9iaWdfdjE2MDQoc3RydWN0IHJ0ZV9s cG0gKmxwbSwNCj4gdWludDMyX3QgaXBfbWFza2VkLCB1aW50OF90IGRlcHRoLA0KPiA+ICAgCQkJ LmRlcHRoID0gMCwNCj4gPiAgIAkJfTsNCj4gPg0KPiA+IC0JCWxwbS0+dGJsMjRbdGJsMjRfaW5k ZXhdID0gbmV3X3RibDI0X2VudHJ5Ow0KPiA+ICsJCS8qIFRoZSB0YmwyNCBlbnRyeSBtdXN0IGJl IHdyaXR0ZW4gb25seSBhZnRlciB0aGUNCj4gPiArCQkgKiB0Ymw4IGVudHJpZXMgYXJlIHdyaXR0 ZW4uDQo+ID4gKwkJICovDQo+ID4gKwkJX19hdG9taWNfc3RvcmUoJmxwbS0+dGJsMjRbdGJsMjRf aW5kZXhdLA0KPiAmbmV3X3RibDI0X2VudHJ5LA0KPiA+ICsJCQkJX19BVE9NSUNfUkVMRUFTRSk7 DQo+ID4NCj4gPiAgIAl9IC8qIElmIHZhbGlkIGVudHJ5IGJ1dCBub3QgZXh0ZW5kZWQgY2FsY3Vs YXRlIHRoZSBpbmRleCBpbnRvIFRhYmxlOC4gKi8NCj4gPiAgIAllbHNlIGlmIChscG0tPnRibDI0 W3RibDI0X2luZGV4XS52YWxpZF9ncm91cCA9PSAwKSB7IEBAIC0xMDYzLDcNCj4gPiArMTA2OCwx MSBAQCBhZGRfZGVwdGhfYmlnX3YxNjA0KHN0cnVjdCBydGVfbHBtICpscG0sIHVpbnQzMl90DQo+ IGlwX21hc2tlZCwgdWludDhfdCBkZXB0aCwNCj4gPiAgIAkJCQkuZGVwdGggPSAwLA0KPiA+ICAg CQl9Ow0KPiA+DQo+ID4gLQkJbHBtLT50YmwyNFt0YmwyNF9pbmRleF0gPSBuZXdfdGJsMjRfZW50 cnk7DQo+ID4gKwkJLyogVGhlIHRibDI0IGVudHJ5IG11c3QgYmUgd3JpdHRlbiBvbmx5IGFmdGVy IHRoZQ0KPiA+ICsJCSAqIHRibDggZW50cmllcyBhcmUgd3JpdHRlbi4NCj4gPiArCQkgKi8NCj4g PiArCQlfX2F0b21pY19zdG9yZSgmbHBtLT50YmwyNFt0YmwyNF9pbmRleF0sDQo+ICZuZXdfdGJs MjRfZW50cnksDQo+ID4gKwkJCQlfX0FUT01JQ19SRUxFQVNFKTsNCj4gPg0KPiA+ICAgCX0gZWxz ZSB7IC8qDQo+ID4gICAJCSogSWYgaXQgaXMgdmFsaWQsIGV4dGVuZGVkIGVudHJ5IGNhbGN1bGF0 ZSB0aGUgaW5kZXggaW50byB0Ymw4Lg0KPiA+IEBAIC0xMzkxLDYgKzE0MDAsNyBAQCBkZWxldGVf ZGVwdGhfc21hbGxfdjE2MDQoc3RydWN0IHJ0ZV9scG0gKmxwbSwNCj4gdWludDMyX3QgaXBfbWFz a2VkLA0KPiA+ICAgCS8qIENhbGN1bGF0ZSB0aGUgcmFuZ2UgYW5kIGluZGV4IGludG8gVGFibGUy NC4gKi8NCj4gPiAgIAl0YmwyNF9yYW5nZSA9IGRlcHRoX3RvX3JhbmdlKGRlcHRoKTsNCj4gPiAg IAl0YmwyNF9pbmRleCA9IChpcF9tYXNrZWQgPj4gOCk7DQo+ID4gKwlzdHJ1Y3QgcnRlX2xwbV90 YmxfZW50cnkgemVyb190YmwyNF9lbnRyeSA9IHswfTsNCj4gPg0KPiA+ICAgCS8qDQo+ID4gICAJ ICogRmlyc3RseSBjaGVjayB0aGUgc3ViX3J1bGVfaW5kZXguIEEgLTEgaW5kaWNhdGVzIG5vIHJl cGxhY2VtZW50DQo+ID4gcnVsZSBAQCAtMTQwNSw3ICsxNDE1LDggQEAgZGVsZXRlX2RlcHRoX3Nt YWxsX3YxNjA0KHN0cnVjdCBydGVfbHBtDQo+ID4gKmxwbSwgdWludDMyX3QgaXBfbWFza2VkLA0K PiA+DQo+ID4gICAJCQlpZiAobHBtLT50YmwyNFtpXS52YWxpZF9ncm91cCA9PSAwICYmDQo+ID4g ICAJCQkJCWxwbS0+dGJsMjRbaV0uZGVwdGggPD0gZGVwdGgpIHsNCj4gPiAtCQkJCWxwbS0+dGJs MjRbaV0udmFsaWQgPSBJTlZBTElEOw0KPiA+ICsJCQkJX19hdG9taWNfc3RvcmUoJmxwbS0+dGJs MjRbaV0sDQo+ID4gKwkJCQkJJnplcm9fdGJsMjRfZW50cnksDQo+IF9fQVRPTUlDX1JFTEVBU0Up Ow0KPiA+ICAgCQkJfSBlbHNlIGlmIChscG0tPnRibDI0W2ldLnZhbGlkX2dyb3VwID09IDEpIHsN Cj4gPiAgIAkJCQkvKg0KPiA+ICAgCQkJCSAqIElmIFRCTDI0IGVudHJ5IGlzIGV4dGVuZGVkLCB0 aGVuIHRoZXJlIGhhcw0KPiBAQCAtMTQ1MCw3ICsxNDYxLDgNCj4gPiBAQCBkZWxldGVfZGVwdGhf c21hbGxfdjE2MDQoc3RydWN0IHJ0ZV9scG0gKmxwbSwgdWludDMyX3QgaXBfbWFza2VkLA0KPiA+ DQo+ID4gICAJCQlpZiAobHBtLT50YmwyNFtpXS52YWxpZF9ncm91cCA9PSAwICYmDQo+ID4gICAJ CQkJCWxwbS0+dGJsMjRbaV0uZGVwdGggPD0gZGVwdGgpIHsNCj4gPiAtCQkJCWxwbS0+dGJsMjRb aV0gPSBuZXdfdGJsMjRfZW50cnk7DQo+ID4gKwkJCQlfX2F0b21pY19zdG9yZSgmbHBtLT50Ymwy NFtpXSwNCj4gJm5ld190YmwyNF9lbnRyeSwNCj4gPiArCQkJCQkJX19BVE9NSUNfUkVMRUFTRSk7 DQo+ID4gICAJCQl9IGVsc2UgIGlmIChscG0tPnRibDI0W2ldLnZhbGlkX2dyb3VwID09IDEpIHsN Cj4gPiAgIAkJCQkvKg0KPiA+ICAgCQkJCSAqIElmIFRCTDI0IGVudHJ5IGlzIGV4dGVuZGVkLCB0 aGVuIHRoZXJlIGhhcw0KPiBAQCAtMTcxMyw4DQo+ID4gKzE3MjUsMTEgQEAgZGVsZXRlX2RlcHRo X2JpZ192MTYwNChzdHJ1Y3QgcnRlX2xwbSAqbHBtLCB1aW50MzJfdA0KPiBpcF9tYXNrZWQsDQo+ ID4gICAJdGJsOF9yZWN5Y2xlX2luZGV4ID0gdGJsOF9yZWN5Y2xlX2NoZWNrX3YxNjA0KGxwbS0+ dGJsOCwNCj4gPiB0Ymw4X2dyb3VwX3N0YXJ0KTsNCj4gPg0KPiA+ICAgCWlmICh0Ymw4X3JlY3lj bGVfaW5kZXggPT0gLUVJTlZBTCkgew0KPiA+IC0JCS8qIFNldCB0YmwyNCBiZWZvcmUgZnJlZWlu ZyB0Ymw4IHRvIGF2b2lkIHJhY2UgY29uZGl0aW9uLiAqLw0KPiA+ICsJCS8qIFNldCB0YmwyNCBi ZWZvcmUgZnJlZWluZyB0Ymw4IHRvIGF2b2lkIHJhY2UgY29uZGl0aW9uLg0KPiA+ICsJCSAqIFBy ZXZlbnQgdGhlIGZyZWUgb2YgdGhlIHRibDggZ3JvdXAgZnJvbSBob2lzdGluZy4NCj4gPiArCQkg Ki8NCj4gPiAgIAkJbHBtLT50YmwyNFt0YmwyNF9pbmRleF0udmFsaWQgPSAwOw0KPiA+ICsJCV9f YXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01JQ19SRUxFQVNFKTsNCj4gPiAgIAkJdGJsOF9mcmVl X3YxNjA0KGxwbS0+dGJsOCwgdGJsOF9ncm91cF9zdGFydCk7DQo+ID4gICAJfSBlbHNlIGlmICh0 Ymw4X3JlY3ljbGVfaW5kZXggPiAtMSkgew0KPiA+ICAgCQkvKiBVcGRhdGUgdGJsMjQgZW50cnku ICovDQo+ID4gQEAgLTE3MjUsOCArMTc0MCwxMSBAQCBkZWxldGVfZGVwdGhfYmlnX3YxNjA0KHN0 cnVjdCBydGVfbHBtICpscG0sDQo+IHVpbnQzMl90IGlwX21hc2tlZCwNCj4gPiAgIAkJCS5kZXB0 aCA9IGxwbS0+dGJsOFt0Ymw4X3JlY3ljbGVfaW5kZXhdLmRlcHRoLA0KPiA+ICAgCQl9Ow0KPiA+ DQo+ID4gLQkJLyogU2V0IHRibDI0IGJlZm9yZSBmcmVlaW5nIHRibDggdG8gYXZvaWQgcmFjZSBj b25kaXRpb24uICovDQo+ID4gKwkJLyogU2V0IHRibDI0IGJlZm9yZSBmcmVlaW5nIHRibDggdG8g YXZvaWQgcmFjZSBjb25kaXRpb24uDQo+ID4gKwkJICogUHJldmVudCB0aGUgZnJlZSBvZiB0aGUg dGJsOCBncm91cCBmcm9tIGhvaXN0aW5nLg0KPiA+ICsJCSAqLw0KPiA+ICAgCQlscG0tPnRibDI0 W3RibDI0X2luZGV4XSA9IG5ld190YmwyNF9lbnRyeTsNCj4gPiArCQlfX2F0b21pY190aHJlYWRf ZmVuY2UoX19BVE9NSUNfUkVMRUFTRSk7DQo+ID4gICAJCXRibDhfZnJlZV92MTYwNChscG0tPnRi bDgsIHRibDhfZ3JvdXBfc3RhcnQpOw0KPiA+ICAgCX0NCj4gPiAgICN1bmRlZiBncm91cF9pZHgN Cj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oIGIvbGliL2xpYnJ0ZV9s cG0vcnRlX2xwbS5oIGluZGV4DQo+ID4gYjg4NmY1NGI0Li42ZjU3MDRjNWMgMTAwNjQ0DQo+ID4g LS0tIGEvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV9scG0v cnRlX2xwbS5oDQo+ID4gQEAgLTM1NCw2ICszNTQsMTAgQEAgcnRlX2xwbV9sb29rdXAoc3RydWN0 IHJ0ZV9scG0gKmxwbSwgdWludDMyX3QgaXAsDQo+IHVpbnQzMl90ICpuZXh0X2hvcCkNCj4gPiAg IAlwdGJsID0gKGNvbnN0IHVpbnQzMl90ICopKCZscG0tPnRibDI0W3RibDI0X2luZGV4XSk7DQo+ ID4gICAJdGJsX2VudHJ5ID0gKnB0Ymw7DQo+ID4NCj4gPiArCS8qIE1lbW9yeSBvcmRlcmluZyBp cyBub3QgcmVxdWlyZWQgaW4gbG9va3VwLiBCZWNhdXNlIGRhdGFmbG93DQo+ID4gKwkgKiBkZXBl bmRlbmN5IGV4aXN0cywgY29tcGlsZXIgb3IgSFcgd29uJ3QgYmUgYWJsZSB0byByZS1vcmRlcg0K PiA+ICsJICogdGhlIG9wZXJhdGlvbnMuDQo+ID4gKwkgKi8NCj4gPiAgIAkvKiBDb3B5IHRibDgg ZW50cnkgKG9ubHkgaWYgbmVlZGVkKSAqLw0KPiA+ICAgCWlmICh1bmxpa2VseSgodGJsX2VudHJ5 ICYgUlRFX0xQTV9WQUxJRF9FWFRfRU5UUllfQklUTUFTSykgPT0NCj4gPiAgIAkJCVJURV9MUE1f VkFMSURfRVhUX0VOVFJZX0JJVE1BU0spKSB7DQo+IA0KPiAtLQ0KPiBSZWdhcmRzLA0KPiBWbGFk aW1pcg0KDQpSZWdhcmRzLA0KL1J1aWZlbmcNCg==