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 BA621A0471 for ; Mon, 17 Jun 2019 17:27:12 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4682E1BEEC; Mon, 17 Jun 2019 17:27:11 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150050.outbound.protection.outlook.com [40.107.15.50]) by dpdk.org (Postfix) with ESMTP id 43A501BE6B for ; Mon, 17 Jun 2019 17:27:09 +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=xoULQuGUVJXhxTdL0MzMbc9p2utwbkMVLOuITwHByr8=; b=n4XTFnfzruDnXtF2TcIgZhvCwLDWoI3lzvAeLAZwqfAfK85EUZVewxdPGKvxhIPkj+HcMOb1j/EtFQS9TSnrvXYobpK7izeTUa+W50xEPOKwjrdyt1HOY01RgzbtAg9q6QLSRKV61A40u5VL+GVHGCXbtSCGiJe3Kd1TCOuJE5A= Received: from AM0PR08MB4418.eurprd08.prod.outlook.com (20.179.35.207) by AM0PR08MB4370.eurprd08.prod.outlook.com (20.179.36.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.15; Mon, 17 Jun 2019 15:27:07 +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.1987.014; Mon, 17 Jun 2019 15:27:07 +0000 From: "Ruifeng Wang (Arm Technology China)" To: "Medvedkin, Vladimir" , Honnappa Nagarahalli , "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: AQHVG2NBXYMjAwiPhUa292+3eDnt7aaM4iQAgAAyJaCAAF0ggIAHmIWAgAr+aSA= Date: Mon, 17 Jun 2019 15:27:07 +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: bedca10c-e098-4528-848f-6e9bd4bd5fbc.0 x-checkrecipientchecked: true authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ruifeng.Wang@arm.com; x-originating-ip: [218.1.207.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 94bed210-c653-4be5-cb6c-08d6f3384269 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:AM0PR08MB4370; x-ms-traffictypediagnostic: AM0PR08MB4370: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0071BFA85B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(376002)(396003)(39860400002)(346002)(136003)(189003)(199004)(8936002)(2906002)(316002)(86362001)(52536014)(6506007)(9686003)(6436002)(5660300002)(53546011)(33656002)(186003)(53936002)(110136005)(71200400001)(54906003)(71190400001)(26005)(99286004)(4326008)(25786009)(55016002)(76176011)(68736007)(66066001)(6246003)(102836004)(2501003)(7696005)(486006)(66446008)(229853002)(72206003)(5024004)(14444005)(256004)(74316002)(14454004)(476003)(6116002)(446003)(305945005)(7736002)(3846002)(8676002)(81156014)(81166006)(478600001)(66476007)(11346002)(73956011)(76116006)(64756008)(66946007)(66556008); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR08MB4370; H:AM0PR08MB4418.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: 5590vuGP9XVzSvJ/rA1yIvLYRRxzTgUjc7WBGAY7OTxR05M4qpcqaKZThkMNmWcujt7XONenwJBG5620ybEllCDgslkwuRO+neKi7F7hdYy5PBiyBU2fzIZGiTSFoYY2SuP9iQrcwkc8dgnmy/ZZaaLzwzLBCsn6qxsgU1MzpBvDeGyjKTkvMBIOLHD2aKmZ4ynqUlavQOdH0xwjuZyNVrdy1xo9TNuQBZgtpmcBhgeAr69aFIUQaz/LpWydmaWwj4xRgtNYt6m8Tzo1F3UYEqlUgO77G3/FrO/lyHZPb8kLP2kLrXD3pQX9howRxUUQ7MOx8Enr8v8ZrM3KZR/7kMp+h8OIA/GudKnALMUEh+wOaCmJdf7WW1naAgPVfCArhwe0DKD4OMObexGXXBMl0i3AoUUIniY+8i/GNMd0bjs= 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: 94bed210-c653-4be5-cb6c-08d6f3384269 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jun 2019 15:27:07.6082 (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: AM0PR08MB4370 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" SGkgVmxhZGltaXIsDQoNCg0KRnJvbTogTWVkdmVka2luLCBWbGFkaW1pciA8dmxhZGltaXIubWVk dmVka2luQGludGVsLmNvbT4gDQpTZW50OiBNb25kYXksIEp1bmUgMTAsIDIwMTkgMjM6MjMNClRv OiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IFJ1 aWZlbmcgV2FuZyAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxSdWlmZW5nLldhbmdAYXJtLmNvbT47 IGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tDQpDYzogZGV2QGRwZGsub3JnOyBHYXZpbiBIdSAo QXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxHYXZpbi5IdUBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+ DQpTdWJqZWN0OiBSZTogW1BBVENIIHYxIDEvMl0gbGliL2xwbTogbWVtb3J5IG9yZGVyaW5ncyB0 byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgZm9yIHYxNjA0DQoNCkhpIEhvbm5hcHBhLCBXYW5nLCAN Cg0KT24gMDUvMDYvMjAxOSAyMDoyMywgSG9ubmFwcGEgTmFnYXJhaGFsbGkgd3JvdGU6DQoNCkhp IFdhbmcsDQoNCk9uIDA1LzA2LzIwMTkgMDY6NTQsIFJ1aWZlbmcgV2FuZyB3cm90ZToNCldoZW4g YSB0Ymw4IGdyb3VwIGlzIGdldHRpbmcgYXR0YWNoZWQgdG8gYSB0YmwyNCBlbnRyeSwgbG9va3Vw IG1pZ2h0DQpmYWlsIGV2ZW4gdGhvdWdoIHRoZSBlbnRyeSBpcyBjb25maWd1cmVkIGluIHRoZSB0 YWJsZS4NCg0KRm9yIGV4OiBjb25zaWRlciBhIExQTSB0YWJsZSBjb25maWd1cmVkIHdpdGggMTAu MTAuMTAuMS8yNC4NCldoZW4gYSBuZXcgZW50cnkgMTAuMTAuMTAuMzIvMjggaXMgYmVpbmcgYWRk ZWQsIGEgbmV3IHRibDggZ3JvdXAgaXMNCmFsbG9jYXRlZCBhbmQgdGJsMjQgZW50cnkgaXMgY2hh bmdlZCB0byBwb2ludCB0byB0aGUgdGJsOCBncm91cC4gSWYNCnRoZSB0YmwyNCBlbnRyeSBpcyB3 cml0dGVuIHdpdGhvdXQgdGhlIHRibDggZ3JvdXAgZW50cmllcyB1cGRhdGVkLCBhDQpsb29rdXAg b24gMTAuMTAuMTAuOSB3aWxsIHJldHVybiBmYWlsdXJlLg0KDQpDb3JyZWN0IG1lbW9yeSBvcmRl cmluZ3MgYXJlIHJlcXVpcmVkIHRvIGVuc3VyZSB0aGF0IHRoZSBzdG9yZSB0bw0KdGJsMjQgZG9l cyBub3QgaGFwcGVuIGJlZm9yZSB0aGUgc3RvcmVzIHRvIHRibDggZ3JvdXAgZW50cmllcw0KY29t cGxldGUuDQoNClRoZSBvcmRlcmluZ3MgaGF2ZSBpbXBhY3Qgb24gTFBNIHBlcmZvcm1hbmNlIHRl c3QuDQpPbiBBcm0gQTcyIHBsYXRmb3JtLCBkZWxldGUgb3BlcmF0aW9uIGhhcyAyLjclIGRlZ3Jh ZGF0aW9uLCB3aGlsZQ0KYWRkIC8gbG9va3VwIGhhcyBubyBub3RhYmxlIHBlcmZvcm1hbmNlIGNo YW5nZS4NCk9uIHg4NiBFNSBwbGF0Zm9ybSwgYWRkIG9wZXJhdGlvbiBoYXMgNC4zJSBkZWdyYWRh dGlvbiwgZGVsZXRlDQpvcGVyYXRpb24gaGFzIDIuMiUgLSAxMC4yJSBkZWdyYWRhdGlvbiwgbG9v a3VwIGhhcyBubyBwZXJmb3JtYW5jZQ0KY2hhbmdlLg0KDQpJIHRoaW5rIGl0IGlzIHBvc3NpYmxl IHRvIGF2b2lkIGFkZC9kZWwgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24NCk15IHVuZGVyc3RhbmRp bmcgd2FzIHRoYXQgdGhlIGRlZ3JhZGF0aW9uIG9uIHg4NiwgaXMgaGFwcGVuaW5nIGJlY2F1c2Ug b2YgdGhlIGFkZGl0aW9uYWwgY29tcGlsZXIgYmFycmllcnMgdGhpcyBwYXRjaCBpbnRyb2R1Y2Vz LiBGb3IgQXJtIHBsYXRmb3JtIHRoZSBkZWdyYWRhdGlvbiBpcyBjYXVzZWQgYnkgdGhlIHN0b3Jl LXJlbGVhc2UgbWVtb3J5IGJhcnJpZXJzLg0KSnVzdCBtYWRlIHNvbWUgdGVzdHMgb24gc2t5bGFr ZSBhbmQgc2FuZHkgYnJpZGdlLiBPbiB0aGUgU2t5bGFrZSB0aGVyZSBpcyBubyBwZXJmb3JtYW5j ZSBkZWdyYWRhdGlvbiBhZnRlciBhcHBseWluZyB0aGlzIHBhdGNoc2V0LiBPbiB0aGUgU2FuZHli cmlkZ2UgdGhlcmUgaXMgcGVyZm9ybWFuY2UgZHJvcCBmb3IgcnRlX2xwbV9hZGQoKSAoZnJvbSA0 NjBrIGN5Y2xlcyB0byA1MzBrIGN5Y2xlcyBpbiBscG1fcGVyZm9ybWFuY2UgdW5pdCB0ZXN0KS4g VGhpcyBpcyBjYXVzZWQgYnkgMSBjaHVuayBvZiB0aGlzIHBhdGNoc2V0wqAgKGFkZF9kZXB0aF9z bWFsbF92MTYwNCgpICkuIEFuZCBpdCBsb29rcyBsaWtlIGFmdGVyIHVuaW5saW5pbmcgb2YgdGhp cyBmdW5jdGlvbiBwZXJmb3JtYW5jZSBnZXQgYmFjayB0byBvcmlnaW5hbCA0NjBrIGN5Y2xlcyBp dCB3YXMgYmVmb3JlIHBhdGNoLiANCg0KW1J1aWZlbmddIEFyZSB5b3Ugc3VnZ2VzdGluZyB0byB1 bi1pbmxpbmUgYWRkX2RlcHRoX3NtYWxsX3YxNjA0KCk/IEknbSBPSyB3aXRoIHN1Y2ggY2hhbmdl IHNpbmNlIHRoZSBmdW5jdGlvbiBpcyB0b28gYmlnIGFuZCBpcyBub3QgbmVjZXNzYXJ5IHRvIGJl IGlubGluZWQuIA0KDQoNCjEuIEV4cGxpY2l0bHkgbWFyayBzdHJ1Y3QgcnRlX2xwbV90YmxfZW50 cnkgNC1ieXRlIGFsaWduZWQNClRoZSAnIHJ0ZV9scG1fdGJsX2VudHJ5JyBpcyBhbHJlYWR5IDMy Yiwgc2hvdWxkbid0IGl0IGJlIGFsaWduZWQgb24gNC1ieXRlIGJvdW5kYXJ5IGFscmVhZHk/DQoN Cg0KMi4gQ2FzdCB2YWx1ZSB0byB1aW50MzJfdCAodWludDE2X3QgZm9yIDIuMCB2ZXJzaW9uKSBv biBtZW1vcnkgd3JpdGUNCg0KMy4gVXNlIHJ0ZV93bWIoKSBhZnRlciBtZW1vcnkgd3JpdGUNCihJ dCB3b3VsZCBiZSBnb29kIHRvIHBvaW50IHRoZSBsb2NhdGlvbnMgaW4gdGhlIHBhdGNoKS4gSSBh c3N1bWUgeW91IGFyZSByZWZlcnJpbmcgdG8gX19hdG9taWNfc3RvcmUoX19BVE9NSUNfUkVMRUFT RSkuIEkgYW0gd29uZGVyaW5nIGlmIHJ0ZV93bWIoKSBpcyByZXF1aXJlZD8gTXkgdW5kZXJzdGFu ZGluZyBpcyB0aGF0IHg4NiB3b3VsZCByZXF1aXJlIGp1c3QgYSBjb21waWxlciBiYXJyaWVyLiBT bywgc2hvdWxkIGl0IGJlIHJ0ZV9zbXBfd21iKCk/IF9fYXRvbWljX3N0b3JlKF9fQVRPTUlDX1JF TEVBU0UpIGp1c3QgYWRkcyBhIGNvbXBpbGVyIGJhcnJpZXIgZm9yIHg4Ni4NCllvdSByaWdodCwg aXQgbmVlZHMganVzdCBhIGNvbXBpbGxlciBiYXJyaWVyIGZvciB4ODYgYW5kIGEgbWVtb3J5IGJh cnJpZXIgaW5zdHJ1Y3Rpb24gKGRtYiA/KSBmb3IgYXJtLCBzbyBydGVfc21wX3dtYigpIGxvb2tz IGFwcHJvcHJpYXRlIGhlcmUgYXMgd2VsbCBhcyBfX2F0b21pY19zdG9yZShfX0FUT01JQ19SRUxF QVNFKS4gDQoNCg0KDQpUaGFua3MgZm9yIHlvdXIgc3VnZ2VzdGlvbnMuDQpQb2ludCAxICYgMiBt YWtlIHNlbnNlLg0KDQpGb3IgcG9pbnQgMywgYXJlIHlvdSBzdWdnZXN0aW5nIHVzaW5nIHJ0ZV93 bWIoKSBpbnN0ZWFkIG9mIF9fYXRvbWljX3N0b3JlKCk/DQpydGVfd21iKCkgaXMgRFBESyBtYWRl IG1lbW9yeSBtb2RlbC4gTWF5YmUgd2UgY2FuIHVzZSBfX2F0b21pY19zdG9yZSgpDQp3aXRoICdS VEVfVVNFX0MxMV9NRU1fTU9ERUw9eScsIGFuZCB1c2UgcnRlX3dtYigpIG90aGVyd2lzZT8NCklN TywgY29kZSBiZWNvbWVzIGRpZmZpY3VsdCB0byBtYW5hZ2UuDQoNCg0KDQpTaWduZWQtb2ZmLWJ5 OiBIb25uYXBwYSBOYWdhcmFoYWxsaSBtYWlsdG86aG9ubmFwcGEubmFnYXJhaGFsbGlAYXJtLmNv bQ0KU2lnbmVkLW9mZi1ieTogUnVpZmVuZyBXYW5nIG1haWx0bzpydWlmZW5nLndhbmdAYXJtLmNv bQ0KLS0tDQogIGxpYi9saWJydGVfbHBtL3J0ZV9scG0uYyB8IDMyICsrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tDQogIGxpYi9saWJydGVfbHBtL3J0ZV9scG0uaCB8ICA0ICsrKysNCiAg MiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KDQpkaWZm IC0tZ2l0IGEvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5jIGIvbGliL2xpYnJ0ZV9scG0vcnRlX2xw bS5jDQppbmRleA0KNmI3YjI4YTJlLi42ZWM0NTBhMDggMTAwNjQ0DQotLS0gYS9saWIvbGlicnRl X2xwbS9ydGVfbHBtLmMNCisrKyBiL2xpYi9saWJydGVfbHBtL3J0ZV9scG0uYw0KQEAgLTgwNiw3 ICs4MDYsOCBAQCBhZGRfZGVwdGhfc21hbGxfdjE2MDQoc3RydWN0IHJ0ZV9scG0gKmxwbSwNCnVp bnQzMl90IGlwLCB1aW50OF90IGRlcHRoLA0KICAJCQkvKiBTZXR0aW5nIHRibDI0IGVudHJ5IGlu IG9uZSBnbyB0byBhdm9pZCByYWNlDQogIAkJCSAqIGNvbmRpdGlvbnMNCiAgCQkJICovDQotCQkJ bHBtLT50YmwyNFtpXSA9IG5ld190YmwyNF9lbnRyeTsNCisJCQlfX2F0b21pY19zdG9yZSgmbHBt LT50YmwyNFtpXSwgJm5ld190YmwyNF9lbnRyeSwNCisJCQkJCV9fQVRPTUlDX1JFTEVBU0UpOw0K SSBkb24ndCBzZWUgcmVvcmRlcmluZyBpc3N1ZSBoZXJlIGluIHRoaXMgcGF0Y2ggY2h1bmsuIEhv d2V2ZXIgZGlyZWN0IGFzc2lnbm1lbnQgd2FzIHRyYW5zbGF0ZWQgdG8gMiBNT1Ygb3BzDQptb3bC oMKgwqAgKCVyZGksJXJjeCw0KSwlZWR4wqAgPC0tIGdldCBscG0tPnRibDI0W2ldDQphbmTCoMKg wqAgJDB4ZmYwMDAwMDAsJWVkeMKgwqDCoCA8LS0gY2xlYW4gLm5leHRfaG9wDQpvcsKgwqDCoMKg ICVyOWQsJWVkeMKgwqDCoCDCoMKgwqAgPC0tIHNhdmUgbmV3IG5leHRfaG9wDQptb3bCoMKgwqAg JWVkeCwoJXJkaSwlcmN4LDQpwqAgPC0tIHNhdmUgYW4gZW50cnkgd2l0aCBuZXcgbmV4dF9ob3Ag YnV0IG9sZCBkZXB0aCBhbmQgdmFsaWQgYml0ZmllbGRzDQptb3bCoMKgwqAgJXIxMWIsMHgzKCVy ZGksJXJjeCw0KcKgIDwtLSBzYXZlIG5ldyBkZXB0aCBhbmQgdmFsaWQgYml0ZmllbGRzDQpzbyBh Z3JlZSB3aXRoIF9fYXRvbWljX3N0b3JlKCkgaGVyZS4NCg0KDQogIAkJCWNvbnRpbnVlOw0KICAJ CX0NCkBAIC0xMDE3LDcgKzEwMTgsMTEgQEAgYWRkX2RlcHRoX2JpZ192MTYwNChzdHJ1Y3QgcnRl X2xwbSAqbHBtLA0KdWludDMyX3QgaXBfbWFza2VkLCB1aW50OF90IGRlcHRoLA0KICAJCQkuZGVw dGggPSAwLA0KICAJCX07DQoNCi0JCWxwbS0+dGJsMjRbdGJsMjRfaW5kZXhdID0gbmV3X3RibDI0 X2VudHJ5Ow0KKwkJLyogVGhlIHRibDI0IGVudHJ5IG11c3QgYmUgd3JpdHRlbiBvbmx5IGFmdGVy IHRoZQ0KKwkJICogdGJsOCBlbnRyaWVzIGFyZSB3cml0dGVuLg0KKwkJICovDQorCQlfX2F0b21p Y19zdG9yZSgmbHBtLT50YmwyNFt0YmwyNF9pbmRleF0sDQombmV3X3RibDI0X2VudHJ5LA0KKwkJ CQlfX0FUT01JQ19SRUxFQVNFKTsNCg0KICAJfSAvKiBJZiB2YWxpZCBlbnRyeSBidXQgbm90IGV4 dGVuZGVkIGNhbGN1bGF0ZSB0aGUgaW5kZXggaW50byBUYWJsZTguICovDQogIAllbHNlIGlmIChs cG0tPnRibDI0W3RibDI0X2luZGV4XS52YWxpZF9ncm91cCA9PSAwKSB7IEBAIC0xMDYzLDcNCisx MDY4LDExIEBAIGFkZF9kZXB0aF9iaWdfdjE2MDQoc3RydWN0IHJ0ZV9scG0gKmxwbSwgdWludDMy X3QNCmlwX21hc2tlZCwgdWludDhfdCBkZXB0aCwNCiAgCQkJCS5kZXB0aCA9IDAsDQogIAkJfTsN Cg0KLQkJbHBtLT50YmwyNFt0YmwyNF9pbmRleF0gPSBuZXdfdGJsMjRfZW50cnk7DQorCQkvKiBU aGUgdGJsMjQgZW50cnkgbXVzdCBiZSB3cml0dGVuIG9ubHkgYWZ0ZXIgdGhlDQorCQkgKiB0Ymw4 IGVudHJpZXMgYXJlIHdyaXR0ZW4uDQorCQkgKi8NCisJCV9fYXRvbWljX3N0b3JlKCZscG0tPnRi bDI0W3RibDI0X2luZGV4XSwNCiZuZXdfdGJsMjRfZW50cnksDQorCQkJCV9fQVRPTUlDX1JFTEVB U0UpOw0KDQogIAl9IGVsc2UgeyAvKg0KICAJCSogSWYgaXQgaXMgdmFsaWQsIGV4dGVuZGVkIGVu dHJ5IGNhbGN1bGF0ZSB0aGUgaW5kZXggaW50byB0Ymw4Lg0KQEAgLTEzOTEsNiArMTQwMCw3IEBA IGRlbGV0ZV9kZXB0aF9zbWFsbF92MTYwNChzdHJ1Y3QgcnRlX2xwbSAqbHBtLA0KdWludDMyX3Qg aXBfbWFza2VkLA0KICAJLyogQ2FsY3VsYXRlIHRoZSByYW5nZSBhbmQgaW5kZXggaW50byBUYWJs ZTI0LiAqLw0KICAJdGJsMjRfcmFuZ2UgPSBkZXB0aF90b19yYW5nZShkZXB0aCk7DQogIAl0Ymwy NF9pbmRleCA9IChpcF9tYXNrZWQgPj4gOCk7DQorCXN0cnVjdCBydGVfbHBtX3RibF9lbnRyeSB6 ZXJvX3RibDI0X2VudHJ5ID0gezB9Ow0KDQogIAkvKg0KICAJICogRmlyc3RseSBjaGVjayB0aGUg c3ViX3J1bGVfaW5kZXguIEEgLTEgaW5kaWNhdGVzIG5vDQpyZXBsYWNlbWVudCBydWxlIEBAIC0x NDA1LDcgKzE0MTUsOCBAQA0KZGVsZXRlX2RlcHRoX3NtYWxsX3YxNjA0KHN0cnVjdCBydGVfbHBt ICpscG0sIHVpbnQzMl90IGlwX21hc2tlZCwNCg0KICAJCQlpZiAobHBtLT50YmwyNFtpXS52YWxp ZF9ncm91cCA9PSAwICYmDQogIAkJCQkJbHBtLT50YmwyNFtpXS5kZXB0aCA8PSBkZXB0aCkgew0K LQkJCQlscG0tPnRibDI0W2ldLnZhbGlkID0gSU5WQUxJRDsNCisJCQkJX19hdG9taWNfc3RvcmUo JmxwbS0+dGJsMjRbaV0sDQorCQkJCQkmemVyb190YmwyNF9lbnRyeSwNCl9fQVRPTUlDX1JFTEVB U0UpOw0KICAJCQl9IGVsc2UgaWYgKGxwbS0+dGJsMjRbaV0udmFsaWRfZ3JvdXAgPT0gMSkgew0K ICAJCQkJLyoNCiAgCQkJCSAqIElmIFRCTDI0IGVudHJ5IGlzIGV4dGVuZGVkLCB0aGVuIHRoZXJl IGhhcw0KQEAgLTE0NTAsNyArMTQ2MSw4DQpAQCBkZWxldGVfZGVwdGhfc21hbGxfdjE2MDQoc3Ry dWN0IHJ0ZV9scG0gKmxwbSwgdWludDMyX3QgaXBfbWFza2VkLA0KDQogIAkJCWlmIChscG0tPnRi bDI0W2ldLnZhbGlkX2dyb3VwID09IDAgJiYNCiAgCQkJCQlscG0tPnRibDI0W2ldLmRlcHRoIDw9 IGRlcHRoKSB7DQotCQkJCWxwbS0+dGJsMjRbaV0gPSBuZXdfdGJsMjRfZW50cnk7DQorCQkJCV9f YXRvbWljX3N0b3JlKCZscG0tPnRibDI0W2ldLA0KJm5ld190YmwyNF9lbnRyeSwNCisJCQkJCQlf X0FUT01JQ19SRUxFQVNFKTsNCiAgCQkJfSBlbHNlICBpZiAobHBtLT50YmwyNFtpXS52YWxpZF9n cm91cCA9PSAxKSB7DQogIAkJCQkvKg0KICAJCQkJICogSWYgVEJMMjQgZW50cnkgaXMgZXh0ZW5k ZWQsIHRoZW4gdGhlcmUgaGFzDQpAQCAtMTcxMyw4DQorMTcyNSwxMSBAQCBkZWxldGVfZGVwdGhf YmlnX3YxNjA0KHN0cnVjdCBydGVfbHBtICpscG0sIHVpbnQzMl90DQppcF9tYXNrZWQsDQogIAl0 Ymw4X3JlY3ljbGVfaW5kZXggPSB0Ymw4X3JlY3ljbGVfY2hlY2tfdjE2MDQobHBtLT50Ymw4LA0K dGJsOF9ncm91cF9zdGFydCk7DQoNCiAgCWlmICh0Ymw4X3JlY3ljbGVfaW5kZXggPT0gLUVJTlZB TCkgew0KLQkJLyogU2V0IHRibDI0IGJlZm9yZSBmcmVlaW5nIHRibDggdG8gYXZvaWQgcmFjZSBj b25kaXRpb24uICovDQorCQkvKiBTZXQgdGJsMjQgYmVmb3JlIGZyZWVpbmcgdGJsOCB0byBhdm9p ZCByYWNlIGNvbmRpdGlvbi4NCisJCSAqIFByZXZlbnQgdGhlIGZyZWUgb2YgdGhlIHRibDggZ3Jv dXAgZnJvbSBob2lzdGluZy4NCisJCSAqLw0KICAJCWxwbS0+dGJsMjRbdGJsMjRfaW5kZXhdLnZh bGlkID0gMDsNCisJCV9fYXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01JQ19SRUxFQVNFKTsNCiAg CQl0Ymw4X2ZyZWVfdjE2MDQobHBtLT50Ymw4LCB0Ymw4X2dyb3VwX3N0YXJ0KTsNCiAgCX0gZWxz ZSBpZiAodGJsOF9yZWN5Y2xlX2luZGV4ID4gLTEpIHsNCiAgCQkvKiBVcGRhdGUgdGJsMjQgZW50 cnkuICovDQpAQCAtMTcyNSw4ICsxNzQwLDExIEBAIGRlbGV0ZV9kZXB0aF9iaWdfdjE2MDQoc3Ry dWN0IHJ0ZV9scG0gKmxwbSwNCnVpbnQzMl90IGlwX21hc2tlZCwNCiAgCQkJLmRlcHRoID0gbHBt LT50Ymw4W3RibDhfcmVjeWNsZV9pbmRleF0uZGVwdGgsDQogIAkJfTsNCg0KLQkJLyogU2V0IHRi bDI0IGJlZm9yZSBmcmVlaW5nIHRibDggdG8gYXZvaWQgcmFjZSBjb25kaXRpb24uICovDQorCQkv KiBTZXQgdGJsMjQgYmVmb3JlIGZyZWVpbmcgdGJsOCB0byBhdm9pZCByYWNlIGNvbmRpdGlvbi4N CisJCSAqIFByZXZlbnQgdGhlIGZyZWUgb2YgdGhlIHRibDggZ3JvdXAgZnJvbSBob2lzdGluZy4N CisJCSAqLw0KICAJCWxwbS0+dGJsMjRbdGJsMjRfaW5kZXhdID0gbmV3X3RibDI0X2VudHJ5Ow0K KwkJX19hdG9taWNfdGhyZWFkX2ZlbmNlKF9fQVRPTUlDX1JFTEVBU0UpOw0KICAJCXRibDhfZnJl ZV92MTYwNChscG0tPnRibDgsIHRibDhfZ3JvdXBfc3RhcnQpOw0KICAJfQ0KICAjdW5kZWYgZ3Jv dXBfaWR4DQpkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5oIGIvbGliL2xpYnJ0 ZV9scG0vcnRlX2xwbS5oDQppbmRleCBiODg2ZjU0YjQuLjZmNTcwNGM1YyAxMDA2NDQNCi0tLSBh L2xpYi9saWJydGVfbHBtL3J0ZV9scG0uaA0KKysrIGIvbGliL2xpYnJ0ZV9scG0vcnRlX2xwbS5o DQpAQCAtMzU0LDYgKzM1NCwxMCBAQCBydGVfbHBtX2xvb2t1cChzdHJ1Y3QgcnRlX2xwbSAqbHBt LCB1aW50MzJfdA0KaXAsDQp1aW50MzJfdCAqbmV4dF9ob3ApDQogIAlwdGJsID0gKGNvbnN0IHVp bnQzMl90ICopKCZscG0tPnRibDI0W3RibDI0X2luZGV4XSk7DQogIAl0YmxfZW50cnkgPSAqcHRi bDsNCg0KKwkvKiBNZW1vcnkgb3JkZXJpbmcgaXMgbm90IHJlcXVpcmVkIGluIGxvb2t1cC4gQmVj YXVzZSBkYXRhZmxvdw0KKwkgKiBkZXBlbmRlbmN5IGV4aXN0cywgY29tcGlsZXIgb3IgSFcgd29u J3QgYmUgYWJsZSB0byByZS1vcmRlcg0KKwkgKiB0aGUgb3BlcmF0aW9ucy4NCisJICovDQogIAkv KiBDb3B5IHRibDggZW50cnkgKG9ubHkgaWYgbmVlZGVkKSAqLw0KICAJaWYgKHVubGlrZWx5KCh0 YmxfZW50cnkgJiBSVEVfTFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSA9PQ0KICAJCQlSVEVf TFBNX1ZBTElEX0VYVF9FTlRSWV9CSVRNQVNLKSkgew0KDQotLQ0KUmVnYXJkcywNClZsYWRpbWly DQoNClJlZ2FyZHMsDQovUnVpZmVuZw0KLS0gDQpSZWdhcmRzLA0KVmxhZGltaXINCg==