From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E9147A04B1; Wed, 30 Sep 2020 07:51:34 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 210C11D54D; Wed, 30 Sep 2020 07:50:24 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id C7ACC1DABD for ; Wed, 30 Sep 2020 07:50:21 +0200 (CEST) IronPort-SDR: Ji6DUN/gewX2bcOy9C2inDsDozyawV26O99OnaKsOZO0/G0r9G+Sqda+riNWeis5NIH78zK+hr uDoTej+JhLhQ== X-IronPort-AV: E=McAfee;i="6000,8403,9759"; a="142377122" X-IronPort-AV: E=Sophos;i="5.77,321,1596524400"; d="scan'208";a="142377122" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2020 22:50:20 -0700 IronPort-SDR: kj4OY27MdaS5STxhtYhcCwt8CaNAg41C6uV3noFwNemr7ffbscYRugbe6xEknaknul8mYBNNpg tehCrdxSocLg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,321,1596524400"; d="scan'208";a="312475100" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga006.jf.intel.com with ESMTP; 29 Sep 2020 22:50:20 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 22:50:20 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Sep 2020 22:50:19 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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.1713.5 via Frontend Transport; Tue, 29 Sep 2020 22:50:19 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (104.47.38.58) 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.1713.5; Tue, 29 Sep 2020 22:49:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L6/1G0gFPbeI7un7dZAmV86lWKud6kPkrdN6Am9SNoK0L++2l378aXJBUkmxrEafZqWzVb1TEDy1bjhaX5OLu0ETuKFx0AFDl48ZvINtXQtv8QgNVDaWqn8DIyUR5BYvsqoeNkNI52vbDyNeDqTCLrRXQt2b7Nbz6kXRD/Gz787mPDBIQHRnoN9PScqDVBhOMNyXxU3y05d+7LamyU+Q2XK0nEPaMp6sXodAsFma6o/yh+BGQjM7hzkEb3sNf6LL0uqNlgL08DSKYNvw+HhOBwZ+LdwuOiO3woapevWbE+4woCAUOKr21E786dibDXYZY+qMYhMDjpLJRsC3MdnfxA== 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-SenderADCheck; bh=TXlMIKqCoe8IPiZkxeNdIlWjtkUFoDqrCIiUKQ1xWkQ=; b=UwC8zaxqb+8JXE8p5EL8aXv7TDbUhvBJHAj73Al474uY+iGn2/2LKs3r3Vg16EU0Pqu6OcCDpYsbSYuJ+Gzm0uNqP+nI3rbdeOs74xae6c9TaKc7cqVLQ/m8Fkx3TBLR7aNz+cN+2K80HKsJvqgwl4PCHSvqli2GeRr/Ahg/LOWpiPmi0vcmerv1eddTW48CAAaJSvkoPCq4IXxcdQsMP/3YCgXtab5qkdA2CyNziLxd63Z4SXNqhXCzWhUwllTadvbYecszg0V1Ru6HQ33rI1BNCuFtH0OsxQgD5gcvbr41Ooiq8sAfqMFZmDUj9HbMz/Y5DHRcTmIo/Jog2dqI/A== 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=TXlMIKqCoe8IPiZkxeNdIlWjtkUFoDqrCIiUKQ1xWkQ=; b=FgonAzHdRWSKm4xSXiwPq2zK2anCfe24qVZcTyQdIS+C1XY/oK8Os7aE/MNc+K1JXViKe/JV7/GCEXEb+lZ2vzKg23nsXkTXthihOH78CP7Y0YvOmMKZ9KBljY2YGYy3wCsTMILvp/XhKT7R/QtTgz4ed5le4DUex/mImIx/JI4= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3885.namprd11.prod.outlook.com (2603:10b6:208:151::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.22; Wed, 30 Sep 2020 05:49:55 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::1dc7:9f52:91c1:52da]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::1dc7:9f52:91c1:52da%3]) with mapi id 15.20.3412.029; Wed, 30 Sep 2020 05:49:55 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "Fu, Patrick" , "amorenoz@redhat.com" Thread-Topic: [PATCH v3 8/8] net/virtio: introduce Vhost-vDPA backend Thread-Index: AQHWlnu8T58aKsdjckmYgdLbCOvWlqmArc3g Date: Wed, 30 Sep 2020 05:49:55 +0000 Message-ID: References: <20200929161404.124580-1-maxime.coquelin@redhat.com> <20200929161404.124580-9-maxime.coquelin@redhat.com> In-Reply-To: <20200929161404.124580-9-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2ac2c0d9-bbda-4a73-4ad2-08d86504a891 x-ms-traffictypediagnostic: MN2PR11MB3885: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:469; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pS/Aatyt5KHgtlcmMueOdJhK92beEzg2hMizQVQMcqGcSb0lWKJMIsTV24jRxnZl6Ql0GV2o6Xg2e/h6L63hpqFj/7nkTHbCnX+XxlsKcJePU0SwQsBlXDSnMQpzvheFKY54Z9CrAH/SP830M7R0A/8tDaVzZv64+I7l7soYaoUixpg1CD7YMZOVIy02AxfV5JqXku2k1Vq6l8Zr6jggr7Pw+alMcZ1CcYq7wmOry8qoxeunMhJ/LZcPdn5iJnXP78s5NlVGMXl+XlNvNcDSTkee5H9pCICnZbRt+l90K121Vx6YUx1WqYSZJz62Ia8A0qzO35P9yUMN/4MlL4WPoaxfjf3ypdqIrwmjTiabooRiNB8Ohy80GxlgiFRgf0PF x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(136003)(376002)(396003)(39860400002)(33656002)(316002)(186003)(110136005)(8936002)(6506007)(52536014)(478600001)(53546011)(7696005)(66946007)(26005)(76116006)(5660300002)(30864003)(55016002)(9686003)(8676002)(2906002)(83380400001)(71200400001)(86362001)(66476007)(64756008)(66446008)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: 40m9LqdOdXc2TEGhj8Hz6o3X1lWzR+Zw01qSN9T8k2B7+CmF0LUzjSf1HHBPrrPe8u5Yji8awDd3ETnoE8eUeq2xryqsoi7vta1CZ+h59UqZH42sRMe2TnoT74FOI407ARd++/t5BiHAehw0v4j5cRSCHrHsZHvMvFT7XY9jV2ohR58XScmRlaTcbDKh/BsjRQXo/S1rwgfmlfNQKx8HFWml2228Bd75dKVMcJxLOb6nvID7ekggMYx5HnBIuuw4n/AzHYbtzTKteCF27nQ2oacDU7CxNVOkQNlHjA8yfrQLCgVjK8mWyPU67qDfh6yHcTHtpWxvhCX5CFBB5NcUiKw4beQpAXJjht+ktUg5qi42uQ+eYlMlIz0Lv8JZFZIdywlkAdNfvHp89kjzTCHhdmcymrxh7GlxHA5UvfLBT29QTDJqYoxSgnXbP0LqyJbQCRcp+duZBGp52o3lK6A/s6hFQcs+34fa5iePdvU/MG7QFbIyiNofJaPbVi3HTDhxmsbOtl/RqMWBpFlx6VPZ/KdEA34ot3QsUSDCzkdkhnryKk8cqrqBkLrSMvbV6acDBF3DhQfZoyTfxzoYDtpk59ttH7sjG6tUVO67RsYVaFYaEQFg0fkFVpwNdRn3RcWyVSMjXSU/6X8lxgbQ5tMcXg== 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: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ac2c0d9-bbda-4a73-4ad2-08d86504a891 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2020 05:49:55.3914 (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: qt6h5dUdTQu0BxwNiz2sR7TCoaPZwwGJpg/pAMeeYzJljbHlDUhmPR4DlT8TKTEVD5inqjeOi8o/QPuZayL7lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3885 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 8/8] net/virtio: introduce Vhost-vDPA backend X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAz MCwgMjAyMCAxMjoxNCBBTQ0KPiBUbzogZGV2QGRwZGsub3JnOyBYaWEsIENoZW5ibyA8Y2hlbmJv LnhpYUBpbnRlbC5jb20+OyBGdSwgUGF0cmljaw0KPiA8cGF0cmljay5mdUBpbnRlbC5jb20+OyBh bW9yZW5vekByZWRoYXQuY29tDQo+IENjOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxp bkByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjMgOC84XSBuZXQvdmlydGlvOiBpbnRy b2R1Y2UgVmhvc3QtdkRQQSBiYWNrZW5kDQo+IA0KPiB2aG9zdC12RFBBIGlzIGEgbmV3IHZpcnRp byBiYWNrZW5kIHR5cGUgaW50cm9kdWNlZCBieSB2RFBBIGtlcm5lbA0KPiBmcmFtZXdvcmssIHdo aWNoIHByb3ZpZGVzIGFic3RydWN0aW9uIHRvIHRoZSB2RFBBIGRldmljZXMgYW5kDQo+IGV4cG9z ZXMgYW4gdW5pZmllZCBjb250cm9sIGludGVyZmFjZSB0aHJvdWdoIGEgY2hhciBkZXYuDQo+IA0K PiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byB0aGUgdmhvc3QtdkRQQSBiYWNrZW5kLiBBcyBz aW1pbGFyIHRvDQo+IHRoZSBleGlzdGluZyB2aG9zdCBrZXJuZWwgYmFja2VuZCwgYSBzZXQgb2Yg dmlydGlvX3VzZXIgb3BzIHdlcmUNCj4gaW50cm9kdWNlZCBmb3Igdmhvc3QtdkRQQSBiYWNrZW5k IHRvIGhhbmRsZSBkZXZpY2Ugc3BlY2lmaWMgb3BlcmF0aW9ucw0KPiBzdWNoIGFzOg0KPiAgLSBk ZXZpY2Ugc2V0dXANCj4gIC0gaW9jdGwgbWVzc2FnZSBoYW5kbGluZw0KPiAgLSBxdWV1ZSBwYWly IGVuYWJsaW5nDQo+ICAtIGRtYSBtYXAvdW5tYXANCj4gdkRQQSByZWxldmFudCBpb2N0bCBjb2Rl cyBhbmQgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBhbHNvIGRlZmluZWQgaW4NCj4gdGhpcyBwYXRjaC4N Cj4gDQo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJl ZGhhdC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL21lc29uLmJ1aWxkICAgICAg ICAgICAgICAgIHwgICAxICsNCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9z dC5oICAgICAgICB8ICAgMSArDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhv c3RfdmRwYS5jICAgfCAyOTggKysrKysrKysrKysrKysrKysrDQo+ICAuLi4vbmV0L3ZpcnRpby92 aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYyAgfCAgIDYgKw0KPiAgNCBmaWxlcyBjaGFuZ2Vk LCAzMDYgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3Zp cnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC92aXJ0aW8vbWVzb24uYnVpbGQNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vbWVzb24uYnVp bGQNCj4gaW5kZXggM2ZkNjA1MWY0Yi4uZWFlZDQ2MzczZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9uZXQvdmlydGlvL21lc29uLmJ1aWxkDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby9tZXNv bi5idWlsZA0KPiBAQCAtNDIsNiArNDIsNyBAQCBpZiBpc19saW51eA0KPiAgCQkndmlydGlvX3Vz ZXIvdmhvc3Rfa2VybmVsLmMnLA0KPiAgCQkndmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsX3RhcC5j JywNCj4gIAkJJ3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYycsDQo+ICsJCSd2aXJ0aW9fdXNlci92 aG9zdF92ZHBhLmMnLA0KPiAgCQkndmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMnKQ0KPiAg CWRlcHMgKz0gWydidXNfdmRldiddDQo+ICBlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0LmgNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmly dGlvX3VzZXIvdmhvc3QuaA0KPiBpbmRleCAyZTcxOTk1YTc5Li4yMTBhMzcwNGU3IDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiArKysgYi9k cml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiBAQCAtMTEzLDUgKzExMyw2 IEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB7DQo+IA0KPiAgZXh0ZXJuIHN0cnVj dCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB2aXJ0aW9fb3BzX3VzZXI7DQo+ICBleHRlcm4gc3Ry dWN0IHZpcnRpb191c2VyX2JhY2tlbmRfb3BzIHZpcnRpb19vcHNfa2VybmVsOw0KPiArZXh0ZXJu IHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB2aXJ0aW9fb3BzX3ZkcGE7DQo+IA0KPiAg I2VuZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhv c3RfdmRwYS5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEu Yw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi5jN2I5MzQ5ZmM4 DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2Vy L3Zob3N0X3ZkcGEuYw0KPiBAQCAtMCwwICsxLDI5OCBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICogQ29weXJpZ2h0KGMpIDIwMjAgUmVkIEhhdCBJ bmMuDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN5cy9pb2N0bC5oPg0KPiArI2luY2x1ZGUg PHN5cy90eXBlcy5oPg0KPiArI2luY2x1ZGUgPHN5cy9zdGF0Lmg+DQo+ICsjaW5jbHVkZSA8ZmNu dGwuaD4NCj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4NCj4gKw0KPiArI2luY2x1ZGUgPHJ0ZV9tZW1v cnkuaD4NCj4gKw0KPiArI2luY2x1ZGUgInZob3N0LmgiDQo+ICsjaW5jbHVkZSAidmlydGlvX3Vz ZXJfZGV2LmgiDQo+ICsNCj4gKy8qIHZob3N0IGtlcm5lbCAmIHZkcGEgaW9jdGxzICovDQo+ICsj ZGVmaW5lIFZIT1NUX1ZJUlRJTyAweEFGDQo+ICsjZGVmaW5lIFZIT1NUX0dFVF9GRUFUVVJFUyBf SU9SKFZIT1NUX1ZJUlRJTywgMHgwMCwgX191NjQpDQo+ICsjZGVmaW5lIFZIT1NUX1NFVF9GRUFU VVJFUyBfSU9XKFZIT1NUX1ZJUlRJTywgMHgwMCwgX191NjQpDQo+ICsjZGVmaW5lIFZIT1NUX1NF VF9PV05FUiBfSU8oVkhPU1RfVklSVElPLCAweDAxKQ0KPiArI2RlZmluZSBWSE9TVF9SRVNFVF9P V05FUiBfSU8oVkhPU1RfVklSVElPLCAweDAyKQ0KPiArI2RlZmluZSBWSE9TVF9TRVRfTUVNX1RB QkxFIF9JT1coVkhPU1RfVklSVElPLCAweDAzLCB2b2lkICopDQo+ICsjZGVmaW5lIFZIT1NUX1NF VF9MT0dfQkFTRSBfSU9XKFZIT1NUX1ZJUlRJTywgMHgwNCwgX191NjQpDQo+ICsjZGVmaW5lIFZI T1NUX1NFVF9MT0dfRkQgX0lPVyhWSE9TVF9WSVJUSU8sIDB4MDcsIGludCkNCj4gKyNkZWZpbmUg VkhPU1RfU0VUX1ZSSU5HX05VTSBfSU9XKFZIT1NUX1ZJUlRJTywgMHgxMCwgc3RydWN0DQo+IHZo b3N0X3ZyaW5nX3N0YXRlKQ0KPiArI2RlZmluZSBWSE9TVF9TRVRfVlJJTkdfQUREUiBfSU9XKFZI T1NUX1ZJUlRJTywgMHgxMSwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX2FkZHIpDQo+ICsjZGVmaW5l IFZIT1NUX1NFVF9WUklOR19CQVNFIF9JT1coVkhPU1RfVklSVElPLCAweDEyLCBzdHJ1Y3QNCj4g dmhvc3RfdnJpbmdfc3RhdGUpDQo+ICsjZGVmaW5lIFZIT1NUX0dFVF9WUklOR19CQVNFIF9JT1dS KFZIT1NUX1ZJUlRJTywgMHgxMiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX3N0YXRlKQ0KPiArI2Rl ZmluZSBWSE9TVF9TRVRfVlJJTkdfS0lDSyBfSU9XKFZIT1NUX1ZJUlRJTywgMHgyMCwgc3RydWN0 DQo+IHZob3N0X3ZyaW5nX2ZpbGUpDQo+ICsjZGVmaW5lIFZIT1NUX1NFVF9WUklOR19DQUxMIF9J T1coVkhPU1RfVklSVElPLCAweDIxLCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdfZmlsZSkNCj4gKyNk ZWZpbmUgVkhPU1RfU0VUX1ZSSU5HX0VSUiBfSU9XKFZIT1NUX1ZJUlRJTywgMHgyMiwgc3RydWN0 DQo+IHZob3N0X3ZyaW5nX2ZpbGUpDQo+ICsjZGVmaW5lIFZIT1NUX05FVF9TRVRfQkFDS0VORCBf SU9XKFZIT1NUX1ZJUlRJTywgMHgzMCwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX2ZpbGUpDQo+ICsj ZGVmaW5lIFZIT1NUX1ZEUEFfR0VUX0RFVklDRV9JRCBfSU9SKFZIT1NUX1ZJUlRJTywgMHg3MCwg X191MzIpDQo+ICsjZGVmaW5lIFZIT1NUX1ZEUEFfR0VUX1NUQVRVUyBfSU9SKFZIT1NUX1ZJUlRJ TywgMHg3MSwgX191OCkNCj4gKyNkZWZpbmUgVkhPU1RfVkRQQV9TRVRfU1RBVFVTIF9JT1coVkhP U1RfVklSVElPLCAweDcyLCBfX3U4KQ0KPiArI2RlZmluZSBWSE9TVF9WRFBBX1NFVF9WUklOR19F TkFCTEUJX0lPVyhWSE9TVF9WSVJUSU8sIDB4NzUsIFwNCj4gKwkJCQkJICAgICBzdHJ1Y3Qgdmhv c3RfdnJpbmdfc3RhdGUpDQo+ICsNCj4gK3N0YXRpYyB1aW50NjRfdCB2aG9zdF9yZXFfdXNlcl90 b192ZHBhW10gPSB7DQo+ICsJW1ZIT1NUX1VTRVJfU0VUX09XTkVSXSA9IFZIT1NUX1NFVF9PV05F UiwNCj4gKwlbVkhPU1RfVVNFUl9SRVNFVF9PV05FUl0gPSBWSE9TVF9SRVNFVF9PV05FUiwNCj4g KwlbVkhPU1RfVVNFUl9TRVRfRkVBVFVSRVNdID0gVkhPU1RfU0VUX0ZFQVRVUkVTLA0KPiArCVtW SE9TVF9VU0VSX0dFVF9GRUFUVVJFU10gPSBWSE9TVF9HRVRfRkVBVFVSRVMsDQo+ICsJW1ZIT1NU X1VTRVJfU0VUX1ZSSU5HX0NBTExdID0gVkhPU1RfU0VUX1ZSSU5HX0NBTEwsDQo+ICsJW1ZIT1NU X1VTRVJfU0VUX1ZSSU5HX05VTV0gPSBWSE9TVF9TRVRfVlJJTkdfTlVNLA0KPiArCVtWSE9TVF9V U0VSX1NFVF9WUklOR19CQVNFXSA9IFZIT1NUX1NFVF9WUklOR19CQVNFLA0KPiArCVtWSE9TVF9V U0VSX0dFVF9WUklOR19CQVNFXSA9IFZIT1NUX0dFVF9WUklOR19CQVNFLA0KPiArCVtWSE9TVF9V U0VSX1NFVF9WUklOR19BRERSXSA9IFZIT1NUX1NFVF9WUklOR19BRERSLA0KPiArCVtWSE9TVF9V U0VSX1NFVF9WUklOR19LSUNLXSA9IFZIT1NUX1NFVF9WUklOR19LSUNLLA0KPiArCVtWSE9TVF9V U0VSX1NFVF9NRU1fVEFCTEVdID0gVkhPU1RfU0VUX01FTV9UQUJMRSwNCj4gKwlbVkhPU1RfVVNF Ul9TRVRfU1RBVFVTXSA9IFZIT1NUX1ZEUEFfU0VUX1NUQVRVUywNCj4gKwlbVkhPU1RfVVNFUl9H RVRfU1RBVFVTXSA9IFZIT1NUX1ZEUEFfR0VUX1NUQVRVUywNCj4gKwlbVkhPU1RfVVNFUl9TRVRf VlJJTkdfRU5BQkxFXSA9IFZIT1NUX1ZEUEFfU0VUX1ZSSU5HX0VOQUJMRSwNCj4gK307DQo+ICsN Cj4gKy8qIG5vIGFsaWdubWVudCByZXF1aXJlbWVudCAqLw0KPiArc3RydWN0IHZob3N0X2lvdGxi X21zZyB7DQo+ICsJdWludDY0X3QgaW92YTsNCj4gKwl1aW50NjRfdCBzaXplOw0KPiArCXVpbnQ2 NF90IHVhZGRyOw0KPiArI2RlZmluZSBWSE9TVF9BQ0NFU1NfUk8gICAgICAweDENCj4gKyNkZWZp bmUgVkhPU1RfQUNDRVNTX1dPICAgICAgMHgyDQo+ICsjZGVmaW5lIFZIT1NUX0FDQ0VTU19SVyAg ICAgIDB4Mw0KPiArCXVpbnQ4X3QgcGVybTsNCj4gKyNkZWZpbmUgVkhPU1RfSU9UTEJfTUlTUyAg ICAgICAgICAgMQ0KPiArI2RlZmluZSBWSE9TVF9JT1RMQl9VUERBVEUgICAgICAgICAyDQo+ICsj ZGVmaW5lIFZIT1NUX0lPVExCX0lOVkFMSURBVEUgICAgIDMNCj4gKyNkZWZpbmUgVkhPU1RfSU9U TEJfQUNDRVNTX0ZBSUwgICAgNA0KPiArCXVpbnQ4X3QgdHlwZTsNCj4gK307DQo+ICsNCj4gKyNk ZWZpbmUgVkhPU1RfSU9UTEJfTVNHX1YyIDB4Mg0KPiArDQo+ICtzdHJ1Y3Qgdmhvc3RfbXNnIHsN Cj4gKwl1aW50MzJfdCB0eXBlOw0KPiArCXVpbnQzMl90IHJlc2VydmVkOw0KPiArCXVuaW9uIHsN Cj4gKwkJc3RydWN0IHZob3N0X2lvdGxiX21zZyBpb3RsYjsNCj4gKwkJdWludDhfdCBwYWRkaW5n WzY0XTsNCj4gKwl9Ow0KPiArfTsNCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9k bWFfbWFwKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdm9pZCAqYWRkciwNCj4gKwkJCQkg IHVpbnQ2NF90IGlvdmEsIHNpemVfdCBsZW4pDQo+ICt7DQo+ICsJc3RydWN0IHZob3N0X21zZyBt c2cgPSB7fTsNCj4gKw0KPiArCW1zZy50eXBlID0gVkhPU1RfSU9UTEJfTVNHX1YyOw0KPiArCW1z Zy5pb3RsYi50eXBlID0gVkhPU1RfSU9UTEJfVVBEQVRFOw0KPiArCW1zZy5pb3RsYi5pb3ZhID0g aW92YTsNCj4gKwltc2cuaW90bGIudWFkZHIgPSAodWludDY0X3QpKHVpbnRwdHJfdClhZGRyOw0K PiArCW1zZy5pb3RsYi5zaXplID0gbGVuOw0KPiArCW1zZy5pb3RsYi5wZXJtID0gVkhPU1RfQUND RVNTX1JXOw0KPiArDQo+ICsJaWYgKHdyaXRlKGRldi0+dmhvc3RmZCwgJm1zZywgc2l6ZW9mKG1z ZykpICE9IHNpemVvZihtc2cpKSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBz ZW5kIElPVExCIHVwZGF0ZSAoJXMpIiwNCj4gKwkJCQlzdHJlcnJvcihlcnJubykpOw0KPiArCQly ZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQNCj4gK3Zob3N0X3ZkcGFfZG1hX3VubWFwKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRl diwgX19ydGVfdW51c2VkIHZvaWQgKmFkZHIsDQo+ICsJCQkJICB1aW50NjRfdCBpb3ZhLCBzaXpl X3QgbGVuKQ0KPiArew0KPiArCXN0cnVjdCB2aG9zdF9tc2cgbXNnID0ge307DQo+ICsNCj4gKwlt c2cudHlwZSA9IFZIT1NUX0lPVExCX01TR19WMjsNCj4gKwltc2cuaW90bGIudHlwZSA9IFZIT1NU X0lPVExCX0lOVkFMSURBVEU7DQo+ICsJbXNnLmlvdGxiLmlvdmEgPSBpb3ZhOw0KPiArCW1zZy5p b3RsYi5zaXplID0gbGVuOw0KPiArDQo+ICsJaWYgKHdyaXRlKGRldi0+dmhvc3RmZCwgJm1zZywg c2l6ZW9mKG1zZykpICE9IHNpemVvZihtc2cpKSB7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkZh aWxlZCB0byBzZW5kIElPVExCIGludmFsaWRhdGUgKCVzKSIsDQo+ICsJCQkJc3RyZXJyb3IoZXJy bm8pKTsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0K PiArDQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0X3ZkcGFfbWFwX2NvbnRpZyhjb25zdCBz dHJ1Y3QgcnRlX21lbXNlZ19saXN0ICptc2wsDQo+ICsJCWNvbnN0IHN0cnVjdCBydGVfbWVtc2Vn ICptcywgc2l6ZV90IGxlbiwgdm9pZCAqYXJnKQ0KPiArew0KPiArCXN0cnVjdCB2aXJ0aW9fdXNl cl9kZXYgKmRldiA9IGFyZzsNCj4gKw0KPiArCWlmIChtc2wtPmV4dGVybmFsKQ0KPiArCQlyZXR1 cm4gMDsNCj4gKw0KPiArCXJldHVybiB2aG9zdF92ZHBhX2RtYV9tYXAoZGV2LCBtcy0+YWRkciwg bXMtPmlvdmEsIGxlbik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0X3ZkcGFf bWFwKGNvbnN0IHN0cnVjdCBydGVfbWVtc2VnX2xpc3QgKm1zbCwgY29uc3Qgc3RydWN0IHJ0ZV9t ZW1zZWcNCj4gKm1zLA0KPiArCQl2b2lkICphcmcpDQo+ICt7DQo+ICsJc3RydWN0IHZpcnRpb191 c2VyX2RldiAqZGV2ID0gYXJnOw0KPiArDQo+ICsJLyogc2tpcCBleHRlcm5hbCBtZW1vcnkgdGhh dCBpc24ndCBhIGhlYXAgKi8NCj4gKwlpZiAobXNsLT5leHRlcm5hbCAmJiAhbXNsLT5oZWFwKQ0K PiArCQlyZXR1cm4gMDsNCj4gKw0KPiArCS8qIHNraXAgYW55IHNlZ21lbnRzIHdpdGggaW52YWxp ZCBJT1ZBIGFkZHJlc3NlcyAqLw0KPiArCWlmIChtcy0+aW92YSA9PSBSVEVfQkFEX0lPVkEpDQo+ ICsJCXJldHVybiAwOw0KPiArDQo+ICsJLyogaWYgSU9WQSBtb2RlIGlzIFZBLCB3ZSd2ZSBhbHJl YWR5IG1hcHBlZCB0aGUgaW50ZXJuYWwgc2VnbWVudHMgKi8NCj4gKwlpZiAoIW1zbC0+ZXh0ZXJu YWwgJiYgcnRlX2VhbF9pb3ZhX21vZGUoKSA9PSBSVEVfSU9WQV9WQSkNCj4gKwkJcmV0dXJuIDA7 DQo+ICsNCj4gKwlyZXR1cm4gdmhvc3RfdmRwYV9kbWFfbWFwKGRldiwgbXMtPmFkZHIsIG1zLT5p b3ZhLCBtcy0+bGVuKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9k bWFfbWFwX2FsbChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpDQo+ICt7DQo+ICsJdmhvc3Rf dmRwYV9kbWFfdW5tYXAoZGV2LCBOVUxMLCAwLCBTSVpFX01BWCk7DQo+ICsNCj4gKwlpZiAocnRl X2VhbF9pb3ZhX21vZGUoKSA9PSBSVEVfSU9WQV9WQSkgew0KPiArCQkvKiB3aXRoIElPVkEgYXMg VkEgbW9kZSwgd2UgY2FuIGdldCBhd2F5IHdpdGggbWFwcGluZw0KPiBjb250aWd1b3VzDQo+ICsJ CSAqIGNodW5rcyByYXRoZXIgdGhhbiBnb2luZyBwYWdlLWJ5LXBhZ2UuDQo+ICsJCSAqLw0KPiAr CQlpbnQgcmV0ID0gcnRlX21lbXNlZ19jb250aWdfd2Fsa190aHJlYWRfdW5zYWZlKA0KPiArCQkJ CXZob3N0X3ZkcGFfbWFwX2NvbnRpZywgZGV2KTsNCj4gKwkJaWYgKHJldCkNCj4gKwkJCXJldHVy biByZXQ7DQo+ICsJCS8qIHdlIGhhdmUgdG8gY29udGludWUgdGhlIHdhbGsgYmVjYXVzZSB3ZSd2 ZSBza2lwcGVkIHRoZQ0KPiArCQkgKiBleHRlcm5hbCBzZWdtZW50cyBkdXJpbmcgdGhlIGNvbmZp ZyB3YWxrLg0KPiArCQkgKi8NCj4gKwl9DQo+ICsJcmV0dXJuIHJ0ZV9tZW1zZWdfd2Fsa190aHJl YWRfdW5zYWZlKHZob3N0X3ZkcGFfbWFwLCBkZXYpOw0KPiArfQ0KPiArDQo+ICsvKiB3aXRoIGJl bG93IGZlYXR1cmVzLCB2aG9zdCB2ZHBhIGRvZXMgbm90IG5lZWQgdG8gZG8gdGhlIGNoZWNrc3Vt IGFuZA0KPiBUU08sDQo+ICsgKiB0aGVzZSBpbmZvIHdpbGwgYmUgcGFzc2VkIHRvIHZpcnRpb191 c2VyIHRocm91Z2ggdmlydGlvIG5ldCBoZWFkZXIuDQo+ICsgKi8NCj4gKyNkZWZpbmUgVkhPU1Rf VkRQQV9HVUVTVF9PRkZMT0FEU19NQVNLCVwNCj4gKwkoKDFVTEwgPDwgVklSVElPX05FVF9GX0dV RVNUX0NTVU0pIHwJXA0KPiArCSAoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfR1VFU1RfVFNPNCkgfAlc DQo+ICsJICgxVUxMIDw8IFZJUlRJT19ORVRfRl9HVUVTVF9UU082KSB8CVwNCj4gKwkgKDFVTEwg PDwgVklSVElPX05FVF9GX0dVRVNUX0VDTikgIHwJXA0KPiArCSAoMVVMTCA8PCBWSVJUSU9fTkVU X0ZfR1VFU1RfVUZPKSkNCj4gKw0KPiArI2RlZmluZSBWSE9TVF9WRFBBX0hPU1RfT0ZGTE9BRFNf TUFTSwkJXA0KPiArCSgoMVVMTCA8PCBWSVJUSU9fTkVUX0ZfSE9TVF9UU080KSB8CVwNCj4gKwkg KDFVTEwgPDwgVklSVElPX05FVF9GX0hPU1RfVFNPNikgfAlcDQo+ICsJICgxVUxMIDw8IFZJUlRJ T19ORVRfRl9DU1VNKSkNCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9pb2N0bChz dHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ICsJCSAgIGVudW0gdmhvc3RfdXNlcl9yZXF1 ZXN0IHJlcSwNCj4gKwkJICAgdm9pZCAqYXJnKQ0KPiArew0KPiArCWludCByZXQgPSAtMTsNCj4g Kwl1aW50NjRfdCByZXFfdmRwYTsNCj4gKw0KPiArCVBNRF9EUlZfTE9HKElORk8sICIlcyIsIHZo b3N0X21zZ19zdHJpbmdzW3JlcV0pOw0KPiArDQo+ICsJcmVxX3ZkcGEgPSB2aG9zdF9yZXFfdXNl cl90b192ZHBhW3JlcV07DQo+ICsNCj4gKwlpZiAocmVxX3ZkcGEgPT0gVkhPU1RfU0VUX01FTV9U QUJMRSkNCj4gKwkJcmV0dXJuIHZob3N0X3ZkcGFfZG1hX21hcF9hbGwoZGV2KTsNCj4gKw0KPiAr CWlmIChyZXFfdmRwYSA9PSBWSE9TVF9TRVRfRkVBVFVSRVMpIHsNCj4gKwkJLyogV09SS0FST1VO RCAqLw0KPiArCQkqKHVpbnQ2NF90ICopYXJnIHw9IDFVTEwgPDwgVklSVElPX0ZfSU9NTVVfUExB VEZPUk07DQo+ICsNCj4gKwkJLyogTXVsdGlxdWV1ZSBub3Qgc3VwcG9ydGVkIGZvciBub3cgKi8N Cj4gKwkJKih1aW50NjRfdCAqKWFyZyAmPSB+KDFVTEwgPDwgVklSVElPX05FVF9GX01RKTsNCj4g Kwl9DQo+ICsNCj4gKwlzd2l0Y2ggKHJlcV92ZHBhKSB7DQo+ICsJY2FzZSBWSE9TVF9TRVRfVlJJ TkdfTlVNOg0KPiArCWNhc2UgVkhPU1RfU0VUX1ZSSU5HX0FERFI6DQo+ICsJY2FzZSBWSE9TVF9T RVRfVlJJTkdfQkFTRToNCj4gKwljYXNlIFZIT1NUX0dFVF9WUklOR19CQVNFOg0KPiArCWNhc2Ug VkhPU1RfU0VUX1ZSSU5HX0tJQ0s6DQo+ICsJY2FzZSBWSE9TVF9TRVRfVlJJTkdfQ0FMTDoNCj4g KwkJUE1EX0RSVl9MT0coREVCVUcsICJ2aG9zdGZkPSVkLCBpbmRleD0ldSIsDQo+ICsJCQkgICAg ZGV2LT52aG9zdGZkLCAqKHVuc2lnbmVkIGludCAqKWFyZyk7DQo+ICsJCWJyZWFrOw0KPiArCWRl ZmF1bHQ6DQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gKw0KPiArCXJldCA9IGlvY3RsKGRldi0+dmhv c3RmZCwgcmVxX3ZkcGEsIGFyZyk7DQo+ICsJaWYgKHJldCA8IDApDQo+ICsJCVBNRF9EUlZfTE9H KEVSUiwgIiVzIGZhaWxlZDogJXMiLA0KPiArCQkJICAgIHZob3N0X21zZ19zdHJpbmdzW3JlcV0s IHN0cmVycm9yKGVycm5vKSk7DQo+ICsNCj4gKwlyZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICsv KioNCj4gKyAqIFNldCB1cCBlbnZpcm9ubWVudCB0byB0YWxrIHdpdGggYSB2aG9zdCB2ZHBhIGJh Y2tlbmQuDQo+ICsgKg0KPiArICogQHJldHVybg0KPiArICogICAtICgtMSkgaWYgZmFpbCB0byBz ZXQgdXA7DQo+ICsgKiAgIC0gKD49MCkgaWYgc3VjY2Vzc2Z1bC4NCj4gKyAqLw0KPiArc3RhdGlj IGludA0KPiArdmhvc3RfdmRwYV9zZXR1cChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpDQo+ ICt7DQo+ICsJdWludDMyX3QgZGlkID0gKHVpbnQzMl90KS0xOw0KPiArDQo+ICsJZGV2LT52aG9z dGZkID0gb3BlbihkZXYtPnBhdGgsIE9fUkRXUik7DQo+ICsJaWYgKGRldi0+dmhvc3RmZCA8IDAp IHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAiRmFpbGVkIHRvIG9wZW4gJXM6ICVzXG4iLA0KPiAr CQkJCWRldi0+cGF0aCwgc3RyZXJyb3IoZXJybm8pKTsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0N Cj4gKw0KPiArCWlmIChpb2N0bChkZXYtPnZob3N0ZmQsIFZIT1NUX1ZEUEFfR0VUX0RFVklDRV9J RCwgJmRpZCkgPCAwIHx8DQo+ICsJCQlkaWQgIT0gVklSVElPX0lEX05FVFdPUkspIHsNCj4gKwkJ UE1EX0RSVl9MT0coRVJSLCAiSW52YWxpZCB2ZHBhIGRldmljZSBJRDogJXVcbiIsIGRpZCk7DQo+ ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAr c3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9lbmFibGVfcXVldWVfcGFpcihzdHJ1Y3QgdmlydGlv X3VzZXJfZGV2ICpkZXYsDQo+ICsJCQkgICAgICAgdWludDE2X3QgcGFpcl9pZHgsDQo+ICsJCQkg ICAgICAgaW50IGVuYWJsZSkNCj4gK3sNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWlmIChkZXYtPnFw X2VuYWJsZWRbcGFpcl9pZHhdID09IGVuYWJsZSkNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlm b3IgKGkgPSAwOyBpIDwgMjsgKytpKSB7DQo+ICsJCXN0cnVjdCB2aG9zdF92cmluZ19zdGF0ZSBz dGF0ZSA9IHsNCj4gKwkJCS5pbmRleCA9IHBhaXJfaWR4ICogMiArIGksDQo+ICsJCQkubnVtICAg PSBlbmFibGUsDQo+ICsJCX07DQo+ICsNCj4gKwkJaWYgKHZob3N0X3ZkcGFfaW9jdGwoZGV2LCBW SE9TVF9VU0VSX1NFVF9WUklOR19FTkFCTEUsICZzdGF0ZSkpDQo+ICsJCQlyZXR1cm4gLTE7DQo+ ICsJfQ0KPiArDQo+ICsJZGV2LT5xcF9lbmFibGVkW3BhaXJfaWR4XSA9IGVuYWJsZTsNCj4gKw0K PiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9v cHMgdmlydGlvX29wc192ZHBhID0gew0KPiArCS5zZXR1cCA9IHZob3N0X3ZkcGFfc2V0dXAsDQo+ ICsJLnNlbmRfcmVxdWVzdCA9IHZob3N0X3ZkcGFfaW9jdGwsDQo+ICsJLmVuYWJsZV9xcCA9IHZo b3N0X3ZkcGFfZW5hYmxlX3F1ZXVlX3BhaXIsDQo+ICsJLmRtYV9tYXAgPSB2aG9zdF92ZHBhX2Rt YV9tYXAsDQo+ICsJLmRtYV91bm1hcCA9IHZob3N0X3ZkcGFfZG1hX3VubWFwLA0KPiArfTsNCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9k ZXYuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYu Yw0KPiBpbmRleCA2MzQyNDY1NmUzLi4zNjgxNzU4ZWYxIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMNCj4gKysrIGIvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+IEBAIC0zODksNiAr Mzg5LDEyIEBAIHZpcnRpb191c2VyX2Rldl9zZXR1cChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpk ZXYpDQo+ICAJCQkJZGV2LT52aG9zdGZkc1txXSA9IC0xOw0KPiAgCQkJCWRldi0+dGFwZmRzW3Fd ID0gLTE7DQo+ICAJCQl9DQo+ICsJCX0gZWxzZSBpZiAoZGV2LT5iYWNrZW5kX3R5cGUgPT0NCj4g KwkJCQlWSVJUSU9fVVNFUl9CQUNLRU5EX1ZIT1NUX1ZEUEEpIHsNCj4gKwkJCWRldi0+b3BzID0g JnZpcnRpb19vcHNfdmRwYTsNCj4gKwkJfSBlbHNlIHsNCj4gKwkJCVBNRF9EUlZfTE9HKEVSUiwg IlVua25vd24gYmFja2VuZCB0eXBlIik7DQo+ICsJCQlyZXR1cm4gLTE7DQo+ICAJCX0NCj4gIAl9 DQo+IA0KPiAtLQ0KPiAyLjI2LjINCg0KUmV2aWV3ZWQtYnk6IENoZW5ibyBYaWEgPGNoZW5iby54 aWFAaW50ZWwuY29tPg0K