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 BF65742DC8; Tue, 4 Jul 2023 07:13:14 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3A52C40F18; Tue, 4 Jul 2023 07:13:14 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id A9FE740E03 for ; Tue, 4 Jul 2023 07:13:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688447592; x=1719983592; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=McO950AEBzUP7vssQGFO2WBYVcMS8asEMmO1MZpXUHg=; b=JUmAgBID/1FAEpt1wsshWadnKwsl80cQE6SEDsVdfEAV0EuRv0FWfeYx EJNZ9Gsw2fYVqwAMsPVfFrghyr8YVWOZtgC9bFpgSQHnO0jb6Dwx0LnOZ Iw3pgeE1+kuIx3vKuRwLhGIUGUqDqJ9DdhMgjmSBCD37XcokBp6d6ZTNV AcMI4QgIiku5/MxEWivr3qcssYtKZ/D7TXT7flEDNin8Tv5+vc/Act57q QkSVKRXyrZJbW8Iilx6APntCfiiQtAJqZNtwzAyXBQSLs2UuxmGzcvNYT qbU6MPowT3DrpwkGNXI9CvTNw9cNN4VUVSM5wZJJDHzp/s5HZc+Seei5d A==; X-IronPort-AV: E=McAfee;i="6600,9927,10760"; a="363071630" X-IronPort-AV: E=Sophos;i="6.01,179,1684825200"; d="scan'208";a="363071630" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jul 2023 22:13:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10760"; a="892747003" X-IronPort-AV: E=Sophos;i="6.01,179,1684825200"; d="scan'208";a="892747003" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga005.jf.intel.com with ESMTP; 03 Jul 2023 22:13:11 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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; Mon, 3 Jul 2023 22:13:10 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 3 Jul 2023 22:13:09 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Mon, 3 Jul 2023 22:13:09 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.107) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Mon, 3 Jul 2023 22:13:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SDyS512+N5MJdKkKjK1xU7EzV6+v5aK9h1lF9YI3kjVGTq8EwfAjpqYLJa29bYzIvwLQ6kOYKtPP4YAMZZCy3/uPSIae53mt79cYN9klSExAWnsdlGHXjOavNwN+MDIo42yfhDgZvzhMp7x44VgPCsZEFUWMaKZKbfnCnzBgCzFRu234brxCMZnPah6eTzQiEpG2kKUzqFEK3xh0dlmyjZtii8hK6hP7MDHXACWFHAnWO3iJs8AiN0/dCHxdgqw7YKODyha3CY87PeRiEEf8c3YBdo1CqszUYa4/pEdNjoETPiR4TGYBl2P1oImUWkYMX294u4ZZts4oQlgBFZtd0Q== 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=McO950AEBzUP7vssQGFO2WBYVcMS8asEMmO1MZpXUHg=; b=dil34yNjrx4Hd0N+VwGXooJZX9HL3ISI9PCrInw2FXoJmBYKFbW4YbUv5im65QvJVrLaq+PYiABRkoTHSGcYs9wsFTep1WL//k9PicVtOx0aw9MITlApYjEm3gVF+VRS6045vNb/7CmbC2G6O94KzsM3iY9x0grPfkX+pMKrGgTLKefgrums0OjNi3QCriIFCQuFClZVdDKo+SliZG+h6pL1fgqtYnurT375U/It6jhfuDQ38dYwtaj2MQTuDgcaZNCfgWSPYJ/9FnbfmWH2y+IipTGK2GgC1mAmLmUMKObcVVu8/erp7fWHsUNsUudex6+JGtmnjnmRtZvdO3wg7Q== 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 BL1PR11MB5432.namprd11.prod.outlook.com (2603:10b6:208:319::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6544.24; Tue, 4 Jul 2023 05:13:07 +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.024; Tue, 4 Jul 2023 05:13:07 +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+ijFzQgAEkXACAAD8nwIAGQp9w Date: Tue, 4 Jul 2023 05:13:07 +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_|BL1PR11MB5432:EE_ x-ms-office365-filtering-correlation-id: a345c69b-04f1-4b8f-7c73-08db7c4d5a3b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Gv9vFChHMIwh2V57GKydp0UlBkxhO2toqaB+Ruaqnps28AfoDkKT1bcAFjVjGn/gqsejmEmuf7dD6T6cS9qFFSgiamuS71NH2ntZ3Czg0feOcZfUCXmohh19P4NpWkG2KF2buZwv2HkU6C/229QchLl5Pey1ovEvWItAL8UVNHQurhCTk02Lcjy3LhmDFGU38R1gNoGU+LwckOUOC25ZXhL8XV0DrCT8NybCaYEAEyNR0oUD2SP/lZWgeHsUZBjCqMTGeL4az04Xv9FNJIav672zJPlFNYxBwa7KAVgmLzy/uLeX5I6s3LKXIdkSsU0pf/WasGFh+F7st7DHjLLBQaXUSVk6HywZ+TM693wUUL6L9wKPVd1Eq1JIttHkJeS5YXr+uox+8tSRXjWqgT2MalJK0gSl1tCt8xPT4pFvPvocbvGeSBcSGLMAOEgU0CjtBzmH8xFxlXXYDIVd5aQfPKooBnVTZYjBhN9mX0Grw3iYH2EAPzcVLcKXe0WkJBd+q88iPzBnDq0jO87w7PHI358lTjey0zFaheNr36NSOF9ZwC4Mp2zIS4+/8nJcHpVsfOJQK8DwpSjXNN9wANL+YSUEdSeDPE5vj9dHAdE91fxdjH7Ilfzvdo6KCNC0S26MrSN1icEy9Gsufi5/6xHgAQ== 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)(396003)(39860400002)(136003)(376002)(366004)(346002)(451199021)(33656002)(966005)(186003)(7696005)(71200400001)(478600001)(107886003)(26005)(9686003)(5660300002)(52536014)(2906002)(86362001)(83380400001)(4326008)(76116006)(82960400001)(66946007)(8936002)(54906003)(110136005)(316002)(66476007)(66556008)(66446008)(64756008)(41300700001)(8676002)(38070700005)(55016003)(6506007)(53546011)(122000001)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eG9rRkZYUzNzL003MmV4NUlZcUd3OWI0OENtaXRkRnp4Wjh1OStBRG9sazcy?= =?utf-8?B?dnR3VzhQcktnWVhncEl2emRUbC9nOWtRSWxIbk4vbGdpZzkwemJWVGVmcFdR?= =?utf-8?B?eU5mN2RkQ0hIMzdVekJvZmY3Z003NFkwQlYvSDBQWVNUVGEydHFoS1p1K0pW?= =?utf-8?B?OXJMQWpmQWM3YWladkcwTG13Q1Fna0FJOVhJVWZuaWFnUU5wYnp2M0RLa2lF?= =?utf-8?B?SERQT2p0K25IZDVDL1NmdEdXU0gwNjBCc1RpY0xGeU8rdzdZTkhibWhXTWtL?= =?utf-8?B?VHBFeDJYRUpZQ05ocXRhWHNnN2o3Q0x0UGlpWWIvWWIvUnJ1eHZKMFBCQXNL?= =?utf-8?B?dTdVLy9Cb0puc09tdFpoWUFYOENwL1gwR3JQSGFVRHZKRVdFRjBqb01zUEpr?= =?utf-8?B?aG50RldISlZwYUswVS80RDY3TUlpUXphY05PWTVHRk9OQnJHNWNpUHpnRS8r?= =?utf-8?B?S1NSS1RqL2g0NzJ1NGxSeG1XT0drU3g5ay9URUNJV2ZycWl6aHdYOHUzT3gy?= =?utf-8?B?SGczejk2NGVlVkhCNVZQSW12V0JtK2NYMCt1RFhrVzNSSGtxTzRtN2JUWWVo?= =?utf-8?B?QUJ5WFJWMkwyL2E3dmRGU09FdEsra0xXTkxzVjBBSERrTlhzaFhjd1dLRGZv?= =?utf-8?B?bnpKQlE4dTg2YkcvYTdDUnIrbklTT1RicHZiVDlyWG1ZR2c4K3UzbjBoK0xs?= =?utf-8?B?dUR4dTVsNTA0V0xjWVJwVXM4S09NY1I2MSt1NnpONUVibWdOMmo0TjdSYWcw?= =?utf-8?B?ZjZxTWZSM2xIMlQxWTJia1l0OVdxMmNLVGR3cllXQnhtVnNqd1pEMW16RUhv?= =?utf-8?B?a1c4RmRGNTJuZDM1Zld6c1pXTU94WXVYY0dVSDZuaDR1ZFdxZkc1Z0F1MlNp?= =?utf-8?B?N1owNlE2aE1KNUtqVnFadUhvaHBEMDV3MVhrYXFDdG1NamM3VkhHTWNZaHRy?= =?utf-8?B?UXViSzJjNkN4RUlFdTVCTi96SmU4S1FoMVRpVDB3YUwvcE5ZeWFkUTdBblEr?= =?utf-8?B?cVlVRytYb0ZUR3VDRFo3WkdRN094Qzh1V2hROXVvVUNSeFdGVmlKanM4MzE0?= =?utf-8?B?UWdkbzMzckNLd2JqbDVHU1lDWGRYNlJJTXF5VXV1NklPUHFiS2sxdldrMmpq?= =?utf-8?B?T1Z2STFaWjFjbXlBNHUxTEZZcnQyam1ZWG1SVyt4cFA4dFI5ZTZmUWVqY3p3?= =?utf-8?B?bFRGRW8zdTEwY3hteFQrdHJHMDRkU1EweXpsODUzcFo3T0tQYkpCN1liQnMv?= =?utf-8?B?K3BFM1lZU0hqTG1PYzBJdnVrbzFIS1ZIcnVFQ1NWTFNpYmgrWFV5aXpuNlN0?= =?utf-8?B?YXFMcW9YbjNJRDdTazlsYnIxRXM5N2M1NmZRNWdrVndUY2t4cWJJWG1ESlFx?= =?utf-8?B?S1M5SUNGT0FmMTk3UHFoTkVhb2ttWUdmU1lOVkc0UUY5ZDM4dE9iSGFISnBw?= =?utf-8?B?Tjh6cDRObEYzZkxETGFheFQ2R2p3NmJWZU1SY0cxa3ZXUzFBbFBYTWQrUWxp?= =?utf-8?B?TXdSbXFzZnRHdDM5QzQ1N3RPNFM1UTcyZ1ZaU1BZbkxEakRhNU1XUjhTbWd5?= =?utf-8?B?M1dveDIyLzZPU1EyUzVaUU9CejV3VkVGamFROHpMc2tBdWpBbGlybDlQdnQ2?= =?utf-8?B?RmVyLzlZaWd5RDVjYlFObHFzaUp1enk0NzJMSkV4RkQ0L2llbDZIWnV0VG81?= =?utf-8?B?N0doUm9velJwaEI5bnVtRmJ2RGFDUFpxVTA5bkNiYW85V0d3TUc1Z3FVVHJG?= =?utf-8?B?M3FNOXlTY0ZJTldndSthNmE5dDQ4WlRSU0cvSWlqeHM4OENzOFc2d3JnRUFx?= =?utf-8?B?eFlCdXBnNEo2SGJ1NlZqTUVWR0dYWUpGaFBiWTdLWng1YXhxc002R3dMcUJI?= =?utf-8?B?dFJMN05OOEpkZDlmcy9MM1VjR1I3bGpXSyt2OGpCREU4d0xERDdyUTdoR0hv?= =?utf-8?B?bXpTSFVUM0haaE9kemlXdFBwd2dkL28wQ3lZVUVheTVTakpocDl0S0Zkcm1p?= =?utf-8?B?NTZSNjlJK0k2aGVyb293UVFhUy9icjZKcGZYNWNHK01HNmVNZTJ2aFF2dU5W?= =?utf-8?B?MDBpTVQ3QVVaYjV3UHl5bXYwZWJ6YVN0REZMK1VGZlZKL2xRbHoxMG00dzNT?= =?utf-8?Q?U4YQNfP6VW2mODASjrGLCVnx/?= 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: a345c69b-04f1-4b8f-7c73-08db7c4d5a3b X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2023 05:13:07.0615 (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: cst5FdatcZqC0NCdOfJlFI/Pd1jmjzQl/MjBx6V4z+u/PT5FC39kKwrCe29I+bKzSAkXNU2DsJwjr2evFMeuVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5432 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 SGkgTmlwdW4sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGluZywg WHVhbg0KPiBTZW50OiBGcmlkYXksIEp1bmUgMzAsIDIwMjMgMTo1OCBQTQ0KPiBUbzogTmlwdW4g R3VwdGEgPG5pcHVuLmd1cHRhQGFtZC5jb20+OyBkZXZAZHBkay5vcmc7DQo+IHRob21hc0Btb25q YWxvbi5uZXQ7IEJ1cmFrb3YsIEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+Ow0K PiBmZXJydWgueWlnaXRAYW1kLmNvbQ0KPiBDYzogbmlraGlsLmFnYXJ3YWxAYW1kLmNvbTsgSGUs IFhpbmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT47IExpbmcsDQo+IFdlaVggPHdlaXgu bGluZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIHZmaW86IGRvIG5vdCBjb2Fs ZXNjZSBETUEgbWFwcGluZ3MNCj4gDQo+IEhpIE5pcHVuLA0KPiANCj4gUmVwbGllcyBhcmUgaW5s aW5lLg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE5pcHVu IEd1cHRhIDxuaXB1bi5ndXB0YUBhbWQuY29tPg0KPiA+IFNlbnQ6IEZyaWRheSwgSnVuZSAzMCwg MjAyMyA5OjQ2IEFNDQo+ID4gVG86IERpbmcsIFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBk ZXZAZHBkay5vcmc7DQo+ID4gdGhvbWFzQG1vbmphbG9uLm5ldDsgQnVyYWtvdiwgQW5hdG9seSA8 YW5hdG9seS5idXJha292QGludGVsLmNvbT47DQo+ID4gZmVycnVoLnlpZ2l0QGFtZC5jb20NCj4g PiBDYzogbmlraGlsLmFnYXJ3YWxAYW1kLmNvbTsgSGUsIFhpbmdndWFuZyA8eGluZ2d1YW5nLmhl QGludGVsLmNvbT47DQo+ID4gTGluZywgV2VpWCA8d2VpeC5saW5nQGludGVsLmNvbT4NCj4gPiBT dWJqZWN0OiBSZTogW1BBVENIXSB2ZmlvOiBkbyBub3QgY29hbGVzY2UgRE1BIG1hcHBpbmdzDQo+ ID4NCj4gPiBIaSBYdWFuLA0KPiA+DQo+ID4gVGhhbmtzIGZvciBwb2ludGluZyBvdXQgdGhlIGlz c3VlIGFuZCBmaWd1cmluZyBvdXQgdGhlIHBhdGNoIHdoaWNoDQo+ID4gaW50cm9kdWNlZCB0aGlz LiBJZiB5b3UgaGF2ZSBhbnN3ZXJzIHRvIGJlbG93IHF1ZXJpZXMsIHBsZWFzZSBsZXQgbWUga25v dzoNCj4gPg0KPiA+IElzIHRoZXJlIGFueSBvdGhlciB0ZXN0IGNhc2VzIHdoaWNoIHRlc3RzICIt LW5vLWh1Z2UiIHdoaWNoIHBhc3M/DQo+IA0KPiBZZXMsIHRoZXJlIGFyZSB0ZXN0IGNhc2VzIGFk ZGluZyAiLS1uby1odWdlIiBvcHRpb24gdG8gdmFsaWRhdGUgNGsgcGFnZSBzaXplIGluDQo+IGFz eW5jIHZob3N0Lg0KPiBBY3R1YWxseSwgdGhlIHBhZ2Ugc2l6ZSBpcyBkZWNpZGVkIGJ5IGZyb250 LWVuZCwgc28gSSB0aGluayB0aGlzIGNhc2UgY2FuIGJlDQo+IHJlbW92ZWQuDQo+IA0KPiBQcmV2 aW91c2x5LCB0ZXN0cG1kIGNhbiBzdGFydCB3aXRoICItLW5vLWh1Z2UiIG9wdGlvbnMgKG5vdCBz dXJlIGlmIHRoZXJlIGFyZQ0KPiB0ZXN0IGNhc2VzKS4NCj4gQ21kOiAuL2J1aWxkL2FwcC9kcGRr LXRlc3RwbWQgLWwgNS02IC1uIDQgLS1uby1odWdlIC1tIDEwMjQgLS0gLWkNCj4gDQo+ID4NCj4g PiBBbHNvLCBpZiB3ZSBjaGFuZ2UgdGhlICItbSIgb3B0aW9uIHRvIHByb3ZpZGUgbG93ZXIgbWVt b3J5LCBkb2VzIHRoZQ0KPiA+IHRlc3QgcGFzcz8NCj4gDQo+ICItbSIgb3B0aW9uIGlzIGFsc28g YWRkZWQgYW5kIGRvZXMgbm90IHdvcmsuDQo+IA0KPiA+DQo+ID4gV2hlbiB5b3UgbWVudGlvbiB0 b28gbWFueSBwYWdlcyBleGNlZWQgdGhlIGNhcGFiaWxpdHkgb2YgSU9NTVUsIHlvdQ0KPiA+IGFy ZSByZWZlcnJpbmcgdG8gSFcgY2FwYWJpbGl0eSB0byBjcmVhdGUgbXVsdGlwbGUgcGFnZXM/IEhl cmUgaXQgc2VlbXMNCj4gPiBpbiBjYXNlIG9mIDRLIHBhZ2Ugc2l6ZSB3ZSBuZWVkIDI1NksgcGFn ZXMgd2hpY2ggaXMgbGltaXRpbmcgdGhlIGNhcGFjaXR5Pw0KPiANCj4gWWVzLCB0aGlzIGlzIHRo ZSByZXN1bHQgb2YgbXkgaW5pdGlhbCBkZWJ1Z2dpbmcuDQo+IFRoZSBkaXJlY3QgaW1wYWN0IGlz IHRoYXQgdGhpcyBraW5kIG9mIHRlc3RwbWQgY2FzZXMgY2Fubm90IHN0YXJ0IG5vdy4NCj4gSWYg dGhpcyBpcyBleHBlY3RlZCwgSSB0aGluayB3ZSBjYW4gY2xvc2UgdGhpcyBkZWZlY3QgYW5kIGln bm9yZSB0aGUgIi0tbm8taHVnZSINCj4gb3B0aW9uIHdoZW4gc3RhcnQuDQoNCkFueSBpbnNpZ2h0 cz8gU2hvdWxkIHdlIGp1c3QgaWdub3JlIHRoZSAiLS1uby1odWdlIiBvcHRpb24gYW5kIGNsb3Nl IHRoaXMgZGVmZWN0Pw0KTm93IHdlIGRpZCB0aGlzIGFzIGEgd29ya2Fyb3VuZC4gU2VlbXMgbm8g b25lIHVzZXMgdGhlICItLW5vLWh1Z2UiIG9wdGlvbiBpbiB0ZXN0cG1kIG5vdy4NCg0KVGhhbmtz LA0KWHVhbg0KDQo+IA0KPiBSZWdhcmRzLA0KPiBYdWFuDQo+IA0KPiA+DQo+ID4gUmVnYXJkcywN Cj4gPiBOaXB1bg0KPiA+DQo+ID4gT24gNi8yOS8yMDIzIDE6NTEgUE0sIERpbmcsIFh1YW4gd3Jv dGU6DQo+ID4gPiBIaSBOaXB1biwNCj4gPiA+DQo+ID4gPiBJJ2QgbGlrZSB0byBhcHByZWNpYXRl IHlvdXIgdGltZSByZWFkaW5nIHRoaXMgZW1haWwuDQo+ID4gPg0KPiA+ID4gT3VyIFFBIHRlYW0g Zm91bmQgdGhhdCBzaW5jZSB0aGlzIGNvbW1pdCAiYTM5OWQ3YjVhOTk0OiBkbyBub3QNCj4gPiA+ IGNvYWxlc2NlIERNQSBtYXBwaW5ncyIgaXMgaW50cm9kdWNlZCwgdGhlIGRwZGsgdGVzdHBtZCBz dGFydCB3aXRoDQo+ID4gPiAiLS1uby0NCj4gPiBodWdlIiBwYXJhbWV0ZXJzIHdpbGwgZmFpbGVk LCBhbmQgc2hvd3MgIkVBTDogQ2Fubm90IHNldCB1cCBETUENCj4gPiByZW1hcHBpbmcsIGVycm9y IDI4IChObyBzcGFjZSBsZWZ0IG9uIGRldmljZSkiLg0KPiA+ID4gU28gdGhleSByZXBvcnRlZCBp dCBvbiBkcGRrIEJ1Z3ppbGxhOg0KPiA+IGh0dHBzOi8vYnVncy5kcGRrLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MTIzNS4NCj4gPiA+DQo+ID4gPiBJIHVuZGVyc3RhbmQgdGhpcyBmZWF0dXJlIGlzIHRv IGtlZXAgY29uc2lzdGVudCB3aXRoIHRoZSBrZXJuZWwgYW5kDQo+ID4gPiBub3QgYWxsb3cNCj4g PiBtZW1vcnkgc2VnbWVudHMgYmUgbWVyZ2VkLg0KPiA+ID4gVGhlIHNpZGUgZWZmZWN0IGlzIHRo ZSB0ZXN0cG1kIHdpdGggIi0tbm8taHVnZSIgcGFyYW1ldGVycyB3aWxsIG5vdA0KPiA+ID4gYmUg YWJsZQ0KPiA+IHRvIHN0YXJ0IGJlY2F1c2UgdGhlIHRvbyBtYW55IHBhZ2VzIHdpbGwgZXhjZWVk IHRoZSBjYXBhYmlsaXR5IG9mIElPTU1VLg0KPiA+ID4gSXMgaXQgZXhwZWN0ZWQ/IFNob3VsZCB3 ZSByZW1vdmUgdGhlIC0tbm8taHVnZSIgaW4gb3VyIHRlc3RjYXNlPw0KPiA+ID4NCj4gPiA+IFJl Z2FyZHMsDQo+ID4gPiBYdWFuDQo+ID4gPg0KPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4gPj4gRnJvbTogTmlwdW4gR3VwdGEgPG5pcHVuLmd1cHRhQGFtZC5jb20+DQo+ID4g Pj4gU2VudDogRnJpZGF5LCBEZWNlbWJlciAzMCwgMjAyMiA1OjU5IFBNDQo+ID4gPj4gVG86IGRl dkBkcGRrLm9yZzsgdGhvbWFzQG1vbmphbG9uLm5ldDsgQnVyYWtvdiwgQW5hdG9seQ0KPiA+ID4+ IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsgZmVycnVoLnlpZ2l0QGFtZC5jb20NCj4gPiA+ PiBDYzogbmlraGlsLmFnYXJ3YWxAYW1kLmNvbTsgTmlwdW4gR3VwdGEgPG5pcHVuLmd1cHRhQGFt ZC5jb20+DQo+ID4gPj4gU3ViamVjdDogW1BBVENIXSB2ZmlvOiBkbyBub3QgY29hbGVzY2UgRE1B IG1hcHBpbmdzDQo+ID4gPj4NCj4gPiA+PiBBdCB0aGUgY2xlYW51cCB0aW1lIHdoZW4gZG1hIHVu bWFwIGlzIGRvbmUsIGxpbnV4IGtlcm5lbCBkb2VzIG5vdA0KPiA+ID4+IGFsbG93IHVubWFwIG9m IGluZGl2aWR1YWwgc2VnbWVudHMgd2hpY2ggd2VyZSBjb2FsZXNjZWQgdG9nZXRoZXINCj4gPiA+ PiB3aGlsZSBjcmVhdGluZyB0aGUgRE1BIG1hcCBmb3IgdHlwZTEgSU9NTVUgbWFwcGluZ3MuIFNv LCB0aGlzDQo+ID4gPj4gY2hhbmdlIHVwZGF0ZXMgdGhlIG1hcHBpbmcgb2YgdGhlIG1lbW9yeQ0K PiA+ID4+IHNlZ21lbnRzKGh1Z2VwYWdlcykgb24gYSBwZXItcGFnZSBiYXNpcy4NCj4gPiA+Pg0K PiA+ID4+IFNpZ25lZC1vZmYtYnk6IE5pcHVuIEd1cHRhIDxuaXB1bi5ndXB0YUBhbWQuY29tPg0K PiA+ID4+IC0tLQ0KPiA+ID4+DQo+ID4gPj4gV2hlbiBob3RwbHVnIG9mIGRldmljZXMgaXMgdXNl ZCwgbXVsdGlwbGUgcGFnZXMgZ2V0cyBjb2xhZWNlZCBhbmQgYQ0KPiA+ID4+IHNpbmdsZSBtYXBw aW5nIGdldHMgY3JlYXRlZCBmb3IgdGhlc2UgcGFnZXMgKHVzaW5nIEFQSXMNCj4gPiA+PiBydGVf bWVtc2VnX2NvbnRpZ193YWxrKCkgYW5kIHR5cGUxX21hcF9jb250aWcoKS4gT24gdGhlIGNsZWFu dXANCj4gPiA+PiB0aW1lIHdoZW4gdGhlIG1lbW9yeSBpcyByZWxlYXNlZCwgdGhlIFZGSU8gZG9l cyBub3QgY2xlYW5zIHVwIHRoYXQNCj4gPiA+PiBtZW1vcnkgYW5kIGZvbGxvd2luZyBlcnJvciBp cyBvYnNlcnZlZCBpbiB0aGUgZWFsIGZvciAyTUINCj4gPiA+PiBodWdlcGFnZXM6DQo+ID4gPj4g RUFMOiBVbmV4cGVjdGVkIHNpemUgMCBvZiBETUEgcmVtYXBwaW5nIGNsZWFyZWQgaW5zdGVhZCBv ZiAyMDk3MTUyDQo+ID4gPj4NCj4gPiA+PiBUaGlzIGlzIGJlY2F1c2UgVkZJTyBkb2VzIG5vdCBj bGVhciB0aGUgRE1BIChyZWZlciBBUEkNCj4gPiA+PiB2ZmlvX2RtYV9kb191bm1hcCgpIC0NCj4g PiA+Pg0KPiA+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L2xhdGVzdC9zb3VyY2Uv ZHJpdmVycy92ZmlvL3ZmaW9faW9tbXUNCj4gPiBfdHlwZQ0KPiA+IDEuDQo+ID4gPj4gYyNMMTMz MCksDQo+ID4gPj4gd2hlcmUgaXQgY2hlY2tzIHRoZSBkbWEgbWFwcGluZyB3aGVyZSBpdCBjaGVj a3MgZm9yIElPVkEgdG8gZnJlZToNCj4gPiA+Pg0KPiA+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4u Y29tL2xpbnV4L2xhdGVzdC9zb3VyY2UvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXUNCj4gPiBfdHlw ZQ0KPiA+IDEuDQo+ID4gPj4gYyNMMTQxOC4NCj4gPiA+Pg0KPiA+ID4+IFRodXMgdGhpcyBjaGFu Z2UgdXBkYXRlcyB0aGUgbWFwcGluZyB0byBiZSBjcmVhdGVkIGluZGl2aWR1YWxseQ0KPiA+ID4+ IGluc3RlYWQgb2YgY29sYWVjaW5nIHRoZW0uDQo+ID4gPj4NCj4gPiA+PiAgIGxpYi9lYWwvbGlu dXgvZWFsX3ZmaW8uYyB8IDI5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPj4g ICAxIGZpbGUgY2hhbmdlZCwgMjkgZGVsZXRpb25zKC0pDQo+ID4gPj4NCj4gPiA+PiBkaWZmIC0t Z2l0IGEvbGliL2VhbC9saW51eC9lYWxfdmZpby5jIGIvbGliL2VhbC9saW51eC9lYWxfdmZpby5j DQo+ID4gPj4gaW5kZXggNTQ5Yjg2YWUxZC4uNTZlZGNjYjBkYiAxMDA2NDQNCj4gPiA+PiAtLS0g YS9saWIvZWFsL2xpbnV4L2VhbF92ZmlvLmMNCj4gPiA+PiArKysgYi9saWIvZWFsL2xpbnV4L2Vh bF92ZmlvLmMNCj4gPiA+PiBAQCAtMTM2OSwxOSArMTM2OSw2IEBAIHJ0ZV92ZmlvX2dldF9ncm91 cF9udW0oY29uc3QgY2hhcg0KPiA+ICpzeXNmc19iYXNlLA0KPiA+ID4+ICAgCXJldHVybiAxOw0K PiA+ID4+ICAgfQ0KPiA+ID4+DQo+ID4gPj4gLXN0YXRpYyBpbnQNCj4gPiA+PiAtdHlwZTFfbWFw X2NvbnRpZyhjb25zdCBzdHJ1Y3QgcnRlX21lbXNlZ19saXN0ICptc2wsIGNvbnN0IHN0cnVjdA0K PiA+ID4+IHJ0ZV9tZW1zZWcgKm1zLA0KPiA+ID4+IC0JCXNpemVfdCBsZW4sIHZvaWQgKmFyZykN Cj4gPiA+PiAtew0KPiA+ID4+IC0JaW50ICp2ZmlvX2NvbnRhaW5lcl9mZCA9IGFyZzsNCj4gPiA+ PiAtDQo+ID4gPj4gLQlpZiAobXNsLT5leHRlcm5hbCkNCj4gPiA+PiAtCQlyZXR1cm4gMDsNCj4g PiA+PiAtDQo+ID4gPj4gLQlyZXR1cm4gdmZpb190eXBlMV9kbWFfbWVtX21hcCgqdmZpb19jb250 YWluZXJfZmQsIG1zLT5hZGRyXzY0LA0KPiA+ID4+IG1zLT5pb3ZhLA0KPiA+ID4+IC0JCQlsZW4s IDEpOw0KPiA+ID4+IC19DQo+ID4gPj4gLQ0KPiA+ID4+ICAgc3RhdGljIGludA0KPiA+ID4+ICAg dHlwZTFfbWFwKGNvbnN0IHN0cnVjdCBydGVfbWVtc2VnX2xpc3QgKm1zbCwgY29uc3Qgc3RydWN0 DQo+ID4gPj4gcnRlX21lbXNlZw0KPiA+ICptcywNCj4gPiA+PiAgIAkJdm9pZCAqYXJnKQ0KPiA+ ID4+IEBAIC0xMzk2LDEwICsxMzgzLDYgQEAgdHlwZTFfbWFwKGNvbnN0IHN0cnVjdCBydGVfbWVt c2VnX2xpc3QgKm1zbCwNCj4gPiA+PiBjb25zdCBzdHJ1Y3QgcnRlX21lbXNlZyAqbXMsDQo+ID4g Pj4gICAJaWYgKG1zLT5pb3ZhID09IFJURV9CQURfSU9WQSkNCj4gPiA+PiAgIAkJcmV0dXJuIDA7 DQo+ID4gPj4NCj4gPiA+PiAtCS8qIGlmIElPVkEgbW9kZSBpcyBWQSwgd2UndmUgYWxyZWFkeSBt YXBwZWQgdGhlIGludGVybmFsIHNlZ21lbnRzDQo+ID4gKi8NCj4gPiA+PiAtCWlmICghbXNsLT5l eHRlcm5hbCAmJiBydGVfZWFsX2lvdmFfbW9kZSgpID09IFJURV9JT1ZBX1ZBKQ0KPiA+ID4+IC0J CXJldHVybiAwOw0KPiA+ID4+IC0NCj4gPiA+PiAgIAlyZXR1cm4gdmZpb190eXBlMV9kbWFfbWVt X21hcCgqdmZpb19jb250YWluZXJfZmQsIG1zLT5hZGRyXzY0LA0KPiA+ID4+IG1zLT5pb3ZhLA0K PiA+ID4+ICAgCQkJbXMtPmxlbiwgMSk7DQo+ID4gPj4gICB9DQo+ID4gPj4gQEAgLTE0NjQsMTgg KzE0NDcsNiBAQCB2ZmlvX3R5cGUxX2RtYV9tZW1fbWFwKGludA0KPiA+IHZmaW9fY29udGFpbmVy X2ZkLA0KPiA+ID4+IHVpbnQ2NF90IHZhZGRyLCB1aW50NjRfdCBpb3ZhLCAgc3RhdGljIGludCAg dmZpb190eXBlMV9kbWFfbWFwKGludA0KPiA+ID4+IHZmaW9fY29udGFpbmVyX2ZkKSAgew0KPiA+ ID4+IC0JaWYgKHJ0ZV9lYWxfaW92YV9tb2RlKCkgPT0gUlRFX0lPVkFfVkEpIHsNCj4gPiA+PiAt CQkvKiB3aXRoIElPVkEgYXMgVkEgbW9kZSwgd2UgY2FuIGdldCBhd2F5IHdpdGggbWFwcGluZw0K PiA+ID4+IGNvbnRpZ3VvdXMNCj4gPiA+PiAtCQkgKiBjaHVua3MgcmF0aGVyIHRoYW4gZ29pbmcg cGFnZS1ieS1wYWdlLg0KPiA+ID4+IC0JCSAqLw0KPiA+ID4+IC0JCWludCByZXQgPSBydGVfbWVt c2VnX2NvbnRpZ193YWxrKHR5cGUxX21hcF9jb250aWcsDQo+ID4gPj4gLQkJCQkmdmZpb19jb250 YWluZXJfZmQpOw0KPiA+ID4+IC0JCWlmIChyZXQpDQo+ID4gPj4gLQkJCXJldHVybiByZXQ7DQo+ ID4gPj4gLQkJLyogd2UgaGF2ZSB0byBjb250aW51ZSB0aGUgd2FsayBiZWNhdXNlIHdlJ3ZlIHNr aXBwZWQgdGhlDQo+ID4gPj4gLQkJICogZXh0ZXJuYWwgc2VnbWVudHMgZHVyaW5nIHRoZSBjb25m aWcgd2Fsay4NCj4gPiA+PiAtCQkgKi8NCj4gPiA+PiAtCX0NCj4gPiA+PiAgIAlyZXR1cm4gcnRl X21lbXNlZ193YWxrKHR5cGUxX21hcCwgJnZmaW9fY29udGFpbmVyX2ZkKTsgIH0NCj4gPiA+Pg0K PiA+ID4+IC0tDQo+ID4gPj4gMi4yNS4xDQo+ID4gPg0K