From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71693C28CC5 for ; Wed, 5 Jun 2019 19:23:09 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id B5CB3206BB for ; Wed, 5 Jun 2019 19:23:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.b="Kj84vn1E" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B5CB3206BB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B6D031B94B; Wed, 5 Jun 2019 21:23:06 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130040.outbound.protection.outlook.com [40.107.13.40]) by dpdk.org (Postfix) with ESMTP id C6EF21B947 for ; Wed, 5 Jun 2019 21:23:04 +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=a0F2XcCY4AxkpUbXp5tD5Ic4DwdJw9vyT27hpTcAoK4=; b=Kj84vn1EcKTkg9YgXvIuU0u+G6EawRF0Uu/cs2EWCg28Xz32M2xfW6FclMCMp2v/gTZHfTAlNBw7v2kXOXgl5GVbj/BIjTiWt3F0o7DkxTG6PViQwB+d/b7ozUccjK3wP4HBDbKMyUNuRsiHsnG8LO4ENtyVPOEkyZJnc2ADIW0= Received: from AM0PR08MB5138.eurprd08.prod.outlook.com (10.255.30.207) by AM0PR08MB4018.eurprd08.prod.outlook.com (20.178.119.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1943.22; Wed, 5 Jun 2019 19:23:03 +0000 Received: from AM0PR08MB5138.eurprd08.prod.outlook.com ([fe80::44bb:6d5d:24b2:3eb2]) by AM0PR08MB5138.eurprd08.prod.outlook.com ([fe80::44bb:6d5d:24b2:3eb2%4]) with mapi id 15.20.1965.011; Wed, 5 Jun 2019 19:23:03 +0000 From: Honnappa Nagarahalli To: "Ruifeng Wang (Arm Technology China)" , "Medvedkin, Vladimir" , "bruce.richardson@intel.com" CC: "dev@dpdk.org" , "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: AQHVG2NBGy+rB9/eLEmzCahb2VJ7m6aM4iQAgAA4ZACAAFHWwA== Date: Wed, 5 Jun 2019 19:23:03 +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: x-ts-tracking-id: c1d79393-650e-43f1-a064-0eaadc3063e3.0 x-checkrecipientchecked: true authentication-results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 67107a42-37da-47df-dbb8-08d6e9eb3afd x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR08MB4018; x-ms-traffictypediagnostic: AM0PR08MB4018: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 00594E8DBA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(136003)(376002)(366004)(346002)(199004)(189003)(6246003)(81156014)(8936002)(486006)(7696005)(110136005)(476003)(446003)(71200400001)(102836004)(6506007)(8676002)(76176011)(11346002)(81166006)(4326008)(52536014)(6436002)(2906002)(55016002)(9686003)(54906003)(71190400001)(73956011)(53546011)(68736007)(66946007)(64756008)(2501003)(76116006)(14444005)(256004)(74316002)(66446008)(86362001)(53936002)(316002)(25786009)(5024004)(7736002)(5660300002)(6116002)(66476007)(66556008)(72206003)(478600001)(14454004)(305945005)(186003)(3846002)(26005)(33656002)(229853002)(99286004)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR08MB4018; H:AM0PR08MB5138.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: +TDrpfGRwW03tFo5+WsmYHtWTJUvWKpDlk0IXsKmWN9Qn5N2on82dMq1piLDucahMXWkZFz9+QajXRkmmcAzGFrBQYGtmlph9Ruub1ItnHklzi1yzIFN4dYu37W78YlAXk+k22wVn2eXfYgKLOlKO0BBwcoiMNe22KRnim74hei/7j72gwN05VpqPghkCsutTYUedLBbHDwJhgNmasaMw3UgDxHIWulJnabzQNjNQhfZ+FDb5mkWgkSNFgf1AFAmZ8+NitkFWRV/7SflLF6/tWGeGEJEOrpW9GWJJEk5kGHEtMGRVNwXmEXIbJvFHtBHSgNwY/Di0a8Xt3VaSGksrGM+URNgLWxjUhqfj7YGX/R+aI250hOjKESKugJqE3VA2YHF+/Mdn/MGm5VlKmnhCpp6FbiVmtNfTjSr9nkPsRY= 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: 67107a42-37da-47df-dbb8-08d6e9eb3afd X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jun 2019 19:23:03.4836 (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: Honnappa.Nagarahalli@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4018 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" PiA+DQo+ID4gSGkgV2FuZywNCj4gPg0KPiA+IE9uIDA1LzA2LzIwMTkgMDY6NTQsIFJ1aWZlbmcg V2FuZyB3cm90ZToNCj4gPiA+IFdoZW4gYSB0Ymw4IGdyb3VwIGlzIGdldHRpbmcgYXR0YWNoZWQg dG8gYSB0YmwyNCBlbnRyeSwgbG9va3VwIG1pZ2h0DQo+ID4gPiBmYWlsIGV2ZW4gdGhvdWdoIHRo ZSBlbnRyeSBpcyBjb25maWd1cmVkIGluIHRoZSB0YWJsZS4NCj4gPiA+DQo+ID4gPiBGb3IgZXg6 IGNvbnNpZGVyIGEgTFBNIHRhYmxlIGNvbmZpZ3VyZWQgd2l0aCAxMC4xMC4xMC4xLzI0Lg0KPiA+ ID4gV2hlbiBhIG5ldyBlbnRyeSAxMC4xMC4xMC4zMi8yOCBpcyBiZWluZyBhZGRlZCwgYSBuZXcg dGJsOCBncm91cCBpcw0KPiA+ID4gYWxsb2NhdGVkIGFuZCB0YmwyNCBlbnRyeSBpcyBjaGFuZ2Vk IHRvIHBvaW50IHRvIHRoZSB0Ymw4IGdyb3VwLiBJZg0KPiA+ID4gdGhlIHRibDI0IGVudHJ5IGlz IHdyaXR0ZW4gd2l0aG91dCB0aGUgdGJsOCBncm91cCBlbnRyaWVzIHVwZGF0ZWQsIGENCj4gPiA+ IGxvb2t1cCBvbiAxMC4xMC4xMC45IHdpbGwgcmV0dXJuIGZhaWx1cmUuDQo+ID4gPg0KPiA+ID4g Q29ycmVjdCBtZW1vcnkgb3JkZXJpbmdzIGFyZSByZXF1aXJlZCB0byBlbnN1cmUgdGhhdCB0aGUg c3RvcmUgdG8NCj4gPiA+IHRibDI0IGRvZXMgbm90IGhhcHBlbiBiZWZvcmUgdGhlIHN0b3JlcyB0 byB0Ymw4IGdyb3VwIGVudHJpZXMNCj4gPiA+IGNvbXBsZXRlLg0KPiA+ID4NCj4gPiA+IFRoZSBv cmRlcmluZ3MgaGF2ZSBpbXBhY3Qgb24gTFBNIHBlcmZvcm1hbmNlIHRlc3QuDQo+ID4gPiBPbiBB cm0gQTcyIHBsYXRmb3JtLCBkZWxldGUgb3BlcmF0aW9uIGhhcyAyLjclIGRlZ3JhZGF0aW9uLCB3 aGlsZQ0KPiA+ID4gYWRkIC8gbG9va3VwIGhhcyBubyBub3RhYmxlIHBlcmZvcm1hbmNlIGNoYW5n ZS4NCj4gPiA+IE9uIHg4NiBFNSBwbGF0Zm9ybSwgYWRkIG9wZXJhdGlvbiBoYXMgNC4zJSBkZWdy YWRhdGlvbiwgZGVsZXRlDQo+ID4gPiBvcGVyYXRpb24gaGFzIDIuMiUgLSAxMC4yJSBkZWdyYWRh dGlvbiwgbG9va3VwIGhhcyBubyBwZXJmb3JtYW5jZQ0KPiA+ID4gY2hhbmdlLg0KPiA+DQo+ID4g SSB0aGluayBpdCBpcyBwb3NzaWJsZSB0byBhdm9pZCBhZGQvZGVsIHBlcmZvcm1hbmNlIGRlZ3Jh ZGF0aW9uDQpNeSB1bmRlcnN0YW5kaW5nIHdhcyB0aGF0IHRoZSBkZWdyYWRhdGlvbiBvbiB4ODYs IGlzIGhhcHBlbmluZyBiZWNhdXNlIG9mIHRoZSBhZGRpdGlvbmFsIGNvbXBpbGVyIGJhcnJpZXJz IHRoaXMgcGF0Y2ggaW50cm9kdWNlcy4gRm9yIEFybSBwbGF0Zm9ybSB0aGUgZGVncmFkYXRpb24g aXMgY2F1c2VkIGJ5IHRoZSBzdG9yZS1yZWxlYXNlIG1lbW9yeSBiYXJyaWVycy4NCg0KPiA+DQo+ ID4gMS4gRXhwbGljaXRseSBtYXJrIHN0cnVjdCBydGVfbHBtX3RibF9lbnRyeSA0LWJ5dGUgYWxp Z25lZA0KVGhlICcgcnRlX2xwbV90YmxfZW50cnknIGlzIGFscmVhZHkgMzJiLCBzaG91bGRuJ3Qg aXQgYmUgYWxpZ25lZCBvbiA0LWJ5dGUgYm91bmRhcnkgYWxyZWFkeT8NCg0KPiA+DQo+ID4gMi4g Q2FzdCB2YWx1ZSB0byB1aW50MzJfdCAodWludDE2X3QgZm9yIDIuMCB2ZXJzaW9uKSBvbiBtZW1v cnkgd3JpdGUNCj4gPg0KPiA+IDMuIFVzZSBydGVfd21iKCkgYWZ0ZXIgbWVtb3J5IHdyaXRlDQoo SXQgd291bGQgYmUgZ29vZCB0byBwb2ludCB0aGUgbG9jYXRpb25zIGluIHRoZSBwYXRjaCkuIEkg YXNzdW1lIHlvdSBhcmUgcmVmZXJyaW5nIHRvIF9fYXRvbWljX3N0b3JlKF9fQVRPTUlDX1JFTEVB U0UpLiBJIGFtIHdvbmRlcmluZyBpZiBydGVfd21iKCkgaXMgcmVxdWlyZWQ/IE15IHVuZGVyc3Rh bmRpbmcgaXMgdGhhdCB4ODYgd291bGQgcmVxdWlyZSBqdXN0IGEgY29tcGlsZXIgYmFycmllci4g U28sIHNob3VsZCBpdCBiZSBydGVfc21wX3dtYigpPyBfX2F0b21pY19zdG9yZShfX0FUT01JQ19S RUxFQVNFKSBqdXN0IGFkZHMgYSBjb21waWxlciBiYXJyaWVyIGZvciB4ODYuDQoNCj4gPg0KPiAN Cj4gVGhhbmtzIGZvciB5b3VyIHN1Z2dlc3Rpb25zLg0KPiBQb2ludCAxICYgMiBtYWtlIHNlbnNl Lg0KPiANCj4gRm9yIHBvaW50IDMsIGFyZSB5b3Ugc3VnZ2VzdGluZyB1c2luZyBydGVfd21iKCkg aW5zdGVhZCBvZiBfX2F0b21pY19zdG9yZSgpPw0KPiBydGVfd21iKCkgaXMgRFBESyBtYWRlIG1l bW9yeSBtb2RlbC4gTWF5YmUgd2UgY2FuIHVzZSBfX2F0b21pY19zdG9yZSgpDQo+IHdpdGggJ1JU RV9VU0VfQzExX01FTV9NT0RFTD15JywgYW5kIHVzZSBydGVfd21iKCkgb3RoZXJ3aXNlPw0KSU1P LCBjb2RlIGJlY29tZXMgZGlmZmljdWx0IHRvIG1hbmFnZS4NCg0KPiANCj4gPiA+DQo+ID4gPiBT aWduZWQtb2ZmLWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8aG9ubmFwcGEubmFnYXJhaGFsbGlA YXJtLmNvbT4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5n QGFybS5jb20+DQo+ID4gPiAtLS0NCj4gPiA+ICAgbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5jIHwg MzIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0NCj4gPiA+ICAgbGliL2xpYnJ0ZV9s cG0vcnRlX2xwbS5oIHwgIDQgKysrKw0KPiA+ID4gICAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9s aWJydGVfbHBtL3J0ZV9scG0uYyBiL2xpYi9saWJydGVfbHBtL3J0ZV9scG0uYw0KPiA+ID4gaW5k ZXgNCj4gPiA+IDZiN2IyOGEyZS4uNmVjNDUwYTA4IDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2xp YnJ0ZV9scG0vcnRlX2xwbS5jDQo+ID4gPiArKysgYi9saWIvbGlicnRlX2xwbS9ydGVfbHBtLmMN Cj4gPiA+IEBAIC04MDYsNyArODA2LDggQEAgYWRkX2RlcHRoX3NtYWxsX3YxNjA0KHN0cnVjdCBy dGVfbHBtICpscG0sDQo+ID4gdWludDMyX3QgaXAsIHVpbnQ4X3QgZGVwdGgsDQo+ID4gPiAgIAkJ CS8qIFNldHRpbmcgdGJsMjQgZW50cnkgaW4gb25lIGdvIHRvIGF2b2lkIHJhY2UNCj4gPiA+ICAg CQkJICogY29uZGl0aW9ucw0KPiA+ID4gICAJCQkgKi8NCj4gPiA+IC0JCQlscG0tPnRibDI0W2ld ID0gbmV3X3RibDI0X2VudHJ5Ow0KPiA+ID4gKwkJCV9fYXRvbWljX3N0b3JlKCZscG0tPnRibDI0 W2ldLCAmbmV3X3RibDI0X2VudHJ5LA0KPiA+ID4gKwkJCQkJX19BVE9NSUNfUkVMRUFTRSk7DQo+ ID4gPg0KPiA+ID4gICAJCQljb250aW51ZTsNCj4gPiA+ICAgCQl9DQo+ID4gPiBAQCAtMTAxNyw3 ICsxMDE4LDExIEBAIGFkZF9kZXB0aF9iaWdfdjE2MDQoc3RydWN0IHJ0ZV9scG0gKmxwbSwNCj4g PiB1aW50MzJfdCBpcF9tYXNrZWQsIHVpbnQ4X3QgZGVwdGgsDQo+ID4gPiAgIAkJCS5kZXB0aCA9 IDAsDQo+ID4gPiAgIAkJfTsNCj4gPiA+DQo+ID4gPiAtCQlscG0tPnRibDI0W3RibDI0X2luZGV4 XSA9IG5ld190YmwyNF9lbnRyeTsNCj4gPiA+ICsJCS8qIFRoZSB0YmwyNCBlbnRyeSBtdXN0IGJl IHdyaXR0ZW4gb25seSBhZnRlciB0aGUNCj4gPiA+ICsJCSAqIHRibDggZW50cmllcyBhcmUgd3Jp dHRlbi4NCj4gPiA+ICsJCSAqLw0KPiA+ID4gKwkJX19hdG9taWNfc3RvcmUoJmxwbS0+dGJsMjRb dGJsMjRfaW5kZXhdLA0KPiA+ICZuZXdfdGJsMjRfZW50cnksDQo+ID4gPiArCQkJCV9fQVRPTUlD X1JFTEVBU0UpOw0KPiA+ID4NCj4gPiA+ICAgCX0gLyogSWYgdmFsaWQgZW50cnkgYnV0IG5vdCBl eHRlbmRlZCBjYWxjdWxhdGUgdGhlIGluZGV4IGludG8gVGFibGU4LiAqLw0KPiA+ID4gICAJZWxz ZSBpZiAobHBtLT50YmwyNFt0YmwyNF9pbmRleF0udmFsaWRfZ3JvdXAgPT0gMCkgeyBAQCAtMTA2 Myw3DQo+ID4gPiArMTA2OCwxMSBAQCBhZGRfZGVwdGhfYmlnX3YxNjA0KHN0cnVjdCBydGVfbHBt ICpscG0sIHVpbnQzMl90DQo+ID4gaXBfbWFza2VkLCB1aW50OF90IGRlcHRoLA0KPiA+ID4gICAJ CQkJLmRlcHRoID0gMCwNCj4gPiA+ICAgCQl9Ow0KPiA+ID4NCj4gPiA+IC0JCWxwbS0+dGJsMjRb dGJsMjRfaW5kZXhdID0gbmV3X3RibDI0X2VudHJ5Ow0KPiA+ID4gKwkJLyogVGhlIHRibDI0IGVu dHJ5IG11c3QgYmUgd3JpdHRlbiBvbmx5IGFmdGVyIHRoZQ0KPiA+ID4gKwkJICogdGJsOCBlbnRy aWVzIGFyZSB3cml0dGVuLg0KPiA+ID4gKwkJICovDQo+ID4gPiArCQlfX2F0b21pY19zdG9yZSgm bHBtLT50YmwyNFt0YmwyNF9pbmRleF0sDQo+ID4gJm5ld190YmwyNF9lbnRyeSwNCj4gPiA+ICsJ CQkJX19BVE9NSUNfUkVMRUFTRSk7DQo+ID4gPg0KPiA+ID4gICAJfSBlbHNlIHsgLyoNCj4gPiA+ ICAgCQkqIElmIGl0IGlzIHZhbGlkLCBleHRlbmRlZCBlbnRyeSBjYWxjdWxhdGUgdGhlIGluZGV4 IGludG8gdGJsOC4NCj4gPiA+IEBAIC0xMzkxLDYgKzE0MDAsNyBAQCBkZWxldGVfZGVwdGhfc21h bGxfdjE2MDQoc3RydWN0IHJ0ZV9scG0gKmxwbSwNCj4gPiB1aW50MzJfdCBpcF9tYXNrZWQsDQo+ ID4gPiAgIAkvKiBDYWxjdWxhdGUgdGhlIHJhbmdlIGFuZCBpbmRleCBpbnRvIFRhYmxlMjQuICov DQo+ID4gPiAgIAl0YmwyNF9yYW5nZSA9IGRlcHRoX3RvX3JhbmdlKGRlcHRoKTsNCj4gPiA+ICAg CXRibDI0X2luZGV4ID0gKGlwX21hc2tlZCA+PiA4KTsNCj4gPiA+ICsJc3RydWN0IHJ0ZV9scG1f dGJsX2VudHJ5IHplcm9fdGJsMjRfZW50cnkgPSB7MH07DQo+ID4gPg0KPiA+ID4gICAJLyoNCj4g PiA+ICAgCSAqIEZpcnN0bHkgY2hlY2sgdGhlIHN1Yl9ydWxlX2luZGV4LiBBIC0xIGluZGljYXRl cyBubw0KPiA+ID4gcmVwbGFjZW1lbnQgcnVsZSBAQCAtMTQwNSw3ICsxNDE1LDggQEANCj4gPiA+ IGRlbGV0ZV9kZXB0aF9zbWFsbF92MTYwNChzdHJ1Y3QgcnRlX2xwbSAqbHBtLCB1aW50MzJfdCBp cF9tYXNrZWQsDQo+ID4gPg0KPiA+ID4gICAJCQlpZiAobHBtLT50YmwyNFtpXS52YWxpZF9ncm91 cCA9PSAwICYmDQo+ID4gPiAgIAkJCQkJbHBtLT50YmwyNFtpXS5kZXB0aCA8PSBkZXB0aCkgew0K PiA+ID4gLQkJCQlscG0tPnRibDI0W2ldLnZhbGlkID0gSU5WQUxJRDsNCj4gPiA+ICsJCQkJX19h dG9taWNfc3RvcmUoJmxwbS0+dGJsMjRbaV0sDQo+ID4gPiArCQkJCQkmemVyb190YmwyNF9lbnRy eSwNCj4gPiBfX0FUT01JQ19SRUxFQVNFKTsNCj4gPiA+ICAgCQkJfSBlbHNlIGlmIChscG0tPnRi bDI0W2ldLnZhbGlkX2dyb3VwID09IDEpIHsNCj4gPiA+ICAgCQkJCS8qDQo+ID4gPiAgIAkJCQkg KiBJZiBUQkwyNCBlbnRyeSBpcyBleHRlbmRlZCwgdGhlbiB0aGVyZSBoYXMNCj4gPiBAQCAtMTQ1 MCw3ICsxNDYxLDgNCj4gPiA+IEBAIGRlbGV0ZV9kZXB0aF9zbWFsbF92MTYwNChzdHJ1Y3QgcnRl X2xwbSAqbHBtLCB1aW50MzJfdCBpcF9tYXNrZWQsDQo+ID4gPg0KPiA+ID4gICAJCQlpZiAobHBt LT50YmwyNFtpXS52YWxpZF9ncm91cCA9PSAwICYmDQo+ID4gPiAgIAkJCQkJbHBtLT50YmwyNFtp XS5kZXB0aCA8PSBkZXB0aCkgew0KPiA+ID4gLQkJCQlscG0tPnRibDI0W2ldID0gbmV3X3RibDI0 X2VudHJ5Ow0KPiA+ID4gKwkJCQlfX2F0b21pY19zdG9yZSgmbHBtLT50YmwyNFtpXSwNCj4gPiAm bmV3X3RibDI0X2VudHJ5LA0KPiA+ID4gKwkJCQkJCV9fQVRPTUlDX1JFTEVBU0UpOw0KPiA+ID4g ICAJCQl9IGVsc2UgIGlmIChscG0tPnRibDI0W2ldLnZhbGlkX2dyb3VwID09IDEpIHsNCj4gPiA+ ICAgCQkJCS8qDQo+ID4gPiAgIAkJCQkgKiBJZiBUQkwyNCBlbnRyeSBpcyBleHRlbmRlZCwgdGhl biB0aGVyZSBoYXMNCj4gPiBAQCAtMTcxMyw4DQo+ID4gPiArMTcyNSwxMSBAQCBkZWxldGVfZGVw dGhfYmlnX3YxNjA0KHN0cnVjdCBydGVfbHBtICpscG0sIHVpbnQzMl90DQo+ID4gaXBfbWFza2Vk LA0KPiA+ID4gICAJdGJsOF9yZWN5Y2xlX2luZGV4ID0gdGJsOF9yZWN5Y2xlX2NoZWNrX3YxNjA0 KGxwbS0+dGJsOCwNCj4gPiA+IHRibDhfZ3JvdXBfc3RhcnQpOw0KPiA+ID4NCj4gPiA+ICAgCWlm ICh0Ymw4X3JlY3ljbGVfaW5kZXggPT0gLUVJTlZBTCkgew0KPiA+ID4gLQkJLyogU2V0IHRibDI0 IGJlZm9yZSBmcmVlaW5nIHRibDggdG8gYXZvaWQgcmFjZSBjb25kaXRpb24uICovDQo+ID4gPiAr CQkvKiBTZXQgdGJsMjQgYmVmb3JlIGZyZWVpbmcgdGJsOCB0byBhdm9pZCByYWNlIGNvbmRpdGlv bi4NCj4gPiA+ICsJCSAqIFByZXZlbnQgdGhlIGZyZWUgb2YgdGhlIHRibDggZ3JvdXAgZnJvbSBo b2lzdGluZy4NCj4gPiA+ICsJCSAqLw0KPiA+ID4gICAJCWxwbS0+dGJsMjRbdGJsMjRfaW5kZXhd LnZhbGlkID0gMDsNCj4gPiA+ICsJCV9fYXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01JQ19SRUxF QVNFKTsNCj4gPiA+ICAgCQl0Ymw4X2ZyZWVfdjE2MDQobHBtLT50Ymw4LCB0Ymw4X2dyb3VwX3N0 YXJ0KTsNCj4gPiA+ICAgCX0gZWxzZSBpZiAodGJsOF9yZWN5Y2xlX2luZGV4ID4gLTEpIHsNCj4g PiA+ICAgCQkvKiBVcGRhdGUgdGJsMjQgZW50cnkuICovDQo+ID4gPiBAQCAtMTcyNSw4ICsxNzQw LDExIEBAIGRlbGV0ZV9kZXB0aF9iaWdfdjE2MDQoc3RydWN0IHJ0ZV9scG0gKmxwbSwNCj4gPiB1 aW50MzJfdCBpcF9tYXNrZWQsDQo+ID4gPiAgIAkJCS5kZXB0aCA9IGxwbS0+dGJsOFt0Ymw4X3Jl Y3ljbGVfaW5kZXhdLmRlcHRoLA0KPiA+ID4gICAJCX07DQo+ID4gPg0KPiA+ID4gLQkJLyogU2V0 IHRibDI0IGJlZm9yZSBmcmVlaW5nIHRibDggdG8gYXZvaWQgcmFjZSBjb25kaXRpb24uICovDQo+ ID4gPiArCQkvKiBTZXQgdGJsMjQgYmVmb3JlIGZyZWVpbmcgdGJsOCB0byBhdm9pZCByYWNlIGNv bmRpdGlvbi4NCj4gPiA+ICsJCSAqIFByZXZlbnQgdGhlIGZyZWUgb2YgdGhlIHRibDggZ3JvdXAg ZnJvbSBob2lzdGluZy4NCj4gPiA+ICsJCSAqLw0KPiA+ID4gICAJCWxwbS0+dGJsMjRbdGJsMjRf aW5kZXhdID0gbmV3X3RibDI0X2VudHJ5Ow0KPiA+ID4gKwkJX19hdG9taWNfdGhyZWFkX2ZlbmNl KF9fQVRPTUlDX1JFTEVBU0UpOw0KPiA+ID4gICAJCXRibDhfZnJlZV92MTYwNChscG0tPnRibDgs IHRibDhfZ3JvdXBfc3RhcnQpOw0KPiA+ID4gICAJfQ0KPiA+ID4gICAjdW5kZWYgZ3JvdXBfaWR4 DQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oIGIvbGliL2xpYnJ0 ZV9scG0vcnRlX2xwbS5oDQo+ID4gPiBpbmRleCBiODg2ZjU0YjQuLjZmNTcwNGM1YyAxMDA2NDQN Cj4gPiA+IC0tLSBhL2xpYi9saWJydGVfbHBtL3J0ZV9scG0uaA0KPiA+ID4gKysrIGIvbGliL2xp YnJ0ZV9scG0vcnRlX2xwbS5oDQo+ID4gPiBAQCAtMzU0LDYgKzM1NCwxMCBAQCBydGVfbHBtX2xv b2t1cChzdHJ1Y3QgcnRlX2xwbSAqbHBtLCB1aW50MzJfdA0KPiA+ID4gaXAsDQo+ID4gdWludDMy X3QgKm5leHRfaG9wKQ0KPiA+ID4gICAJcHRibCA9IChjb25zdCB1aW50MzJfdCAqKSgmbHBtLT50 YmwyNFt0YmwyNF9pbmRleF0pOw0KPiA+ID4gICAJdGJsX2VudHJ5ID0gKnB0Ymw7DQo+ID4gPg0K PiA+ID4gKwkvKiBNZW1vcnkgb3JkZXJpbmcgaXMgbm90IHJlcXVpcmVkIGluIGxvb2t1cC4gQmVj YXVzZSBkYXRhZmxvdw0KPiA+ID4gKwkgKiBkZXBlbmRlbmN5IGV4aXN0cywgY29tcGlsZXIgb3Ig SFcgd29uJ3QgYmUgYWJsZSB0byByZS1vcmRlcg0KPiA+ID4gKwkgKiB0aGUgb3BlcmF0aW9ucy4N Cj4gPiA+ICsJICovDQo+ID4gPiAgIAkvKiBDb3B5IHRibDggZW50cnkgKG9ubHkgaWYgbmVlZGVk KSAqLw0KPiA+ID4gICAJaWYgKHVubGlrZWx5KCh0YmxfZW50cnkgJiBSVEVfTFBNX1ZBTElEX0VY VF9FTlRSWV9CSVRNQVNLKSA9PQ0KPiA+ID4gICAJCQlSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9C SVRNQVNLKSkgew0KPiA+DQo+ID4gLS0NCj4gPiBSZWdhcmRzLA0KPiA+IFZsYWRpbWlyDQo+IA0K PiBSZWdhcmRzLA0KPiAvUnVpZmVuZw0K