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 C0201A0C43; Mon, 15 Nov 2021 08:20:58 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A444540E01; Mon, 15 Nov 2021 08:20:58 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id B821440141 for ; Mon, 15 Nov 2021 08:20:56 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="319601886" X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; d="scan'208";a="319601886" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Nov 2021 23:20:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,235,1631602800"; d="scan'208";a="503695691" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga007.fm.intel.com with ESMTP; 14 Nov 2021 23:20:55 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Sun, 14 Nov 2021 23:20:55 -0800 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) 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.2242.12; Sun, 14 Nov 2021 23:20:54 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Sun, 14 Nov 2021 23:20:54 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Sun, 14 Nov 2021 23:20:54 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nCtDkOwyD8OWqLtpE2gtE/qVTZz9qUAa+8tLl/fb3ciqjUPxKoADkHdOwSi/gXI/+QiOjZHINIA8qBp/Quk44bLKzE7G8eeuMjgdfWscpN1uqLpMatkVm3yDa8zBuW/IJG3MmrXpph9LmJnz4KTVd5yRQNkbgcbwMWRNhyqM3iX0lhTDuwdEV48WebgRIaXjHoQSEmO7YNYmhv/rzNub+OancJuYh/62uQKzUKcLlcbOTw4gxkZIgIm59xKKL/CwnoX5rEuILDFFWPM4grJIGAQqTKJbn2Nal5ru+AA8CCgVqR5bO+9aqwAI2W6PZh90bNUvjDaG1DwS2dvt3z3jpw== 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=4+cZVWQKW8A2Yz+whRswvcgKXXxiwG0WUrz2pgqO/iw=; b=N7ZMsffswKFRqiLTKHckSMxvK05QpiflbnT58PagI5AOGz27ykz5t1heIv1sVRBQcjNHUmq7OQFgsitFISp7m7r96++oQ27a32e3K9e1VuiKSSFiSEPXgp/g7z8wdblktHC5Yx//a2M2/IjGllwq7fdy9GzOA2/jZPDZ6o0bLbvR79SllClH5vvTABORUsPHDCFeCutgJwrxL/46a2xWoFp09bKF+pFKauKCcYFwaNNK78xBGDJtSNuiPicHTrfh9OJdn48UQXHK4DHq8ejcHyjw34UR8vcCvKGTympz8MUljPEvljxppjicHfctS0PqxPkM8oSB/jHnQJL5yCuaAg== 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=4+cZVWQKW8A2Yz+whRswvcgKXXxiwG0WUrz2pgqO/iw=; b=BJe1ws+5EPC3IGsfzLNSttcJ3F+mQ2BQHb4YtU0qpYkC9U3/UaQn+bThE77rBVhd0x+avsdywHZd1VO1ZeCueq4loqrbXoaG7NBgBPwzViNNKUax/uUgv2zfdvSmJ3tkfWb4CGg9T7F/84CdEt//kUfYJy/YROdmvYRBp19eXjg= Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by SN6PR11MB2606.namprd11.prod.outlook.com (2603:10b6:805:55::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Mon, 15 Nov 2021 07:20:50 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021 07:20:50 +0000 From: "Xia, Chenbo" To: "Ding, Xuan" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Hu, Jiayu" , "Wang, YuanX" , "He, Xingguang" Subject: RE: [PATCH v3] vhost: fix physical address mapping Thread-Topic: [PATCH v3] vhost: fix physical address mapping Thread-Index: AQHX1fsGxO7//q0120SaxoIJj2LNUawEMrvw Date: Mon, 15 Nov 2021 07:20:50 +0000 Message-ID: References: <20211110054630.61524-1-xuan.ding@intel.com> <20211110060641.7666-1-xuan.ding@intel.com> In-Reply-To: <20211110060641.7666-1-xuan.ding@intel.com> Accept-Language: en-US, zh-CN 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: ddeb534a-1ba6-46d8-e441-08d9a8087404 x-ms-traffictypediagnostic: SN6PR11MB2606: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1JS3IBIEsIbRugllj/9QHSIyvIAUUDAdxy+p/84rVhrY3QnwQDrklYtLvWhQv8YF8UKfclKi1Vs/z+7DbJz78UATAN1IXDO8ggpIhpAb1KiNtBAs/ByYDfkW/W4IMJF9ZLxanlp3GTmfBaJ+s4odE5MkzmMisDCANw4favxnbGaLPBT1BDzH1ey+qQ0Wb2sXOHCOIADtruXwftrP4rAYdgTgMdSGeRSSdCu+/hiCbRUp+WvKwkOSGW6lQr+yY5XJuc7BWBidEic5vIpOszW6GKgREX46L1vGg3bjj8lEeYocSbRAaKebk6qGeSjX4K8ZEA7QfNrNGxjeLXJdqtQXpGc7NZWP6bNycpaR7O1Vs3OIfED3y6IXhoLn2+unQRIy8OmdyAgBU1LrAKoGL3eSBBkTv/ZPpFRK8cEKkCuuwcfjvqWt8MfYyVdSSF9qVEDjakEsVk8F+Cus3wBd/4TsAKtv2suHZMYA4AYImpu/8bouridWvzU9oBPLIxaXxMR7Zyc77+f33KS46iTfPv6sXR0AGT07qClRcOXmdgWXH8doVOIj1mvPq6AsuNZPUmWcmuJVxRgp5nQeYOAl/fRpswa2kulUQj0v/+r5H4N2AHf86n6qqAaBV9i455Vs3TWoL3wbxljM30Fr2C+QXRhCERrXSAtilmEcUgd12SmzfIXtYS1asA2NdZoigU9ZV3UPsDgfXBD4kSmwutIxp1XyiQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(38100700002)(66946007)(5660300002)(316002)(52536014)(55016002)(76116006)(2906002)(82960400001)(110136005)(64756008)(66446008)(71200400001)(54906003)(186003)(66556008)(83380400001)(508600001)(38070700005)(122000001)(86362001)(107886003)(66476007)(26005)(6506007)(4326008)(9686003)(7696005)(8676002)(33656002)(53546011)(8936002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Z3g5Mmk0WmRieTJxdGplNVFHNktaU2NER09jYWdGSXQzTzVPNUduNlZjMmJi?= =?utf-8?B?K3Q3TlFiUi9lNERYb3dBekwvTG8vSWxHeCtOUU5VUitIbXd6SEdkTlpCd2tW?= =?utf-8?B?L3FOV0IxN3o4bjRzWVlzUjJuZHA4RmhZSnVmbTlGTWVUSmVkWGp1QmJvK2hl?= =?utf-8?B?R0xOVjBDZVU2SUpzeHY0UTh4T2JxN1JwejBxdys0Q2Y3bUkwWm9NUXpDY3lX?= =?utf-8?B?Q0dXVFozcTVEdTk3cWxIWUZseWM0YTFWQ3ZKVFB4N0Rtc3hnYTJxOW56Mmp0?= =?utf-8?B?enJtZHRMeTZ6cW92NW5ZV1RNRnhSSGlOVWdLQmRkN2pRT3VxNW9DYk1LL1kz?= =?utf-8?B?eml4TW52Y1JVZEpHUGdCZk1wRm5oL1AwdDRvMEZSNGRqc0NrNEdpWXVueFBG?= =?utf-8?B?QUdoVjNxRlU3dXVGSU1RRHRWU0YzdnRBWE8vbUNkTlE2dk00S0dvdStVdndo?= =?utf-8?B?c3BBbG1vNldtQVBXdFBNR003cDNSdndEN1BsNEczVktMSXhqSXdSazd2dWdX?= =?utf-8?B?QzVZZXBHYWQrMlJkbkU3NUlnSXY3Rnp1TEdCSytIZFd4Q3FNck42bXE0SEpr?= =?utf-8?B?WFE0ekx0TW5sRGZKSmhLb01DVzdlUWd5cCt0Uk5nZGhVdUovZDdZM1pGcFdV?= =?utf-8?B?SURQcTV1ZXFrZDA5RHpzZitXU2NYUys5YytYNHpxZm5sUXI0T1g1REUzd1NL?= =?utf-8?B?OHFnd1JCdjdXYjlQcDM4MEN1V3o0aTN5cTBhZlQ5bmcvMG0wZkxqSXRaTXA5?= =?utf-8?B?NDk0dzBibmhOaisxZHBsNENWeHVNWDluR3ZOM2NVN3cxZndCL21lT1AwdVJ3?= =?utf-8?B?c01VR01rbjlGUy9GWkJLQkpRNFVId0tqSjEybGRDK0pONm16ZVpjanhQWW9H?= =?utf-8?B?YmZCWFdnQTJVc1V2eHA3YnR5YzBOeVdUSFFQdlhzVFNESGR4ZzB0RzJ0UXF4?= =?utf-8?B?VUJYdlN6dzZxZHZXeUJsKzhDZEhlSVhzZ3k3TUNUZXdmN2o5ZDdzOGVnTGNE?= =?utf-8?B?anE3WUhuZWJRejdFbXpUNW52Um43dGJlazJrNmxMd2p0MVZveExuc01PeC93?= =?utf-8?B?RmhyL0xId2cxZ21MZmV1a3VCb1Y1NmIrOHhNNnlyWWlIQnFhRG9jR29DdS9K?= =?utf-8?B?QWc1UU9uRUZYekttTERpaG1lTG5LWjVKa29vN2pVSnAyWTgyOGZsa3ZqRlE2?= =?utf-8?B?TjRTZkhkT2dKQWIwRkZ6c21yVkViMThFblZ0RC84ak9wL3NLUjIzdWRDbVF0?= =?utf-8?B?VVNnbUI1UnNIZ3F5a2gvRGV6cE5KdUxrM1NZcVVsdGZKSWxUNzdvMHlhU3Rm?= =?utf-8?B?bXlYeTI5RUtiTVdCZ0R6YUpKUm83SEYrdjBab21BM0ZWNWNZK3p5dWhYRWdK?= =?utf-8?B?OWFySWpyNFUvWTlMek52aDI4aHNWa3o3SlI0YkZOWmwra1JZWnNjSTUzckg4?= =?utf-8?B?MkdyUXh0eEZYWWIvUEhoVVhvM3B2NmY1ekROVmhnR09XdmFyYzl2VlJkbSsw?= =?utf-8?B?Ykk2cmlNeGhGcjZhRmV5YmFoT0FTaHA2L21QMnpwd1BqWTFESTFjS0pndkNO?= =?utf-8?B?bDJ3Q0lmUk9uWXhFaE55N1VSQ2RxeFhBeTIrVENIOHcwWW13QWRQMkcxTGtZ?= =?utf-8?B?dFJOb0czeVBVK2s3SDdpcGgzSk1RK2ZEMWkwNzZqTkYzdUozY2hFeHVhd2di?= =?utf-8?B?Z2ZYODhWS1p1S1BuRXBIVVlxaUV3WXBxdC9xMHc5WHhHTks5UHFNTUptaGVD?= =?utf-8?B?YVJMbDROV3VNNWJQRUNtcFlaSHRYdWdHY1RvMUFYczUxYVpxSDZwbk9DMnVP?= =?utf-8?B?OVU4VGg2ZEhUV2Z2aEdDeFVubWovOU5zUWpLOUpBMWd4bDRXVm9rQkVNNTg4?= =?utf-8?B?L2t6WG81RG5JdUpZb1BvdzNoRit5K2xmTTNUWGVCZldzNEUrZmFpNWVsTExJ?= =?utf-8?B?QmpRTlR1L0Fvc01MN1FLbTFQbzFyVWg4MlZOaHl6dXhFcktqWnB3SU1BdjYv?= =?utf-8?B?MDFGVDc5T29iS1NIL1JyVDZwams4TGgvZ3dYT2ZEenBBaXNMRmkzOTJkcHYv?= =?utf-8?B?V0JPZ3RnaUNseWl2bzJlWXdnaVZIY0dpVWdiU0RTQlEveHRVZm9iM3hiWkpE?= =?utf-8?B?aFo5OFA1V3NDOW5PR0Q2S24ybEtRZFlXYVRoclBYa0xjT1ZKV3pSYkJiRGNm?= =?utf-8?B?Unc9PQ==?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ddeb534a-1ba6-46d8-e441-08d9a8087404 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 07:20:50.7539 (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: +XS6vZgPLwFjsiw1/VLrgDCSctnBYXJQudNhydJjy68plniuwfmPBto0Ba3DpGD4G5HvdBBppMsr5iYFoFQy3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2606 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 SGkgWHVhbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEaW5nLCBY dWFuIDx4dWFuLmRpbmdAaW50ZWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDEw LCAyMDIxIDI6MDcgUE0NCj4gVG86IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBYaWEsIENo ZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IEh1LCBKaWF5 dSA8amlheXUuaHVAaW50ZWwuY29tPjsgV2FuZywgWXVhblgNCj4gPHl1YW54LndhbmdAaW50ZWwu Y29tPjsgSGUsIFhpbmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT47IERpbmcsIFh1YW4N Cj4gPHh1YW4uZGluZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2M10gdmhvc3Q6IGZp eCBwaHlzaWNhbCBhZGRyZXNzIG1hcHBpbmcNCj4gDQo+IFdoZW4gY2hvb3NpbmcgSU9WQSBhcyBQ QSBtb2RlLCBJT1ZBIGlzIGxpa2VseSB0byBiZSBkaXNjb250aW51b3VzLA0KPiB3aGljaCByZXF1 aXJlcyBwYWdlIGJ5IHBhZ2UgbWFwcGluZyBmb3IgRE1BIGRldmljZXMuIFRvIGJlIGNvbnNpc3Rl bnQsDQo+IHRoaXMgcGF0Y2ggaW1wbGVtZW50cyBwYWdlIGJ5IHBhZ2UgbWFwcGluZyBpbnN0ZWFk IG9mIG1hcHBpbmcgYXQgdGhlDQo+IHJlZ2lvbiBncmFudWxhcml0eSBmb3IgYm90aCBJT1ZBIGFz IFZBIGFuZCBQQSBtb2RlLg0KPiANCj4gRml4ZXM6IDdjNjFmYTA4YjcxNiAoInZob3N0OiBlbmFi bGUgSU9NTVUgZm9yIGFzeW5jIHZob3N0IikNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFh1YW4gRGlu ZyA8eHVhbi5kaW5nQGludGVsLmNvbT4NCj4gLS0tDQo+IA0KPiB2MzoNCj4gKiBGaXggY29tbWl0 IHRpdGxlLg0KPiANCj4gdjI6DQo+ICogRml4IGEgZm9ybWF0IGlzc3VlLg0KPiAtLS0NCj4gIGxp Yi92aG9zdC92aG9zdC5oICAgICAgfCAgIDEgKw0KPiAgbGliL3Zob3N0L3Zob3N0X3VzZXIuYyB8 IDEwNSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgMiBmaWxl cyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYg LS1naXQgYS9saWIvdmhvc3Qvdmhvc3QuaCBiL2xpYi92aG9zdC92aG9zdC5oDQo+IGluZGV4IDcw ODVlMDg4NWMuLmQyNDY1MzhjYTUgMTAwNjQ0DQo+IC0tLSBhL2xpYi92aG9zdC92aG9zdC5oDQo+ ICsrKyBiL2xpYi92aG9zdC92aG9zdC5oDQo+IEBAIC0zNTUsNiArMzU1LDcgQEAgc3RydWN0IHZy aW5nX3BhY2tlZF9kZXNjX2V2ZW50IHsNCj4gIHN0cnVjdCBndWVzdF9wYWdlIHsNCj4gIAl1aW50 NjRfdCBndWVzdF9waHlzX2FkZHI7DQo+ICAJdWludDY0X3QgaG9zdF9waHlzX2FkZHI7DQo+ICsJ dWludDY0X3QgaG9zdF91c2VyX2FkZHI7DQo+ICAJdWludDY0X3Qgc2l6ZTsNCj4gIH07DQo+IA0K PiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zob3N0X3VzZXIuYyBiL2xpYi92aG9zdC92aG9zdF91 c2VyLmMNCj4gaW5kZXggYTc4MTM0NmM0ZC4uMzdjZGVkZGEzYyAxMDA2NDQNCj4gLS0tIGEvbGli L3Zob3N0L3Zob3N0X3VzZXIuYw0KPiArKysgYi9saWIvdmhvc3Qvdmhvc3RfdXNlci5jDQo+IEBA IC0xNDQsNTIgKzE0NCw1NSBAQCBnZXRfYmxrX3NpemUoaW50IGZkKQ0KPiAgfQ0KPiANCj4gIHN0 YXRpYyBpbnQNCj4gLWFzeW5jX2RtYV9tYXAoc3RydWN0IHJ0ZV92aG9zdF9tZW1fcmVnaW9uICpy ZWdpb24sIGJvb2wgZG9fbWFwKQ0KPiArYXN5bmNfZG1hX21hcChzdHJ1Y3QgdmlydGlvX25ldCAq ZGV2LCBib29sIGRvX21hcCkNCj4gIHsNCj4gLQl1aW50NjRfdCBob3N0X2lvdmE7DQo+ICAJaW50 IHJldCA9IDA7DQo+IC0NCj4gLQlob3N0X2lvdmEgPSBydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAq KSh1aW50cHRyX3QpcmVnaW9uLT5ob3N0X3VzZXJfYWRkcik7DQo+ICsJdWludDMyX3QgaTsNCj4g KwlzdHJ1Y3QgZ3Vlc3RfcGFnZSAqcGFnZTsNCj4gIAlpZiAoZG9fbWFwKSB7DQo+IC0JCS8qIEFk ZCBtYXBwZWQgcmVnaW9uIGludG8gdGhlIGRlZmF1bHQgY29udGFpbmVyIG9mIERQREsuICovDQo+ IC0JCXJldCA9IHJ0ZV92ZmlvX2NvbnRhaW5lcl9kbWFfbWFwKFJURV9WRklPX0RFRkFVTFRfQ09O VEFJTkVSX0ZELA0KPiAtCQkJCQkJIHJlZ2lvbi0+aG9zdF91c2VyX2FkZHIsDQo+IC0JCQkJCQkg aG9zdF9pb3ZhLA0KPiAtCQkJCQkJIHJlZ2lvbi0+c2l6ZSk7DQo+IC0JCWlmIChyZXQpIHsNCj4g LQkJCS8qDQo+IC0JCQkgKiBETUEgZGV2aWNlIG1heSBiaW5kIHdpdGgga2VybmVsIGRyaXZlciwg aW4gdGhpcyBjYXNlLA0KPiAtCQkJICogd2UgZG9uJ3QgbmVlZCB0byBwcm9ncmFtIElPTU1VIG1h bnVhbGx5LiBIb3dldmVyLCBpZiBubw0KPiAtCQkJICogZGV2aWNlIGlzIGJvdW5kIHdpdGggdmZp by91aW8gaW4gRFBESywgYW5kIHZmaW8ga2VybmVsDQo+IC0JCQkgKiBtb2R1bGUgaXMgbG9hZGVk LCB0aGUgQVBJIHdpbGwgc3RpbGwgYmUgY2FsbGVkIGFuZCByZXR1cm4NCj4gLQkJCSAqIHdpdGgg RU5PREVWL0VOT1NVUC4NCj4gLQkJCSAqDQo+IC0JCQkgKiBEUERLIHZmaW8gb25seSByZXR1cm5z IEVOT0RFVi9FTk9TVVAgaW4gdmVyeSBzaW1pbGFyDQo+IC0JCQkgKiBzaXR1YXRpb25zKHZmaW8g ZWl0aGVyIHVuc3VwcG9ydGVkLCBvciBzdXBwb3J0ZWQNCj4gLQkJCSAqIGJ1dCBubyBkZXZpY2Vz IGZvdW5kKS4gRWl0aGVyIHdheSwgbm8gbWFwcGluZ3MgY291bGQgYmUNCj4gLQkJCSAqIHBlcmZv cm1lZC4gV2UgdHJlYXQgaXQgYXMgbm9ybWFsIGNhc2UgaW4gYXN5bmMgcGF0aC4NCj4gLQkJCSAq Lw0KPiAtCQkJaWYgKHJ0ZV9lcnJubyA9PSBFTk9ERVYgfHwgcnRlX2Vycm5vID09IEVOT1RTVVAp DQo+ICsJCWZvciAoaSA9IDA7IGkgPCBkZXYtPm5yX2d1ZXN0X3BhZ2VzOyBpKyspIHsNCj4gKwkJ CXBhZ2UgPSAmZGV2LT5ndWVzdF9wYWdlc1tpXTsNCj4gKwkJCXJldCA9DQo+IHJ0ZV92ZmlvX2Nv bnRhaW5lcl9kbWFfbWFwKFJURV9WRklPX0RFRkFVTFRfQ09OVEFJTkVSX0ZELA0KPiArCQkJCQkJ CSBwYWdlLT5ob3N0X3VzZXJfYWRkciwNCj4gKwkJCQkJCQkgcGFnZS0+aG9zdF9waHlzX2FkZHIs DQo+ICsJCQkJCQkJIHBhZ2UtPnNpemUpOw0KPiArCQkJaWYgKHJldCkgew0KPiArCQkJCS8qDQo+ ICsJCQkJICogRE1BIGRldmljZSBtYXkgYmluZCB3aXRoIGtlcm5lbCBkcml2ZXIsIGluIHRoaXMN Cj4gY2FzZSwNCj4gKwkJCQkgKiB3ZSBkb24ndCBuZWVkIHRvIHByb2dyYW0gSU9NTVUgbWFudWFs bHkuIEhvd2V2ZXIsDQo+IGlmIG5vDQo+ICsJCQkJICogZGV2aWNlIGlzIGJvdW5kIHdpdGggdmZp by91aW8gaW4gRFBESywgYW5kIHZmaW8NCj4ga2VybmVsDQo+ICsJCQkJICogbW9kdWxlIGlzIGxv YWRlZCwgdGhlIEFQSSB3aWxsIHN0aWxsIGJlIGNhbGxlZCBhbmQNCj4gcmV0dXJuDQo+ICsJCQkJ ICogd2l0aCBFTk9ERVYvRU5PU1VQLg0KPiArCQkJCSAqDQo+ICsJCQkJICogRFBESyB2ZmlvIG9u bHkgcmV0dXJucyBFTk9ERVYvRU5PU1VQIGluIHZlcnkNCj4gc2ltaWxhcg0KPiArCQkJCSAqIHNp dHVhdGlvbnModmZpbyBlaXRoZXIgdW5zdXBwb3J0ZWQsIG9yIHN1cHBvcnRlZA0KPiArCQkJCSAq IGJ1dCBubyBkZXZpY2VzIGZvdW5kKS4gRWl0aGVyIHdheSwgbm8gbWFwcGluZ3MNCj4gY291bGQg YmUNCj4gKwkJCQkgKiBwZXJmb3JtZWQuIFdlIHRyZWF0IGl0IGFzIG5vcm1hbCBjYXNlIGluIGFz eW5jIHBhdGguDQo+ICsJCQkJICovDQo+ICsJCQkJaWYgKHJ0ZV9lcnJubyA9PSBFTk9ERVYgfHwg cnRlX2Vycm5vID09IEVOT1RTVVApDQo+ICsJCQkJCXJldHVybiAwOw0KDQpJIGRvbid0IHRoaW5r IHRoaXMgbG9naWMgaXMgZ29vZCBlbm91Z2ggdG8gb25seSBpbmNsdWRlIHRoZSBjYXNlIG9mIGtl cm5lbCBkcml2ZXIgKw0KdW5uZWVkZWQgbWFwcGluZy4gQ291bGQgYWxzbyBiZSB2ZmlvIGRyaXZl ciArIGluY29ycmVjdCBtYXBwaW5nLiBJdCdzIG5vdCBnb29kIHRvDQphc3N1bWUgRU5PREVWIGFu ZCBFTk9UU1VQIG9ubHkgY29tZXMgZnJvbSBEUERLLCBpdCBjb3VsZCBiZSBmcm9tIGtlcm5lbC4N Cg0KPiArDQo+ICsJCQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJETUEgZW5naW5lIG1hcCBmYWls ZWRcbiIpOw0KPiArCQkJCS8qIERNQSBtYXBwaW5nIGVycm9ycyB3b24ndCBzdG9wDQo+IFZIU1Rf VVNFUl9TRVRfTUVNX1RBQkxFLiAqLw0KPiAgCQkJCXJldHVybiAwOw0KDQpJIHVuZGVyc3RhbmQg dGhpcyBmdW5jdGlvbiBjb3ZlcnMgbWFueSBjYXNlcyBhbmQgaXQncyBkaWZmaWN1bHQgdG8gZGlm ZmVyZW50aWF0ZSwNClNvIHlvdSBkb24ndCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIGJ1dCB1c2Ug dGhlIGxvZyBoZXJlIHRvIGluZm9ybSB1c2Vycy4NCg0KSSBzdWdnZXN0IHRvIHVzZSBhIFdBUk5J TkcgbG9nIChzaW5jZSB0aGlzIGNvdWxkIGZhaWwgd2l0aCBrZXJuZWwgZHJpdmVyIGNhc2UgYnV0 DQppdCdzIGFjdHVhbGx5IGNvcnJlY3QpIGFuZCBwcmludCB0aGUgZXJybm8gaW5mbyBmb3IgdXNl cnMuDQoNCk5vdGU6IHRoaXMgaXMgb25seSBhIHdvcmthcm91bmQsIG5vdCBhIHBlcmZlY3Qgc29s dXRpb24uIEJ1dCBzaW5jZSB2aG9zdCB3aXRoIGRtYWRldg0KaXMgaW4gcHJvZ3Jlc3MgYW5kIG1v c3QgbGlrZWx5IHZob3N0IGxpYiB3aWxsIGF3YXJlIG9mIGRtYWRldiBpZC4gVGhlIHByb2JsZW0g Y291bGQNCmJlIHNvbHZlZCBsYXRlciAoc29tZSBkbWFkZXYgYXBpIGNvdWxkIGJlIHVzZWQgdG8g a25vdyBWQS9QQSBtb2RlIGFuZCBrZXJuZWwvdXNlciBkcml2ZXI/KQ0KDQo+IC0NCj4gLQkJCVZI T1NUX0xPR19DT05GSUcoRVJSLCAiRE1BIGVuZ2luZSBtYXAgZmFpbGVkXG4iKTsNCj4gLQkJCS8q IERNQSBtYXBwaW5nIGVycm9ycyB3b24ndCBzdG9wIFZIU1RfVVNFUl9TRVRfTUVNX1RBQkxFLiAq Lw0KPiAtCQkJcmV0dXJuIDA7DQo+ICsJCQl9DQo+ICAJCX0NCj4gDQo+ICAJfSBlbHNlIHsNCj4g LQkJLyogUmVtb3ZlIG1hcHBlZCByZWdpb24gZnJvbSB0aGUgZGVmYXVsdCBjb250YWluZXIgb2Yg RFBESy4gKi8NCj4gLQkJcmV0ID0gcnRlX3ZmaW9fY29udGFpbmVyX2RtYV91bm1hcChSVEVfVkZJ T19ERUZBVUxUX0NPTlRBSU5FUl9GRCwNCj4gLQkJCQkJCSAgIHJlZ2lvbi0+aG9zdF91c2VyX2Fk ZHIsDQo+IC0JCQkJCQkgICBob3N0X2lvdmEsDQo+IC0JCQkJCQkgICByZWdpb24tPnNpemUpOw0K PiAtCQlpZiAocmV0KSB7DQo+IC0JCQkvKiBsaWtlIERNQSBtYXAsIGlnbm9yZSB0aGUga2VybmVs IGRyaXZlciBjYXNlIHdoZW4gdW5tYXAuDQo+ICovDQo+IC0JCQlpZiAocnRlX2Vycm5vID09IEVJ TlZBTCkNCj4gLQkJCQlyZXR1cm4gMDsNCj4gKwkJZm9yIChpID0gMDsgaSA8IGRldi0+bnJfZ3Vl c3RfcGFnZXM7IGkrKykgew0KPiArCQkJcGFnZSA9ICZkZXYtPmd1ZXN0X3BhZ2VzW2ldOw0KPiAr CQkJcmV0ID0NCj4gcnRlX3ZmaW9fY29udGFpbmVyX2RtYV91bm1hcChSVEVfVkZJT19ERUZBVUxU X0NPTlRBSU5FUl9GRCwNCj4gKwkJCQkJCQkgICBwYWdlLT5ob3N0X3VzZXJfYWRkciwNCj4gKwkJ CQkJCQkgICBwYWdlLT5ob3N0X3BoeXNfYWRkciwNCj4gKwkJCQkJCQkgICBwYWdlLT5zaXplKTsN Cj4gKwkJCWlmIChyZXQpIHsNCj4gKwkJCQkvKiBsaWtlIERNQSBtYXAsIGlnbm9yZSB0aGUga2Vy bmVsIGRyaXZlciBjYXNlIHdoZW4NCj4gdW5tYXAuICovDQo+ICsJCQkJaWYgKHJ0ZV9lcnJubyA9 PSBFSU5WQUwpDQo+ICsJCQkJCXJldHVybiAwOw0KPiANCj4gLQkJCVZIT1NUX0xPR19DT05GSUco RVJSLCAiRE1BIGVuZ2luZSB1bm1hcCBmYWlsZWRcbiIpOw0KPiAtCQkJcmV0dXJuIHJldDsNCj4g KwkJCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgIkRNQSBlbmdpbmUgdW5tYXAgZmFpbGVkXG4iKTsN Cj4gKwkJCQlyZXR1cm4gcmV0Ow0KDQpTYW1lIGhlcmUuDQoNCkFuZCBzaW5jZSB5b3UgZG9uJ3Qg Y2hlY2sgcmV0dXJuIHZhbHVlLCB5b3UgY2FuIGp1c3QgZG9uJ3QgcmV0dXJuIGFueXRoaW5nIGFu ZA0KcmV0dXJuIHR5cGUgY2FuIGJlIHZvaWQNCg0KVGhhbmtzLA0KQ2hlbmJvDQoNCg0KPiArCQkJ fQ0KPiAgCQl9DQo+ICAJfQ0KPiANCj4gQEAgLTIwNSwxMiArMjA4LDEyIEBAIGZyZWVfbWVtX3Jl Z2lvbihzdHJ1Y3QgdmlydGlvX25ldCAqZGV2KQ0KPiAgCWlmICghZGV2IHx8ICFkZXYtPm1lbSkN Cj4gIAkJcmV0dXJuOw0KPiANCj4gKwlpZiAoZGV2LT5hc3luY19jb3B5ICYmIHJ0ZV92ZmlvX2lz X2VuYWJsZWQoInZmaW8iKSkNCj4gKwkJYXN5bmNfZG1hX21hcChkZXYsIGZhbHNlKTsNCj4gKw0K PiAgCWZvciAoaSA9IDA7IGkgPCBkZXYtPm1lbS0+bnJlZ2lvbnM7IGkrKykgew0KPiAgCQlyZWcg PSAmZGV2LT5tZW0tPnJlZ2lvbnNbaV07DQo+ICAJCWlmIChyZWctPmhvc3RfdXNlcl9hZGRyKSB7 DQo+IC0JCQlpZiAoZGV2LT5hc3luY19jb3B5ICYmIHJ0ZV92ZmlvX2lzX2VuYWJsZWQoInZmaW8i KSkNCj4gLQkJCQlhc3luY19kbWFfbWFwKHJlZywgZmFsc2UpOw0KPiAtDQo+ICAJCQltdW5tYXAo cmVnLT5tbWFwX2FkZHIsIHJlZy0+bW1hcF9zaXplKTsNCj4gIAkJCWNsb3NlKHJlZy0+ZmQpOw0K PiAgCQl9DQo+IEBAIC05NzgsNyArOTgxLDcgQEAgdmhvc3RfdXNlcl9zZXRfdnJpbmdfYmFzZShz dHJ1Y3QgdmlydGlvX25ldCAqKnBkZXYsDQo+IA0KPiAgc3RhdGljIGludA0KPiAgYWRkX29uZV9n dWVzdF9wYWdlKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHVpbnQ2NF90IGd1ZXN0X3BoeXNfYWRk ciwNCj4gLQkJICAgdWludDY0X3QgaG9zdF9waHlzX2FkZHIsIHVpbnQ2NF90IHNpemUpDQo+ICsJ CSAgIHVpbnQ2NF90IGhvc3RfcGh5c19hZGRyLCB1aW50NjRfdCBob3N0X3VzZXJfYWRkciwgdWlu dDY0X3Qgc2l6ZSkNCj4gIHsNCj4gIAlzdHJ1Y3QgZ3Vlc3RfcGFnZSAqcGFnZSwgKmxhc3RfcGFn ZTsNCj4gIAlzdHJ1Y3QgZ3Vlc3RfcGFnZSAqb2xkX3BhZ2VzOw0KPiBAQCAtMTAwOSw2ICsxMDEy LDcgQEAgYWRkX29uZV9ndWVzdF9wYWdlKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHVpbnQ2NF90 DQo+IGd1ZXN0X3BoeXNfYWRkciwNCj4gIAlwYWdlID0gJmRldi0+Z3Vlc3RfcGFnZXNbZGV2LT5u cl9ndWVzdF9wYWdlcysrXTsNCj4gIAlwYWdlLT5ndWVzdF9waHlzX2FkZHIgPSBndWVzdF9waHlz X2FkZHI7DQo+ICAJcGFnZS0+aG9zdF9waHlzX2FkZHIgID0gaG9zdF9waHlzX2FkZHI7DQo+ICsJ cGFnZS0+aG9zdF91c2VyX2FkZHIgPSBob3N0X3VzZXJfYWRkcjsNCj4gIAlwYWdlLT5zaXplID0g c2l6ZTsNCj4gDQo+ICAJcmV0dXJuIDA7DQo+IEBAIC0xMDI4LDcgKzEwMzIsOCBAQCBhZGRfZ3Vl c3RfcGFnZXMoc3RydWN0IHZpcnRpb19uZXQgKmRldiwgc3RydWN0DQo+IHJ0ZV92aG9zdF9tZW1f cmVnaW9uICpyZWcsDQo+ICAJc2l6ZSA9IHBhZ2Vfc2l6ZSAtIChndWVzdF9waHlzX2FkZHIgJiAo cGFnZV9zaXplIC0gMSkpOw0KPiAgCXNpemUgPSBSVEVfTUlOKHNpemUsIHJlZ19zaXplKTsNCj4g DQo+IC0JaWYgKGFkZF9vbmVfZ3Vlc3RfcGFnZShkZXYsIGd1ZXN0X3BoeXNfYWRkciwgaG9zdF9w aHlzX2FkZHIsIHNpemUpIDwgMCkNCj4gKwlpZiAoYWRkX29uZV9ndWVzdF9wYWdlKGRldiwgZ3Vl c3RfcGh5c19hZGRyLCBob3N0X3BoeXNfYWRkciwNCj4gKwkJCSAgICAgICBob3N0X3VzZXJfYWRk ciwgc2l6ZSkgPCAwKQ0KPiAgCQlyZXR1cm4gLTE7DQo+IA0KPiAgCWhvc3RfdXNlcl9hZGRyICAr PSBzaXplOw0KPiBAQCAtMTA0MCw3ICsxMDQ1LDcgQEAgYWRkX2d1ZXN0X3BhZ2VzKHN0cnVjdCB2 aXJ0aW9fbmV0ICpkZXYsIHN0cnVjdA0KPiBydGVfdmhvc3RfbWVtX3JlZ2lvbiAqcmVnLA0KPiAg CQlob3N0X3BoeXNfYWRkciA9IHJ0ZV9tZW1fdmlydDJpb3ZhKCh2b2lkICopKHVpbnRwdHJfdCkN Cj4gIAkJCQkJCSAgaG9zdF91c2VyX2FkZHIpOw0KPiAgCQlpZiAoYWRkX29uZV9ndWVzdF9wYWdl KGRldiwgZ3Vlc3RfcGh5c19hZGRyLCBob3N0X3BoeXNfYWRkciwNCj4gLQkJCQlzaXplKSA8IDAp DQo+ICsJCQkJICAgICAgIGhvc3RfdXNlcl9hZGRyLCBzaXplKSA8IDApDQo+ICAJCQlyZXR1cm4g LTE7DQo+IA0KPiAgCQlob3N0X3VzZXJfYWRkciAgKz0gc2l6ZTsNCj4gQEAgLTEyMTUsNyArMTIy MCw2IEBAIHZob3N0X3VzZXJfbW1hcF9yZWdpb24oc3RydWN0IHZpcnRpb19uZXQgKmRldiwNCj4g IAl1aW50NjRfdCBtbWFwX3NpemU7DQo+ICAJdWludDY0X3QgYWxpZ25tZW50Ow0KPiAgCWludCBw b3B1bGF0ZTsNCj4gLQlpbnQgcmV0Ow0KPiANCj4gIAkvKiBDaGVjayBmb3IgbWVtb3J5X3NpemUg KyBtbWFwX29mZnNldCBvdmVyZmxvdyAqLw0KPiAgCWlmIChtbWFwX29mZnNldCA+PSAtcmVnaW9u LT5zaXplKSB7DQo+IEBAIC0xMjc0LDE0ICsxMjc4LDYgQEAgdmhvc3RfdXNlcl9tbWFwX3JlZ2lv bihzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiAgCQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJh ZGRpbmcgZ3Vlc3QgcGFnZXMgdG8gcmVnaW9uDQo+IGZhaWxlZC5cbiIpOw0KPiAgCQkJcmV0dXJu IC0xOw0KPiAgCQl9DQo+IC0NCj4gLQkJaWYgKHJ0ZV92ZmlvX2lzX2VuYWJsZWQoInZmaW8iKSkg ew0KPiAtCQkJcmV0ID0gYXN5bmNfZG1hX21hcChyZWdpb24sIHRydWUpOw0KPiAtCQkJaWYgKHJl dCkgew0KPiAtCQkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiQ29uZmlndXJlIElPTU1VIGZvciBE TUEgZW5naW5lDQo+IGZhaWxlZFxuIik7DQo+IC0JCQkJcmV0dXJuIC0xOw0KPiAtCQkJfQ0KPiAt CQl9DQo+ICAJfQ0KPiANCj4gIAlWSE9TVF9MT0dfQ09ORklHKElORk8sDQo+IEBAIC0xNDIwLDYg KzE0MTYsOSBAQCB2aG9zdF91c2VyX3NldF9tZW1fdGFibGUoc3RydWN0IHZpcnRpb19uZXQgKipw ZGV2LA0KPiBzdHJ1Y3QgVmhvc3RVc2VyTXNnICptc2csDQo+ICAJCWRldi0+bWVtLT5ucmVnaW9u cysrOw0KPiAgCX0NCj4gDQo+ICsJaWYgKGRldi0+YXN5bmNfY29weSAmJiBydGVfdmZpb19pc19l bmFibGVkKCJ2ZmlvIikpDQo+ICsJCWFzeW5jX2RtYV9tYXAoZGV2LCB0cnVlKTsNCj4gKw0KPiAg CWlmICh2aG9zdF91c2VyX3Bvc3Rjb3B5X3JlZ2lzdGVyKGRldiwgbWFpbl9mZCwgbXNnKSA8IDAp DQo+ICAJCWdvdG8gZnJlZV9tZW1fdGFibGU7DQo+IA0KPiAtLQ0KPiAyLjE3LjENCg0K