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 A79E9A0C43; Tue, 16 Nov 2021 11:08:28 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 993D64114B; Tue, 16 Nov 2021 11:08:28 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id CCB414111C for ; Tue, 16 Nov 2021 11:08:26 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10169"; a="233497162" X-IronPort-AV: E=Sophos;i="5.87,238,1631602800"; d="scan'208";a="233497162" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2021 02:08:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,238,1631602800"; d="scan'208";a="535856190" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 16 Nov 2021 02:08:25 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 16 Nov 2021 02:08:25 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 16 Nov 2021 02:08:25 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) 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.2242.12; Tue, 16 Nov 2021 02:08:24 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YOPEFbfcPDpXVbr3p6LpSCOUjoKq8ZLFrz3NDtGYwghPr0JtlrDvwXY3Nn1YZ3BfZnQ96SAKKUfoNw3tMFhBlMpbp3fYMdU/+zK3FM955uwUWIoZhWmKohlIdEjYYviStay4Q66pp7hum57fmQ64WibJ0Wl43pk6BLatADBk2BiwV6X1TCkbv/vmBXatdEFu98zGnXmeMTj4C5txUyTzloXerqaAogL6/jqRbZzxuiL/c9mKr9CDsRKUEyeqHiqfkZroXDBTXId5ohDaJ7tf9Iwewu0YU/kzZohYyC6T68F/x/3EKX8Lk0pJWICuHZELSYBpIHV9kLk6sS3oVagjoA== 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=zAyKxTJ5AZER+LnL8XUw9QvO+Z2zLTAJrqYcKCVw8pM=; b=AKGF5F5yP+J3Ex7GlSZWO5ogKI+mOOCCK4K5IPu8s1GkOaZR5tvKAeI4vMvxxwKiu5C/mw8dyIT3W1fNjHNdGrGQdbnmYe/UiI9p0jY58uR/v2+gceMPEzsuNF7zi4cTIt+xh0uiBMf2V41IaAwVtgmDHHDOGIihJF1Y95f2jFxdYmoTRxcotIMjjvBJqqXu3TlE+0xASqK1Q1gHJDynUM2+bjGnAGPMUHzVdGUtymETRbySn/P9+FVORcqk2LQRnUTXDixeB+hs5A5CjjzlM/b91JVahY1d75d2GHYI0ROueFOOUckyPCbNrdf2YUebywdYyy7aVEO6gsH3akqR5g== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zAyKxTJ5AZER+LnL8XUw9QvO+Z2zLTAJrqYcKCVw8pM=; b=emN+IQHs04HZMZIUmcn2oA9RPEKU1LdkBUXXnY2on6VmcQGEzcPpZH/ZL8NdK5pNTd+kDstVub1Y6TMztynce279SIt93XRFTfICZ++zzNtICfJuWT/epmTan1LG6sNALeiHvFJdg3Ik7EVTmrH8BpCst5f5ip5595+uVgtDAE0= Received: from BN9PR11MB5513.namprd11.prod.outlook.com (2603:10b6:408:102::11) by BN6PR11MB1585.namprd11.prod.outlook.com (2603:10b6:405:d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.17; Tue, 16 Nov 2021 10:08:20 +0000 Received: from BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::2d2f:59c2:c16d:fe6b]) by BN9PR11MB5513.namprd11.prod.outlook.com ([fe80::2d2f:59c2:c16d:fe6b%9]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021 10:08:20 +0000 From: "Ding, Xuan" To: "Xia, Chenbo" , "Wang, YuanX" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Hu, Jiayu" , "Ma, WenwuX" , "He, Xingguang" , "Yang, YvonneX" Subject: RE: [PATCH] vhost: fix get hpa fail from guest pages Thread-Topic: [PATCH] vhost: fix get hpa fail from guest pages Thread-Index: AQHX1sbn+X1DBEGYs0OSf+Z0v+DCOqwEQS0AgAGTQwCAAAUlEIAACe8AgAAJESA= Date: Tue, 16 Nov 2021 10:08:20 +0000 Message-ID: References: <20211111062725.108297-1-yuanx.wang@intel.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-office365-filtering-correlation-id: 3315e183-ce51-4330-7850-08d9a8e904ae x-ms-traffictypediagnostic: BN6PR11MB1585: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8qDnvU9uox/1d0HQG6W8l1nJqQp7EimtCsn942rsGD+1T395nGrEKAA1JVVWYyyoOJjM2yFcXcfBPZu8hgW7kYlE04ZdMPZqh4gVX7UyPFz7WsVmUVovLLY4lCxscfazaxtx4nWXKkr8Q0FcrEi073xFnsgKcuIjXQdoJ1o+7VwdeAhD1HH0odHqAPw8mTaXXdB+3vfIROEfLyk/vVLj6zY2NNqQnYwZlePrj+FxDZrvUXzJpT9jrBQdbP5bDrBrffZgU0j0H2UY/MDtmbzVyRUbXoW5PyqBmyQt03+gJbFqHXKIHkarXsLhONP9se286zKvbzugqDn58/w1V4c0Qd1/Hu0K7vFc+0towOg94WYvVMfmdz+RD1k4FYkPmJAPUdNJKxLrjnyogsOBNh60vZJazou1jj/HYzrSz6nAO+x1Mq8of6xOkCvgHN98yN4/ORiqXUZLzkz6HeT2uOZMaBCK+FrRdtUY8SsYtfcKBZ7rMFP9rMQn/1f7fOAGZz7QX0RW/pKL5y6E4f6gnWhJH4LKrowTtepWy3CDixlmA/mdf32PrelvyZRE54+J6OSz8rSNRktHeY6XbRDiywsIultWDF59P2bay0mRb/rpVR+X/jB3WPJUAGEQzS8kdPehsGyVY7k+jgzmn/QqeS0v267Das3NSwuEeNw535rHDYhA6658UGPYbVcRSEvP44rlj9XokS9jNiR6RzHu94oCQA== 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:(366004)(7696005)(316002)(38070700005)(110136005)(76116006)(38100700002)(82960400001)(9686003)(71200400001)(86362001)(66946007)(8936002)(122000001)(4326008)(33656002)(5660300002)(6506007)(508600001)(53546011)(55016002)(186003)(66556008)(52536014)(66476007)(2906002)(64756008)(66446008)(26005)(83380400001)(107886003)(8676002)(54906003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cUdWdFM2VFVTakZyMUs2N1g5ZlYwN1JlU0FReUY3QmtTem44WlBLaTh5T0pE?= =?utf-8?B?TXAvb0NhS1JuUW9hTnFIQVBxMW0wSDlCcXUxNmVqeFFaZU5iOVZrMzNGdzE0?= =?utf-8?B?bTQ3RC9WYkpNMzYvZkl2aXVaOXFZeDUzMHFFclN3UFhwSVZSNlJJSzBRRTZa?= =?utf-8?B?R2tGc250NTJFVXZQTEtMT2R6UnhMd3FyK2pTWEdCTy9pQ2xZY29iYTkraWVh?= =?utf-8?B?V1FQNGE1alMxSGxKdURyUm1WdFBYZFI2VXlPNFhVcnBDYkt0eE5lQVVDM0Zz?= =?utf-8?B?MWdTKy9rZEVWV0NYR3FnYWdWMTljdFgyVmxvUnl1V3c2ejBIRzJFM290MnZy?= =?utf-8?B?Y3BLVGhUbEhwdTR0eC80VjNFZEhQVC83Und0M3hIek0xOFBNM3BLNnRReTNE?= =?utf-8?B?b1RqYUdSSjJic2hTQmRRNWhmUVI4TVZGNEtTcjVnT1VkbzcrcVpsemNLdlJa?= =?utf-8?B?RTFTQnJVZDJYTzd5SEVlOVFaM21XUWRTOXk5K2tKaEp1OXMvQXdkZ0pCREhI?= =?utf-8?B?Qzd6a25zN3RJbTZ2YTc5VFNDTUpTM3Qwakc5T25Gd0FHMXBUZkRkNWVFVE16?= =?utf-8?B?WnBJdHQvZXJEUG9mNDBWU2VKUVJYTXBMb0M1eVkxcFBMQ1lwS2Z6bjdaZWVy?= =?utf-8?B?TEdtdU8xS0NJdVUzUjJQYlE5M3BGL1RxK084bm5ad3dJU2RSSDVlT1d2ejN0?= =?utf-8?B?VVpWdlVCMkRCVXdCZ0hvOXVQRnpYTXZkck1kazIwZEtINmphRk16YTF4RVFC?= =?utf-8?B?MzVtVVRPWFJzY1FJOHJhTEJLR2QrL2UwVlQ0MWxYSVVRRTZqZWlRTGI5UFE1?= =?utf-8?B?QXpCRVkrelZsS1dHU3I5Ty96OW42ODlBRXhQQzZpcFFPc0FhTllrcjVDZDJl?= =?utf-8?B?MjVaUUNPa0lWS0VESTMvOVFzanFrejNwcTVyaC9wamtrTkVBTXZrdHFMSjAy?= =?utf-8?B?NTlId1dCZE1kVXhydXRCN2Z2Yk9MYXJwZ2NQVk0wTEphWnlCVVhWQklERW1m?= =?utf-8?B?Y09UNXVYa2xGSFRkc0IzMHRHQms4N0pJTURJb2YvdWJOT05jdjhpZkdCa0ha?= =?utf-8?B?dzd5M2ZzS0ZsNk1VME5BUGd4UWhCUDlJeUpZOUVIQUtIK1ZIaFpsOGRkenlW?= =?utf-8?B?UFI5ZjBxZ3VmbkVQc0VCcmFlYnZkZ2Fwak01MG80alFXUExvczRWc3hNTWNi?= =?utf-8?B?VVNDYTY3REdZM2x5ZjlOQXNJTlJHNXVNYWF6WG1acURPUzMxam1XY1JVM011?= =?utf-8?B?SWRoSUNxNzdyMFFackJGeDVzeDV3YWE2dzByWWhtWnlqOStlYUJodDRnc0Np?= =?utf-8?B?OW9XRUdVeUI3TU1DVGJxcnkrMFZkbnBJaW53bHVWVVNZQnR2dVp0a0x2ZTNP?= =?utf-8?B?dGh4MGVySGswQWpEZ3Q3MCt4MDJSbVJaMkozUjVGVnFDV0xCVXNvS0xPZDJ0?= =?utf-8?B?UFhMalkzblkxQ2hqV3VHeEo0M2tEYlZkQ0ExaFlYUE8wZTRGSGpILzFSRk5z?= =?utf-8?B?ZDZyS3dlL2xoN2c4MDE4MnZDNncrSzlvb3pZZzlmRTNQUEw5anErYlhiT3hM?= =?utf-8?B?MTM4bHNTUGhDV3dZMEwzWjlweW5ydGZLdHdVWTVFZGI3OEZtbWQ3REZhZjVt?= =?utf-8?B?N0E5ejlaSzhFZ0RWK0FrNkp5ejRoenpqWHN5VmtUNnZORXdsR29VV3lOeGVY?= =?utf-8?B?ZllJRWZmdHNMdkphM0xmeTdsWlE1VFZRdXAzTXZ1SkcrM3BQK1RoZ1VKdVpw?= =?utf-8?B?aWFubjFLK2cxNlNHcVJ5bnRYTkV6RHRkcFZjc3lrR1c4NnZ0SDEyZGZuN2l5?= =?utf-8?B?OGp2a0U2eHNma1I3d08wd2I4UU1SdlJkbVFrc3IvMU1yRjBIWkpjcWw1RkRo?= =?utf-8?B?U3E1azNXbE1iWDlOTVEyWHhSWXc0OUdzeW9WcmdxYUtsVHFHTHFCUnZHM3Av?= =?utf-8?B?QS8zYjVVYlpsT21qZTBYR0dVV0VXZCtKcmh6MEpCelc0VTFscDVyT0NnQnh2?= =?utf-8?B?ejFLVjNuZ0NWNFhZemNNcXluODkyN0lMdVpIUmNVYTQydHU5UUZGUXJMODZ6?= =?utf-8?B?Q3BQMTFJbnFqTTFHQ0Y4Q3lUSndHVGpEcnRjMGJOSFJXdTcyQ3dyYnhkSm1v?= =?utf-8?B?WWorYUNrODh6VzJFMitkM01ZeEtITWFZRkNEaUFiS1ozcnRlUkYza2pvaGRP?= =?utf-8?Q?3D6gQaBQOYxtZRoXHqlKUmQ=3D?= 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: 3315e183-ce51-4330-7850-08d9a8e904ae X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 10:08:20.7481 (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: 1PRsz+zfJ6kxw6Mh+93MDrhw8YVjTtNUHBvHHrIsuy0eOpDjjzYlIdBTdLf+0aASEkh1oPc5byWBxBCacX0cgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1585 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 SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWGlhLCBDaGVuYm8g PGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiBTZW50OiAyMDIx5bm0MTHmnIgxNuaXpSAxNzowMQ0K PiBUbzogRGluZywgWHVhbiA8eHVhbi5kaW5nQGludGVsLmNvbT47IFdhbmcsIFl1YW5YIDx5dWFu eC53YW5nQGludGVsLmNvbT47DQo+IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tDQo+IENjOiBk ZXZAZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPjsgTWEsIFdlbnd1WA0K PiA8d2Vud3V4Lm1hQGludGVsLmNvbT47IEhlLCBYaW5nZ3VhbmcgPHhpbmdndWFuZy5oZUBpbnRl bC5jb20+OyBZYW5nLA0KPiBZdm9ubmVYIDx5dm9ubmV4LnlhbmdAaW50ZWwuY29tPg0KPiBTdWJq ZWN0OiBSRTogW1BBVENIXSB2aG9zdDogZml4IGdldCBocGEgZmFpbCBmcm9tIGd1ZXN0IHBhZ2Vz DQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogRGluZywgWHVh biA8eHVhbi5kaW5nQGludGVsLmNvbT4NCj4gPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxNiwg MjAyMSA0OjQ3IFBNDQo+ID4gVG86IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47 IFdhbmcsIFl1YW5YDQo+ID4gPHl1YW54LndhbmdAaW50ZWwuY29tPjsgbWF4aW1lLmNvcXVlbGlu QHJlZGhhdC5jb20NCj4gPiBDYzogZGV2QGRwZGsub3JnOyBIdSwgSmlheXUgPGppYXl1Lmh1QGlu dGVsLmNvbT47IE1hLCBXZW53dVgNCj4gPiA8d2Vud3V4Lm1hQGludGVsLmNvbT47IEhlLCBYaW5n Z3VhbmcgPHhpbmdndWFuZy5oZUBpbnRlbC5jb20+OyBZYW5nLA0KPiA+IFl2b25uZVggPHl2b25u ZXgueWFuZ0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gdmhvc3Q6IGZpeCBn ZXQgaHBhIGZhaWwgZnJvbSBndWVzdCBwYWdlcw0KPiA+DQo+ID4gSGkgQ2hlbmJvLA0KPiA+DQo+ ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogWGlhLCBDaGVuYm8g PGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiA+ID4gU2VudDogMjAyMeW5tDEx5pyIMTbml6UgMTY6 MDcNCj4gPiA+IFRvOiBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBXYW5nLCBZ dWFuWA0KPiA+ID4gPHl1YW54LndhbmdAaW50ZWwuY29tPjsgbWF4aW1lLmNvcXVlbGluQHJlZGhh dC5jb20NCj4gPiA+IENjOiBkZXZAZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwu Y29tPjsgRGluZywgWHVhbg0KPiA+ID4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBNYSwgV2Vud3VY IDx3ZW53dXgubWFAaW50ZWwuY29tPjsgSGUsDQo+ID4gPiBYaW5nZ3VhbmcgPHhpbmdndWFuZy5o ZUBpbnRlbC5jb20+OyBZYW5nLCBZdm9ubmVYDQo+ID4gPiA8eXZvbm5leC55YW5nQGludGVsLmNv bT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIHZob3N0OiBmaXggZ2V0IGhwYSBmYWlsIGZy b20gZ3Vlc3QgcGFnZXMNCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gPiA+IEZyb206IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCj4gPiA+ ID4gU2VudDogTW9uZGF5LCBOb3ZlbWJlciAxNSwgMjAyMSA0OjA0IFBNDQo+ID4gPiA+IFRvOiBX YW5nLCBZdWFuWCA8eXVhbngud2FuZ0BpbnRlbC5jb20+Ow0KPiBtYXhpbWUuY29xdWVsaW5AcmVk aGF0LmNvbQ0KPiA+ID4gPiBDYzogZGV2QGRwZGsub3JnOyBIdSwgSmlheXUgPGppYXl1Lmh1QGlu dGVsLmNvbT47IERpbmcsIFh1YW4NCj4gPiA+ID4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBNYSwg V2Vud3VYIDx3ZW53dXgubWFAaW50ZWwuY29tPjsgSGUsDQo+ID4gPiBYaW5nZ3VhbmcNCj4gPiA+ ID4gPHhpbmdndWFuZy5oZUBpbnRlbC5jb20+OyBZYW5nLCBZdm9ubmVYIDx5dm9ubmV4LnlhbmdA aW50ZWwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSB2aG9zdDogZml4IGdldCBo cGEgZmFpbCBmcm9tIGd1ZXN0IHBhZ2VzDQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBXYW5nLCBZdWFuWCA8eXVhbngud2FuZ0Bp bnRlbC5jb20+DQo+ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDExLCAyMDIxIDI6 MjcgUE0NCj4gPiA+ID4gPiBUbzogbWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IFhpYSwgQ2hl bmJvDQo+ID4gPiA+ID4gPGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiA+ID4gPiA+IENjOiBkZXZA ZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPjsgRGluZywgWHVhbg0KPiA+ ID4gPiA+IDx4dWFuLmRpbmdAaW50ZWwuY29tPjsgTWEsIFdlbnd1WCA8d2Vud3V4Lm1hQGludGVs LmNvbT47IEhlLA0KPiA+ID4gPiA+IFhpbmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT47 IFlhbmcsIFl2b25uZVgNCj4gPiA+ID4gPiA8eXZvbm5leC55YW5nQGludGVsLmNvbT47IFdhbmcs DQo+ID4gPiA+IFl1YW5YDQo+ID4gPiA+ID4gPHl1YW54LndhbmdAaW50ZWwuY29tPg0KPiA+ID4g PiA+IFN1YmplY3Q6IFtQQVRDSF0gdmhvc3Q6IGZpeCBnZXQgaHBhIGZhaWwgZnJvbSBndWVzdCBw YWdlcw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gV2hlbiBwcm9jZXNzaW5nIGZyb250LWVuZCBtZW1v cnkgcmVnaW9ucyBtZXNzYWdlcywgdmhvc3Qgc2F2ZXMNCj4gPiA+ID4gPiB0aGUgZ3Vlc3QvaG9z dCBwaHlzaWNhbCBhZGRyZXNzIG1hcHBpbmdzIHRvIGd1ZXN0IHBhZ2VzIGFuZA0KPiA+ID4gPiA+ IG1lcmdlcyBhZGphY2VudCBjb250aWd1b3VzIHBhZ2VzIGlmIGhwYSBpcyBjb250aWd1b3VzLCBo b3dldmVyDQo+ID4gPiA+ID4gZ3BhIGlzIGxpa2VseSBub3QgY29udGlndW91cyBpbiBQQSBtb2Rl IGFuZCBtZXJnaW5nIHdpbGwgY2F1c2UNCj4gPiA+ID4gPiB0aGUgZ3BhIHJhbmdlIHRvIGNoYW5n ZS4NCj4gPiA+ID4gPiBUaGlzIHBhdGNoIGRpc3Rpbmd1aXNoZXMgdGhlIGNhc2Ugb2YgZGlzY29u dGludW91cyBncGEgYW5kIGRvZXMNCj4gPiA+ID4gPiBhIHJhbmdlIGxvb2t1cCBvbiBncGEgd2hl biBkb2luZyBhIGJpbmFyeSBzZWFyY2guDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBGaXhlczogZTI0 Njg5NjE3OGUoInZob3N0OiBnZXQgZ3Vlc3QvaG9zdCBwaHlzaWNhbCBhZGRyZXNzDQo+ID4gPiA+ ID4gbWFwcGluZ3MiKQ0KPiA+ID4gPiA+IEZpeGVzOiA2NTYzY2Y5MjM4MCAoInZob3N0OiBmaXgg YXN5bmMgY29weSBvbiBtdWx0aS1wYWdlDQo+ID4gPiA+ID4gYnVmZmVycyIpDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBZdWFuIFdhbmcgPHl1YW54LndhbmdAaW50ZWwuY29t Pg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ICBsaWIvdmhvc3Qvdmhvc3QuaCAgICAgIHwgMTgg KysrKysrKysrKysrKysrKy0tDQo+ID4gPiA+ID4gIGxpYi92aG9zdC92aG9zdF91c2VyLmMgfCAx NSArKysrKysrKysrKy0tLS0NCj4gPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBh L2xpYi92aG9zdC92aG9zdC5oIGIvbGliL3Zob3N0L3Zob3N0LmggaW5kZXgNCj4gPiA+ID4gPiA3 MDg1ZTA4ODVjLi5iM2YwYzFkMDdjIDEwMDY0NA0KPiA+ID4gPiA+IC0tLSBhL2xpYi92aG9zdC92 aG9zdC5oDQo+ID4gPiA+ID4gKysrIGIvbGliL3Zob3N0L3Zob3N0LmgNCj4gPiA+ID4gPiBAQCAt NTg3LDYgKzU4NywyMCBAQCBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSBpbnQNCj4gPiA+ID4g PiBndWVzdF9wYWdlX2FkZHJjbXAoY29uc3Qgdm9pZCAqcDEsDQo+ID4gPiA+ID4gIAlyZXR1cm4g MDsNCj4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gK3N0YXRpYyBfX3J0ZV9hbHdh eXNfaW5saW5lIGludCBndWVzdF9wYWdlX3JhbmdlY21wKGNvbnN0IHZvaWQNCj4gPiA+ID4gPiAr KnAxLCBjb25zdA0KPiA+ID4gPiB2b2lkDQo+ID4gPiA+ID4gKnAyKQ0KPiA+ID4gPiA+ICt7DQo+ ID4gPiA+ID4gKwljb25zdCBzdHJ1Y3QgZ3Vlc3RfcGFnZSAqcGFnZTEgPSAoY29uc3Qgc3RydWN0 IGd1ZXN0X3BhZ2UgKilwMTsNCj4gPiA+ID4gPiArCWNvbnN0IHN0cnVjdCBndWVzdF9wYWdlICpw YWdlMiA9IChjb25zdCBzdHJ1Y3QgZ3Vlc3RfcGFnZQ0KPiA+ID4gPiA+ICsqKXAyOw0KPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiArCWlmIChwYWdlMS0+Z3Vlc3RfcGh5c19hZGRyID49IHBhZ2UyLT5n dWVzdF9waHlzX2FkZHIpIHsNCj4gPiA+ID4gPiArCQlpZiAocGFnZTEtPmd1ZXN0X3BoeXNfYWRk ciA8IHBhZ2UyLT5ndWVzdF9waHlzX2FkZHINCj4gKw0KPiA+ID4gcGFnZTItPnNpemUpDQo+ID4g PiA+ID4gKwkJCXJldHVybiAwOw0KPiA+ID4gPiA+ICsJCWVsc2UNCj4gPiA+ID4gPiArCQkJcmV0 dXJuIDE7DQo+ID4gPiA+ID4gKwl9IGVsc2UNCj4gPiA+ID4gPiArCQlyZXR1cm4gLTE7DQo+ID4g PiA+ID4gK30NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5s aW5lIHJ0ZV9pb3ZhX3QgIGdwYV90b19maXJzdF9ocGEoc3RydWN0DQo+ID4gPiA+ID4gdmlydGlv X25ldCAqZGV2LCB1aW50NjRfdCBncGEsDQo+ID4gPiA+ID4gIAl1aW50NjRfdCBncGFfc2l6ZSwg dWludDY0X3QgKmhwYV9zaXplKSBAQCAtNTk3LDkgKzYxMSw5IEBADQo+ID4gPiA+ID4gZ3BhX3Rv X2ZpcnN0X2hwYShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCB1aW50NjRfdCBncGEsDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiAgCSpocGFfc2l6ZSA9IGdwYV9zaXplOw0KPiA+ID4gPiA+ICAJaWYgKGRl di0+bnJfZ3Vlc3RfcGFnZXMgPj0gVkhPU1RfQklOQVJZX1NFQVJDSF9USFJFU0gpIHsNCj4gPiA+ ID4gPiAtCQlrZXkuZ3Vlc3RfcGh5c19hZGRyID0gZ3BhICYgfihkZXYtPmd1ZXN0X3BhZ2VzWzBd LnNpemUgLSAxKTsNCj4gPiA+ID4gPiArCQlrZXkuZ3Vlc3RfcGh5c19hZGRyID0gZ3BhOw0KPiA+ ID4gPiA+ICAJCXBhZ2UgPSBic2VhcmNoKCZrZXksIGRldi0+Z3Vlc3RfcGFnZXMsIGRldi0+bnJf Z3Vlc3RfcGFnZXMsDQo+ID4gPiA+ID4gLQkJCSAgICAgICBzaXplb2Yoc3RydWN0IGd1ZXN0X3Bh Z2UpLCBndWVzdF9wYWdlX2FkZHJjbXApOw0KPiA+ID4gPiA+ICsJCQkgICAgICAgc2l6ZW9mKHN0 cnVjdCBndWVzdF9wYWdlKSwNCj4gZ3Vlc3RfcGFnZV9yYW5nZWNtcCk7DQo+ID4gPiA+ID4gIAkJ aWYgKHBhZ2UpIHsNCj4gPiA+ID4gPiAgCQkJaWYgKGdwYSArIGdwYV9zaXplIDw9DQo+ID4gPiA+ ID4gIAkJCQkJcGFnZS0+Z3Vlc3RfcGh5c19hZGRyICsgcGFnZS0+c2l6ZSkNCj4gPiA+IHsgZGlm ZiAtLWdpdA0KPiA+ID4gPiA+IGEvbGliL3Zob3N0L3Zob3N0X3VzZXIuYyBiL2xpYi92aG9zdC92 aG9zdF91c2VyLmMgaW5kZXgNCj4gPiA+ID4gPiBhNzgxMzQ2YzRkLi43ZDU4ZmRlNDU4IDEwMDY0 NA0KPiA+ID4gPiA+IC0tLSBhL2xpYi92aG9zdC92aG9zdF91c2VyLmMNCj4gPiA+ID4gPiArKysg Yi9saWIvdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4gPiA+ID4gQEAgLTk5OSwxMCArOTk5LDE3IEBA IGFkZF9vbmVfZ3Vlc3RfcGFnZShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiA+ID4gPiA+IHVp bnQ2NF90IGd1ZXN0X3BoeXNfYWRkciwNCj4gPiA+ID4gPiAgCWlmIChkZXYtPm5yX2d1ZXN0X3Bh Z2VzID4gMCkgew0KPiA+ID4gPiA+ICAJCWxhc3RfcGFnZSA9ICZkZXYtPmd1ZXN0X3BhZ2VzW2Rl di0+bnJfZ3Vlc3RfcGFnZXMgLSAxXTsNCj4gPiA+ID4gPiAgCQkvKiBtZXJnZSBpZiB0aGUgdHdv IHBhZ2VzIGFyZSBjb250aW51b3VzICovDQo+ID4gPiA+ID4gLQkJaWYgKGhvc3RfcGh5c19hZGRy ID09IGxhc3RfcGFnZS0+aG9zdF9waHlzX2FkZHIgKw0KPiA+ID4gPiA+IC0JCQkJICAgICAgbGFz dF9wYWdlLT5zaXplKSB7DQo+ID4gPiA+ID4gLQkJCWxhc3RfcGFnZS0+c2l6ZSArPSBzaXplOw0K PiA+ID4gPiA+IC0JCQlyZXR1cm4gMDsNCj4gPiA+ID4gPiArCQlpZiAoaG9zdF9waHlzX2FkZHIg PT0gbGFzdF9wYWdlLT5ob3N0X3BoeXNfYWRkciArDQo+ID4gPiA+ID4gK2xhc3RfcGFnZS0+c2l6 ZSkNCj4gPiA+ID4gPiB7DQo+ID4gPiA+ID4gKwkJCWlmIChydGVfZWFsX2lvdmFfbW9kZSgpID09 IFJURV9JT1ZBX1ZBKSB7DQo+ID4gPiA+ID4gKwkJCQlsYXN0X3BhZ2UtPnNpemUgKz0gc2l6ZTsN Cj4gPiA+ID4gPiArCQkJCXJldHVybiAwOw0KPiA+ID4gPiA+ICsJCQl9DQo+ID4gPiA+DQo+ID4g PiA+IFRoaXMgbWFrZXMgbWUgdGhpbmsgYWJvdXQgYSBxdWVzdGlvbjogSW4gSU9WQV9WQSBtb2Rl LCB3aGF0DQo+ID4gPiA+IGVuc3VyZXMgSFBBIGFuZCBHUEEgYXJlIGJvdGggY29udGlndW91cz8N Cj4gPiA+DQo+ID4gPiBXaGVuIEkgd3JvdGUgdGhpcyBlbWFpbCwgSSB0aG91Z2h0IGhvc3RfcGh5 c19hZGRyIGlzIEhQQSBidXQgaW4gVkENCj4gPiA+IG1vZGUsDQo+ID4gaXQncw0KPiA+ID4gSG9z dCBJT1ZBLCBha2EgVkEgaW4gRFBESydzIGNhc2UuIFNvIGluIG1vc3QgY2FzZXMgR1BBIGFuZCBW QSB3aWxsDQo+ID4gPiBiZSBib3RoIGNvbnRpZ3VvdXMgd2hlbiB0aGUgY29udGlndW91cyBwYWdl cyBhcmUgYWxsIGluIG9uZSBtZW1vcnkNCj4gPiA+IHJlZ2lvbi4gQnV0IEkNCj4gPiB0aGluaw0K PiA+ID4gd2Ugc2hvdWxkIG5vdCBtYWtlIHN1Y2ggYXNzdW1wdGlvbiBhcyBzb21lIHZob3N0IG1h c3RlciBtYXkgc2VuZA0KPiA+ID4gR1BBLSBjb250aWd1b3VzIHBhZ2VzIGluIGRpZmZlcmVudCBt ZW1vcnkgcmVnaW9uLCB0aGVuIHRoZSBWQSBhZnRlcg0KPiA+ID4gbW1hcCBtYXkgbm90IGJlIGNv bnRpZ3VvdXMuDQo+ID4NCj4gPiBOb3cgd2UgZG8gYXN5bmMgdmZpbyBtYXBwaW5nIGF0IHBhZ2Ug Z3JhbnVsYXJpdHkuDQo+ID4gRm9yIDRLLzJNIHBhZ2VzLCB3aXRob3V0IHRoaXMgYXNzdW1wdGlv biwgcGFnZXMgbm90IGJlIG1lcmdlZCBtYXkNCj4gPiBleGNlZWQgdGhlIElPTU1VJ3MgY2FwYWJp bGl0eS4gVGhpcyBsaW1pdHMgb25seSB1c2UgMUcgaHVnZXBhZ2UgZm9yIERNQQ0KPiBkZXZpY2Uu DQo+IA0KPiBJIHdhcyBub3Qgc2F5aW5nIG1lcmdpbmcgc2hvdWxkIGJlIGRvbmUsIGJ1dCBtZXJn aW5nIHdpdGggY29ycmVjdCBsb2dpYy4NCj4gDQo+IFRoYXQgaXMgdG8gc2F5LCB0aGUgcGFnZXMg dGhhdCBzaG91bGQgYmUgbWVyZ2VkIHdpbGwgc3RpbGwgYmUgbWVyZ2VkLCBidXQgbWFrZQ0KPiB0 aGUgTG9naWMgdG8gaGFuZGxlIGFsbCBjYXNlcy4NCg0KU29ycnksIEkgbWlzdW5kZXJzdG9vZCB5 b3VyIHBvaW50LiBJIHdhcyB0byBhZGQgYSBzdXBwbGVtZW50LA0KUEEgbW9kZSB3aWxsIGhhdmUg bG90cyBvZiBwYWdlcyB0byBtYXAgZm9yIDRLLzJNIGNhc2VzLA0KaXQgbWF5IGV4Y2VlZCBJT01N VSdzIGNhcGFiaWxpdHkuIEJ1dCBpdCBpcyByYXRpb25hbCwgdGhhdCdzIHdoYXQgSSBob3BlDQp0 byBleHBsYWluIGluIHRoZSBkb2MuDQoNClRoYW5rcywNClh1YW4NCg0KPiANCj4gVGhhbmtzLA0K PiBDaGVuYm8NCj4gDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gWHVhbg0KPiA+DQo+ID4gPg0KPiA+ ID4gTWF4aW1lLCBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4g PiBDaGVuYm8NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IE1heGltZSAmIFl1YW4sIGFueSB0aG91 Z2h0Pw0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+IENoZW5ibw0KPiA+ID4gPg0K PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArCQkJaWYgKHJ0ZV9lYWxfaW92YV9tb2RlKCkgPT0gUlRF X0lPVkFfUEEgJiYNCj4gPiA+ID4gPiArCQkJCWd1ZXN0X3BoeXNfYWRkciA9PSBsYXN0X3BhZ2Ut DQo+ID4gPiA+Z3Vlc3RfcGh5c19hZGRyICsNCj4gPiA+ID4gPiBsYXN0X3BhZ2UtPnNpemUpIHsN Cj4gPiA+ID4gPiArCQkJCWxhc3RfcGFnZS0+c2l6ZSArPSBzaXplOw0KPiA+ID4gPiA+ICsJCQkJ cmV0dXJuIDA7DQo+ID4gPiA+ID4gKwkJCX0NCj4gPiA+ID4gPiAgCQl9DQo+ID4gPiA+ID4gIAl9 DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+IDIuMjUuMQ0KDQo=