From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30047.outbound.protection.outlook.com [40.107.3.47]) by dpdk.org (Postfix) with ESMTP id 0815D5F28 for ; Fri, 8 Mar 2019 05:23:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y1812eDDQgeHHY1KL/KTWh6w631eajKPOFQDRWHz4h8=; b=hN76ceWaxgSAUqdq9LcQUgHmnd8OasJ6MpIY3f3B0izbrhc1N/Yx8JVZdFG1fKgBSzgZbKQkcdWs5ich4b3e6I0O3aHbp4pQdylFaB/jitHtGq6TowjbhpgURFfNHCqGLLhIlluKkrzUD6qdzFQG6XlnZFe5eT+pC8guWB2MDh0= Received: from VI1PR08MB3167.eurprd08.prod.outlook.com (52.133.15.142) by VI1PR08MB3982.eurprd08.prod.outlook.com (20.178.126.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.18; Fri, 8 Mar 2019 04:23:16 +0000 Received: from VI1PR08MB3167.eurprd08.prod.outlook.com ([fe80::707a:b455:dcb2:9d40]) by VI1PR08MB3167.eurprd08.prod.outlook.com ([fe80::707a:b455:dcb2:9d40%2]) with mapi id 15.20.1665.021; Fri, 8 Mar 2019 04:23:16 +0000 From: "Gavin Hu (Arm Technology China)" To: Ilya Maximets , "dev@dpdk.org" CC: nd , "thomas@monjalon.net" , "jerinj@marvell.com" , "hemant.agrawal@nxp.com" , "Nipun.gupta@nxp.com" , Honnappa Nagarahalli , "olivier.matz@6wind.com" , "bruce.richardson@intel.com" , "konstantin.ananyev@intel.com" , "chaozhu@linux.vnet.ibm.com" Thread-Topic: [PATCH v2] ring: enforce reading the tails before ring operations Thread-Index: AQHU1LF27vtsQ2Xy+0iZsAZL3+5RW6X/3LWAgAAItaCAAAb/gIAADMAQgAEUeFA= Date: Fri, 8 Mar 2019 04:23:16 +0000 Message-ID: References: <1551841661-42892-1-git-send-email-gavin.hu@arm.com> <1551941137-33250-1-git-send-email-gavin.hu@arm.com> <3cdf6747-21f3-d77e-0935-d73b5cc617f6@samsung.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=Gavin.Hu@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0908fec6-7f0b-4aa2-2a21-08d6a37dc965 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR08MB3982; x-ms-traffictypediagnostic: VI1PR08MB3982: x-ms-exchange-purlcount: 2 x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr nodisclaimer: True x-microsoft-exchange-diagnostics: 1; VI1PR08MB3982; 20:N/WrOpz62pkisZck8FGthIYCUNcdgwqUJO4WGQVzVzMNUIdfm6v5ZSO41po5ZX0Y4SQEJ/aB7wsQYYUOnWcnpM+0bGjWMD9jUjXuqfvBJ3UG3YC0tWaJulDS2jDG3iVetk706V7r/HdV0i2GEwCKj4xO8GckjEJj/CXbNJuw7Ps= x-microsoft-antispam-prvs: x-forefront-prvs: 0970508454 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(39860400002)(346002)(376002)(396003)(136003)(13464003)(189003)(199004)(305945005)(229853002)(81166006)(14444005)(33656002)(66066001)(256004)(6436002)(9686003)(3846002)(106356001)(6246003)(93886005)(97736004)(6306002)(53936002)(68736007)(14454004)(74316002)(476003)(11346002)(105586002)(81156014)(55016002)(7736002)(446003)(8936002)(7416002)(478600001)(966005)(110136005)(72206003)(54906003)(316002)(8676002)(6116002)(486006)(99286004)(55236004)(4326008)(2501003)(186003)(6506007)(53546011)(26005)(102836004)(2906002)(71200400001)(76176011)(25786009)(71190400001)(7696005)(52536013)(86362001)(5660300002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR08MB3982; H:VI1PR08MB3167.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: GDK29/SiQdyyv9D7dqKl7Ow8QULNBOHHFm8g+NTZE7WrySxddQLwb1fd0QC9Ir7vILSdCBXh3VYkYJp5dSM1NwF27WUcsDTsVsDJbQV5ra0AQLpCOiy+tSwnB6gU3eJoAyfHuoFcFsDWXI1j2NkE1zLsBlWkK5zsG4VEpt81Udrke8F683TApyY0Tls5oC3qmA9Hs+3uVRqNtI+bgeW3cP5VunlvYqBhj5gRTNGet9Hal9KbBQJKlvkZ1vuGBWZymgKe+8uZn3TIa+9o2bUH2n9Rm2giCiI0iweBVEoawFq4ViIbXIRQUZ7sitimYHzpReYnaP6Y/M2u5PtZD2E4s669Oxp0RkMVPYgAq9cFJ0xDNz7UpsEZ1griTqotb6o1FBWAnaf7p4qaxYClHWZl/TrZ31NuFKHXQTRROCkG8Kg= 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: 0908fec6-7f0b-4aa2-2a21-08d6a37dc965 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2019 04:23:16.3092 (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-Transport-CrossTenantHeadersStamped: VI1PR08MB3982 Subject: Re: [dpdk-dev] [PATCH v2] ring: enforce reading the tails before ring operations 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: , X-List-Received-Date: Fri, 08 Mar 2019 04:23:19 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2F2aW4gSHUgKEFybSBU ZWNobm9sb2d5IENoaW5hKQ0KPiBTZW50OiBUaHVyc2RheSwgTWFyY2ggNywgMjAxOSA2OjQ1IFBN DQo+IFRvOiBJbHlhIE1heGltZXRzIDxpLm1heGltZXRzQHNhbXN1bmcuY29tPjsgZGV2QGRwZGsu b3JnDQo+IENjOiBuZCA8bmRAYXJtLmNvbT47IHRob21hc0Btb25qYWxvbi5uZXQ7IGplcmluakBt YXJ2ZWxsLmNvbTsNCj4gaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgTmlwdW4uZ3VwdGFAbnhwLmNv bTsgSG9ubmFwcGEgTmFnYXJhaGFsbGkNCj4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+ OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOw0KPiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsg a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbTsNCj4gY2hhb3podUBsaW51eC52bmV0LmlibS5j b20NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2Ml0gcmluZzogZW5mb3JjZSByZWFkaW5nIHRoZSB0 YWlscyBiZWZvcmUgcmluZyBvcGVyYXRpb25zDQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBJbHlhIE1heGltZXRzIDxpLm1heGltZXRzQHNhbXN1 bmcuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCA3LCAyMDE5IDU6NDggUE0NCj4gPiBU bzogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8R2F2aW4uSHVAYXJtLmNvbT47DQo+ IGRldkBkcGRrLm9yZw0KPiA+IENjOiBuZCA8bmRAYXJtLmNvbT47IHRob21hc0Btb25qYWxvbi5u ZXQ7IGplcmluakBtYXJ2ZWxsLmNvbTsNCj4gPiBoZW1hbnQuYWdyYXdhbEBueHAuY29tOyBOaXB1 bi5ndXB0YUBueHAuY29tOyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA+IDxIb25uYXBwYS5OYWdh cmFoYWxsaUBhcm0uY29tPjsgb2xpdmllci5tYXR6QDZ3aW5kLmNvbQ0KPiA+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggdjJdIHJpbmc6IGVuZm9yY2UgcmVhZGluZyB0aGUgdGFpbHMgYmVmb3JlIHJpbmcN Cj4gPiBvcGVyYXRpb25zDQo+ID4NCj4gPiBPbiAwNy4wMy4yMDE5IDEyOjI3LCBHYXZpbiBIdSAo QXJtIFRlY2hub2xvZ3kgQ2hpbmEpIHdyb3RlOg0KPiA+ID4NCj4gPiA+DQo+ID4gPj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBJbHlhIE1heGltZXRzIDxpLm1heGlt ZXRzQHNhbXN1bmcuY29tPg0KPiA+ID4+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCA3LCAyMDE5IDQ6 NTIgUE0NCj4gPiA+PiBUbzogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5hKSA8R2F2aW4u SHVAYXJtLmNvbT47DQo+ID4gPj4gZGV2QGRwZGsub3JnDQo+ID4gPj4gQ2M6IG5kIDxuZEBhcm0u Y29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldDsgamVyaW5qQG1hcnZlbGwuY29tOw0KPiA+ID4+IGhl bWFudC5hZ3Jhd2FsQG54cC5jb207IE5pcHVuLmd1cHRhQG54cC5jb207IEhvbm5hcHBhDQo+IE5h Z2FyYWhhbGxpDQo+ID4gPj4gPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+OyBvbGl2aWVy Lm1hdHpANndpbmQuY29tDQo+ID4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2Ml0gcmluZzogZW5m b3JjZSByZWFkaW5nIHRoZSB0YWlscyBiZWZvcmUgcmluZw0KPiA+ID4+IG9wZXJhdGlvbnMNCj4g PiA+Pg0KPiA+ID4+IE9uIDA3LjAzLjIwMTkgOTo0NSwgZ2F2aW4gaHUgd3JvdGU6DQo+ID4gPj4+ IEluIHdlYWsgbWVtb3J5IG1vZGVscywgbGlrZSBhcm02NCwgcmVhZGluZyB0aGUge3Byb2QsY29u c30udGFpbCBtYXkNCj4gZ2V0DQo+ID4gPj4+IHJlb3JkZXJlZCBhZnRlciByZWFkaW5nIG9yIHdy aXRpbmcgdGhlIHJpbmcgc2xvdHMsIHdoaWNoIGNvcnJ1cHRzIHRoZQ0KPiByaW5nDQo+ID4gPj4+ IGFuZCBzdGFsZSBkYXRhIGlzIG9ic2VydmVkLg0KPiA+ID4+Pg0KPiA+ID4+PiBUaGlzIGlzc3Vl IHdhcyByZXBvcnRlZCBieSBOWFAgb24gOC1BNzIgRFBBQTIgYm9hcmQuIFRoZSBwcm9ibGVtDQo+ IGlzDQo+ID4gPj4gbW9zdA0KPiA+ID4+PiBsaWtlbHkgY2F1c2VkIGJ5IG1pc3NpbmcgdGhlIGFj cXVpcmUgc2VtYW50aWNzIHdoZW4gcmVhZGluZyBjb25zLnRhaWwNCj4gKGluDQo+ID4gPj4+IFNQ IGVucXVldWUpIG9yIHByb2QudGFpbCAoaW4gU0MgZGVxdWV1ZSkgd2hpY2ggbWFrZXMgaXQgcG9z c2libGUgdG8NCj4gPiByZWFkDQo+ID4gPj4gYQ0KPiA+ID4+PiBzdGFsZSB2YWx1ZSBmcm9tIHRo ZSByaW5nIHNsb3RzLg0KPiA+ID4+Pg0KPiA+ID4+PiBGb3IgTVAgKGFuZCBNQykgY2FzZSwgcnRl X2F0b21pYzMyX2NtcHNldCgpIGFscmVhZHkgcHJvdmlkZXMgdGhlDQo+ID4gPj4gcmVxdWlyZWQN Cj4gPiA+Pj4gb3JkZXJpbmcuIFRoaXMgcGF0Y2ggaXMgdG8gcHJldmVudCByZWFkaW5nIGFuZCB3 cml0aW5nIHRoZSByaW5nIHNsb3RzIGdldA0KPiA+ID4+PiByZW9yZGVyZWQgYmVmb3JlIHJlYWRp bmcge3Byb2QsY29uc30udGFpbCBmb3IgU1AgKGFuZCBTQykgY2FzZS4NCj4gPiA+Pg0KPiA+ID4+ IFJlYWQgYmFycmllciBydGVfc21wX3JtYigpIGlzIE9LIHRvIHByZXZlbnQgcmVhZGluZyB0aGUg cmluZyBnZXQNCj4gPiA+PiByZW9yZGVyZWQNCj4gPiA+PiBiZWZvcmUgcmVhZGluZyB0aGUgdGFp bC4gSG93ZXZlciwgdG8gcHJldmVudCAqd3JpdGluZyogdGhlIHJpbmcgZ2V0DQo+ID4gPj4gcmVv cmRlcmVkDQo+ID4gPj4gKmJlZm9yZSByZWFkaW5nKiB0aGUgdGFpbCB5b3UgbmVlZCBhIGZ1bGwg bWVtb3J5IGJhcnJpZXIsIGkuZS4NCj4gPiA+PiBydGVfc21wX21iKCkuDQo+ID4gPg0KPiA+ID4g SVNITEQocnRlX3NtcF9ybWIgaXMgRE1CKGlzaGxkKSBvcmRlcnMgTEQvTEQgYW5kIExEL1NULCB3 aGlsZQ0KPiBXTUIoU1QNCj4gPiBPcHRpb24pIG9yZGVycyBTVC9TVC4NCj4gPiA+IEZvciBtb3Jl IGRldGFpbHMsIHBsZWFzZSByZWZlciB0bzogVGFibGUgQjItMSBFbmNvZGluZyBvZiB0aGUgRE1C IGFuZA0KPiBEU0INCj4gPiA8b3B0aW9uPiBwYXJhbWV0ZXIgIGluDQo+ID4gPiBodHRwczovL2Rl dmVsb3Blci5hcm0uY29tL2RvY3MvZGRpMDQ4Ny9sYXRlc3QvYXJtLWFyY2hpdGVjdHVyZS0NCj4g PiByZWZlcmVuY2UtbWFudWFsLWFybXY4LWZvci1hcm12OC1hLWFyY2hpdGVjdHVyZS1wcm9maWxl DQo+ID4NCj4gPiBJIHNlZS4gQnV0IHlvdSBoYXZlIHRvIGNoYW5nZSB0aGUgcnRlX3NtcF9ybWIo KSBmdW5jdGlvbiBkZWZpbml0aW9uIGluDQo+ID4gbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1 ZGUvZ2VuZXJpYy9ydGVfYXRvbWljLmggYW5kIGFzc3VyZSB0aGF0IGFsbA0KPiA+IG90aGVyIGFy Y2hpdGVjdHVyZXMgZm9sbG93cyBzYW1lIHJ1bGVzLg0KPiA+IE90aGVyd2lzZSwgdGhpcyBjaGFu Z2UgaXMgbG9naWNhbGx5IHdyb25nLCBiZWNhdXNlIHJlYWQgYmFycmllciBpbiBjdXJyZW50DQo+ ID4gZGVmaW5pdGlvbiBjb3VsZCBub3QgYmUgdXNlZCB0byBvcmRlciBMb2FkIHdpdGggU3RvcmUu DQo+ID4NCj4gDQo+IEdvb2QgcG9pbnRzLCBsZXQgbWUgcmUtdGhpbmsgaG93IHRvIGhhbmRsZSBm b3Igb3RoZXIgYXJjaGl0ZWN0dXJlcy4NCj4gRnVsbCBNQiBpcyByZXF1aXJlZCBmb3Igb3RoZXIg YXJjaGl0ZWN0dXJlcyh4ODY/IFBwYz8pLCBidXQgZm9yIGFybSwgcmVhZA0KPiBiYXJyaWVyKGxv YWQvc3RvcmUgYW5kIGxvYWQvbG9hZCkgaXMgZW5vdWdoLg0KDQpIaSBJbHlhLA0KDQpJIHdvdWxk IGV4cGFuZCB0aGUgcm1iIGRlZmluaXRpb24gdG8gY292ZXIgbG9hZC9zdG9yZSwgaW4gYWRkaXRp b24gdG8gbG9hZC9sb2FkLg0KRm9yIFg4NiwgYXMgYSBzdHJvbmcgbWVtb3J5IG9yZGVyIG1vZGVs LCBybWIgaXMgYWN0dWFsbHkgZXF1aXZhbGVudCB0byBtYiwgYXMgaW1wbGVtZW50ZWQgYXMgYSBj b21waWxlciBiYXJyaWVyOiBydGVfY29tcGlsZXJfYmFycmllciwgYXJtMzIgaXMgYWxzbyB0aGlz IGNhc2UuDQpGb3IgUFBDLCBib3RoIDMyIGFuZCA2NC1iaXQsIHJtYj13bWI9bWIsIGx3c3luYy9z eW5jIG9yZGVycyBsb2FkL3N0b3JlLCBsb2FkL2xvYWQsIHN0b3JlL2xvYWQsIHN0b3JlL3N0b3Jl LCBsb29raW5nIGF0IHRoZSB0YWJsZSBvbiB0aGlzIHBhZ2U6DQpodHRwczovL3d3dy5pYm0uY29t L2RldmVsb3BlcndvcmtzL3N5c3RlbXMvYXJ0aWNsZXMvcG93ZXJwYy5odG1sIA0KDQpJbiBzdW1t YXJ5LCB3ZSBhcmUgc2FmZSB0byBleHBhbmQgdGhpcyBkZWZpbml0aW9uIGZvciBhbGwgdGhlIGFy Y2hpdGVjdHVyZXMgRFBESyBzdXBwb3J0PyANCkFueSBjb21tZW50cyBhcmUgd2VsY29tZSENCg0K QlIuIEdhdmluDQoNCj4gPiA+DQo+ID4gPj4NCj4gPiA+Pj4NCj4gPiA+Pj4gU2lnbmVkLW9mZi1i eTogZ2F2aW4gaHUgPGdhdmluLmh1QGFybS5jb20+DQo+ID4gPj4+IFJldmlld2VkLWJ5OiBPbGEg TGlsamVkYWhsIDxPbGEuTGlsamVkYWhsQGFybS5jb20+DQo+ID4gPj4+IFRlc3RlZC1ieTogTmlw dW4gR3VwdGEgPG5pcHVuLmd1cHRhQG54cC5jb20+DQo+ID4gPj4+IC0tLQ0KPiA+ID4+PiAgbGli L2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2dlbmVyaWMuaCB8IDE2ICsrKysrKysrKystLS0tLS0NCj4g PiA+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0K PiA+ID4+Pg0KPiA+ID4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2dl bmVyaWMuaA0KPiA+ID4+IGIvbGliL2xpYnJ0ZV9yaW5nL3J0ZV9yaW5nX2dlbmVyaWMuaA0KPiA+ ID4+PiBpbmRleCBlYTdkYmU1Li4xYmQzZGZkIDEwMDY0NA0KPiA+ID4+PiAtLS0gYS9saWIvbGli cnRlX3JpbmcvcnRlX3JpbmdfZ2VuZXJpYy5oDQo+ID4gPj4+ICsrKyBiL2xpYi9saWJydGVfcmlu Zy9ydGVfcmluZ19nZW5lcmljLmgNCj4gPiA+Pj4gQEAgLTkwLDkgKzkwLDExIEBAIF9fcnRlX3Jp bmdfbW92ZV9wcm9kX2hlYWQoc3RydWN0IHJ0ZV9yaW5nDQo+ICpyLA0KPiA+ID4+IHVuc2lnbmVk IGludCBpc19zcCwNCj4gPiA+Pj4gIAkJCXJldHVybiAwOw0KPiA+ID4+Pg0KPiA+ID4+PiAgCQkq bmV3X2hlYWQgPSAqb2xkX2hlYWQgKyBuOw0KPiA+ID4+PiAtCQlpZiAoaXNfc3ApDQo+ID4gPj4+ IC0JCQlyLT5wcm9kLmhlYWQgPSAqbmV3X2hlYWQsIHN1Y2Nlc3MgPSAxOw0KPiA+ID4+PiAtCQll bHNlDQo+ID4gPj4+ICsJCWlmIChpc19zcCkgew0KPiA+ID4+PiArCQkJci0+cHJvZC5oZWFkID0g Km5ld19oZWFkOw0KPiA+ID4+PiArCQkJcnRlX3NtcF9ybWIoKTsNCj4gPiA+Pj4gKwkJCXN1Y2Nl c3MgPSAxOw0KPiA+ID4+PiArCQl9IGVsc2UNCj4gPiA+Pj4gIAkJCXN1Y2Nlc3MgPSBydGVfYXRv bWljMzJfY21wc2V0KCZyLT5wcm9kLmhlYWQsDQo+ID4gPj4+ICAJCQkJCSpvbGRfaGVhZCwgKm5l d19oZWFkKTsNCj4gPiA+Pj4gIAl9IHdoaWxlICh1bmxpa2VseShzdWNjZXNzID09IDApKTsNCj4g PiA+Pj4gQEAgLTE1OCw5ICsxNjAsMTEgQEAgX19ydGVfcmluZ19tb3ZlX2NvbnNfaGVhZChzdHJ1 Y3QNCj4gcnRlX3JpbmcNCj4gPiAqciwNCj4gPiA+PiB1bnNpZ25lZCBpbnQgaXNfc2MsDQo+ID4g Pj4+ICAJCQlyZXR1cm4gMDsNCj4gPiA+Pj4NCj4gPiA+Pj4gIAkJKm5ld19oZWFkID0gKm9sZF9o ZWFkICsgbjsNCj4gPiA+Pj4gLQkJaWYgKGlzX3NjKQ0KPiA+ID4+PiAtCQkJci0+Y29ucy5oZWFk ID0gKm5ld19oZWFkLCBzdWNjZXNzID0gMTsNCj4gPiA+Pj4gLQkJZWxzZQ0KPiA+ID4+PiArCQlp ZiAoaXNfc2MpIHsNCj4gPiA+Pj4gKwkJCXItPmNvbnMuaGVhZCA9ICpuZXdfaGVhZDsNCj4gPiA+ Pj4gKwkJCXJ0ZV9zbXBfcm1iKCk7DQo+ID4gPj4+ICsJCQlzdWNjZXNzID0gMTsNCj4gPiA+Pj4g KwkJfSBlbHNlDQo+ID4gPj4+ICAJCQlzdWNjZXNzID0gcnRlX2F0b21pYzMyX2NtcHNldCgmci0+ Y29ucy5oZWFkLA0KPiA+ID4+ICpvbGRfaGVhZCwNCj4gPiA+Pj4gIAkJCQkJKm5ld19oZWFkKTsN Cj4gPiA+Pj4gIAl9IHdoaWxlICh1bmxpa2VseShzdWNjZXNzID09IDApKTsNCj4gPiA+Pj4NCg==