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=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS 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 E2DB0C43381 for ; Tue, 26 Feb 2019 14:13:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9218F2173C for ; Tue, 26 Feb 2019 14:13:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="UJtlohOD" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726602AbfBZONS (ORCPT ); Tue, 26 Feb 2019 09:13:18 -0500 Received: from mail-eopbgr80080.outbound.protection.outlook.com ([40.107.8.80]:51760 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725977AbfBZONR (ORCPT ); Tue, 26 Feb 2019 09:13:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MBWcOfYqu1xI4F2LNvCZ8hAxjgKzN9+cc9JB/OB3B4k=; b=UJtlohODBhwBtmiOqCCUkD9BQwCK9sdgoxBKUFV1pztim70P95EX1HMhpeNOGUkgBbJoadhr81YpuVYse4gGWQ/wy46W1ZL98qmCGiU8i4OnTHuBRWJuWmzdrFYmUivrn5SxqbQ5rEC5Urrq7wPlgiAxLJ8UqMhO7IQ6Wh4XU3c= Received: from AM6PR05MB5460.eurprd05.prod.outlook.com (20.177.118.158) by AM6PR05MB4310.eurprd05.prod.outlook.com (52.135.162.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.14; Tue, 26 Feb 2019 14:13:11 +0000 Received: from AM6PR05MB5460.eurprd05.prod.outlook.com ([fe80::6c:a664:73ad:9804]) by AM6PR05MB5460.eurprd05.prod.outlook.com ([fe80::6c:a664:73ad:9804%4]) with mapi id 15.20.1643.019; Tue, 26 Feb 2019 14:13:11 +0000 From: Boris Pismenny To: Vakul Garg , Aviad Yehezkel , "davejwatson@fb.com" , "john.fastabend@gmail.com" , "daniel@iogearbox.net" , "netdev@vger.kernel.org" CC: Eran Ben Elisha Subject: Re: [PATCH net 2/4] tls: Fix write space handling Thread-Topic: [PATCH net 2/4] tls: Fix write space handling Thread-Index: AQHUzcylEem3BiVCcUGYiKz6t5qMNaXyB7aAgAAVqwA= Date: Tue, 26 Feb 2019 14:13:10 +0000 Message-ID: <10dd7db6-1891-82ca-6a12-e27416e1e98b@mellanox.com> References: <20190226121235.20784-1-borisp@mellanox.com> <20190226121235.20784-3-borisp@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM5PR06CA0035.eurprd06.prod.outlook.com (2603:10a6:206:2::48) To AM6PR05MB5460.eurprd05.prod.outlook.com (2603:10a6:20b:5b::30) authentication-results: spf=none (sender IP is ) smtp.mailfrom=borisp@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2ad77581-5b33-44ec-a8f4-08d69bf489e2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);SRVR:AM6PR05MB4310; x-ms-traffictypediagnostic: AM6PR05MB4310: x-microsoft-exchange-diagnostics: =?utf-8?B?MTtBTTZQUjA1TUI0MzEwOzIzOkVPTnpIK28xdnk3NDFZcXpRaFRJcFkyaG92?= =?utf-8?B?NEozbHdvRFZSVEZ4Ym9aVjdQMzQ0cHVDWk9Ld3JkUlZPWGVFMzFkTFFUbjJn?= =?utf-8?B?a0xFVW1qTCtPSzdwRklmNE9TclFSckRnMDNSOFhEQ2dReVpGcVBJZzBhVWl0?= =?utf-8?B?VXR3ZjlIZ0plMFlFeEJ0TEozQSttMzJTcGdkVzNPRjFoSzVWSFYwbG9IWWtk?= =?utf-8?B?ZXN6cW41bTlrQzVFVTNrblJUZk1FQXZDV2cwTE5LbzFGT0RSbVQrcFpkZXlp?= =?utf-8?B?ZW84TGE4eFFRS1JzQjMrRVhwcEdDMGtVN204S0dKODE4M3hTU3JsWWI1RDN4?= =?utf-8?B?WDd0NWR2cEZ0VjRad0FMTEgxa2NZK25CU0JxWHBkMHJuNldMY1JIb09EbjBF?= =?utf-8?B?ZmJsRkJXazA3WnUzYmxEdEJwQXhQb1JNaEVtMThDMTlRTDRVVEhmanl4UTBH?= =?utf-8?B?MHFLWjlncmk3amtQUjVHM0lXZ01qWG5ZV1B5RnEvRzVCOEpZUnBPelgxc0Qv?= =?utf-8?B?RHNFM3FwUDk2RmxJZm95WXNhR3ZDNXhEbjdyVDFjSys5a3R6Umg5bEd4MCtY?= =?utf-8?B?ekk4V0U1c01DNktQQ05CWmlJUHM3aVdJcHB5b2wxUVBqbURsZUNWNVpkS0JK?= =?utf-8?B?QmhDTUlUSUQrSzRzYm5kbGhNaFU3M3g5SEV4eEJRRXBMRkhTTHlYYlhid2Z2?= =?utf-8?B?VGVzWGVhT0hsQkRUbGdzZDFWckxPam1ETmdhTW5NRG5xZUw5S08rTnZtaFpZ?= =?utf-8?B?RUs0d1lGU2dOcTVaTkpBc2k5KzBkYVE5QUd4QitQTUUrVHY2eU9NekxZY0pX?= =?utf-8?B?S2dhTzNrd2tMS0dUTDF0WFVtVGt0KzlmK2d5ZmlXaDRXRnFxOC9Rd2YrMzNr?= =?utf-8?B?VFBvQTdzL2NDTjJ0SVlNSjFMMnZwaFhKRWpVQTB3L3BEeDA5UitVSlkrc3hs?= =?utf-8?B?M3g3b0paZThmN3lyUDBKM21aWk1KMC8weFRyenpwN3ZpaVN3ZUxpVytIQVFn?= =?utf-8?B?Z2hkSWFsZ21KQmdXNDRYaCtiSlcwRmI2enEyODFHazZZS0YwSFZudjFVcUhX?= =?utf-8?B?dDMyRS9TVlh3T0ZzbFo0YnN0eWw2OFVNWnUxTEk0d0dkakVqY2g3N3hKckRM?= =?utf-8?B?Y0phN1BvTGZVb2FHSE84My8rK3NVT2ljZ281Y2FmeStxcEIyeXBsYlB1anI5?= =?utf-8?B?cDY1QVhkcytSRDZvMGRpMk9CUnFNY1hYQ2d0c3pDV3RiREwxNUZPOFJMYlFi?= =?utf-8?B?M0dUcG5FVFZLRXg5eHVOenRTQXg2UEFDWVhqamYrL2VPTzFUQnFTeEhQdEdK?= =?utf-8?B?cjZpMWJoWDJhRkVUN0Mwbi9jQkUrWkxmcXhUZmZUVFQ2ZGxrWHpTbnZDU3Vw?= =?utf-8?B?ZG5LWm1TY0xqVnBGKzFPOXQvK2NnSmhlRU1CdEV4TWRPb2JCa1RYZUNqWlRy?= =?utf-8?B?eExFa1dRSFlVL09lMHR2QjQxcWRHUGIrY3R1RXRzbXVUdjlSbTJINTNLWFZL?= =?utf-8?B?UUY3R05LRlE5R0FCWGJOQjVFcVFmNHdIQmU5YnV3MVA4d29iL1VvZTZqSXVC?= =?utf-8?B?OFc3TTl0VXZRSjZzNkduaEhmekJrcE1HZE9uV05OYmJmc2JCam5Sbnk4UGZH?= =?utf-8?B?bldETHpyenpuWHVoS3cyWEU4ZUQzdDJQRktyQjlkMVM1ektJRldJWk8rajJL?= =?utf-8?B?OWxYR0VzRmVIeE80d0QvSWZpUnhNaXdrUVlkTjZlRXFGUDBXYmMycWVqWkNK?= =?utf-8?B?ZGdaMTR0SDFiZGlYVXVIdVJmcmJXajlYcWNQRExFU20wejQrZ29lRmhsRURQ?= =?utf-8?B?UzVmaXltc0h2UWloRG9MejdBWnNUUTAxVU9ZMndtT3ZMdUtvZXFIUUtHMTdB?= =?utf-8?Q?nX1O0uwDSFk=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 096029FF66 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(39860400002)(396003)(136003)(346002)(366004)(13464003)(199004)(189003)(6512007)(110136005)(107886003)(105586002)(106356001)(6246003)(25786009)(53936002)(316002)(4326008)(26005)(446003)(11346002)(36756003)(81166006)(102836004)(486006)(2616005)(31686004)(81156014)(476003)(186003)(6436002)(8936002)(6486002)(99286004)(86362001)(2201001)(3846002)(6116002)(386003)(6506007)(76176011)(8676002)(229853002)(53546011)(52116002)(305945005)(7736002)(71200400001)(71190400001)(14444005)(2906002)(31696002)(66066001)(256004)(478600001)(14454004)(2501003)(5660300002)(97736004)(68736007)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB4310;H:AM6PR05MB5460.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Q4yjLb/kUf2udaUOuu9Fl5WZhSLThwxM13B+vpsjFRLyxs/KseHtTYBcqVJXAO1ycG4RzkJZDabLTbVLwWfMZbeBLxhWyep+0quPpD9BrMdUZ0enmT0SEYN95qxJqsvswvSvJ3i3ZpCZD9i1pyXeZqRqM+b9giQqhhMitCaoLJU0tlIYyXSVRl/3LvfUOXy9+ZfqMnl+LaxDlsOoPPaoS9FlCaUMuJt4mfDhRaJ8xzsGgccPnBgeBppnJ25pIi/tgwww85IaFAGHl0YSxZC/lBMRamv/snR/C9GXRJ4TchngWEJZciz6jUugVvmsiSL2MxsMSqXhabvgAAv3Mj+zeEypb+uaP3is3IT8LsCLfFTRWzjn7EFutUFLPTB6DdaALEAE6OjX5eVdaHmT52Ki7RcocLnEHulTk9O9crof70o= Content-Type: text/plain; charset="utf-8" Content-ID: <3313000307B0B54B9F191DC1BA664BB4@eurprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ad77581-5b33-44ec-a8f4-08d69bf489e2 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Feb 2019 14:13:10.0847 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB4310 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org DQoNCk9uIDIvMjYvMjAxOSAyOjQ5IFBNLCBWYWt1bCBHYXJnIHdyb3RlOg0KPiANCj4gDQo+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogQm9yaXMgUGlzbWVubnkgPGJvcmlz cEBtZWxsYW5veC5jb20+DQo+PiBTZW50OiBUdWVzZGF5LCBGZWJydWFyeSAyNiwgMjAxOSA1OjQz IFBNDQo+PiBUbzogYXZpYWR5ZUBtZWxsYW5veC5jb207IGRhdmVqd2F0c29uQGZiLmNvbTsNCj4+ IGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbTsgZGFuaWVsQGlvZ2VhcmJveC5uZXQ7IFZha3VsIEdh cmcNCj4+IDx2YWt1bC5nYXJnQG54cC5jb20+OyBuZXRkZXZAdmdlci5rZXJuZWwub3JnDQo+PiBD YzogZXJhbmJlQG1lbGxhbm94LmNvbTsgYm9yaXNwQG1lbGxhbm94LmNvbQ0KPj4gU3ViamVjdDog W1BBVENIIG5ldCAyLzRdIHRsczogRml4IHdyaXRlIHNwYWNlIGhhbmRsaW5nDQo+Pg0KPj4gVExT IGRldmljZSBjYW5ub3QgdXNlIHRoZSBzdyBjb250ZXh0LiBUaGlzIHBhdGNoIHJldHVybnMgdGhl IG9yaWdpbmFsDQo+PiB0bHMgZGV2aWNlIHdyaXRlIHNwYWNlIGhhbmRsZXIgYW5kIG1vdmVzIHRo ZSBzdy9kZXZpY2Ugc3BlY2lmaWMgcG9ydGlvbnMNCj4+IHRvIHRoZSByZWxldmFudCBmaWxlcy4N Cj4+DQo+PiBGaXhlczogYTQyMDU1ZThkMmMzICgibmV0L3RsczogQWRkIHN1cHBvcnQgZm9yIGFz eW5jIGVuY3J5cHRpb24gb2YgcmVjb3Jkcw0KPj4gZm9yIHBlcmZvcm1hbmNlIikNCj4+IFNpZ25l ZC1vZmYtYnk6IEJvcmlzIFBpc21lbm55IDxib3Jpc3BAbWVsbGFub3guY29tPg0KPj4gUmV2aWV3 ZWQtYnk6IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4NCj4+IC0tLQ0KPj4g ICBpbmNsdWRlL25ldC90bHMuaCAgICB8ICAzICsrKw0KPj4gICBuZXQvdGxzL3Rsc19kZXZpY2Uu YyB8IDE2ICsrKysrKysrKysrKysrKysNCj4+ICAgbmV0L3Rscy90bHNfbWFpbi5jICAgfCAxNyAr KysrKysrKystLS0tLS0tLQ0KPj4gICBuZXQvdGxzL3Rsc19zdy5jICAgICB8IDE1ICsrKysrKysr KysrKysrKw0KPj4gICA0IGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Rscy5oIGIvaW5jbHVkZS9u ZXQvdGxzLmgNCj4+IGluZGV4IGE1MjhhMDgyZGE3My4uOWQ3YzUzNzM3YjEzIDEwMDY0NA0KPj4g LS0tIGEvaW5jbHVkZS9uZXQvdGxzLmgNCj4+ICsrKyBiL2luY2x1ZGUvbmV0L3Rscy5oDQo+PiBA QCAtNTE5LDYgKzUxOSw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0bHNfc3dfaGFzX2N0eF90eChj b25zdCBzdHJ1Y3Qgc29jaw0KPj4gKnNrKQ0KPj4gICAJcmV0dXJuICEhdGxzX3N3X2N0eF90eChj dHgpOw0KPj4gICB9DQo+Pg0KPj4gK2ludCB0bHNfc3dfd3JpdGVfc3BhY2Uoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCk7DQo+PiAraW50IHRsc19kZXZpY2Vfd3JpdGVf c3BhY2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCk7DQo+PiArDQo+ PiAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRsc19vZmZsb2FkX2NvbnRleHRfcnggKg0KPj4gICB0 bHNfb2ZmbG9hZF9jdHhfcngoY29uc3Qgc3RydWN0IHRsc19jb250ZXh0ICp0bHNfY3R4KQ0KPj4g ICB7DQo+PiBkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfZGV2aWNlLmMgYi9uZXQvdGxzL3Rsc19k ZXZpY2UuYw0KPj4gaW5kZXggM2U1ZThlMDIxYTg3Li5lODk4OGIzZjMyMzYgMTAwNjQ0DQo+PiAt LS0gYS9uZXQvdGxzL3Rsc19kZXZpY2UuYw0KPj4gKysrIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMN Cj4+IEBAIC01NDYsNiArNTQ2LDIyIEBAIHN0YXRpYyBpbnQgdGxzX2RldmljZV9wdXNoX3BlbmRp bmdfcmVjb3JkKHN0cnVjdA0KPj4gc29jayAqc2ssIGludCBmbGFncykNCj4+ICAgCXJldHVybiB0 bHNfcHVzaF9kYXRhKHNrLCAmbXNnX2l0ZXIsIDAsIGZsYWdzLA0KPj4gVExTX1JFQ09SRF9UWVBF X0RBVEEpOw0KPj4gICB9DQo+Pg0KPj4gK2ludCB0bHNfZGV2aWNlX3dyaXRlX3NwYWNlKHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpjdHgpDQo+PiArew0KPj4gKwlpbnQgcmMg PSAwOw0KPj4gKw0KPj4gKwlpZiAoIXNrLT5za193cml0ZV9wZW5kaW5nICYmIHRsc19pc19wYXJ0 aWFsbHlfc2VudF9yZWNvcmQoY3R4KSkgew0KPj4gKwkJZ2ZwX3Qgc2tfYWxsb2NhdGlvbiA9IHNr LT5za19hbGxvY2F0aW9uOw0KPj4gKw0KPj4gKwkJc2stPnNrX2FsbG9jYXRpb24gPSBHRlBfQVRP TUlDOw0KPj4gKwkJcmMgPSB0bHNfcHVzaF9wYXJ0aWFsX3JlY29yZChzaywgY3R4LA0KPj4gKwkJ CQkJICAgICBNU0dfRE9OVFdBSVQgfA0KPj4gTVNHX05PU0lHTkFMKTsNCj4+ICsJCXNrLT5za19h bGxvY2F0aW9uID0gc2tfYWxsb2NhdGlvbjsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlyZXR1cm4gcmM7 DQo+PiArfQ0KPj4gKw0KPj4gICB2b2lkIGhhbmRsZV9kZXZpY2VfcmVzeW5jKHN0cnVjdCBzb2Nr ICpzaywgdTMyIHNlcSwgdTY0IHJjZF9zbikNCj4+ICAgew0KPj4gICAJc3RydWN0IHRsc19jb250 ZXh0ICp0bHNfY3R4ID0gdGxzX2dldF9jdHgoc2spOw0KPj4gZGlmZiAtLWdpdCBhL25ldC90bHMv dGxzX21haW4uYyBiL25ldC90bHMvdGxzX21haW4uYw0KPj4gaW5kZXggN2UwNWFmNzU1MzZkLi4x MWMxOTgwYTc1Y2IgMTAwNjQ0DQo+PiAtLS0gYS9uZXQvdGxzL3Rsc19tYWluLmMNCj4+ICsrKyBi L25ldC90bHMvdGxzX21haW4uYw0KPj4gQEAgLTIxMiw3ICsyMTIsNyBAQCBpbnQgdGxzX3B1c2hf cGFydGlhbF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QNCj4+IHRsc19jb250ZXh0ICpj dHgsDQo+PiAgIHN0YXRpYyB2b2lkIHRsc193cml0ZV9zcGFjZShzdHJ1Y3Qgc29jayAqc2spDQo+ PiAgIHsNCj4+ICAgCXN0cnVjdCB0bHNfY29udGV4dCAqY3R4ID0gdGxzX2dldF9jdHgoc2spOw0K Pj4gLQlzdHJ1Y3QgdGxzX3N3X2NvbnRleHRfdHggKnR4X2N0eCA9IHRsc19zd19jdHhfdHgoY3R4 KTsNCj4+ICsJaW50IHJjOw0KPj4NCj4+ICAgCS8qIElmIGluX3RjcF9zZW5kcGFnZXMgY2FsbCBs b3dlciBwcm90b2NvbCB3cml0ZSBzcGFjZSBoYW5kbGVyDQo+PiAgIAkgKiB0byBlbnN1cmUgd2Ug d2FrZSB1cCBhbnkgd2FpdGluZyBvcGVyYXRpb25zIHRoZXJlLiBGb3IgZXhhbXBsZQ0KPj4gQEAg LTIyMywxNCArMjIzLDE1IEBAIHN0YXRpYyB2b2lkIHRsc193cml0ZV9zcGFjZShzdHJ1Y3Qgc29j ayAqc2spDQo+PiAgIAkJcmV0dXJuOw0KPj4gICAJfQ0KPj4NCj4+IC0JLyogU2NoZWR1bGUgdGhl IHRyYW5zbWlzc2lvbiBpZiB0eCBsaXN0IGlzIHJlYWR5ICovDQo+PiAtCWlmIChpc190eF9yZWFk eSh0eF9jdHgpICYmICFzay0+c2tfd3JpdGVfcGVuZGluZykgew0KPj4gLQkJLyogU2NoZWR1bGUg dGhlIHRyYW5zbWlzc2lvbiAqLw0KPj4gLQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KEJJVF9UWF9T Q0hFRFVMRUQsICZ0eF9jdHgtDQo+Pj4gdHhfYml0bWFzaykpDQo+PiAtCQkJc2NoZWR1bGVfZGVs YXllZF93b3JrKCZ0eF9jdHgtPnR4X3dvcmsud29yaywgMCk7DQo+PiAtCX0NCj4+ICsjaWZkZWYg Q09ORklHX1RMU19ERVZJQ0UNCj4+ICsJaWYgKGN0eC0+dHhfY29uZiA9PSBUTFNfSFcpDQo+PiAr CQlyYyA9IHRsc19kZXZpY2Vfd3JpdGVfc3BhY2Uoc2ssIGN0eCk7DQo+PiArCWVsc2UNCj4+ICsj ZW5kaWYNCj4+ICsJCXJjID0gdGxzX3N3X3dyaXRlX3NwYWNlKHNrLCBjdHgpOw0KPj4NCj4+IC0J Y3R4LT5za193cml0ZV9zcGFjZShzayk7DQo+PiArCWlmICghcmMpDQo+IA0KPiBXaHkgZG8gd2Ug bmVlZCB0byBjaGVjayAncmMnPw0KPiANCj4gSWYgaXQgaXMgcmVxdWlyZWQsIHRoZW4gJyBjdHgt PnNrX3dyaXRlX3NwYWNlKHNrKScgY2FuIG1vdmUgdG8gdGxzX2RldmljZV93cml0ZV9zcGFjZSgp DQo+IHNpbmNlICB0bHNfc3dfd3JpdGVfc3BhY2UoKSBhbHdheXMgcmV0dXJucyAnMCcuDQo+DQoN Ckl0IGlzIG5vdCBuZWNlc3NhcnkgaW4gdGhlIHNvZnR3YXJlIGNvZGUgcGF0aCBkdWUgdG8gdGhl IGRlbGF5ZWQgd29yayANCnRoYXQgaXMgdGhlcmUuIEJ1dCwgd2UgbmVlZCBpbiB0aGUgZGV2aWNl IGZsb3cuIEknbGwgbW92ZSBpdCB0aGVyZS4NCg0KDQo+PiArCQljdHgtPnNrX3dyaXRlX3NwYWNl KHNrKTsNCj4+ICAgfQ0KPj4NCj4+ICAgc3RhdGljIHZvaWQgdGxzX2N0eF9mcmVlKHN0cnVjdCB0 bHNfY29udGV4dCAqY3R4KQ0KPj4gZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQv dGxzL3Rsc19zdy5jDQo+PiBpbmRleCAxY2M4MzA1ODJmYTguLjRhZmE2N2IwMGFhZiAxMDA2NDQN Cj4+IC0tLSBhL25ldC90bHMvdGxzX3N3LmMNCj4+ICsrKyBiL25ldC90bHMvdGxzX3N3LmMNCj4+ IEBAIC0yMTI2LDYgKzIxMjYsMjEgQEAgc3RhdGljIHZvaWQgdHhfd29ya19oYW5kbGVyKHN0cnVj dCB3b3JrX3N0cnVjdA0KPj4gKndvcmspDQo+PiAgIAlyZWxlYXNlX3NvY2soc2spOw0KPj4gICB9 DQo+Pg0KPj4gK2ludCB0bHNfc3dfd3JpdGVfc3BhY2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg dGxzX2NvbnRleHQgKmN0eCkNCj4+ICt7DQo+PiArCXN0cnVjdCB0bHNfc3dfY29udGV4dF90eCAq dHhfY3R4ID0gdGxzX3N3X2N0eF90eChjdHgpOw0KPj4gKw0KPj4gKwkvKiBTY2hlZHVsZSB0aGUg dHJhbnNtaXNzaW9uIGlmIHR4IGxpc3QgaXMgcmVhZHkgKi8NCj4+ICsJaWYgKGlzX3R4X3JlYWR5 KHR4X2N0eCkgJiYgIXNrLT5za193cml0ZV9wZW5kaW5nKSB7DQo+PiArCQkvKiBTY2hlZHVsZSB0 aGUgdHJhbnNtaXNzaW9uICovDQo+PiArCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoQklUX1RYX1ND SEVEVUxFRCwNCj4+ICsJCQkJICAgICAgJnR4X2N0eC0+dHhfYml0bWFzaykpDQo+PiArCQkJc2No ZWR1bGVfZGVsYXllZF93b3JrKCZ0eF9jdHgtPnR4X3dvcmsud29yaywgMCk7DQo+PiArCX0NCj4+ ICsNCj4+ICsJcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4gICBpbnQgdGxzX3NldF9zd19vZmZs b2FkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpjdHgsIGludCB0eCkNCj4+ ICAgew0KPj4gICAJc3RydWN0IHRsc19jb250ZXh0ICp0bHNfY3R4ID0gdGxzX2dldF9jdHgoc2sp Ow0KPj4gLS0NCj4+IDIuMTIuMg0KPiANCg==