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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7DD81C19F2A for ; Thu, 11 Aug 2022 21:57:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236042AbiHKV52 (ORCPT ); Thu, 11 Aug 2022 17:57:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236174AbiHKV51 (ORCPT ); Thu, 11 Aug 2022 17:57:27 -0400 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E996B9F74C for ; Thu, 11 Aug 2022 14:57:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660255045; x=1691791045; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=JrVC0nzjdY7k1aDc9TF7GGxVx7v+9ZZrpWpcb1IcSbI=; b=ZD1GzIQ+UnhoWfQNcOmeibNuxg3Wb1F6lOgMA5yO/dLef4mfTd2+yZUS Zh+cikBp3txGu3U4BPzBOZSP4tA7sa8H/kZgfSmFnUNapgD3tLIP2ywb9 RbV5drtLxzcT+XqKVDUJQxWmBxcmccPa1PSOMAn1cDsffQY/4b/FBuwil jHIAekCMfb0BO+iOccGCl5FJPFzqA1+EKHrWqJy1nIgB3g/UN9Tw5iL6N uz7M7cHiAlY/JSyWolHlHx6ORqBLxXJPg91ybdb9rHIXalIjXvl32Z0Wi pqF7IXPuolUwbfNl6HPfPa0XIO0+uywlad/mQulIOVmTldro0ugPj05ax A==; X-IronPort-AV: E=McAfee;i="6400,9594,10436"; a="292730377" X-IronPort-AV: E=Sophos;i="5.93,231,1654585200"; d="scan'208";a="292730377" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2022 14:57:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,231,1654585200"; d="scan'208";a="634404131" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga008.jf.intel.com with ESMTP; 11 Aug 2022 14:57:25 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Thu, 11 Aug 2022 14:57:24 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Thu, 11 Aug 2022 14:57:24 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28 via Frontend Transport; Thu, 11 Aug 2022 14:57:24 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.28; Thu, 11 Aug 2022 14:57:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q4uQZ6hzmHZhWVFdQbF1sWkTDPHEwQmjiUTkJnm0bzcW2tP6mVBOOPFZJPTwhuWaERORU7w8oLgHmCDegusBHpYCzZJPpmh0NWHIfvw6a3Shseth+s7W7ouFBd/tbmZwnrPfRLXcMRrWROQ6aQgizRGLWW0PBVsdfUuqmRR9+OT/+eNTvHUE/RimAwpwelmRa4r2nhVr5yrflltLY21aSZFDy4b1zWGKjQ54L/08mEtQqrtRVmP34tLKNp/39B3KaU/xfFgsgh7kQMNAUS5r/q7nJanEZyEYXB+YiA8E3oOh3bYqrtTLbqKj0YgpIrFD4V6lmoa/cocHBprT2iFI+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JrVC0nzjdY7k1aDc9TF7GGxVx7v+9ZZrpWpcb1IcSbI=; b=e7jsR/QWypWUUZe450AVqUoS9khpdNwipJTnhlJERWnGZcurdFc17jIoQNebYuAkkFZmMDC398lWJMAuT87HGYTHSfstZHKgu5KFnzrhNY+APGTUvGsSnXEie+Kvw4RILXZUta8HZMk35lp+e9eNMW6y4wMQRU7sUXI7Iy204lbV4PymBu8OB5p2wpfi5txfrJx4a4oCnLxCx5cYCC6leDI+xKqEn8lp5HVATeHyOSbGY0NZylhC2aQ2NemtrKUwpWK4wUayhbXVtiLvJQDO+f5nif2kqV0QIUiRU0IHMrMFpugusPKbjclZVBRJwEHCQIuFJKDZrT9IRp7n2d2R0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MN2PR11MB3999.namprd11.prod.outlook.com (2603:10b6:208:154::32) by DM6PR11MB3515.namprd11.prod.outlook.com (2603:10b6:5:6c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.10; Thu, 11 Aug 2022 21:57:22 +0000 Received: from MN2PR11MB3999.namprd11.prod.outlook.com ([fe80::1c88:c1bd:6295:cba4]) by MN2PR11MB3999.namprd11.prod.outlook.com ([fe80::1c88:c1bd:6295:cba4%7]) with mapi id 15.20.5504.020; Thu, 11 Aug 2022 21:57:22 +0000 From: "Verma, Vishal L" To: "Williams, Dan J" , "linux-cxl@vger.kernel.org" CC: "Schofield, Alison" , "Jiang, Dave" , "nvdimm@lists.linux.dev" , "Weiny, Ira" Subject: Re: [ndctl PATCH v2 10/10] cxl/decoder: add a max_available_extent attribute Thread-Topic: [ndctl PATCH v2 10/10] cxl/decoder: add a max_available_extent attribute Thread-Index: AQHYrQ5KQ+xIKOn9cEW3VXgordtM1q2qJh6AgAAab4A= Date: Thu, 11 Aug 2022 21:57:22 +0000 Message-ID: <848a45c462e026178aa41909528063050e36c036.camel@intel.com> References: <20220810230914.549611-1-vishal.l.verma@intel.com> <20220810230914.549611-11-vishal.l.verma@intel.com> <62f56515c9f10_3ce68294ea@dwillia2-xfh.jf.intel.com.notmuch> In-Reply-To: <62f56515c9f10_3ce68294ea@dwillia2-xfh.jf.intel.com.notmuch> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4 (3.44.4-1.fc36) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 340fec9a-6c4a-4f3d-91eb-08da7be47804 x-ms-traffictypediagnostic: DM6PR11MB3515:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GwBQx8bf2+yFx0WV2zHxtT3Y9dAW36DRA3Py7i1JxryTcgeR2N3+vqB55KPtjs0Do3FZNjWweKHXUkRv6n/DphQGBkqleCLnpFCzoEkgD/fpmDuk081G1gO908jJewRu1o7k72Flq362IE0hgAYr21QlVWOOf9m3l6LrSKpUqRa9cc3Q6bIkSAguB74dou03fp2bYASEGOaUlnZzJT904AcTpUHtgk+TDGg/RQgk8utD+irixD7y/KDpQ+bj9X8sh2/XaATlP2kYtH7CtS10LFclPXqYsmVM9lqEZIbDMCdfMOTAT7uwMEeJr8GysrXMRxkV5JMoFQs6YQ2HP7dCCzCYZYn5BMuI8HN0uIvOL5ZrU2lrkAD110wmF8foDj/WYGVytwz/MjCguKQ/KWLjqREsI730J8TVdGW4GwlQzaPIW1vLYDr5R6Sou0OhUnoYSS9uPlMgTX/OWOH4q2ctIyW6dZjeRs9RHcOZ2Uqhz6RMJEsijw5s2UTQB7nFJMVgc/yUD7WtzCJpa+rB/RM5iWj6g5yriW+21Edl7sNMmS/aNgqwWH8R2jru6vCDPh2zYbf4OX0+lCXjjznCIBss++o3hsXqP3nlqxnb+wC3ayDLF1UhJpaKZ3MjBTp3TOZ7QrRIgV0umOOEvYRPYjhBB0KwQOCzov37N/vkVS0/TihSqpv5NYIcLUCI5e+AjyheFDSohpRRRTzGhH4EJSkfMBT22s4rb73jEnTNSaNc9/t483/ypSWVXrQjaSVzt9ckIzDA4zK1OIsaFhb2D8cJrjKiBZz2+vVdMpoxFrXBVj17KgfIvqaAiKplNDSbVOwrhXd/75IKBq5G1KQVCK/Vdg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB3999.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(136003)(366004)(346002)(396003)(39860400002)(376002)(71200400001)(41300700001)(478600001)(26005)(6512007)(6486002)(83380400001)(6506007)(107886003)(2616005)(2906002)(5660300002)(186003)(316002)(66946007)(8936002)(8676002)(91956017)(4326008)(66556008)(66446008)(86362001)(66476007)(64756008)(76116006)(122000001)(38070700005)(36756003)(54906003)(38100700002)(82960400001)(110136005)(309714004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmJ0UlhsWGZBb1FkQ3pFY1NZN2tEWVB1a2lzdTJyRGNZaUk2bm9NMHRRaGIw?= =?utf-8?B?cW1GKzdKWnY4T3ErWXY0MVdnVHlQZlVOSTFvSEIvdlBIQXgzb2JqUlBObWFJ?= =?utf-8?B?L2d2enE5WTRJblNnQitXQ2FaNmpLQ2lUcHU4bWlOaFlUNjlIY2ptdVBSOFZU?= =?utf-8?B?Sk5sYXdMNjYxSXdld2JaM1BybFJZS25Vb1pGOS9SdGRpSVRDOWd1MUNWWmZ4?= =?utf-8?B?SCtnaG1VOVJpMjlISGxRbGRXaTRtdlJlLzhzcUt2Tzg4L2JxNkxBdWlSeWwx?= =?utf-8?B?SWtSUVNuRmxCd0dlbVJ3bnlSSUdYUWgzL3FQV3NtOGhnVnp5TzlVamtQTTht?= =?utf-8?B?bFlueVZES0tHbXB2Nk1DMS9uejc5MnJSVVhEd2JQQWFzT05ydFRYV0ZXRjdM?= =?utf-8?B?cWFOaFRieTdFZ2NUbm4xalBXWFRhSm9LbXpaM0dBVmp5SG14ZytJYW1qRWp0?= =?utf-8?B?eDZlZ3F0YzNSZnJIdWFzbDdKZVNtNWhUc1NFS1lVa0xrOG0yWkdlbDBxampS?= =?utf-8?B?a2J1RXhYWklvTFZuYTFtbHlJOUdoUmpvN1hNN3VjSWV5ZXRlREgyY09VVTRq?= =?utf-8?B?TFY5L3RLR016aGxuQ2ZnMjZEbWpRNGVieUtqVkw5eCtWdU5FbEVNODlqdnFn?= =?utf-8?B?WEJkUFlYUVFra2M1VThlRnMwZjNkVGNZOUlBVVI4cGlLcGdCUEV3SDdjZ0NQ?= =?utf-8?B?aFpLOWNobEd4dk05OVFaVGw5dDZTdXJHOFJnYU1XNEQ0eW50ejVaWWdZOG9O?= =?utf-8?B?a09GdUhVMXhwaVJ1VkNjSnJ2SmJxcC9vWi9ZV2wvRCtQWjVMa1RrK2tRZDRC?= =?utf-8?B?VFgxMFpVRHpBM0E4ZmdqMXJrMHMzVDFwdnk3dC9kenNWdVcxQTdveGErK3RS?= =?utf-8?B?ZTh0SU14emV4MzZDR1pDaTA4NThaRTFuV3VpSmxKZEhscm1JM1ZTMVo0cW1K?= =?utf-8?B?S2dqdHE5NFM2a3Nha0xHREU0elRtaWQvb3VUWkw5NkpRWGJBQUd1eGdsT2Fp?= =?utf-8?B?VEpwTk0xS2NpTGdWRVU2ai9NRlRxNWdUNVczSXhZblBweFVodzZQOG10a1ZG?= =?utf-8?B?eWhxRms1TlBwdlhaSks5U2ZFa3pib1lVUFBDZWwzYmJOQzVvTFNUcytzcWRp?= =?utf-8?B?RDM0ZVZkUy91QmJGQy9CQi94RHJHRDZydDN3d1VadDNYdXlCaXBuY3QyRE1j?= =?utf-8?B?bVJuakwvRWlveDMvanZFUFFVL1hFQ3VWbnRqek9BT0lVUSthdE5EcElZZ0pM?= =?utf-8?B?NFRhZnE2bDJCUXQrWWNyNWpFbUpFQ1I0Qld3NXJJOUdkSmJPUll6NGMwVnpr?= =?utf-8?B?dENtQmRPSDBZMEh3enRKbldZdDdPNTR0dk16cXRacXZhdWQvUjErRjIvK3hk?= =?utf-8?B?dXNYQTdjWVNtYk96QWVyNktEaWRpNlI0K2Z3MFoydEo1QmQ3QkhPclV1Nmw2?= =?utf-8?B?Sk9sU3l0NzdHS0FlY25Dc0wxN2xrdWhYcWVZaHA2WjdYWVU3LzRlQm92Rldx?= =?utf-8?B?eFRJMWNrQTA1VDkyRTM1NElGUlF0Y1J4MFc2clJJQWM3RFd6bWFVeWx5c1Zp?= =?utf-8?B?bEw1RUVCVWlCNVpKVzNWMnkwc1duTVF3T2lhOGFSellhUVZWUHRVTzJ5cVU4?= =?utf-8?B?aVBGUDQwM3IrZnZxOThaMDV4dlFicEc3dy9neENHbDdvQzlqZlI1YkxSMjNs?= =?utf-8?B?clNjY2Z3QTViaFJsU3F2YVFPbGZ5WkZtc2svWklYdHFVMlVNcUsxc21qTEhh?= =?utf-8?B?VFZ6NzR1dW5oN3QxRlB0SWk3OFNJbWVDTit0RjFnTEN4TWFKK0JUZFJnaUVJ?= =?utf-8?B?Z3Z0QXd0bkZCejdrUlNOSnc1QUk0azBnU0JCalFIcldIRm9mWDgvWHowZDVz?= =?utf-8?B?VWlDZE05SDVaVktEbEJTU292NmFkTzBYM0pZVUJWQVYxeFVVcFRQN0Q1QS9T?= =?utf-8?B?L2lRYkNVZ0JJeEcxaFQ1UnlEOG1STzMreko3RHlIZ1dOclhuTXZCUWx4dlo3?= =?utf-8?B?N2p4R1ErQ1hDNElTTGxrdVlvaUNSZGFSdjBGd2FwcVRYS2l1NENpZ0JaWkk3?= =?utf-8?B?SDlGZXpPT3NBaTFzWkxoanJLSXJ1aHBQVjBVYnVmWU4rdnhOTW11blZpY0xw?= =?utf-8?B?bk90dHJNMkI1eDIwN0JKSFNlYTF5MTJWVFhLMmZNV0l1Y0pleFVZVm1hdm1s?= =?utf-8?B?V0E9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB3999.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 340fec9a-6c4a-4f3d-91eb-08da7be47804 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2022 21:57:22.2046 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 2xBE9ilROvqod+QQMwVaQHTYPF+OJdd8HiHElUn4Fb2eev3EhCZfWfGAwb97mwoZW6wT5nx29LPpvAMn2lPtAqopCew9LQiq3SQOgCgJyU8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3515 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-cxl@vger.kernel.org T24gVGh1LCAyMDIyLTA4LTExIGF0IDEzOjIyIC0wNzAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6Cj4g VmlzaGFsIFZlcm1hIHdyb3RlOgo+ID4gQWRkIGEgbWF4X2F2YWlsYWJsZV9leHRlbnQgYXR0cmli dXRlIHRvIGN4bF9kZWNvZGVyLiBJbiBvcmRlciB0byBhaWQgaW4KPiA+IGl0cyBjYWxjdWxhdGlv biwgY2hhbmdlIHRoZSBvcmRlciBvZiByZWdpb25zIGluIHRoZSByb290IGRlY29kZXIncyBsaXN0 Cj4gPiB0byBiZSBzb3J0ZWQgYnkgc3RhcnQgSFBBIG9mIHRoZSByZWdpb24uCj4gPiAKPiA+IEFk ZGl0aW9uYWxseSwgZW1pdCB0aGlzIGF0dHJpYnV0ZSBpbiBkZWNvZGVyIGxpc3RpbmdzLCBhbmQg Y29uc3VsdCBpdAo+ID4gZm9yIGF2YWlsYWJsZSBzcGFjZSBiZWZvcmUgY3JlYXRpbmcgYSBuZXcg cmVnaW9uLgo+ID4gCj4gPiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBWaXNoYWwgVmVybWEgPHZpc2hhbC5sLnZlcm1hQGludGVs LmNvbT4KPiA+IC0tLQo+ID4gwqBjeGwvbGliL3ByaXZhdGUuaMKgIHzCoCAxICsKPiA+IMKgY3hs L2xpYi9saWJjeGwuY8KgwqAgfCA4NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystCj4gPiDCoGN4bC9saWJjeGwuaMKgwqDCoMKgwqDCoCB8wqAgMyArKwo+ID4g wqBjeGwvanNvbi5jwqDCoMKgwqDCoMKgwqDCoCB8wqAgOCArKysrKwo+ID4gwqBjeGwvcmVnaW9u LmPCoMKgwqDCoMKgwqAgfCAxNCArKysrKysrLQo+ID4gwqBjeGwvbGliL2xpYmN4bC5zeW0gfMKg IDEgKwo+ID4gwqA2IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvY3hsL2xpYi9wcml2YXRlLmggYi9jeGwvbGliL3By aXZhdGUuaAo+ID4gaW5kZXggODYxOWJiMS4uODcwNWU0NiAxMDA2NDQKPiA+IC0tLSBhL2N4bC9s aWIvcHJpdmF0ZS5oCj4gPiArKysgYi9jeGwvbGliL3ByaXZhdGUuaAo+ID4gQEAgLTEwNCw2ICsx MDQsNyBAQCBzdHJ1Y3QgY3hsX2RlY29kZXIgewo+ID4gwqDCoMKgwqDCoMKgwqDCoHU2NCBzaXpl Owo+ID4gwqDCoMKgwqDCoMKgwqDCoHU2NCBkcGFfcmVzb3VyY2U7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgdTY0IGRwYV9zaXplOwo+ID4gK8KgwqDCoMKgwqDCoMKgdTY0IG1heF9hdmFpbGFibGVfZXh0 ZW50Owo+ID4gwqDCoMKgwqDCoMKgwqDCoHZvaWQgKmRldl9idWY7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgc2l6ZV90IGJ1Zl9sZW47Cj4gPiDCoMKgwqDCoMKgwqDCoMKgY2hhciAqZGV2X3BhdGg7Cj4g PiBkaWZmIC0tZ2l0IGEvY3hsL2xpYi9saWJjeGwuYyBiL2N4bC9saWIvbGliY3hsLmMKPiA+IGlu ZGV4IGI0ZDc4OTAuLjNjMWEyYzMgMTAwNjQ0Cj4gPiAtLS0gYS9jeGwvbGliL2xpYmN4bC5jCj4g PiArKysgYi9jeGwvbGliL2xpYmN4bC5jCj4gPiBAQCAtNDQ2LDYgKzQ0NiwxMSBAQCBDWExfRVhQ T1JUIGludCBjeGxfcmVnaW9uX2RlbGV0ZShzdHJ1Y3QgY3hsX3JlZ2lvbiAqcmVnaW9uKQo+ID4g wqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo+ID4gwqB9Cj4gPiDCoAo+ID4gK3N0YXRpYyBpbnQg cmVnaW9uX3N0YXJ0X2NtcChzdHJ1Y3QgY3hsX3JlZ2lvbiAqcjEsIHN0cnVjdCBjeGxfcmVnaW9u ICpyMikKPiA+ICt7Cj4gPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gKChyMS0+c3RhcnQgPCByMi0+ c3RhcnQpID8gLTEgOiAxKTsKPiAKPiBJIHRoaW5rIHlvdSB3YW50ICdlcXVhbCcgY2FzZSB0b28s IHJpZ2h0Pwo+IAo+IHZhbCA9IHIxLT5zdGFydCAtIHIyLT5zdGFydDsKPiBpZiAodmFsID4gcjEt PnN0YXJ0KQo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLTE7Cj4gaWYgKHZhbCA8IHIxLT5zdGFy dCkKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDE7Cj4gcmV0dXJuIDA7CgpJIGRpZG4ndCBhZGQg aXQgYmVjYXVzZSBsaXN0X2FkZF9zb3J0ZWQgZGlkbid0IHNlZW0gdG8gZG8gYW55dGhpbmcgd2l0 aAp0aGUgZXF1YWwgY2FzZSwgYnV0IHllYWggSSB0aGluayBmb3IgYSBjb21wYXJlIGhlbHBlciwg aXQgbWFrZXMgc2Vuc2UKdG8gYmUgY29tcGxldGUuCgo+IAo+ID4gK30KPiA+ICsKPiA+IMKgc3Rh dGljIHZvaWQgKmFkZF9jeGxfcmVnaW9uKHZvaWQgKnBhcmVudCwgaW50IGlkLCBjb25zdCBjaGFy ICpjeGxyZWdpb25fYmFzZSkKPiA+IMKgewo+ID4gwqDCoMKgwqDCoMKgwqDCoGNvbnN0IGNoYXIg KmRldm5hbWUgPSBkZXZwYXRoX3RvX2Rldm5hbWUoY3hscmVnaW9uX2Jhc2UpOwo+ID4gQEAgLTUy OCw3ICs1MzMsNyBAQCBzdGF0aWMgdm9pZCAqYWRkX2N4bF9yZWdpb24odm9pZCAqcGFyZW50LCBp bnQgaWQsIGNvbnN0IGNoYXIgKmN4bHJlZ2lvbl9iYXNlKQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJlZ2lvbl9kdXA7Cj4gPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiA+IMKgCj4gPiAtwqDCoMKgwqDCoMKgwqBs aXN0X2FkZCgmZGVjb2Rlci0+cmVnaW9ucywgJnJlZ2lvbi0+bGlzdCk7Cj4gPiArwqDCoMKgwqDC oMKgwqBsaXN0X2FkZF9zb3J0ZWQoJmRlY29kZXItPnJlZ2lvbnMsIHJlZ2lvbiwgbGlzdCwgcmVn aW9uX3N0YXJ0X2NtcCk7Cj4gPiDCoAo+ID4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiByZWdpb247 Cj4gPiDCoGVycjoKPiA+IEBAIC0xNjA2LDYgKzE2MTEsNzQgQEAgY3hsX2VuZHBvaW50X2dldF9t ZW1kZXYoc3RydWN0IGN4bF9lbmRwb2ludCAqZW5kcG9pbnQpCj4gPiDCoMKgwqDCoMKgwqDCoMKg cmV0dXJuIE5VTEw7Cj4gPiDCoH0KPiA+IMKgCj4gPiArc3RhdGljIGludCBjeGxfcmVnaW9uX2lz X2NvbmZpZ3VyZWQoc3RydWN0IGN4bF9yZWdpb24gKnJlZ2lvbikKPiAKPiBzL2ludC9ib29sLwo+ IAo+ID4gK3sKPiA+ICvCoMKgwqDCoMKgwqDCoGlmICgocmVnaW9uLT5zdGFydCA9PSAwKSAmJiAo cmVnaW9uLT5zaXplID09IDApICYmCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHJlZ2lvbi0+ ZGVjb2RlX3N0YXRlID09IENYTF9ERUNPREVfUkVTRVQpKQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHJldHVybiAwOwo+ID4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIDE7Cj4gCj4g VGhhdCBjYW4gYmUgc3F1aXNoZWQgdG8ganVzdDoKPiAKPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu IHJlZ2lvbi0+c2l6ZSAmJiByZWdpb24tPmRlY29kZV9zdGF0ZSAhPSBDWExfREVDT0RFX1JFU0VU Owo+IAo+IC4uLmJlY2FzZSByZWdpb24tPnN0YXJ0ID09IDAgaXMgYSB2YWxpZCBzdGF0ZSBmb3Ig YSBjb25maWd1cmVkIHJlZ2lvbi4KPiAKPiAKPiA+ICt9Cj4gPiArCj4gPiArLyoqCj4gPiArICog Y3hsX2RlY29kZXJfY2FsY19tYXhfYXZhaWxhYmxlX2V4dGVudCgpIC0gY2FsY3VsYXRlIG1heCBh dmFpbGFibGUgZnJlZSBzcGFjZQo+ID4gKyAqIEBkZWNvZGVyIC0gdGhlIHJvb3QgZGVjb2RlciB0 byBjYWxjdWxhdGUgdGhlIGZyZWUgZXh0ZW50cyBmb3IKPiA+ICsgKgo+ID4gKyAqIFRoZSBhZGRf Y3hsX3JlZ2lvbigpIGZ1bmN0aW9uwqAgYWRkcyByZWdpb25zIHRvIHRoZSBwYXJlbnQgZGVjb2Rl cidzIGxpc3QKPiA+ICsgKiBzb3J0ZWQgYnkgdGhlIHJlZ2lvbidzIHN0YXJ0IEhQQXMuIEl0IGNh biBhbHNvIGJlIGFzc3VtZWQgdGhhdCByZWdpb25zIGhhdmUKPiA+ICsgKiBubyBvdmVybGFwcGVk IC8gYWxpYXNlZCBIUEEgc3BhY2UuIFRoZXJlZm9yZSwgY2FsY3VsYXRpbmcgZWFjaCBleHRlbnQg aXMgYXMKPiA+ICsgKiBzaW1wbGUgYXMgd2Fsa2luZyB0aGUgcmVnaW9uIGxpc3QgaW4gb3JkZXIs IGFuZCBzdWJ0cmFjdGluZyB0aGUgcHJldmlvdXMKPiA+ICsgKiByZWdpb24ncyBlbmQgSFBBIGZy b20gdGhlIG5leHQgcmVnaW9uJ3Mgc3RhcnQgSFBBIChhbmQgdGFraW5nIGludG8gYWNjb3VudAo+ ID4gKyAqIHRoZSBkZWNvZGVyJ3Mgc3RhcnQgYW5kIGVuZCBIUEFzIGFzIHdlbGwpLgo+ID4gKyAq Lwo+ID4gK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcKPiA+ICtjeGxfZGVjb2Rlcl9jYWxjX21h eF9hdmFpbGFibGVfZXh0ZW50KHN0cnVjdCBjeGxfZGVjb2RlciAqZGVjb2RlcikKPiA+ICt7Cj4g PiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgY3hsX3BvcnQgKnBvcnQgPSBjeGxfZGVjb2Rlcl9nZXRf cG9ydChkZWNvZGVyKTsKPiA+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBjeGxfY3R4ICpjdHggPSBj eGxfZGVjb2Rlcl9nZXRfY3R4KGRlY29kZXIpOwo+ID4gK8KgwqDCoMKgwqDCoMKgdTY0IHByZXZf ZW5kID0gMCwgbWF4X2V4dGVudCA9IDA7Cj4gPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgY3hsX3Jl Z2lvbiAqcmVnaW9uOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgaWYgKCFjeGxfcG9ydF9pc19y b290KHBvcnQpKSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZXJyKGN0eCwg IiVzOiBub3QgYSByb290IGRlY29kZXJcbiIsCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGN4bF9kZWNvZGVyX2dldF9kZXZuYW1lKGRlY29kZXIpKTsKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gVUxMT05HX01BWDsKPiA+ICvCoMKgwqDC oMKgwqDCoH0KPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoC8qCj4gPiArwqDCoMKgwqDCoMKgwqAg KiBQcmVsb2FkIHByZXZfZW5kIHdpdGggZGVjb2RlcidzIHN0YXJ0LCBzbyB0aGF0IHRoZSBleHRl bnQKPiA+ICvCoMKgwqDCoMKgwqDCoCAqIGNhbGN1bGF0aW9uIGZvciB0aGUgZmlyc3QgcmVnaW9u IEp1c3QgV29ya3MKPiA+ICvCoMKgwqDCoMKgwqDCoCAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgcHJl dl9lbmQgPSBkZWNvZGVyLT5zdGFydDsKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoGN4bF9yZWdp b25fZm9yZWFjaChkZWNvZGVyLCByZWdpb24pIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoIWN4bF9yZWdpb25faXNfY29uZmlndXJlZChyZWdpb24pKQo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb250aW51ZTsKPiA+ICsK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKgo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAqIE5vdGU6IE5vcm1hbGx5LCBlbmQgPSAoc3RhcnQgKyBzaXplIC0g MSksIGJ1dCBzaW5jZQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIHRoaXMg aXMgY2FsY3VsYXRpbmcgZXh0ZW50cyBiZXR3ZWVuIHJlZ2lvbnMsIGl0IGNhbgo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIHNraXAgdGhlICctIDEnLiBGb3IgZXhhbXBsZSwg aWYgYSByZWdpb24gZW5kcyBhdCAweGZmZiwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKiBhbmQgdGhlIG5leHQgcmVnaW9uIGltbWVkaWF0ZWx5IHN0YXJ0cyBhdCAweDEwMDAs Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogdGhlICdleHRlbnQnIGJldHdl ZW4gdGhlbSBpcyAwLCBub3QgMS4gV2l0aAo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAqIGVuZCA9IChzdGFydCArIHNpemUpLCB0aGlzIG5ldyAnYWRqdXN0ZWQnIGVuZCBmb3Ig dGhlCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogZmlyc3QgcmVnaW9uIHdp bGwgaGF2ZSBiZWVuIGNhbGN1bGF0ZWQgYXMgMHgxMDAwLgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAqIFN1YnRyYWN0aW5nIHRoZSBuZXh0IHJlZ2lvbidzIHN0YXJ0ICgweDEw MDApIGZyb20gdGhpcwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGNvcnJl Y3RseSBnZXRzIHRoZSBleHRlbnQgc2l6ZSBhcyAwLgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAqLwo+IAo+IE5vdCBzdXJlIGlmIEkgcHJlZmVyIHRoaXMgYmxvY2sgY29tbWVu dCwgb3IganVzdCBzZWVpbmcgcHJldl9lbmQgYmVpbmcKPiBkb25lIHdpdGggLTEgbWF0aCBhbmQg bWF4X2V4dGVudCBkb2luZyB0aGUgKyAxIGJlY2F1c2UgaXQncyBhIHNpemUuLi4KPiAKPiBUaGUg bGF0dGVyIHNlZW1zIG1vcmUgaWRpb21hdGljIHRvIG15IGV5ZXMsIGJ1dCBJJ2xsIGxlYXZlIGl0 IHVwIHRvIHlvdS4KClllcCBJIGdvdCBncmVlZHkgd2l0aCB0aGUgdHJpY2tlcnksIGJ1dCBrZWVw aW5nIGl0IGlkaW9tYXRpYyBtYWtlcyBtb3JlCnNlbnNlLgoKPiAKPiA+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBtYXhfZXh0ZW50ID0gbWF4KG1heF9leHRlbnQsIHJlZ2lvbi0+c3Rh cnQgLSBwcmV2X2VuZCk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJldl9l bmQgPSByZWdpb24tPnN0YXJ0ICsgcmVnaW9uLT5zaXplOwo+ID4gK8KgwqDCoMKgwqDCoMKgfQo+ ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgLyoKPiA+ICvCoMKgwqDCoMKgwqDCoCAqIEZpbmFsbHks IGNvbnNpZGVyIHRoZSBleHRlbnQgYWZ0ZXIgdGhlIGxhc3QgcmVnaW9uLCB1cCB0byB0aGUgZW5k Cj4gPiArwqDCoMKgwqDCoMKgwqAgKiBvZiB0aGUgZGVjb2RlcidzIGFkZHJlc3Mgc3BhY2UsIGlm IGFueS4gSWYgdGhlcmUgd2VyZSBubyByZWdpb25zLAo+ID4gK8KgwqDCoMKgwqDCoMKgICogdGhp cyBzaW1wbHkgcmVkdWNlcyB0byBkZWNvZGVyLT5zaXplLgo+ID4gK8KgwqDCoMKgwqDCoMKgICov Cj4gPiArwqDCoMKgwqDCoMKgwqBtYXhfZXh0ZW50ID0gbWF4KG1heF9leHRlbnQsIGRlY29kZXIt PnN0YXJ0ICsgZGVjb2Rlci0+c2l6ZSAtIHByZXZfZW5kKTsKPiA+ICsKPiA+ICvCoMKgwqDCoMKg wqDCoHJldHVybiBtYXhfZXh0ZW50Owo+ID4gK30KPiA+ICsKPiA+IMKgc3RhdGljIGludCBkZWNv ZGVyX2lkX2NtcChzdHJ1Y3QgY3hsX2RlY29kZXIgKmQxLCBzdHJ1Y3QgY3hsX2RlY29kZXIgKmQy KQo+ID4gwqB7Cj4gPiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIGQxLT5pZCAtIGQyLT5pZDsKPiA+ IEBAIC0xNzM1LDYgKzE4MDgsOCBAQCBzdGF0aWMgdm9pZCAqYWRkX2N4bF9kZWNvZGVyKHZvaWQg KnBhcmVudCwgaW50IGlkLCBjb25zdCBjaGFyICpjeGxkZWNvZGVyX2Jhc2UpCj4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoc3lzZnNfcmVhZF9h dHRyKGN0eCwgcGF0aCwgYnVmKSA9PSAwKQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCooZmxhZy0+ZmxhZykgPSAhIXN0 cnRvdWwoYnVmLCBOVUxMLCAwKTsKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg fQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRlY29kZXItPm1heF9hdmFpbGFi bGVfZXh0ZW50ID0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgY3hsX2RlY29kZXJfY2FsY19tYXhfYXZhaWxhYmxlX2V4dGVudChkZWNvZGVyKTsKPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYnJlYWs7Cj4gPiDCoMKgwqDCoMKgwqDC oMKgfQo+ID4gwqDCoMKgwqDCoMKgwqDCoH0KPiA+IEBAIC0xODk5LDYgKzE5NzQsMTIgQEAgY3hs X2RlY29kZXJfZ2V0X2RwYV9zaXplKHN0cnVjdCBjeGxfZGVjb2RlciAqZGVjb2RlcikKPiA+IMKg wqDCoMKgwqDCoMKgwqByZXR1cm4gZGVjb2Rlci0+ZHBhX3NpemU7Cj4gPiDCoH0KPiA+IMKgCj4g PiArQ1hMX0VYUE9SVCB1bnNpZ25lZCBsb25nIGxvbmcKPiA+ICtjeGxfZGVjb2Rlcl9nZXRfbWF4 X2F2YWlsYWJsZV9leHRlbnQoc3RydWN0IGN4bF9kZWNvZGVyICpkZWNvZGVyKQo+ID4gK3sKPiA+ ICvCoMKgwqDCoMKgwqDCoHJldHVybiBkZWNvZGVyLT5tYXhfYXZhaWxhYmxlX2V4dGVudDsKPiA+ ICt9Cj4gPiArCj4gPiDCoENYTF9FWFBPUlQgaW50IGN4bF9kZWNvZGVyX3NldF9kcGFfc2l6ZShz dHJ1Y3QgY3hsX2RlY29kZXIgKmRlY29kZXIsCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVu c2lnbmVkIGxvbmcgbG9uZyBzaXplKQo+ID4gwqB7Cj4gPiBAQCAtMjA1Myw2ICsyMTM0LDkgQEAg Y3hsX2RlY29kZXJfY3JlYXRlX3BtZW1fcmVnaW9uKHN0cnVjdCBjeGxfZGVjb2RlciAqZGVjb2Rl cikKPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIE5VTEw7Cj4gPiDC oMKgwqDCoMKgwqDCoMKgfQo+ID4gwqAKPiA+ICvCoMKgwqDCoMKgwqDCoC8qIEZvcmNlIGEgcmUt aW5pdCBvZiByZWdpb25zIHNvIHRoYXQgdGhlIG5ldyBvbmUgY2FuIGJlIGRpc2NvdmVyZWQgKi8K PiA+ICvCoMKgwqDCoMKgwqDCoGZyZWVfcmVnaW9ucyhkZWNvZGVyKTsKPiAKPiBZb3UgZG8gbm90 IG5lZWQgdG8gZnJlZSB0aGVtLCB0aGUgcmUtaW5pdCB3aWxsIGRvIGR1cCBkZXRlY3Rpb24gYW5k Cj4gKnNob3VsZCoganVzdCByZXN1bHQgaW4gdGhlIG5ldyBvbmUgYmVpbmcgYWRkZWQuIEluIGZh Y3QsIHlvdSBwcm9iYWJseQo+IGRvIG5vdCAqd2FudCogdG8gZnJlZSB0aGVtIGFzIHRoYXQgY291 bGQgY2F1c2UgcHJvYmxlbXMgZm9yIGxpYnJhcnkKPiB1c2VycyB0aGF0IHdlcmUgaG9sZGluZyBh ICdzdHJ1Y3QgY3hsX3JlZ2lvbicgb2JqZWN0IGJlZm9yZSB0aGUgY2FsbCB0bwo+IGN4bF9kZWNv ZGVyX2NyZWF0ZV9wbWVtX3JlZ2lvbigpLgo+IAo+IFdpdGggdGhlIGFib3ZlIGZpeGVzIGZvbGRl ZCBpbiB5b3UgY2FuIGFkZDoKClllcCBhbGwgb3RoZXIgY29tbWVudHMgc291bmQgZ29vZC4KCj4g UmV2aWV3ZWQtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgoKVGhh bmtzIQoK