From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B803B42D67; Fri, 30 Jun 2023 07:58:32 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 90303406B5; Fri, 30 Jun 2023 07:58:32 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id F34574021F for ; Fri, 30 Jun 2023 07:58:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688104710; x=1719640710; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=T3L574G/dyARhiIZC5G3nihQ1gjhc4y1wRigwC1Wl8Y=; b=k1RI1TngmprOsrHeNG1bXvNMUBMl8DpSpy5rvQYVvQBt1UT/VCiTbVl4 moB4PxZmEbWVXUBvtwkPRph751SJrQogAaTYGsXZw9hlqwAsX7QSYCoNV M6zgcjnAjMVsqR++32vAvui8jvuk2Uw8GA6Be6eJj8YPV2ByQoBMm4rLr l524hL3gGsfI8vHORq15ScAYCiRDO+hVr5ZG/y2R9BX8SVVvp8bi0iPo5 DK3aT23RdayxZJmsiT3+cy/1qBOMI6FBhKpGA8hbxWh47zZxu2IJXJqLU tdi3qrvNPJXOGNIZUn2XJPTm0r3aWQqk2P0LlzdVwBlnq8765XXaq2VPE w==; X-IronPort-AV: E=McAfee;i="6600,9927,10756"; a="448700699" X-IronPort-AV: E=Sophos;i="6.01,169,1684825200"; d="scan'208";a="448700699" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jun 2023 22:58:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10756"; a="667818291" X-IronPort-AV: E=Sophos;i="6.01,169,1684825200"; d="scan'208";a="667818291" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga003.jf.intel.com with ESMTP; 29 Jun 2023 22:58:28 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 29 Jun 2023 22:58:27 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Thu, 29 Jun 2023 22:58:27 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.106) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Thu, 29 Jun 2023 22:58:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TqWYyKHgF54AWnHxJUf/nFtwR/Epw2yaB8bJVe0A19bKlad0bktT5CU0ZiRdA/lcwVrssOUe8LjV9MErKlgLyff2DjMh83NfDoVaB52oVATyT/2WtC50MswfvFHK1/BtRBxAcOdnJALE6DLOT6gxDhZNKjogRRGMtXgoaXomnkU/yRaE+4CZHjcBxq+BoucZKqc6gyxMLQpQO6kLeBRWuOEjBCwJlytAUsLAy4D+czt5txYvg6ZRNBXNMzohyZp8TKMdRD6/g/vEHm9wXQB2haFumRnlXsXPZ15xcTtNPcvw0RaRM7dvxe+QKcOCcFBrbhdGiHOZzfPMNaxVRNYOCg== 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=T3L574G/dyARhiIZC5G3nihQ1gjhc4y1wRigwC1Wl8Y=; b=gOvYfyzogJ2W8PJ9mZAL9/qHPnEITTvjKbaFK+I1WAjZJx1s5fQoepv3x+UeYaIQ4vjKxxrm1AhDVGHRooGjG8GxuV8HLoEqChjdGpCk4X+kDRc+vUp7YRMVPfEPW/1In0q3On8bn/34Hk/j1bVUimZhNY9K+VIOVBw2J2Fn/RfqOlLmqdYuYkC8SA5zD4w4JCkpn8oGsJUWNQ6wPkkTLFnR6kuUQ1XcTSK9Pz97276j6nKmRj3fcNe30rR9+gx+iFlcSeI3vKqFMmloDbR2uzgrvx/41/vUEdOdV9vzItOmDzu7YBhzvmlvih6Rtmmd5JTmcIbqqEY/D3QFRm7EcA== 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 BN9PR11MB5513.namprd11.prod.outlook.com (2603:10b6:408:102::11) by DS0PR11MB7190.namprd11.prod.outlook.com (2603:10b6:8:132::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Fri, 30 Jun 2023 05:58:25 +0000 Received: from BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::8575:f58b:94d7:e121]) by BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::8575:f58b:94d7:e121%7]) with mapi id 15.20.6544.019; Fri, 30 Jun 2023 05:58:25 +0000 From: "Ding, Xuan" To: Nipun Gupta , "dev@dpdk.org" , "thomas@monjalon.net" , "Burakov, Anatoly" , "ferruh.yigit@amd.com" CC: "nikhil.agarwal@amd.com" , "He, Xingguang" , "Ling, WeiX" Subject: RE: [PATCH] vfio: do not coalesce DMA mappings Thread-Topic: [PATCH] vfio: do not coalesce DMA mappings Thread-Index: AQHZHDVrAwVw6KlvPU+E8wN/ilq+d6+ijFzQgAEkXACAAD8nwA== Date: Fri, 30 Jun 2023 05:58:25 +0000 Message-ID: References: <20221230095853.1323616-1-nipun.gupta@amd.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5513:EE_|DS0PR11MB7190:EE_ x-ms-office365-filtering-correlation-id: a437e89b-5123-4daa-740d-08db792f04d4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tVcciF46JpzzDvHPFwOkMh3O5PgSFH6SS3rw8EtqaoBW82glhGtISzx6wHAGIqSle76Sq6tcyXVf8feclgKMf6yA0ajHDzPGcQ4K7noDzUxfo3yIFUztmkFIkyC1CtYf8NUFyataERauX2omkrgZyc2VnZLONgQj4FoUhtySb4G+eu6ZBR6wv0Tt8p3IfFL5kdvn3zoRTV4beDAeBKTKXoV4g567UxacLUXDUBEEtlDkE6mtIuDbMCXuI9vJ699A1EHkqFGdkJ9ibibCzHMcQ0TCm6ZhZHr/5inkFoPkZ8XCeeRZuwBjFzNtBCdNW5c3+9jTvyHz2jmJ5iI2OOzbdKp1Es/rT2cNw0hap0IeETWspAM9JLCT57ZV6so7CkyxIV67oK4KXawmSOleJuh/FF9LM8mmN2fbF/nmPwRgdceXV4gSRQbfS6ejxnuarzNP4JR1gwROmJx/Hn+a+Q1Xm3o3Fh/HLh5OLRu3Bokq+fDRLbAmMRK+NUxAAl/bs1RVQPeg2jnN6DM3p4WoOPEWEaTTo7GzmX2GPwwchnYuhGXsZ3HOT0d/HZlbVSiTOLVhsRjXBctVawSVLXLw7yYM4G14TsS1pXaoBo2U81//pjL7Ux03ysm9MXQT7jRQUMrYAuUqwI8R407u6YWxH63ZMg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5513.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(366004)(376002)(346002)(136003)(396003)(39860400002)(451199021)(2906002)(186003)(55016003)(7696005)(71200400001)(122000001)(86362001)(107886003)(9686003)(38100700002)(83380400001)(82960400001)(53546011)(6506007)(966005)(110136005)(41300700001)(54906003)(38070700005)(26005)(478600001)(316002)(76116006)(66556008)(66446008)(4326008)(66946007)(33656002)(64756008)(66476007)(52536014)(5660300002)(8676002)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bWhYaFg1MmF6dzNlTzVJTzVCcGxrZUtWam53czl6T2ZUeW5OZFZzRm8zOEtT?= =?utf-8?B?dnA3ZThJeUxCZEg0YXBOWmR6aEdSVUlSdUEzZzI1YmJTdEtLak45L0phMTgw?= =?utf-8?B?eGJDZ2hEQVA0V05SNWVpeTZTMWtSdVJYUGdVODg2V2s2VHBOY0RwTkMvbEw3?= =?utf-8?B?STZhMElVRzlycVBMOEt6elBWNzZFV2poQVZRb1N5czV1ZjVQaHFHZk9qc09h?= =?utf-8?B?MFNHMHFncFBwZktrL0ZBc3krYXlVWEJ6WWVCUVdMVTZXTXgrbjlFRm1HVXdx?= =?utf-8?B?YytvTzBCV2ZsYlRLWUo5eUszN3RyVHI1R0RDdVJzajNjb1REaWE1WDE0YlNp?= =?utf-8?B?Wmo2ZTUraFJUU2N0dnl1ck13MktqZ1gvOHVqMHh6RE1IQnpPa2ZaUVo1UUFR?= =?utf-8?B?VmIzaEpTZlB1QmVxOUJ5Y1dOeTVpdm84Vm1BWkEwejE5NUFUdmVHUm9OWmxK?= =?utf-8?B?dytPQzBncEZzL0RzRCtQNWlNMEozU1RIMmlnTUtTdHFkMGlMeTZOMjVTcSs1?= =?utf-8?B?d1pBYXNoL01LMk5scU5yU0VQdDVUeE8vMmNHKzdtRWY3VVNmMnpnZnNmcG5U?= =?utf-8?B?VnpaWU84bGlnRENqZGszQkdYck5DVFlYQUx3Mmduc2cyM0JxRjMxWExVa2pt?= =?utf-8?B?MGJoaFlHM3h5dGtkUDhoRjhZY2xOcHBlMTlTVXZvSW1LVDBxNlp2MEhGaVN2?= =?utf-8?B?SjE3MnpGQmNkY2NUOTQ3S3VYUk02eWtxNGloa0ZVUDRGWlJuZmMvRHMyelJZ?= =?utf-8?B?K2NoQWdlNWZhTGZHRmNHaVdVQmhkWGJSU2NTc2N2OGFtVURMV25pOEo0UFZH?= =?utf-8?B?N29VQktKc0xLZFZGYXViTVNpaGdxMXJnWGRjZlFhQnZJQU1LZmRhdExDejN4?= =?utf-8?B?djdlZ3VEYWFXV2xHdFl0MmduVkJFZ3BwcGRrYmhtbkZMa3FLKzc2TVY3Y3dD?= =?utf-8?B?cmxjcGYydjNRSEIyY3VCcG9TVFl4SENwMXJLYThmaWFZMFdlcWhBRFN4cmhD?= =?utf-8?B?L0lja2ZRWmlJMTJSQVZjd0lDY3BGN1NEbUNwQTZPKzVyTmpyVUJXVERGVGx4?= =?utf-8?B?US9ZcDFWT0N0cjkxYVFVN1hTRHpUTURqMi9lVVBsbTEyRFQ1UnBZekVCcHJN?= =?utf-8?B?UlE3ejBmQ2VqMENjT21FaFpJQ3g0Q3NNYlhpdkRvQlRBR0pLU1hSbXhTRDZV?= =?utf-8?B?akVPMWtIS1hIUGYvZU5kaEhFTFphNUlOajdPNFFiaTdWM3cxRTN5TnZJS2lN?= =?utf-8?B?cGNuUVFsZW9pbmZ0UDBLWEZtS2hQTmthb0dzK1QxWWN4ckMvSmdibEYyQm83?= =?utf-8?B?OU50Q25paDhzUnM2VHUxdWx1TTBXRnNJdk1WZkFSTEVVc0VnV0FvSVIvd0l4?= =?utf-8?B?c0hpNTgrd2NtT3RGSkRMZDNUUUNxUXRSZzNtd1dJSmRHRjJiVjUrVTNiaTJF?= =?utf-8?B?Vi92cFU2MEhFd1dLQXJlVURFL2JFWDUwSy9GbzhISVJDTkZpU1JjTnNpcngr?= =?utf-8?B?amdub0szQnkxenVQUXBaTEZWS2JJUnd6NVcwbjhmY0pPUXpldXBGYTR3Tjhr?= =?utf-8?B?OWdOVzJhSGpSODhuOU54R1dHaWhkeWkzd0dIUVd4czFqMVRQMjVVaE1WY2lS?= =?utf-8?B?SHBzZUNTSmNIUW5lRGx1SWdxTGZsemNwM2crWS83bWpmVUhxbDc0RWpPNlJh?= =?utf-8?B?ZWk2OTVjd2w0eVAyenZGcGEwdjVFemswOE1aVzRNREtRUXhGMlg0OTZOb1NB?= =?utf-8?B?UFdXOG9aU0J0d3pLcWpzdFVKeDQxTTV1dS9rZmZCWjV1aDB6aXExUEE5VWNw?= =?utf-8?B?eXBQNVZuQXlQQ3FWRFlDZEZ1QWs0V2ZETHVxdUJWRjVacEcxa05yUXROZU1u?= =?utf-8?B?Y0R3ZFo0KzUxRk1STmE2TXNHRkNXUDVrdGRBdXIrcnR3V0lTRTBmaStGQm1y?= =?utf-8?B?R0VKOUdrMVBRYTc4WitZeUtUTS90SnN6cXpyYW16MlFpOUdpY1ZtNGtqeEhy?= =?utf-8?B?cVM0TnBIQmhsd0Y4S1BGN1czRmoxMmw1bXR1WEhnNXIvTzNWaGdlbk9QQTZF?= =?utf-8?B?ejRJYndFaHZkbG0rem5Vanh2d3hQMnB0VmE0U2l5cmdkWjNXMWMzbW16ejJ6?= =?utf-8?Q?a3eZF0QLe+z0w3KTE/7Kpyds4?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5513.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a437e89b-5123-4daa-740d-08db792f04d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jun 2023 05:58:25.4284 (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: SGwIFHTXoDV4Ym1yERjMk5BkHX2HU4kcYZL5NXGUoEOHeruOUfKdgYl4UUn/NUNcQ8nfMasfPZ9/qI36GSWphg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB7190 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgTmlwdW4sDQoNClJlcGxpZXMgYXJlIGlubGluZS4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBOaXB1biBHdXB0YSA8bmlwdW4uZ3VwdGFAYW1kLmNvbT4NCj4gU2Vu dDogRnJpZGF5LCBKdW5lIDMwLCAyMDIzIDk6NDYgQU0NCj4gVG86IERpbmcsIFh1YW4gPHh1YW4u ZGluZ0BpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7DQo+IHRob21hc0Btb25qYWxvbi5uZXQ7IEJ1 cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+Ow0KPiBmZXJydWgueWln aXRAYW1kLmNvbQ0KPiBDYzogbmlraGlsLmFnYXJ3YWxAYW1kLmNvbTsgSGUsIFhpbmdndWFuZyA8 eGluZ2d1YW5nLmhlQGludGVsLmNvbT47IExpbmcsDQo+IFdlaVggPHdlaXgubGluZ0BpbnRlbC5j b20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHZmaW86IGRvIG5vdCBjb2FsZXNjZSBETUEgbWFw cGluZ3MNCj4gDQo+IEhpIFh1YW4sDQo+IA0KPiBUaGFua3MgZm9yIHBvaW50aW5nIG91dCB0aGUg aXNzdWUgYW5kIGZpZ3VyaW5nIG91dCB0aGUgcGF0Y2ggd2hpY2ggaW50cm9kdWNlZA0KPiB0aGlz LiBJZiB5b3UgaGF2ZSBhbnN3ZXJzIHRvIGJlbG93IHF1ZXJpZXMsIHBsZWFzZSBsZXQgbWUga25v dzoNCj4gDQo+IElzIHRoZXJlIGFueSBvdGhlciB0ZXN0IGNhc2VzIHdoaWNoIHRlc3RzICItLW5v LWh1Z2UiIHdoaWNoIHBhc3M/DQoNClllcywgdGhlcmUgYXJlIHRlc3QgY2FzZXMgYWRkaW5nICIt LW5vLWh1Z2UiIG9wdGlvbiB0byB2YWxpZGF0ZSA0ayBwYWdlIHNpemUgaW4gYXN5bmMgdmhvc3Qu DQpBY3R1YWxseSwgdGhlIHBhZ2Ugc2l6ZSBpcyBkZWNpZGVkIGJ5IGZyb250LWVuZCwgc28gSSB0 aGluayB0aGlzIGNhc2UgY2FuIGJlIHJlbW92ZWQuDQoNClByZXZpb3VzbHksIHRlc3RwbWQgY2Fu IHN0YXJ0IHdpdGggIi0tbm8taHVnZSIgb3B0aW9ucyAobm90IHN1cmUgaWYgdGhlcmUgYXJlIHRl c3QgY2FzZXMpLg0KQ21kOiAuL2J1aWxkL2FwcC9kcGRrLXRlc3RwbWQgLWwgNS02IC1uIDQgLS1u by1odWdlIC1tIDEwMjQgLS0gLWkNCg0KPiANCj4gQWxzbywgaWYgd2UgY2hhbmdlIHRoZSAiLW0i IG9wdGlvbiB0byBwcm92aWRlIGxvd2VyIG1lbW9yeSwgZG9lcyB0aGUgdGVzdA0KPiBwYXNzPw0K DQoiLW0iIG9wdGlvbiBpcyBhbHNvIGFkZGVkIGFuZCBkb2VzIG5vdCB3b3JrLg0KDQo+IA0KPiBX aGVuIHlvdSBtZW50aW9uIHRvbyBtYW55IHBhZ2VzIGV4Y2VlZCB0aGUgY2FwYWJpbGl0eSBvZiBJ T01NVSwgeW91IGFyZQ0KPiByZWZlcnJpbmcgdG8gSFcgY2FwYWJpbGl0eSB0byBjcmVhdGUgbXVs dGlwbGUgcGFnZXM/IEhlcmUgaXQgc2VlbXMgaW4gY2FzZSBvZg0KPiA0SyBwYWdlIHNpemUgd2Ug bmVlZCAyNTZLIHBhZ2VzIHdoaWNoIGlzIGxpbWl0aW5nIHRoZSBjYXBhY2l0eT8NCg0KWWVzLCB0 aGlzIGlzIHRoZSByZXN1bHQgb2YgbXkgaW5pdGlhbCBkZWJ1Z2dpbmcuDQpUaGUgZGlyZWN0IGlt cGFjdCBpcyB0aGF0IHRoaXMga2luZCBvZiB0ZXN0cG1kIGNhc2VzIGNhbm5vdCBzdGFydCBub3cu DQpJZiB0aGlzIGlzIGV4cGVjdGVkLCBJIHRoaW5rIHdlIGNhbiBjbG9zZSB0aGlzIGRlZmVjdCBh bmQgaWdub3JlIHRoZSAiLS1uby1odWdlIiBvcHRpb24gd2hlbiBzdGFydC4NCg0KUmVnYXJkcywN Clh1YW4NCg0KPiANCj4gUmVnYXJkcywNCj4gTmlwdW4NCj4gDQo+IE9uIDYvMjkvMjAyMyAxOjUx IFBNLCBEaW5nLCBYdWFuIHdyb3RlOg0KPiA+IEhpIE5pcHVuLA0KPiA+DQo+ID4gSSdkIGxpa2Ug dG8gYXBwcmVjaWF0ZSB5b3VyIHRpbWUgcmVhZGluZyB0aGlzIGVtYWlsLg0KPiA+DQo+ID4gT3Vy IFFBIHRlYW0gZm91bmQgdGhhdCBzaW5jZSB0aGlzIGNvbW1pdCAiYTM5OWQ3YjVhOTk0OiBkbyBu b3QNCj4gPiBjb2FsZXNjZSBETUEgbWFwcGluZ3MiIGlzIGludHJvZHVjZWQsIHRoZSBkcGRrIHRl c3RwbWQgc3RhcnQgd2l0aCAiLS1uby0NCj4gaHVnZSIgcGFyYW1ldGVycyB3aWxsIGZhaWxlZCwg YW5kIHNob3dzICJFQUw6IENhbm5vdCBzZXQgdXAgRE1BDQo+IHJlbWFwcGluZywgZXJyb3IgMjgg KE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlKSIuDQo+ID4gU28gdGhleSByZXBvcnRlZCBpdCBvbiBk cGRrIEJ1Z3ppbGxhOg0KPiBodHRwczovL2J1Z3MuZHBkay5vcmcvc2hvd19idWcuY2dpP2lkPTEy MzUuDQo+ID4NCj4gPiBJIHVuZGVyc3RhbmQgdGhpcyBmZWF0dXJlIGlzIHRvIGtlZXAgY29uc2lz dGVudCB3aXRoIHRoZSBrZXJuZWwgYW5kIG5vdCBhbGxvdw0KPiBtZW1vcnkgc2VnbWVudHMgYmUg bWVyZ2VkLg0KPiA+IFRoZSBzaWRlIGVmZmVjdCBpcyB0aGUgdGVzdHBtZCB3aXRoICItLW5vLWh1 Z2UiIHBhcmFtZXRlcnMgd2lsbCBub3QgYmUgYWJsZQ0KPiB0byBzdGFydCBiZWNhdXNlIHRoZSB0 b28gbWFueSBwYWdlcyB3aWxsIGV4Y2VlZCB0aGUgY2FwYWJpbGl0eSBvZiBJT01NVS4NCj4gPiBJ cyBpdCBleHBlY3RlZD8gU2hvdWxkIHdlIHJlbW92ZSB0aGUgLS1uby1odWdlIiBpbiBvdXIgdGVz dGNhc2U/DQo+ID4NCj4gPiBSZWdhcmRzLA0KPiA+IFh1YW4NCj4gPg0KPiA+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBOaXB1biBHdXB0YSA8bmlwdW4uZ3VwdGFAYW1k LmNvbT4NCj4gPj4gU2VudDogRnJpZGF5LCBEZWNlbWJlciAzMCwgMjAyMiA1OjU5IFBNDQo+ID4+ IFRvOiBkZXZAZHBkay5vcmc7IHRob21hc0Btb25qYWxvbi5uZXQ7IEJ1cmFrb3YsIEFuYXRvbHkN Cj4gPj4gPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+OyBmZXJydWgueWlnaXRAYW1kLmNvbQ0K PiA+PiBDYzogbmlraGlsLmFnYXJ3YWxAYW1kLmNvbTsgTmlwdW4gR3VwdGEgPG5pcHVuLmd1cHRh QGFtZC5jb20+DQo+ID4+IFN1YmplY3Q6IFtQQVRDSF0gdmZpbzogZG8gbm90IGNvYWxlc2NlIERN QSBtYXBwaW5ncw0KPiA+Pg0KPiA+PiBBdCB0aGUgY2xlYW51cCB0aW1lIHdoZW4gZG1hIHVubWFw IGlzIGRvbmUsIGxpbnV4IGtlcm5lbCBkb2VzIG5vdA0KPiA+PiBhbGxvdyB1bm1hcCBvZiBpbmRp dmlkdWFsIHNlZ21lbnRzIHdoaWNoIHdlcmUgY29hbGVzY2VkIHRvZ2V0aGVyDQo+ID4+IHdoaWxl IGNyZWF0aW5nIHRoZSBETUEgbWFwIGZvciB0eXBlMSBJT01NVSBtYXBwaW5ncy4gU28sIHRoaXMg Y2hhbmdlDQo+ID4+IHVwZGF0ZXMgdGhlIG1hcHBpbmcgb2YgdGhlIG1lbW9yeQ0KPiA+PiBzZWdt ZW50cyhodWdlcGFnZXMpIG9uIGEgcGVyLXBhZ2UgYmFzaXMuDQo+ID4+DQo+ID4+IFNpZ25lZC1v ZmYtYnk6IE5pcHVuIEd1cHRhIDxuaXB1bi5ndXB0YUBhbWQuY29tPg0KPiA+PiAtLS0NCj4gPj4N Cj4gPj4gV2hlbiBob3RwbHVnIG9mIGRldmljZXMgaXMgdXNlZCwgbXVsdGlwbGUgcGFnZXMgZ2V0 cyBjb2xhZWNlZCBhbmQgYQ0KPiA+PiBzaW5nbGUgbWFwcGluZyBnZXRzIGNyZWF0ZWQgZm9yIHRo ZXNlIHBhZ2VzICh1c2luZyBBUElzDQo+ID4+IHJ0ZV9tZW1zZWdfY29udGlnX3dhbGsoKSBhbmQg dHlwZTFfbWFwX2NvbnRpZygpLiBPbiB0aGUgY2xlYW51cCB0aW1lDQo+ID4+IHdoZW4gdGhlIG1l bW9yeSBpcyByZWxlYXNlZCwgdGhlIFZGSU8gZG9lcyBub3QgY2xlYW5zIHVwIHRoYXQgbWVtb3J5 DQo+ID4+IGFuZCBmb2xsb3dpbmcgZXJyb3IgaXMgb2JzZXJ2ZWQgaW4gdGhlIGVhbCBmb3IgMk1C DQo+ID4+IGh1Z2VwYWdlczoNCj4gPj4gRUFMOiBVbmV4cGVjdGVkIHNpemUgMCBvZiBETUEgcmVt YXBwaW5nIGNsZWFyZWQgaW5zdGVhZCBvZiAyMDk3MTUyDQo+ID4+DQo+ID4+IFRoaXMgaXMgYmVj YXVzZSBWRklPIGRvZXMgbm90IGNsZWFyIHRoZSBETUEgKHJlZmVyIEFQSQ0KPiA+PiB2ZmlvX2Rt YV9kb191bm1hcCgpIC0NCj4gPj4NCj4gaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20vbGludXgv bGF0ZXN0L3NvdXJjZS9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlDQo+IDEuDQo+ID4+IGMj TDEzMzApLA0KPiA+PiB3aGVyZSBpdCBjaGVja3MgdGhlIGRtYSBtYXBwaW5nIHdoZXJlIGl0IGNo ZWNrcyBmb3IgSU9WQSB0byBmcmVlOg0KPiA+Pg0KPiBodHRwczovL2VsaXhpci5ib290bGluLmNv bS9saW51eC9sYXRlc3Qvc291cmNlL2RyaXZlcnMvdmZpby92ZmlvX2lvbW11X3R5cGUNCj4gMS4N Cj4gPj4gYyNMMTQxOC4NCj4gPj4NCj4gPj4gVGh1cyB0aGlzIGNoYW5nZSB1cGRhdGVzIHRoZSBt YXBwaW5nIHRvIGJlIGNyZWF0ZWQgaW5kaXZpZHVhbGx5DQo+ID4+IGluc3RlYWQgb2YgY29sYWVj aW5nIHRoZW0uDQo+ID4+DQo+ID4+ICAgbGliL2VhbC9saW51eC9lYWxfdmZpby5jIHwgMjkgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4gICAxIGZpbGUgY2hhbmdlZCwgMjkgZGVs ZXRpb25zKC0pDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9saWIvZWFsL2xpbnV4L2VhbF92Zmlv LmMgYi9saWIvZWFsL2xpbnV4L2VhbF92ZmlvLmMNCj4gPj4gaW5kZXggNTQ5Yjg2YWUxZC4uNTZl ZGNjYjBkYiAxMDA2NDQNCj4gPj4gLS0tIGEvbGliL2VhbC9saW51eC9lYWxfdmZpby5jDQo+ID4+ ICsrKyBiL2xpYi9lYWwvbGludXgvZWFsX3ZmaW8uYw0KPiA+PiBAQCAtMTM2OSwxOSArMTM2OSw2 IEBAIHJ0ZV92ZmlvX2dldF9ncm91cF9udW0oY29uc3QgY2hhcg0KPiAqc3lzZnNfYmFzZSwNCj4g Pj4gICAJcmV0dXJuIDE7DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiAtc3RhdGljIGludA0KPiA+PiAt dHlwZTFfbWFwX2NvbnRpZyhjb25zdCBzdHJ1Y3QgcnRlX21lbXNlZ19saXN0ICptc2wsIGNvbnN0 IHN0cnVjdA0KPiA+PiBydGVfbWVtc2VnICptcywNCj4gPj4gLQkJc2l6ZV90IGxlbiwgdm9pZCAq YXJnKQ0KPiA+PiAtew0KPiA+PiAtCWludCAqdmZpb19jb250YWluZXJfZmQgPSBhcmc7DQo+ID4+ IC0NCj4gPj4gLQlpZiAobXNsLT5leHRlcm5hbCkNCj4gPj4gLQkJcmV0dXJuIDA7DQo+ID4+IC0N Cj4gPj4gLQlyZXR1cm4gdmZpb190eXBlMV9kbWFfbWVtX21hcCgqdmZpb19jb250YWluZXJfZmQs IG1zLT5hZGRyXzY0LA0KPiA+PiBtcy0+aW92YSwNCj4gPj4gLQkJCWxlbiwgMSk7DQo+ID4+IC19 DQo+ID4+IC0NCj4gPj4gICBzdGF0aWMgaW50DQo+ID4+ICAgdHlwZTFfbWFwKGNvbnN0IHN0cnVj dCBydGVfbWVtc2VnX2xpc3QgKm1zbCwgY29uc3Qgc3RydWN0IHJ0ZV9tZW1zZWcNCj4gKm1zLA0K PiA+PiAgIAkJdm9pZCAqYXJnKQ0KPiA+PiBAQCAtMTM5NiwxMCArMTM4Myw2IEBAIHR5cGUxX21h cChjb25zdCBzdHJ1Y3QgcnRlX21lbXNlZ19saXN0ICptc2wsDQo+ID4+IGNvbnN0IHN0cnVjdCBy dGVfbWVtc2VnICptcywNCj4gPj4gICAJaWYgKG1zLT5pb3ZhID09IFJURV9CQURfSU9WQSkNCj4g Pj4gICAJCXJldHVybiAwOw0KPiA+Pg0KPiA+PiAtCS8qIGlmIElPVkEgbW9kZSBpcyBWQSwgd2Un dmUgYWxyZWFkeSBtYXBwZWQgdGhlIGludGVybmFsIHNlZ21lbnRzDQo+ICovDQo+ID4+IC0JaWYg KCFtc2wtPmV4dGVybmFsICYmIHJ0ZV9lYWxfaW92YV9tb2RlKCkgPT0gUlRFX0lPVkFfVkEpDQo+ ID4+IC0JCXJldHVybiAwOw0KPiA+PiAtDQo+ID4+ICAgCXJldHVybiB2ZmlvX3R5cGUxX2RtYV9t ZW1fbWFwKCp2ZmlvX2NvbnRhaW5lcl9mZCwgbXMtPmFkZHJfNjQsDQo+ID4+IG1zLT5pb3ZhLA0K PiA+PiAgIAkJCW1zLT5sZW4sIDEpOw0KPiA+PiAgIH0NCj4gPj4gQEAgLTE0NjQsMTggKzE0NDcs NiBAQCB2ZmlvX3R5cGUxX2RtYV9tZW1fbWFwKGludA0KPiB2ZmlvX2NvbnRhaW5lcl9mZCwNCj4g Pj4gdWludDY0X3QgdmFkZHIsIHVpbnQ2NF90IGlvdmEsICBzdGF0aWMgaW50ICB2ZmlvX3R5cGUx X2RtYV9tYXAoaW50DQo+ID4+IHZmaW9fY29udGFpbmVyX2ZkKSAgew0KPiA+PiAtCWlmIChydGVf ZWFsX2lvdmFfbW9kZSgpID09IFJURV9JT1ZBX1ZBKSB7DQo+ID4+IC0JCS8qIHdpdGggSU9WQSBh cyBWQSBtb2RlLCB3ZSBjYW4gZ2V0IGF3YXkgd2l0aCBtYXBwaW5nDQo+ID4+IGNvbnRpZ3VvdXMN Cj4gPj4gLQkJICogY2h1bmtzIHJhdGhlciB0aGFuIGdvaW5nIHBhZ2UtYnktcGFnZS4NCj4gPj4g LQkJICovDQo+ID4+IC0JCWludCByZXQgPSBydGVfbWVtc2VnX2NvbnRpZ193YWxrKHR5cGUxX21h cF9jb250aWcsDQo+ID4+IC0JCQkJJnZmaW9fY29udGFpbmVyX2ZkKTsNCj4gPj4gLQkJaWYgKHJl dCkNCj4gPj4gLQkJCXJldHVybiByZXQ7DQo+ID4+IC0JCS8qIHdlIGhhdmUgdG8gY29udGludWUg dGhlIHdhbGsgYmVjYXVzZSB3ZSd2ZSBza2lwcGVkIHRoZQ0KPiA+PiAtCQkgKiBleHRlcm5hbCBz ZWdtZW50cyBkdXJpbmcgdGhlIGNvbmZpZyB3YWxrLg0KPiA+PiAtCQkgKi8NCj4gPj4gLQl9DQo+ ID4+ICAgCXJldHVybiBydGVfbWVtc2VnX3dhbGsodHlwZTFfbWFwLCAmdmZpb19jb250YWluZXJf ZmQpOyAgfQ0KPiA+Pg0KPiA+PiAtLQ0KPiA+PiAyLjI1LjENCj4gPg0K