Received: by 10.192.165.148 with SMTP id m20csp586538imm; Fri, 20 Apr 2018 11:42:59 -0700 (PDT) X-Google-Smtp-Source: AIpwx48Kx89x1VKWDPQseFbL622Vp29iDuyOB8pMRrCPaVzMWhQZysNpElfN3EhIZJASuzmL0xs8 X-Received: by 10.98.214.218 with SMTP id a87mr6339113pfl.200.1524249779553; Fri, 20 Apr 2018 11:42:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524249779; cv=none; d=google.com; s=arc-20160816; b=0yN4NFN2MjK//wnigO1A4xpr51llM54aO0DzUA8VbNwTj70DPBk576y/MFrm/D0yUg g/0MjqBNBeJrXdZGX1ZqAm0JFlW/zp27MNNpVZLzNM8N3Y3CIq3v8VkTLFOiN3TOqeUr K3UOFgEERxO12qX/gZfVcUzccYTTqvlncBAXYN0vdf4nPgZdnKqXIIhR44M4cQfOr6Cs 3J6zxjCvRvHOUk8Hu7jqVMkCb4jivWWkhla2rxjHTvDS5vk16XUD8i0mmB/lq/w8+i6c EGhK61Kufwmp6zjBABhAXxo7izQegpZgJPK0E2n4TQaIcVv7KWjmrtKdq8/Dlnx+brhB UXNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:to:from:dkim-signature :arc-authentication-results; bh=dTM5HZyBkX/2qlQvHI1HDbJMYMeKPG7xQdZYwrfFTC8=; b=L04GbAG10DgcmiUxuvPBOkat2ygKVVaVyJPAyBPbC4jKlqrbKeE1TLOvkqG/szhzmN se5ZLlFUrwYTpsa2UouuXfVyo26Vucc2Rd+Dv2qqiC7j9UuiMIpHJJyOT3D3WjZcdm/2 Urg69LPcnw4Yf1tLS7+GqDb26SwwHXmUItCuu7OWzdmKH9subuEYT2FgS7rzo6xQGXky X+OsQN/wWCemYuOpvVEPtn7PjCic8rmUbZj5O+NNaITixHlVVrW554lcE0ODVziFMTfJ cCNf7C5F9iDQBLPhBKaJOv6aSa+9v4NCqJY4tOQGfNjFcK3UQDy+0kJjBqnVcb+432xk NIDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=DvpUkPmq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f31-v6si6247865plb.212.2018.04.20.11.42.45; Fri, 20 Apr 2018 11:42:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=DvpUkPmq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753920AbeDTSlV (ORCPT + 99 others); Fri, 20 Apr 2018 14:41:21 -0400 Received: from mail-bl2nam02on0090.outbound.protection.outlook.com ([104.47.38.90]:33618 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753607AbeDTSlT (ORCPT ); Fri, 20 Apr 2018 14:41:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=dTM5HZyBkX/2qlQvHI1HDbJMYMeKPG7xQdZYwrfFTC8=; b=DvpUkPmqmTWm4pcCTnsCUkKMkDjy579FzAj2QII6a6TbXUiPf18bwBquRn3nbLNWQd+YJP23XtV3acHz/uiypKBOR3LiexRiURgiHP3Tmi84duQBCoguuYG1Md8hFcoFSzPeVLuQdIHvlNrMi/Z+aQE3MPPJ6TTxQvFCJhyIOjQ= Received: from MWHPR2101MB0729.namprd21.prod.outlook.com (10.167.161.167) by MWHPR2101MB0810.namprd21.prod.outlook.com (10.167.162.167) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.715.5; Fri, 20 Apr 2018 18:41:16 +0000 Received: from MWHPR2101MB0729.namprd21.prod.outlook.com ([fe80::40ba:e5b4:3d8d:325e]) by MWHPR2101MB0729.namprd21.prod.outlook.com ([fe80::40ba:e5b4:3d8d:325e%2]) with mapi id 15.20.0715.010; Fri, 20 Apr 2018 18:41:16 +0000 From: Long Li To: Tom Talpey , Steve French , "linux-cifs@vger.kernel.org" , "samba-technical@lists.samba.org" , "linux-kernel@vger.kernel.org" , "linux-rdma@vger.kernel.org" Subject: RE: [Patch v4] cifs: Allocate validate negotiation request through kmalloc Thread-Topic: [Patch v4] cifs: Allocate validate negotiation request through kmalloc Thread-Index: AQHT2Cb+Jx11ZVs1LUqy6Dx2GbNJSaQJvwwAgAA9l1A= Date: Fri, 20 Apr 2018 18:41:16 +0000 Message-ID: References: <20180419213807.3128-1-longli@linuxonhyperv.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [2001:4898:80e8:c::2e0] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MWHPR2101MB0810;7:UsJ2Uie+2Avny0p/wgfqpXZonmmbtI8IEy1yiEhgjJWy4EOmnSTDGWNUMZjpCAh5jy59EEEvgfG4eHomaJni3vrpAPd3fcMkOU+fVdPuXcapaT7voIyVo7UWzIbsMYdiYg13ZMcXLnBZadVOZlW0alecvjZ19JmFQwfS2+70hn/eg1bUdbE+SWIT9efCufMdj404SC38GrWp8/2WoTO35KtRLW6f84dlHo3bGpud6JoSJaCB7MxjmvKKROvR2Vs0;20:0lHsviJQfyCnNcsQzwxJ9lgo0LPMx3yOiXlZZ4+E779OtYpobiYS6NuwVy5oA+PyF1LVRJ4NKpLde+1WRpjqvA1I2OCn0HkwiQA9PbOR8asMBOCKq6bZm6mF4603D6YxnPvh1F1NoerQev/ANtpL0TTWuLsB+XOwvjgJK8l5IME= x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(2017052603328)(7193020);SRVR:MWHPR2101MB0810; x-ms-traffictypediagnostic: MWHPR2101MB0810: authentication-results: outbound.protection.outlook.com; spf=skipped (originating message); dkim=none (message not signed) header.d=none; dmarc=none action=none header.from=microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(158342451672863)(89211679590171)(192374486261705); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(61425038)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231232)(944501397)(52105095)(6055026)(61426038)(61427038)(6041310)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:MWHPR2101MB0810;BCL:0;PCL:0;RULEID:;SRVR:MWHPR2101MB0810; x-forefront-prvs: 0648FCFFA8 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39380400002)(396003)(39860400002)(346002)(366004)(376002)(69234005)(305945005)(81166006)(478600001)(7696005)(446003)(316002)(11346002)(2900100001)(46003)(33656002)(3280700002)(110136005)(74316002)(102836004)(6506007)(186003)(59450400001)(53546011)(5660300001)(22452003)(76176011)(10290500003)(86362001)(2201001)(7736002)(8936002)(6436002)(86612001)(6116002)(15650500001)(53936002)(25786009)(9686003)(229853002)(476003)(5250100002)(2906002)(55016002)(8676002)(3660700001)(2501003)(6246003);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR2101MB0810;H:MWHPR2101MB0729.namprd21.prod.outlook.com;FPR:;SPF:None;LANG:en;MLV:sfv; x-microsoft-antispam-message-info: myhdd43F6TkOmPIFaxmzZfDqwQ0cBT61G+y2PVNMNL6GrK5fJT91/LHOfqM/y8bePJ7+nnSyDubHgqXh/4jSgczVEzjarbZsy3wxVJS5NXHEsFwLtXCsG7DRuB1V0B37P1k0sdFsTtoP3X0XY0gFRfdO7IGK+OSAMSQELJkWIcG/k2yjlc6vucLuDGRA36HQ spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 5ee7c83c-e032-4551-ec31-08d5a6ee4cc8 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ee7c83c-e032-4551-ec31-08d5a6ee4cc8 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2018 18:41:16.1425 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR2101MB0810 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBTdWJqZWN0OiBSZTogW1BhdGNoIHY0XSBjaWZzOiBBbGxvY2F0ZSB2YWxpZGF0ZSBuZWdvdGlh dGlvbiByZXF1ZXN0IHRocm91Z2gNCj4ga21hbGxvYw0KPiANCj4gTG9va3MgZ29vZCwgYnV0IEkg aGF2ZSB0d28gcG9zc2libHkgc3R5bGUtcmVsYXRlZCBjb21tZW50cy4NCj4gDQo+IE9uIDQvMTkv MjAxOCA1OjM4IFBNLCBMb25nIExpIHdyb3RlOg0KPiA+IEZyb206IExvbmcgTGkgPGxvbmdsaUBt aWNyb3NvZnQuY29tPg0KPiA+DQo+ID4gVGhlIGRhdGEgYnVmZmVyIGFsbG9jYXRlZCBvbiB0aGUg c3RhY2sgY2FuJ3QgYmUgRE1BJ2VkLA0KPiA+IGliX2RtYV9tYXBfcGFnZSB3aWxsIHJldHVybiBh biBpbnZhbGlkIERNQSBhZGRyZXNzIGZvciBhIGJ1ZmZlciBvbg0KPiA+IHN0YWNrLiBFdmVuIHdv cnNlLCB0aGlzIGluY29ycmVjdCBhZGRyZXNzIGNhbid0IGJlIGRldGVjdGVkIGJ5DQo+ID4gaWJf ZG1hX21hcHBpbmdfZXJyb3IuIFNlbmRpbmcgZGF0YSBmcm9tIHRoaXMgYWRkcmVzcyB0byBoYXJk d2FyZSB3aWxsDQo+ID4gbm90IGZhaWwsIGJ1dCB0aGUgcmVtb3RlIHBlZXIgd2lsbCBnZXQganVu ayBkYXRhLg0KPiA+DQo+ID4gRml4IHRoaXMgYnkgYWxsb2NhdGluZyB0aGUgcmVxdWVzdCBvbiB0 aGUgaGVhcCBpbiBzbWIzX3ZhbGlkYXRlX25lZ290aWF0ZS4NCj4gPg0KPiA+IENoYW5nZXMgaW4g djI6DQo+ID4gUmVtb3ZlZCBkdXBsaWNhdGVkIGNvZGUgb24gZnJlZWluZyBidWZmZXJzIG9uIGZ1 bmN0aW9uIGV4aXQuDQo+ID4gKFRoYW5rcyB0byBQYXJhdiBQYW5kaXQgPHBhcmF2QG1lbGxhbm94 LmNvbT4pIEZpeGVkIHR5cG8gaW4gdGhlIHBhdGNoDQo+ID4gdGl0bGUuDQo+ID4NCj4gPiBDaGFu Z2VzIGluIHYzOg0KPiA+IEFkZGVkICJGaXhlcyIgdG8gdGhlIHBhdGNoLg0KPiA+IENoYW5nZWQg c2V2ZXJhbCBzaXplb2YoKSB0byB1c2UgKnBvaW50ZXIgaW4gcGxhY2Ugb2Ygc3RydWN0Lg0KPiA+ DQo+ID4gQ2hhbmdlcyBpbiB2NDoNCj4gPiBBZGRlZCBkZXRhaWxlZCBjb21tZW50cyBvbiB0aGUg ZmFpbHVyZSB0aHJvdWdoIFJETUEuDQo+ID4gQWxsb2NhdGUgcmVxdWVzdCBidWZmZXIgdXNpbmcg R1BGX05PRlMuDQo+ID4gRml4ZWQgcG9zc2libGUgbWVtb3J5IGxlYWsuDQo+ID4NCj4gPiBGaXhl czogZmYxYzAzOGFkZGM0ICgiQ2hlY2sgU01CMyBkaWFsZWN0cyBhZ2FpbnN0IGRvd25ncmFkZSBh dHRhY2tzIikNCj4gPiBTaWduZWQtb2ZmLWJ5OiBMb25nIExpIDxsb25nbGlAbWljcm9zb2Z0LmNv bT4NCj4gPiAtLS0NCj4gPiAgIGZzL2NpZnMvc21iMnBkdS5jIHwgNjEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0tLS0NCj4gPiAgIDEgZmls ZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRp ZmYgLS1naXQgYS9mcy9jaWZzL3NtYjJwZHUuYyBiL2ZzL2NpZnMvc21iMnBkdS5jIGluZGV4DQo+ ID4gMGYwNDRjNC4uY2FhMmExZSAxMDA2NDQNCj4gPiAtLS0gYS9mcy9jaWZzL3NtYjJwZHUuYw0K PiA+ICsrKyBiL2ZzL2NpZnMvc21iMnBkdS5jDQo+ID4gQEAgLTcyOSw4ICs3MjksOCBAQCBTTUIy X25lZ290aWF0ZShjb25zdCB1bnNpZ25lZCBpbnQgeGlkLCBzdHJ1Y3QNCj4gPiBjaWZzX3NlcyAq c2VzKQ0KPiA+DQo+ID4gICBpbnQgc21iM192YWxpZGF0ZV9uZWdvdGlhdGUoY29uc3QgdW5zaWdu ZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbikNCj4gPiAgIHsNCj4gPiAtCWludCBy YyA9IDA7DQo+ID4gLQlzdHJ1Y3QgdmFsaWRhdGVfbmVnb3RpYXRlX2luZm9fcmVxIHZuZWdfaW5i dWY7DQo+ID4gKwlpbnQgcmV0LCByYyA9IC1FSU87DQo+IA0KPiBTZWVtcyBhd2t3YXJkIHRvIGhh dmUgInJjIiBhbmQgInJldCIsIGFuZCBiYXNlZCBvbiB0aGUgY29kZSBiZWxvdyBJIGRvbid0DQo+ IHNlZSB3aHkgdHdvIHZhcmlhYmxlcyBhcmUgbmVlZGVkLiBTaW1wbGlmeT8gKHNlZSBsYXRlciBj b21tZW50KQ0KDQpUaGlzIGlzIGZvciBhZGRyZXNzaW5nIGEgcHJpb3IgY29tbWVudCB0byByZWR1 Y2UgZHVwbGljYXRlIGNvZGUuIEFsbCB0aGUgZmFpbHVyZSBwYXRocw0KKGFmdGVyIGlzc3Vpbmcg SS9PKSByZXR1cm5pbmcgLUVJTywgdGhlcmUgYXJlIDUgb2YgdGhlbS4gU2V0IHJjIHRvIC1FSU8g YXQgdGhlIGJlZ2lubmluZw0Kc28gd2UgZG9u4oCZdCBuZWVkIHRvIHNldCBpdCBtdWx0aXBsZSB0 aW1lcy4NCg0KPiANCj4gPiArCXN0cnVjdCB2YWxpZGF0ZV9uZWdvdGlhdGVfaW5mb19yZXEgKnBu ZWdfaW5idWY7DQo+ID4gICAJc3RydWN0IHZhbGlkYXRlX25lZ290aWF0ZV9pbmZvX3JzcCAqcG5l Z19yc3AgPSBOVUxMOw0KPiA+ICAgCXUzMiByc3BsZW47DQo+ID4gICAJdTMyIGluYnVmbGVuOyAv KiBtYXggb2YgNCBkaWFsZWN0cyAqLyBAQCAtNzQxLDcgKzc0MSw2IEBAIGludA0KPiA+IHNtYjNf dmFsaWRhdGVfbmVnb3RpYXRlKGNvbnN0IHVuc2lnbmVkIGludCB4aWQsIHN0cnVjdCBjaWZzX3Rj b24gKnRjb24pDQo+ID4gICAJaWYgKHRjb24tPnNlcy0+c2VydmVyLT5yZG1hKQ0KPiA+ICAgCQly ZXR1cm4gMDsNCj4gPiAgICNlbmRpZg0KPiA+IC0NCj4gPiAgIAkvKiBJbiBTTUIzLjExIHByZWF1 dGggaW50ZWdyaXR5IHN1cGVyc2VkZXMgdmFsaWRhdGUgbmVnb3RpYXRlICovDQo+ID4gICAJaWYg KHRjb24tPnNlcy0+c2VydmVyLT5kaWFsZWN0ID09IFNNQjMxMV9QUk9UX0lEKQ0KPiA+ICAgCQly ZXR1cm4gMDsNCj4gPiBAQCAtNzY0LDYzICs3NjMsNjcgQEAgaW50IHNtYjNfdmFsaWRhdGVfbmVn b3RpYXRlKGNvbnN0IHVuc2lnbmVkIGludA0KPiB4aWQsIHN0cnVjdCBjaWZzX3Rjb24gKnRjb24p DQo+ID4gICAJaWYgKHRjb24tPnNlcy0+c2Vzc2lvbl9mbGFncyAmIFNNQjJfU0VTU0lPTl9GTEFH X0lTX05VTEwpDQo+ID4gICAJCWNpZnNfZGJnKFZGUywgIlVuZXhwZWN0ZWQgbnVsbCB1c2VyIChh bm9ueW1vdXMpIGF1dGggZmxhZw0KPiBzZW50IGJ5DQo+ID4gc2VydmVyXG4iKTsNCj4gPg0KPiA+ IC0Jdm5lZ19pbmJ1Zi5DYXBhYmlsaXRpZXMgPQ0KPiA+ICsJcG5lZ19pbmJ1ZiA9IGttYWxsb2Mo c2l6ZW9mKCpwbmVnX2luYnVmKSwgR0ZQX05PRlMpOw0KPiA+ICsJaWYgKCFwbmVnX2luYnVmKQ0K PiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsNCj4gPiArCXBuZWdfaW5idWYtPkNhcGFiaWxp dGllcyA9DQo+ID4gICAJCQljcHVfdG9fbGUzMih0Y29uLT5zZXMtPnNlcnZlci0+dmFscy0NCj4g PnJlcV9jYXBhYmlsaXRpZXMpOw0KPiA+IC0JbWVtY3B5KHZuZWdfaW5idWYuR3VpZCwgdGNvbi0+ c2VzLT5zZXJ2ZXItPmNsaWVudF9ndWlkLA0KPiA+ICsJbWVtY3B5KHBuZWdfaW5idWYtPkd1aWQs IHRjb24tPnNlcy0+c2VydmVyLT5jbGllbnRfZ3VpZCwNCj4gPiAgIAkJCQkJU01CMl9DTElFTlRf R1VJRF9TSVpFKTsNCj4gPg0KPiA+ICAgCWlmICh0Y29uLT5zZXMtPnNpZ24pDQo+ID4gLQkJdm5l Z19pbmJ1Zi5TZWN1cml0eU1vZGUgPQ0KPiA+ICsJCXBuZWdfaW5idWYtPlNlY3VyaXR5TW9kZSA9 DQo+ID4NCj4gCWNwdV90b19sZTE2KFNNQjJfTkVHT1RJQVRFX1NJR05JTkdfUkVRVUlSRUQpOw0K PiA+ICAgCWVsc2UgaWYgKGdsb2JhbF9zZWNmbGFncyAmIENJRlNTRUNfTUFZX1NJR04pDQo+ID4g LQkJdm5lZ19pbmJ1Zi5TZWN1cml0eU1vZGUgPQ0KPiA+ICsJCXBuZWdfaW5idWYtPlNlY3VyaXR5 TW9kZSA9DQo+ID4NCj4gCWNwdV90b19sZTE2KFNNQjJfTkVHT1RJQVRFX1NJR05JTkdfRU5BQkxF RCk7DQo+ID4gICAJZWxzZQ0KPiA+IC0JCXZuZWdfaW5idWYuU2VjdXJpdHlNb2RlID0gMDsNCj4g PiArCQlwbmVnX2luYnVmLT5TZWN1cml0eU1vZGUgPSAwOw0KPiA+DQo+ID4NCj4gPiAgIAlpZiAo c3RyY21wKHRjb24tPnNlcy0+c2VydmVyLT52YWxzLT52ZXJzaW9uX3N0cmluZywNCj4gPiAgIAkJ U01CM0FOWV9WRVJTSU9OX1NUUklORykgPT0gMCkgew0KPiA+IC0JCXZuZWdfaW5idWYuRGlhbGVj dHNbMF0gPSBjcHVfdG9fbGUxNihTTUIzMF9QUk9UX0lEKTsNCj4gPiAtCQl2bmVnX2luYnVmLkRp YWxlY3RzWzFdID0gY3B1X3RvX2xlMTYoU01CMzAyX1BST1RfSUQpOw0KPiA+IC0JCXZuZWdfaW5i dWYuRGlhbGVjdENvdW50ID0gY3B1X3RvX2xlMTYoMik7DQo+ID4gKwkJcG5lZ19pbmJ1Zi0+RGlh bGVjdHNbMF0gPSBjcHVfdG9fbGUxNihTTUIzMF9QUk9UX0lEKTsNCj4gPiArCQlwbmVnX2luYnVm LT5EaWFsZWN0c1sxXSA9IGNwdV90b19sZTE2KFNNQjMwMl9QUk9UX0lEKTsNCj4gPiArCQlwbmVn X2luYnVmLT5EaWFsZWN0Q291bnQgPSBjcHVfdG9fbGUxNigyKTsNCj4gPiAgIAkJLyogc3RydWN0 dXJlIGlzIGJpZyBlbm91Z2ggZm9yIDMgZGlhbGVjdHMsIHNlbmRpbmcgb25seSAyICovDQo+ID4g ICAJCWluYnVmbGVuID0gc2l6ZW9mKHN0cnVjdCB2YWxpZGF0ZV9uZWdvdGlhdGVfaW5mb19yZXEp IC0gMjsNCj4gDQo+IFRoZSAiLSAyIiBpcyBhIGxpdHRsZSBjb25mdXNpbmcgaGVyZS4gVGhpcyB3 YXMgZXhpc3RpbmcgY29kZSwgYnV0IEkgc3VnZ2VzdCB5b3UNCj4gY2hhbmdlIHRoaXMgdG8gYSBz aXplb2YgKHUxNikgY29uc3RydWN0IGZvciBjb25zaXN0ZW5jeS4NCj4gSXQncyByZWR1Y2luZyBi eSB0aGUgbGVuZ3RoIG9mIGEgc2luZ2xlIERpYWxlY3RzW25dIGVudHJ5Lg0KPiANCj4gPiAgIAl9 IGVsc2UgaWYgKHN0cmNtcCh0Y29uLT5zZXMtPnNlcnZlci0+dmFscy0+dmVyc2lvbl9zdHJpbmcs DQo+ID4gICAJCVNNQkRFRkFVTFRfVkVSU0lPTl9TVFJJTkcpID09IDApIHsNCj4gPiAtCQl2bmVn X2luYnVmLkRpYWxlY3RzWzBdID0gY3B1X3RvX2xlMTYoU01CMjFfUFJPVF9JRCk7DQo+ID4gLQkJ dm5lZ19pbmJ1Zi5EaWFsZWN0c1sxXSA9IGNwdV90b19sZTE2KFNNQjMwX1BST1RfSUQpOw0KPiA+ IC0JCXZuZWdfaW5idWYuRGlhbGVjdHNbMl0gPSBjcHVfdG9fbGUxNihTTUIzMDJfUFJPVF9JRCk7 DQo+ID4gLQkJdm5lZ19pbmJ1Zi5EaWFsZWN0Q291bnQgPSBjcHVfdG9fbGUxNigzKTsNCj4gPiAr CQlwbmVnX2luYnVmLT5EaWFsZWN0c1swXSA9IGNwdV90b19sZTE2KFNNQjIxX1BST1RfSUQpOw0K PiA+ICsJCXBuZWdfaW5idWYtPkRpYWxlY3RzWzFdID0gY3B1X3RvX2xlMTYoU01CMzBfUFJPVF9J RCk7DQo+ID4gKwkJcG5lZ19pbmJ1Zi0+RGlhbGVjdHNbMl0gPSBjcHVfdG9fbGUxNihTTUIzMDJf UFJPVF9JRCk7DQo+ID4gKwkJcG5lZ19pbmJ1Zi0+RGlhbGVjdENvdW50ID0gY3B1X3RvX2xlMTYo Myk7DQo+ID4gICAJCS8qIHN0cnVjdHVyZSBpcyBiaWcgZW5vdWdoIGZvciAzIGRpYWxlY3RzICov DQo+ID4gICAJCWluYnVmbGVuID0gc2l6ZW9mKHN0cnVjdCB2YWxpZGF0ZV9uZWdvdGlhdGVfaW5m b19yZXEpOw0KPiA+ICAgCX0gZWxzZSB7DQo+ID4gICAJCS8qIG90aGVyd2lzZSBzcGVjaWZpYyBk aWFsZWN0IHdhcyByZXF1ZXN0ZWQgKi8NCj4gPiAtCQl2bmVnX2luYnVmLkRpYWxlY3RzWzBdID0N Cj4gPiArCQlwbmVnX2luYnVmLT5EaWFsZWN0c1swXSA9DQo+ID4gICAJCQljcHVfdG9fbGUxNih0 Y29uLT5zZXMtPnNlcnZlci0+dmFscy0+cHJvdG9jb2xfaWQpOw0KPiA+IC0JCXZuZWdfaW5idWYu RGlhbGVjdENvdW50ID0gY3B1X3RvX2xlMTYoMSk7DQo+ID4gKwkJcG5lZ19pbmJ1Zi0+RGlhbGVj dENvdW50ID0gY3B1X3RvX2xlMTYoMSk7DQo+ID4gICAJCS8qIHN0cnVjdHVyZSBpcyBiaWcgZW5v dWdoIGZvciAzIGRpYWxlY3RzLCBzZW5kaW5nIG9ubHkgMSAqLw0KPiA+ICAgCQlpbmJ1ZmxlbiA9 IHNpemVvZihzdHJ1Y3QgdmFsaWRhdGVfbmVnb3RpYXRlX2luZm9fcmVxKSAtIDQ7DQo+IA0KPiBE aXR0byBwcmV2aW91cyBzaXplb2YgKHUxNikgY29tbWVudCwgd2l0aCBhICoyIHRoaXMgY2FzZS4N Cj4gDQo+ID4gICAJfQ0KPiA+DQo+ID4gLQlyYyA9IFNNQjJfaW9jdGwoeGlkLCB0Y29uLCBOT19G SUxFX0lELCBOT19GSUxFX0lELA0KPiA+ICsJcmV0ID0gU01CMl9pb2N0bCh4aWQsIHRjb24sIE5P X0ZJTEVfSUQsIE5PX0ZJTEVfSUQsDQo+ID4gICAJCUZTQ1RMX1ZBTElEQVRFX05FR09USUFURV9J TkZPLCB0cnVlIC8qIGlzX2ZzY3RsICovLA0KPiA+IC0JCShjaGFyICopJnZuZWdfaW5idWYsIHNp emVvZihzdHJ1Y3QNCj4gdmFsaWRhdGVfbmVnb3RpYXRlX2luZm9fcmVxKSwNCj4gPiArCQkoY2hh ciAqKXBuZWdfaW5idWYsIHNpemVvZigqcG5lZ19pbmJ1ZiksDQo+ID4gICAJCShjaGFyICoqKSZw bmVnX3JzcCwgJnJzcGxlbik7DQo+ID4NCj4gPiAtCWlmIChyYyAhPSAwKSB7DQo+ID4gLQkJY2lm c19kYmcoVkZTLCAidmFsaWRhdGUgcHJvdG9jb2wgbmVnb3RpYXRlIGZhaWxlZDogJWRcbiIsIHJj KTsNCj4gPiAtCQlyZXR1cm4gLUVJTzsNCj4gPiArCWlmIChyZXQpIHsNCj4gPiArCQljaWZzX2Ri ZyhWRlMsICJ2YWxpZGF0ZSBwcm90b2NvbCBuZWdvdGlhdGUgZmFpbGVkOiAlZFxuIiwgcmV0KTsN Cj4gPiArCQlnb3RvIG91dF9mcmVlX2luYnVmOw0KPiA+ICAgCX0NCj4gDQo+IFdoeSBub3QgbGVh dmUgInJjIiBhbG9uZSwgYW5kIHNldCBpdHMgdmFsdWUgdG8gLUVJTyBiZWZvcmUgdGhlIGdvdG8g aWYgdGhlIGlvY3RsDQo+IGZhaWxzPyBUaGF0IHdpbGwgc2ltcGxpZnkgYW5kIG1ha2UgdGhlIGNv ZGUgbXVjaCBtb3JlIHJlYWRhYmxlIElNTy4NCj4gDQo+ID4NCj4gPiAtCWlmIChyc3BsZW4gIT0g c2l6ZW9mKHN0cnVjdCB2YWxpZGF0ZV9uZWdvdGlhdGVfaW5mb19yc3ApKSB7DQo+ID4gKwlpZiAo cnNwbGVuICE9IHNpemVvZigqcG5lZ19yc3ApKSB7DQo+ID4gICAJCWNpZnNfZGJnKFZGUywgImlu dmFsaWQgcHJvdG9jb2wgbmVnb3RpYXRlIHJlc3BvbnNlDQo+IHNpemU6ICVkXG4iLA0KPiA+ICAg CQkJIHJzcGxlbik7DQo+ID4NCj4gPiAgIAkJLyogcmVsYXggY2hlY2sgc2luY2UgTWFjIHJldHVy bnMgbWF4IGJ1ZnNpemUgYWxsb3dlZCBvbiBpb2N0bA0KPiAqLw0KPiA+ICAgCQlpZiAoKHJzcGxl biA+IENJRlNNYXhCdWZTaXplKQ0KPiA+ICAgCQkgICAgIHx8IChyc3BsZW4gPCBzaXplb2Yoc3Ry dWN0IHZhbGlkYXRlX25lZ290aWF0ZV9pbmZvX3JzcCkpKQ0KPiA+IC0JCQlnb3RvIGVycl9yc3Bf ZnJlZTsNCj4gPiArCQkJZ290byBvdXRfZnJlZV9yc3A7DQo+ID4gICAJfQ0KPiANCj4gV291bGQg bmVlZCBhbiByYyA9IC1FSU8gaGVyZSB0b28gaWYgYWJvdmUgY29tbWVudCBpcyBhY2NlcHRlZC4N Cj4gDQo+IFRvbS4NCj4gDQo+ID4NCj4gPiAgIAkvKiBjaGVjayB2YWxpZGF0ZSBuZWdvdGlhdGUg aW5mbyByZXNwb25zZSBtYXRjaGVzIHdoYXQgd2UgZ290DQo+ID4gZWFybGllciAqLyBAQCAtODM4 LDE0ICs4NDEsMTYgQEAgaW50IHNtYjNfdmFsaWRhdGVfbmVnb3RpYXRlKGNvbnN0DQo+ID4gdW5z aWduZWQgaW50IHhpZCwgc3RydWN0IGNpZnNfdGNvbiAqdGNvbikNCj4gPg0KPiA+ICAgCS8qIHZh bGlkYXRlIG5lZ290aWF0ZSBzdWNjZXNzZnVsICovDQo+ID4gICAJY2lmc19kYmcoRllJLCAidmFs aWRhdGUgbmVnb3RpYXRlIGluZm8gc3VjY2Vzc2Z1bFxuIik7DQo+ID4gLQlrZnJlZShwbmVnX3Jz cCk7DQo+ID4gLQlyZXR1cm4gMDsNCj4gPiArCXJjID0gMDsNCj4gPiArCWdvdG8gb3V0X2ZyZWVf cnNwOw0KPiA+DQo+ID4gICB2bmVnX291dDoNCj4gPiAgIAljaWZzX2RiZyhWRlMsICJwcm90b2Nv bCByZXZhbGlkYXRpb24gLSBzZWN1cml0eSBzZXR0aW5ncw0KPiA+IG1pc21hdGNoXG4iKTsNCj4g PiAtZXJyX3JzcF9mcmVlOg0KPiA+ICtvdXRfZnJlZV9yc3A6DQo+ID4gICAJa2ZyZWUocG5lZ19y c3ApOw0KPiA+IC0JcmV0dXJuIC1FSU87DQo+ID4gK291dF9mcmVlX2luYnVmOg0KPiA+ICsJa2Zy ZWUocG5lZ19pbmJ1Zik7DQo+ID4gKwlyZXR1cm4gcmM7DQo+ID4gICB9DQo+ID4NCj4gPiAgIGVu dW0gc2VjdXJpdHlFbnVtDQo+ID4NCg==