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 39347A0C41; Wed, 17 Nov 2021 15:39:45 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D923040687; Wed, 17 Nov 2021 15:39:44 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id A503E40040 for ; Wed, 17 Nov 2021 15:39:42 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10170"; a="231433833" X-IronPort-AV: E=Sophos;i="5.87,241,1631602800"; d="scan'208";a="231433833" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Nov 2021 06:39:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,241,1631602800"; d="scan'208";a="454883793" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga006.jf.intel.com with ESMTP; 17 Nov 2021 06:39:40 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) 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; Wed, 17 Nov 2021 06:39:40 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Wed, 17 Nov 2021 06:39:40 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) 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; Wed, 17 Nov 2021 06:39:37 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CtC5viCYwcMCFSJnCCEFA7hXcxWCZaoEnG48J8KW5VeA1jrVdt1AOX8Wc0TD/hrbUDtRBDhBbmrE/D/siCpsfrIXc11NgRDtYuNzTlLq8sEHSBrjbaJ0VPvJo/iHL16MVcssla1czT3gxMdXk7ErbWMXBUEc/pSu/+4/6xgrEnDds8AJM4zKdD0nLuuYnEyJkYdMXO4owF4ckh0Lyd8PkFIfevrYXrd2j873jL7Bb4sK4a/mTTE0a4GMQ1P54BUKLcx1DY0m/hlks2v7fWcFlQu/eShgvDKL7qJxwaldw/n9LMtpzP4eNlO5xz3stK7HxR8DdjxhL8OCFJojho1Rbw== 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=fWQ3XhJyOnTZfXYYM+v1Qzkb+q/4Yw95ZKkceDOArtQ=; b=fRXCEq0BTV0Q6JmngMohm+XkYZiLSIab2hDmNnyjd8RNZPO0neD9fHCdX73k1fuYLG7wi6upzveWYIc7iKjAcBsAcS1o6eOEUqUaB7EaTcUtT6WvUeSBzjtbvC6r2XiRIsiAZBxl2T739tetpXI5fYuALTnnV24CM+5wSIHm7M0qUq6ZUbGCdgwCZSQGs2OwWf1mgtNgRkl7YJNdImU5S6exmg2j19G28LohciWFOckv52PDdt5iaaATwAcszs2+O5nxJHvqlFJeGlS7AmtdIa9bNeEgxSsp5y7Gn1eJOdB9CsLvni14XjVU0OYOsAwrIEsvpsdULUg5ecmZIivhWQ== 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=fWQ3XhJyOnTZfXYYM+v1Qzkb+q/4Yw95ZKkceDOArtQ=; b=wOUfhcOCNbgSFi3LvPedo9KGXLHPquhsg6uV5q2OFcIrm5xAxBZJ2SX9IyLgHaRyfcuayaMF08GoEoJraCZWYVsE1moPdI+F7mqysWI6O+ZmHpiws9wpnq03ds73Avl4wQvGAoQcpFzvwKZaCbby4RTgtfKg3oUJjRyILbTpnLI= Received: from BN9PR11MB5513.namprd11.prod.outlook.com (2603:10b6:408:102::11) by BN6PR11MB1364.namprd11.prod.outlook.com (2603:10b6:404:48::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19; Wed, 17 Nov 2021 14:39:33 +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; Wed, 17 Nov 2021 14:39:33 +0000 From: "Ding, Xuan" To: "Ding, Xuan" , "Xia, Chenbo" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Hu, Jiayu" , "Wang, YuanX" , "He, Xingguang" Subject: RE: [PATCH v4] vhost: fix physical address mapping Thread-Topic: [PATCH v4] vhost: fix physical address mapping Thread-Index: AQHX2h7RUSPDFbrHm0GM58w38z4oHawFyD8AgAAHyxCAAfdiQA== Date: Wed, 17 Nov 2021 14:39:33 +0000 Message-ID: References: <20211110054630.61524-1-xuan.ding@intel.com> <20211115123222.848-1-xuan.ding@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 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: 2bb7de7a-f61a-41f5-9463-08d9a9d81254 x-ms-traffictypediagnostic: BN6PR11MB1364: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4quIyNAD94eVcddXP7jVimwT5DVhK7cGTK1QbkZvozoGHFHC9lZKgccaHSwaP8ywANvtizplUF5Mf3M+k8dnlcUbKkAzMvjMHEeMEdip4rTaUjrqYL9el7Sf/ExVWT5MPckhU3wf45jAY6PJnbL5ZCg2v201Ij9DjR2MIJLHBu1eFmZCLe3qaj6GnYJ+vnLIOC3B3EG8IiSSij094UUC94M72qEKKHaWn7WY80VAzQwiDWfI5HpukzhGqhZousK4DmXcyr9HyzHTaI/jSFAezb8vkl2Um22huCKgi4zKZapHmkbyu85pKtklPIfDUM3wr763Tut9URgGb0zwMA05+7548+I5bA6jSk7ZKdzdFUptlhmF3kIcrMeGvYG4S5rR4XRH68+hMmBnt57GPWCrJ79mL3FypDR+maANostIkDs/RUHAPa3nyudq/ZQ+ebwT6tnXLVT6HKJYiQNsJagwkY/2DiCCMwQAbO/2n46IbQSwop7GXDzeNSCjYiAyQaEoquPug3NRHPt55FZbprBQGPybAgpb8QI2dCe18SmiqYtSAbw47APJ3bNy4pvPkUF643Li37DyEBoHoFIIGAVZWPm2mSvDUlhyN5BTJ10ge7IbbaSjczfdVfmAM4B9/BqY3m0pfZQW0Fn9INuGU5ikcVgnyrda6rgRTLMa6kF9NkWcUKJ8itZ53UbXMqmO/+dQydkqMUPBxgWKx1Mv1t7sHA== 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)(38070700005)(7696005)(4326008)(86362001)(9686003)(55016002)(186003)(71200400001)(53546011)(8936002)(6506007)(66946007)(107886003)(66446008)(76116006)(64756008)(66476007)(66556008)(508600001)(33656002)(110136005)(82960400001)(8676002)(122000001)(2906002)(316002)(83380400001)(52536014)(54906003)(5660300002)(26005)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TGhxR3BZcEloL1JKMUFaTXJHdG5mTWtrcGMxSDFkb2FMbDkzdFV5eFMzaFUr?= =?utf-8?B?eWQxSWtQdFZ5U2E5U3Zsa2VXSzhHamk3TTArcmg5emFaYXBzeDRFUmxkWGdS?= =?utf-8?B?dEZqVWxWVUFuOFpHbHNPSysxcDRtdlFJT0haU0FHWk1rV2dQSFZKbHU0T01w?= =?utf-8?B?R0pKZktoOGNYcGowalcwY0JHRGQybXhqUXRWK1k3VTVUaEJkMlJqL0hBQ1lr?= =?utf-8?B?TzZIeG4xeUtpQ2N5R2x6YzA2aWc5a0tuRHFxN1FmaHkzWjVadGt0UjFFMkRw?= =?utf-8?B?TzVLeHM0aG9YSjY0d2pScVZkcUVLQlF4Yk11QTlGc29VNTNTb0tqb0VIY3pB?= =?utf-8?B?cHpxbUNqdWcwaTY4clU2ZnV3L0pRSEtTb1dJZlhBdS9nNXJvRFh5OTZUU3V3?= =?utf-8?B?ODBVMHl3VmY2YnAwcXV3aUF3VTN3NUYxaEsrY1lmZ09PK2NqNjhPR2lhRUM3?= =?utf-8?B?UTgyWVZOcE53U3A1UHFkdU9GcVc4VXJjT2VTdGZwbTJoSVdVcTJzRkIrWlZw?= =?utf-8?B?MFo5MzlQUUJkK2VxOHRtV3VFQ2pZZTFLQVpGdHpVOEhwbDdsanhLcVI3OGtB?= =?utf-8?B?TmkyWVZpbWdaVFJ2QzNGY0tpQmk3VVJySDQ4b2FieVMzUU9Ha2hkcnhtUWtI?= =?utf-8?B?VE00N2JoaXgxN1ZYMlNWdGJIZlBTZjd3TFU5K1JaMytiN2QydVRRU1FsbHlK?= =?utf-8?B?WlFJRTNsMGVwOTk2UHFRczViQ1d5TzNZT05uUUgwaHZ6K3RQUkdWSy9acnY2?= =?utf-8?B?ejd5Q052NDZURWZLTnRzWWx6cE1icVN0K3QvVWJBVzFwVmM3ZGlMcE8xSG1N?= =?utf-8?B?NUZERFFON3Qxam9IVTVLbDVtL0JHOGJVT2NnMlJvSUNFZFVtRDVDVHhpY1lR?= =?utf-8?B?Y2orZHNwSm5uOFRPc041aW0xVWViVmlpMHN3eFE2NWNNRVpaUHFlY09HbEE4?= =?utf-8?B?WlB2dW1PQ1JNOEl0Mmc5T25nTTlESHRWaENjL0xpOUZjY3oxYXRUeHpSR290?= =?utf-8?B?U2ZFUmRBMXZFTTRnYnZINWNvU2JNMFp4RjJoRThKWkJxS3hoTkJUclNKVFgz?= =?utf-8?B?eWNUNnpWSUlYdi9NM2lGS0puT04rWmtvMGdPcWFjcnNwMjEzU2lRTGhxVUdC?= =?utf-8?B?MGNqY3o5VkRIb0d6NnhhQlRkRk0rdFRTcnZMZmM5emJQV0xjenVBM3hTbHFS?= =?utf-8?B?ZGJxQk1GcDJxWmgvclhaZWJVd05STjBFaWdISCs0eGhQT0hFK2NnL09qWG8z?= =?utf-8?B?Vk9nbXpreU1vWk5pc2JXTlFPWE85Q1JsY2tjTm51TUxEQ2UxNGkvcUNqU2g0?= =?utf-8?B?d2hzV0RBL05CVFZ6MFJHU1pWRHpac0VPOG9PU2lJU2hjSksyaitZUlpTZERa?= =?utf-8?B?MnlyT1UyZ1N3WjRIb2ZrKzNocmV3MzBJRmVoRy9pNFNlT1YvZlRZZy9MWjZm?= =?utf-8?B?MEx2TE1RdWk3ZzdUbE9UTlI0UDI3UzUvZThFLzJ3dHZTRzBycnFpWWQ5dzBy?= =?utf-8?B?WWEwUnBkVkVaWmNJWXJacStLNGxDUUpickpNZERQY0pkbHgzNEwwTlFTYjBX?= =?utf-8?B?MlRqMzAvVUJ5aUhST05Sb2RrUzRGMU4reEJnNDBydlZXd3lQakNNNGV5ak16?= =?utf-8?B?TCtpTzZhT0YwcVFLUmtXOUxCaENyQ3hTMFEyRGJVQjRaL3M4ZnV2ajhkejZW?= =?utf-8?B?QlJ5cWZPZU45Rm9ncmljSmRGSTVUT3VBNjE3cGFYeWV1MEg1MmNrRWVEZWxu?= =?utf-8?B?MXg2S3g2Mk9qTnRyWlRsMmN2YTRraWRWWlZmK2djQ2FySld4UTgvQ3hETlln?= =?utf-8?B?bUtXZnA1VGFWc2ExbWJhRzJ4TXJ6dnVVMmFYU2FONFBOb1ZSNTBmVzlTOGxN?= =?utf-8?B?SGtmR1ptVjh4SThuMDlhR2NTUUZXbFZSSUdROGxyZnc4bHNaa05yVmZCMVZq?= =?utf-8?B?a1NyZU10ZXpvN3gwdTlrb1NMTTBXdytLcHR6VWRnN1Zoa3hvNXJ0OHozUlpa?= =?utf-8?B?dGk1T2phWExmbzFIc09SWUROczYyOWlUTjUweXE2dVRpSFpFZzN2UHdIb1Y3?= =?utf-8?B?MnMvMXpEZ3Z0OWgvU3hkWjlxWnVCWmUzZVllZTJaSGhvQUtOVm5KNmlma1Bj?= =?utf-8?B?c0lNN0ZsZTUzVGZvNzFiSzRVT1B1RlhYNFluOFRPdllUSVpseHBPZ1JWMndz?= =?utf-8?Q?hUN8BUi7hi7vdmMmRdgmVIE=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: 2bb7de7a-f61a-41f5-9463-08d9a9d81254 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2021 14:39:33.2948 (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: qg/2ENNZZddR6aB8XyDbEXXT6t+QXXOE0Px8/PLoJXip7amvu3IlZ7t/p4Y2j3OcxKH1X+elDCUjsID7k5YjWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1364 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 SGkgTWF4aW1lLA0KDQo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj5Gcm9tOiBEaW5nLCBY dWFuIDx4dWFuLmRpbmdAaW50ZWwuY29tPg0KPlNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDE2LCAy MDIxIDQ6MjQgUE0NCj5UbzogWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPjsgbWF4 aW1lLmNvcXVlbGluQHJlZGhhdC5jb20NCj5DYzogZGV2QGRwZGsub3JnOyBIdSwgSmlheXUgPGpp YXl1Lmh1QGludGVsLmNvbT47IFdhbmcsIFl1YW5YDQo+PHl1YW54LndhbmdAaW50ZWwuY29tPjsg SGUsIFhpbmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT4NCj5TdWJqZWN0OiBSRTogW1BB VENIIHY0XSB2aG9zdDogZml4IHBoeXNpY2FsIGFkZHJlc3MgbWFwcGluZw0KPg0KPkhpIENoZW5i bywNCj4NCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBYaWEsIENoZW5i byA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+PiBTZW50OiAyMDIx5bm0MTHmnIgxNuaXpSAxNTo0 OA0KPj4gVG86IERpbmcsIFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBtYXhpbWUuY29xdWVs aW5AcmVkaGF0LmNvbQ0KPj4gQ2M6IGRldkBkcGRrLm9yZzsgSHUsIEppYXl1IDxqaWF5dS5odUBp bnRlbC5jb20+OyBXYW5nLCBZdWFuWA0KPj4gPHl1YW54LndhbmdAaW50ZWwuY29tPjsgSGUsIFhp bmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT4NCj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0gg djRdIHZob3N0OiBmaXggcGh5c2ljYWwgYWRkcmVzcyBtYXBwaW5nDQo+Pg0KPj4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gPiBGcm9tOiBEaW5nLCBYdWFuIDx4dWFuLmRpbmdAaW50 ZWwuY29tPg0KPj4gPiBTZW50OiBNb25kYXksIE5vdmVtYmVyIDE1LCAyMDIxIDg6MzIgUE0NCj4+ ID4gVG86IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhp YUBpbnRlbC5jb20+DQo+PiA+IENjOiBkZXZAZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVA aW50ZWwuY29tPjsgV2FuZywgWXVhblgNCj4+ID4gPHl1YW54LndhbmdAaW50ZWwuY29tPjsgSGUs IFhpbmdndWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT47DQo+PiA+IERpbmcsIFh1YW4gPHh1 YW4uZGluZ0BpbnRlbC5jb20+DQo+PiA+IFN1YmplY3Q6IFtQQVRDSCB2NF0gdmhvc3Q6IGZpeCBw aHlzaWNhbCBhZGRyZXNzIG1hcHBpbmcNCj4+ID4NCj4+ID4gV2hlbiBjaG9vc2luZyBJT1ZBIGFz IFBBIG1vZGUsIElPVkEgaXMgbGlrZWx5IHRvIGJlIGRpc2NvbnRpbnVvdXMsDQo+PiA+IHdoaWNo IHJlcXVpcmVzIHBhZ2UgYnkgcGFnZSBtYXBwaW5nIGZvciBETUEgZGV2aWNlcy4gVG8gYmUNCj4+ ID4gY29uc2lzdGVudCwgdGhpcyBwYXRjaCBpbXBsZW1lbnRzIHBhZ2UgYnkgcGFnZSBtYXBwaW5n IGluc3RlYWQgb2YNCj4+ID4gbWFwcGluZyBhdCB0aGUgcmVnaW9uIGdyYW51bGFyaXR5IGZvciBi b3RoIElPVkEgYXMgVkEgYW5kIFBBIG1vZGUuDQo+PiA+DQo+PiA+IEZpeGVzOiA3YzYxZmEwOGI3 MTYgKCJ2aG9zdDogZW5hYmxlIElPTU1VIGZvciBhc3luYyB2aG9zdCIpDQo+PiA+DQo+PiA+IFNp Z25lZC1vZmYtYnk6IFh1YW4gRGluZyA8eHVhbi5kaW5nQGludGVsLmNvbT4NCj4+ID4gLS0tDQo+ PiA+IHY0Og0KPj4gPiAqIFJlbW92ZSB1bm5lc3NhcnkgRU5PU1VQIGNoZWNrLg0KPj4gPiAqIEFk anVzdCByZXR1cm4gdHlwZS4NCj4+ID4NCj4+ID4gdjM6DQo+PiA+ICogRml4IGNvbW1pdCB0aXRs ZS4NCj4+ID4NCj4+ID4gdjI6DQo+PiA+ICogRml4IGEgZm9ybWF0IGlzc3VlLg0KPj4gPiAtLS0N Cj4+ID4gIGxpYi92aG9zdC92aG9zdC5oICAgICAgfCAgIDEgKw0KPj4gPiAgbGliL3Zob3N0L3Zo b3N0X3VzZXIuYyB8IDExMQ0KPj4gPiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA1OCBkZWxl dGlvbnMoLSkNCj4+ID4NCj4+ID4gZGlmZiAtLWdpdCBhL2xpYi92aG9zdC92aG9zdC5oIGIvbGli L3Zob3N0L3Zob3N0LmggaW5kZXgNCj4+ID4gNzA4NWUwODg1Yy4uZDI0NjUzOGNhNSAxMDA2NDQN Cj4+ID4gLS0tIGEvbGliL3Zob3N0L3Zob3N0LmgNCj4+ID4gKysrIGIvbGliL3Zob3N0L3Zob3N0 LmgNCj4+ID4gQEAgLTM1NSw2ICszNTUsNyBAQCBzdHJ1Y3QgdnJpbmdfcGFja2VkX2Rlc2NfZXZl bnQgeyAgc3RydWN0DQo+PiA+IGd1ZXN0X3BhZ2Ugew0KPj4gPiAgCXVpbnQ2NF90IGd1ZXN0X3Bo eXNfYWRkcjsNCj4+ID4gIAl1aW50NjRfdCBob3N0X3BoeXNfYWRkcjsNCj4+DQo+PiBUaGlzIG5h bWUgY29uZnVzZWQgbWUgd2hlbiBkb2luZyByZXZpZXc6IHRoaXMgc2hvdWxkIGJlIGhvc3RfaW92 YS4NCj4+DQo+PiBDb3VsZCB5b3UgaGVscCByZW5hbWUgaXQgaW4gdGhlIHBhdGNoPw0KPg0KPlll cywgdGhlIGhvc3RfcGh5c19hZGRyIGlzIGEgaW92YSwgaXQgZGVwZW5kcyBvbiB0aGUgRFBESyBJ T1ZBIG1vZGUuDQo+DQo+Pg0KPj4gPiArCXVpbnQ2NF90IGhvc3RfdXNlcl9hZGRyOw0KPj4gPiAg CXVpbnQ2NF90IHNpemU7DQo+PiA+ICB9Ow0KPj4gPg0KPj4gPiBkaWZmIC0tZ2l0IGEvbGliL3Zo b3N0L3Zob3N0X3VzZXIuYyBiL2xpYi92aG9zdC92aG9zdF91c2VyLmMgaW5kZXgNCj4+ID4gYTc4 MTM0NmM0ZC4uMGE5ZGMzMzUwZiAxMDA2NDQNCj4+ID4gLS0tIGEvbGliL3Zob3N0L3Zob3N0X3Vz ZXIuYw0KPj4gPiArKysgYi9saWIvdmhvc3Qvdmhvc3RfdXNlci5jDQo+PiA+IEBAIC0xNDMsNTcg KzE0Myw1NiBAQCBnZXRfYmxrX3NpemUoaW50IGZkKQ0KPj4gPiAgCXJldHVybiByZXQgPT0gLTEg PyAodWludDY0X3QpLTEgOiAodWludDY0X3Qpc3RhdC5zdF9ibGtzaXplOyAgfQ0KPj4gPg0KPj4g PiAtc3RhdGljIGludA0KPj4gPiAtYXN5bmNfZG1hX21hcChzdHJ1Y3QgcnRlX3Zob3N0X21lbV9y ZWdpb24gKnJlZ2lvbiwgYm9vbCBkb19tYXApDQo+PiA+ICtzdGF0aWMgdm9pZA0KPj4gPiArYXN5 bmNfZG1hX21hcChzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBib29sIGRvX21hcCkNCj4+ID4gIHsN Cj4+ID4gLQl1aW50NjRfdCBob3N0X2lvdmE7DQo+PiA+ICAJaW50IHJldCA9IDA7DQo+PiA+IC0N Cj4+ID4gLQlob3N0X2lvdmEgPSBydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAqKSh1aW50cHRyX3Qp cmVnaW9uLQ0KPj4gPmhvc3RfdXNlcl9hZGRyKTsNCj4+ID4gKwl1aW50MzJfdCBpOw0KPj4gPiAr CXN0cnVjdCBndWVzdF9wYWdlICpwYWdlOw0KPj4gPiAgCWlmIChkb19tYXApIHsNCj4+ID4gLQkJ LyogQWRkIG1hcHBlZCByZWdpb24gaW50byB0aGUgZGVmYXVsdCBjb250YWluZXIgb2YgRFBESy4g Ki8NCj4+ID4gLQkJcmV0ID0NCj4+IHJ0ZV92ZmlvX2NvbnRhaW5lcl9kbWFfbWFwKFJURV9WRklP X0RFRkFVTFRfQ09OVEFJTkVSX0ZELA0KPj4gPiAtCQkJCQkJIHJlZ2lvbi0+aG9zdF91c2VyX2Fk ZHIsDQo+PiA+IC0JCQkJCQkgaG9zdF9pb3ZhLA0KPj4gPiAtCQkJCQkJIHJlZ2lvbi0+c2l6ZSk7 DQo+PiA+IC0JCWlmIChyZXQpIHsNCj4+ID4gLQkJCS8qDQo+PiA+IC0JCQkgKiBETUEgZGV2aWNl IG1heSBiaW5kIHdpdGgga2VybmVsIGRyaXZlciwgaW4gdGhpcyBjYXNlLA0KPj4gPiAtCQkJICog d2UgZG9uJ3QgbmVlZCB0byBwcm9ncmFtIElPTU1VIG1hbnVhbGx5Lg0KPj4gSG93ZXZlciwgaWYg bm8NCj4+ID4gLQkJCSAqIGRldmljZSBpcyBib3VuZCB3aXRoIHZmaW8vdWlvIGluIERQREssIGFu ZCB2ZmlvDQo+a2VybmVsDQo+PiA+IC0JCQkgKiBtb2R1bGUgaXMgbG9hZGVkLCB0aGUgQVBJIHdp bGwgc3RpbGwgYmUgY2FsbGVkIGFuZA0KPj4gcmV0dXJuDQo+PiA+IC0JCQkgKiB3aXRoIEVOT0RF Vi9FTk9TVVAuDQo+PiA+IC0JCQkgKg0KPj4gPiAtCQkJICogRFBESyB2ZmlvIG9ubHkgcmV0dXJu cyBFTk9ERVYvRU5PU1VQIGluIHZlcnkNCj4+IHNpbWlsYXINCj4+ID4gLQkJCSAqIHNpdHVhdGlv bnModmZpbyBlaXRoZXIgdW5zdXBwb3J0ZWQsIG9yIHN1cHBvcnRlZA0KPj4gPiAtCQkJICogYnV0 IG5vIGRldmljZXMgZm91bmQpLiBFaXRoZXIgd2F5LCBubyBtYXBwaW5ncw0KPmNvdWxkDQo+PiBi ZQ0KPj4gPiAtCQkJICogcGVyZm9ybWVkLiBXZSB0cmVhdCBpdCBhcyBub3JtYWwgY2FzZSBpbiBh c3luYyBwYXRoLg0KPj4gPiAtCQkJICovDQo+PiA+IC0JCQlpZiAocnRlX2Vycm5vID09IEVOT0RF ViB8fCBydGVfZXJybm8gPT0gRU5PVFNVUCkNCj4+ID4gLQkJCQlyZXR1cm4gMDsNCj4+ID4gLQ0K Pj4gPiAtCQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJETUEgZW5naW5lIG1hcA0KPmZhaWxlZFxu Iik7DQo+PiA+IC0JCQkvKiBETUEgbWFwcGluZyBlcnJvcnMgd29uJ3Qgc3RvcA0KPj4gVkhTVF9V U0VSX1NFVF9NRU1fVEFCTEUuICovDQo+PiA+IC0JCQlyZXR1cm4gMDsNCj4+ID4gKwkJZm9yIChp ID0gMDsgaSA8IGRldi0+bnJfZ3Vlc3RfcGFnZXM7IGkrKykgew0KPj4gPiArCQkJcGFnZSA9ICZk ZXYtPmd1ZXN0X3BhZ2VzW2ldOw0KPj4gPiArCQkJcmV0ID0NCj4+ID4gcnRlX3ZmaW9fY29udGFp bmVyX2RtYV9tYXAoUlRFX1ZGSU9fREVGQVVMVF9DT05UQUlORVJfRkQsDQo+PiA+ICsJCQkJCQkJ IHBhZ2UtDQo+PiA+aG9zdF91c2VyX2FkZHIsDQo+PiA+ICsJCQkJCQkJIHBhZ2UtDQo+PiA+aG9z dF9waHlzX2FkZHIsDQo+PiA+ICsJCQkJCQkJIHBhZ2UtPnNpemUpOw0KPj4gPiArCQkJaWYgKHJl dCkgew0KPj4gPiArCQkJCS8qDQo+PiA+ICsJCQkJICogRE1BIGRldmljZSBtYXkgYmluZCB3aXRo IGtlcm5lbCBkcml2ZXIsIGluDQo+PiB0aGlzDQo+PiA+IGNhc2UsDQo+PiA+ICsJCQkJICogd2Ug ZG9uJ3QgbmVlZCB0byBwcm9ncmFtIElPTU1VIG1hbnVhbGx5Lg0KPj4gSG93ZXZlciwNCj4+ID4g aWYgbm8NCj4+ID4gKwkJCQkgKiBkZXZpY2UgaXMgYm91bmQgd2l0aCB2ZmlvL3VpbyBpbiBEUERL LCBhbmQNCj4+IHZmaW8NCj4+ID4ga2VybmVsDQo+PiA+ICsJCQkJICogbW9kdWxlIGlzIGxvYWRl ZCwgdGhlIEFQSSB3aWxsIHN0aWxsIGJlIGNhbGxlZA0KPj4gYW5kDQo+PiA+IHJldHVybg0KPj4g PiArCQkJCSAqIHdpdGggRU5PREVWLg0KPj4gPiArCQkJCSAqDQo+PiA+ICsJCQkJICogRFBESyB2 ZmlvIG9ubHkgcmV0dXJucyBFTk9ERVYgaW4gdmVyeQ0KPj4gc2ltaWxhcg0KPj4gPiBzaXR1YXRp b25zDQo+PiA+ICsJCQkJICogKHZmaW8gZWl0aGVyIHVuc3VwcG9ydGVkLCBvciBzdXBwb3J0ZWQg YnV0DQo+bm8NCj4+ID4gZGV2aWNlcyBmb3VuZCkuDQo+PiA+ICsJCQkJICogRWl0aGVyIHdheSwg bm8gbWFwcGluZ3MgY291bGQgYmUNCj5wZXJmb3JtZWQuDQo+PiBXZQ0KPj4gPiB0cmVhdCBpdCBh cw0KPj4gPiArCQkJCSAqIG5vcm1hbCBjYXNlIGluIGFzeW5jIHBhdGguIFRoaXMgaXMgYQ0KPj4g d29ya2Fyb3VuZC4NCj4+ID4gKwkJCQkgKi8NCj4+ID4gKwkJCQlpZiAocnRlX2Vycm5vID09IEVO T0RFVikNCj4+ID4gKwkJCQkJcmV0dXJuOw0KPj4gPiArDQo+PiA+ICsJCQkJLyogRE1BIG1hcHBp bmcgZXJyb3JzIHdvbid0IHN0b3ANCj4+ID4gVkhTVF9VU0VSX1NFVF9NRU1fVEFCTEUuICovDQo+ Pg0KPj4gQSBjb21tZW50IGluIHYzIGlzIG1pc3NlZDoNCj4NCj5UaGFua3MgZm9yIHRoZSBjYXRj aC4gV2lsbCBmaXggaXQgaW4gdjUuDQo+DQo+VGhhbmtzLA0KPlh1YW4NCg0KQWZ0ZXIgb2ZmIGxp c3QgZGlzY3Vzc2lvbiB3aXRoIFl1YW4sIHRoaXMgcGF0Y2ggaGFzIGRlcGVuZGVuY3kgb24gWXVh bidzIGZpeCBwYXRjaC4NCkFuZCBpdCBzaG91bGQgYWxzbyB0YWtlIHRoZSBIVkEgY29udGludWl0 eSBpbnRvIGNvbnNpZGVyYXRpb24uIFNpbmNlIHRoZSB2MjEuMTEgbWVyZ2Ugd2luZG93IGlzIGFs bW9zdCBjbG9zZWQsDQp3ZSBwbGFuIHRvIG1lcmdlIHRoZSB0d28gcGF0Y2hlcyBhbmQgc2VuZCBp dCBpbiBuZXh0IHJlbGVhc2UsIGRvZXMgaXQgbWFrZSBzZW5zZSBmb3IgeW91Pw0KDQpTb3JyeSBm b3IgbWlzc2luZyBzb21lIHRlc3QgY2FzZXMgdW5kZXIgUEEgbW9kZSwgd2hpY2ggcmVxdWlyZXMg c29tZSBjaGFuZ2VzIGZvciB0aGUgY3VycmVudCBkZXNpZ24uDQoNClRoYW5rcywNClh1YW4NCg0K Pg0KPj4NCj4+IFZIU1QgLT4gVkhPU1QNCj4+DQo+PiBUaGFua3MsDQo+PiBDaGVuYm8NCj4+DQo+ PiA+ICsJCQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJETUEgZW5naW5lIG1hcA0KPj4gZmFpbGVk XG4iKTsNCj4+ID4gKwkJCX0NCj4+ID4gIAkJfQ0KPj4gPg0KPj4gPiAgCX0gZWxzZSB7DQo+PiA+ IC0JCS8qIFJlbW92ZSBtYXBwZWQgcmVnaW9uIGZyb20gdGhlIGRlZmF1bHQgY29udGFpbmVyIG9m IERQREsuDQo+PiAqLw0KPj4gPiAtCQlyZXQgPQ0KPj4gcnRlX3ZmaW9fY29udGFpbmVyX2RtYV91 bm1hcChSVEVfVkZJT19ERUZBVUxUX0NPTlRBSU5FUl9GRCwNCj4+ID4gLQkJCQkJCSAgIHJlZ2lv bi0+aG9zdF91c2VyX2FkZHIsDQo+PiA+IC0JCQkJCQkgICBob3N0X2lvdmEsDQo+PiA+IC0JCQkJ CQkgICByZWdpb24tPnNpemUpOw0KPj4gPiAtCQlpZiAocmV0KSB7DQo+PiA+IC0JCQkvKiBsaWtl IERNQSBtYXAsIGlnbm9yZSB0aGUga2VybmVsIGRyaXZlciBjYXNlIHdoZW4NCj4+IHVubWFwLg0K Pj4gPiAqLw0KPj4gPiAtCQkJaWYgKHJ0ZV9lcnJubyA9PSBFSU5WQUwpDQo+PiA+IC0JCQkJcmV0 dXJuIDA7DQo+PiA+IC0NCj4+ID4gLQkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRE1BIGVuZ2lu ZSB1bm1hcA0KPj4gZmFpbGVkXG4iKTsNCj4+ID4gLQkJCXJldHVybiByZXQ7DQo+PiA+ICsJCWZv ciAoaSA9IDA7IGkgPCBkZXYtPm5yX2d1ZXN0X3BhZ2VzOyBpKyspIHsNCj4+ID4gKwkJCXBhZ2Ug PSAmZGV2LT5ndWVzdF9wYWdlc1tpXTsNCj4+ID4gKwkJCXJldCA9DQo+PiA+IHJ0ZV92ZmlvX2Nv bnRhaW5lcl9kbWFfdW5tYXAoUlRFX1ZGSU9fREVGQVVMVF9DT05UQUlORVJfRkQsDQo+PiA+ICsJ CQkJCQkJICAgcGFnZS0NCj4+ID5ob3N0X3VzZXJfYWRkciwNCj4+ID4gKwkJCQkJCQkgICBwYWdl LQ0KPj4gPmhvc3RfcGh5c19hZGRyLA0KPj4gPiArCQkJCQkJCSAgIHBhZ2UtPnNpemUpOw0KPj4g PiArCQkJaWYgKHJldCkgew0KPj4gPiArCQkJCS8qIGxpa2UgRE1BIG1hcCwgaWdub3JlIHRoZSBr ZXJuZWwgZHJpdmVyIGNhc2UNCj4+IHdoZW4NCj4+ID4gdW5tYXAuICovDQo+PiA+ICsJCQkJaWYg KHJ0ZV9lcnJubyA9PSBFSU5WQUwpDQo+PiA+ICsJCQkJCXJldHVybjsNCj4+ID4gKw0KPj4gPiAr CQkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiRE1BIGVuZ2luZQ0KPj4gdW5tYXAgZmFpbGVkXG4i KTsNCj4+ID4gKwkJCX0NCj4+ID4gIAkJfQ0KPj4gPiAgCX0NCj4+ID4gLQ0KPj4gPiAtCXJldHVy biByZXQ7DQo+PiA+ICB9DQo+PiA+DQo+PiA+ICBzdGF0aWMgdm9pZA0KPj4gPiBAQCAtMjA1LDEy ICsyMDQsMTIgQEAgZnJlZV9tZW1fcmVnaW9uKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYpDQo+PiA+ ICAJaWYgKCFkZXYgfHwgIWRldi0+bWVtKQ0KPj4gPiAgCQlyZXR1cm47DQo+PiA+DQo+PiA+ICsJ aWYgKGRldi0+YXN5bmNfY29weSAmJiBydGVfdmZpb19pc19lbmFibGVkKCJ2ZmlvIikpDQo+PiA+ ICsJCWFzeW5jX2RtYV9tYXAoZGV2LCBmYWxzZSk7DQo+PiA+ICsNCj4+ID4gIAlmb3IgKGkgPSAw OyBpIDwgZGV2LT5tZW0tPm5yZWdpb25zOyBpKyspIHsNCj4+ID4gIAkJcmVnID0gJmRldi0+bWVt LT5yZWdpb25zW2ldOw0KPj4gPiAgCQlpZiAocmVnLT5ob3N0X3VzZXJfYWRkcikgew0KPj4gPiAt CQkJaWYgKGRldi0+YXN5bmNfY29weSAmJiBydGVfdmZpb19pc19lbmFibGVkKCJ2ZmlvIikpDQo+ PiA+IC0JCQkJYXN5bmNfZG1hX21hcChyZWcsIGZhbHNlKTsNCj4+ID4gLQ0KPj4gPiAgCQkJbXVu bWFwKHJlZy0+bW1hcF9hZGRyLCByZWctPm1tYXBfc2l6ZSk7DQo+PiA+ICAJCQljbG9zZShyZWct PmZkKTsNCj4+ID4gIAkJfQ0KPj4gPiBAQCAtOTc4LDcgKzk3Nyw3IEBAIHZob3N0X3VzZXJfc2V0 X3ZyaW5nX2Jhc2Uoc3RydWN0IHZpcnRpb19uZXQNCj4+ID4gKipwZGV2LA0KPj4gPg0KPj4gPiAg c3RhdGljIGludA0KPj4gPiAgYWRkX29uZV9ndWVzdF9wYWdlKHN0cnVjdCB2aXJ0aW9fbmV0ICpk ZXYsIHVpbnQ2NF90IGd1ZXN0X3BoeXNfYWRkciwNCj4+ID4gLQkJICAgdWludDY0X3QgaG9zdF9w aHlzX2FkZHIsIHVpbnQ2NF90IHNpemUpDQo+PiA+ICsJCSAgIHVpbnQ2NF90IGhvc3RfcGh5c19h ZGRyLCB1aW50NjRfdCBob3N0X3VzZXJfYWRkciwgdWludDY0X3QNCj4+IHNpemUpDQo+PiA+ICB7 DQo+PiA+ICAJc3RydWN0IGd1ZXN0X3BhZ2UgKnBhZ2UsICpsYXN0X3BhZ2U7DQo+PiA+ICAJc3Ry dWN0IGd1ZXN0X3BhZ2UgKm9sZF9wYWdlczsNCj4+ID4gQEAgLTEwMDksNiArMTAwOCw3IEBAIGFk ZF9vbmVfZ3Vlc3RfcGFnZShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPj4gPiB1aW50NjRfdCBn dWVzdF9waHlzX2FkZHIsDQo+PiA+ICAJcGFnZSA9ICZkZXYtPmd1ZXN0X3BhZ2VzW2Rldi0+bnJf Z3Vlc3RfcGFnZXMrK107DQo+PiA+ICAJcGFnZS0+Z3Vlc3RfcGh5c19hZGRyID0gZ3Vlc3RfcGh5 c19hZGRyOw0KPj4gPiAgCXBhZ2UtPmhvc3RfcGh5c19hZGRyICA9IGhvc3RfcGh5c19hZGRyOw0K Pj4gPiArCXBhZ2UtPmhvc3RfdXNlcl9hZGRyID0gaG9zdF91c2VyX2FkZHI7DQo+PiA+ICAJcGFn ZS0+c2l6ZSA9IHNpemU7DQo+PiA+DQo+PiA+ICAJcmV0dXJuIDA7DQo+PiA+IEBAIC0xMDI4LDcg KzEwMjgsOCBAQCBhZGRfZ3Vlc3RfcGFnZXMoc3RydWN0IHZpcnRpb19uZXQgKmRldiwgc3RydWN0 DQo+PiA+IHJ0ZV92aG9zdF9tZW1fcmVnaW9uICpyZWcsDQo+PiA+ICAJc2l6ZSA9IHBhZ2Vfc2l6 ZSAtIChndWVzdF9waHlzX2FkZHIgJiAocGFnZV9zaXplIC0gMSkpOw0KPj4gPiAgCXNpemUgPSBS VEVfTUlOKHNpemUsIHJlZ19zaXplKTsNCj4+ID4NCj4+ID4gLQlpZiAoYWRkX29uZV9ndWVzdF9w YWdlKGRldiwgZ3Vlc3RfcGh5c19hZGRyLCBob3N0X3BoeXNfYWRkciwgc2l6ZSkNCj48DQo+PiAw KQ0KPj4gPiArCWlmIChhZGRfb25lX2d1ZXN0X3BhZ2UoZGV2LCBndWVzdF9waHlzX2FkZHIsIGhv c3RfcGh5c19hZGRyLA0KPj4gPiArCQkJICAgICAgIGhvc3RfdXNlcl9hZGRyLCBzaXplKSA8IDAp DQo+PiA+ICAJCXJldHVybiAtMTsNCj4+ID4NCj4+ID4gIAlob3N0X3VzZXJfYWRkciAgKz0gc2l6 ZTsNCj4+ID4gQEAgLTEwNDAsNyArMTA0MSw3IEBAIGFkZF9ndWVzdF9wYWdlcyhzdHJ1Y3Qgdmly dGlvX25ldCAqZGV2LCBzdHJ1Y3QNCj4+ID4gcnRlX3Zob3N0X21lbV9yZWdpb24gKnJlZywNCj4+ ID4gIAkJaG9zdF9waHlzX2FkZHIgPSBydGVfbWVtX3ZpcnQyaW92YSgodm9pZCAqKSh1aW50cHRy X3QpDQo+PiA+ICAJCQkJCQkgIGhvc3RfdXNlcl9hZGRyKTsNCj4+ID4gIAkJaWYgKGFkZF9vbmVf Z3Vlc3RfcGFnZShkZXYsIGd1ZXN0X3BoeXNfYWRkciwNCj5ob3N0X3BoeXNfYWRkciwNCj4+ID4g LQkJCQlzaXplKSA8IDApDQo+PiA+ICsJCQkJICAgICAgIGhvc3RfdXNlcl9hZGRyLCBzaXplKSA8 IDApDQo+PiA+ICAJCQlyZXR1cm4gLTE7DQo+PiA+DQo+PiA+ICAJCWhvc3RfdXNlcl9hZGRyICAr PSBzaXplOw0KPj4gPiBAQCAtMTIxNSw3ICsxMjE2LDYgQEAgdmhvc3RfdXNlcl9tbWFwX3JlZ2lv bihzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPj4gPiAgCXVpbnQ2NF90IG1tYXBfc2l6ZTsNCj4+ ID4gIAl1aW50NjRfdCBhbGlnbm1lbnQ7DQo+PiA+ICAJaW50IHBvcHVsYXRlOw0KPj4gPiAtCWlu dCByZXQ7DQo+PiA+DQo+PiA+ICAJLyogQ2hlY2sgZm9yIG1lbW9yeV9zaXplICsgbW1hcF9vZmZz ZXQgb3ZlcmZsb3cgKi8NCj4+ID4gIAlpZiAobW1hcF9vZmZzZXQgPj0gLXJlZ2lvbi0+c2l6ZSkg eyBAQCAtMTI3NCwxNCArMTI3NCw2IEBADQo+PiA+IHZob3N0X3VzZXJfbW1hcF9yZWdpb24oc3Ry dWN0IHZpcnRpb19uZXQgKmRldiwNCj4+ID4gIAkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiYWRk aW5nIGd1ZXN0IHBhZ2VzIHRvDQo+PiByZWdpb24gZmFpbGVkLlxuIik7DQo+PiA+ICAJCQlyZXR1 cm4gLTE7DQo+PiA+ICAJCX0NCj4+ID4gLQ0KPj4gPiAtCQlpZiAocnRlX3ZmaW9faXNfZW5hYmxl ZCgidmZpbyIpKSB7DQo+PiA+IC0JCQlyZXQgPSBhc3luY19kbWFfbWFwKHJlZ2lvbiwgdHJ1ZSk7 DQo+PiA+IC0JCQlpZiAocmV0KSB7DQo+PiA+IC0JCQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJD b25maWd1cmUgSU9NTVUNCj4+IGZvciBETUEgZW5naW5lDQo+PiA+IGZhaWxlZFxuIik7DQo+PiA+ IC0JCQkJcmV0dXJuIC0xOw0KPj4gPiAtCQkJfQ0KPj4gPiAtCQl9DQo+PiA+ICAJfQ0KPj4gPg0K Pj4gPiAgCVZIT1NUX0xPR19DT05GSUcoSU5GTywNCj4+ID4gQEAgLTE0MjAsNiArMTQxMiw5IEBA IHZob3N0X3VzZXJfc2V0X21lbV90YWJsZShzdHJ1Y3QgdmlydGlvX25ldA0KPj4gPiAqKnBkZXYs IHN0cnVjdCBWaG9zdFVzZXJNc2cgKm1zZywNCj4+ID4gIAkJZGV2LT5tZW0tPm5yZWdpb25zKys7 DQo+PiA+ICAJfQ0KPj4gPg0KPj4gPiArCWlmIChkZXYtPmFzeW5jX2NvcHkgJiYgcnRlX3ZmaW9f aXNfZW5hYmxlZCgidmZpbyIpKQ0KPj4gPiArCQlhc3luY19kbWFfbWFwKGRldiwgdHJ1ZSk7DQo+ PiA+ICsNCj4+ID4gIAlpZiAodmhvc3RfdXNlcl9wb3N0Y29weV9yZWdpc3RlcihkZXYsIG1haW5f ZmQsIG1zZykgPCAwKQ0KPj4gPiAgCQlnb3RvIGZyZWVfbWVtX3RhYmxlOw0KPj4gPg0KPj4gPiAt LQ0KPj4gPiAyLjE3LjENCg0K