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 1687CA0A0A; Fri, 22 Jan 2021 09:20:46 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EB816140D3A; Fri, 22 Jan 2021 09:20:45 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id A6EB2140D29 for ; Fri, 22 Jan 2021 09:20:43 +0100 (CET) IronPort-SDR: QWg5FYvyKZMvFumRnA/z3O3B8hrFX1C3KbtkGbXtfXEQG1IdJj6tao8MEgU2y8eY05Ln9LPfS9 ulAgfjYhm+pQ== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="243490332" X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="243490332" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jan 2021 00:20:42 -0800 IronPort-SDR: HfCUJxZEvo+zffvVdz8h13j5qmOlEo04QIfyiErQhmJC6BPYdxyYFn2v5Vp9Iviznr7ywJk/oi d2bRbwIQ8FbA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="407608984" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by FMSMGA003.fm.intel.com with ESMTP; 22 Jan 2021 00:20:41 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Fri, 22 Jan 2021 00:20:41 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.1713.5; Fri, 22 Jan 2021 00:20:41 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.1713.5 via Frontend Transport; Fri, 22 Jan 2021 00:20:41 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.44) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 22 Jan 2021 00:20:40 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EHZzdY64dcoCfpwUVO7OkopYhRaCoU4Hw0L1YdBMaMj6KO24zbGdY/z97Sdn2+GAvxBji6wxBmtrbJkpR3XBlUfEaV+N1p4H9Oty2BeRQ/tvWFNW3Wuf9iXbHzb8xZNuyttZ74a41/RaW1gkn7TXQj3myl2jRfjajrLga96P08Cdza7492NOsqxVfOOeeuE6ZO/nq9tzMgTVJbaWSNkVZCN3WS5X1+OJEtvOYSlnpTY+v2UJ25jDVF+K7oJzlRRT7ksyqVJ2QJrUsFRU/7JZfAA5f11XJlqoqB6YQwdyRheY0XZc74AM9Xjj7v8l/b87YFvKK4lD7ZCxMiRjDmTK7A== 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=FkrhalpwWVhRHmo9g3XcvEy5lndnbw6m9hbCiOPTveo=; b=Rie/2mUhcVV2hZjKJkRrN0sd4PgxrmOTxg7fe/iV3yDN1V414EK8tvHS4mxhd0v5eRWLIQ/g48LIsGz1UTt7dJQkfbJXlQQWLW6LZdlUWAIMC3O8V+z47+LQrY8MFiJbA6lDecxdMV1P9dj77Dkl+iva2GHe+6RT1pAnuqydn4/G3FFaUFfFLsmx1F5q2TNIEoOo/Lvrl8RdRAwkGfPizjGfQ87dckgrSm43+LAf4wEX3mLqlunWNxmPfauphrrwtambHR+Y7yyLFUNqHpJW0ze8HyXRCf/6ALJPee3bQIedwSgFszHmpYmmNCZPTHz8OdwDx3YrTQpMzpak5xTqTw== 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=FkrhalpwWVhRHmo9g3XcvEy5lndnbw6m9hbCiOPTveo=; b=vzgV4bGeZf6HCT80d1qlalIqZz0GfzoOOdi4/t2CeyopU1PwVt6L7bPkjGlH4EVUTjHs1knsAOlDHUBUPbGS0s7vCAI034O3BDbtmvgMBF0aZp/3p/x+Vj9C+g6fqOLoS1F0rgRk192tmJbDgAazB+eBuI7MPEddR/Bba4qn0yc= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3903.namprd11.prod.outlook.com (2603:10b6:208:136::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.11; Fri, 22 Jan 2021 08:20:39 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed%7]) with mapi id 15.20.3763.014; Fri, 22 Jan 2021 08:20:39 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH v2 38/44] net/virtio: move protocol features to Vhost-user Thread-Index: AQHW7qoLZnUVaTLarE2GA8R325/8qqozUYqg Date: Fri, 22 Jan 2021 08:20:39 +0000 Message-ID: References: <20210119212507.1043636-1-maxime.coquelin@redhat.com> <20210119212507.1043636-39-maxime.coquelin@redhat.com> In-Reply-To: <20210119212507.1043636-39-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.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6dde1462-7e63-4250-fcd2-08d8beae9a3e x-ms-traffictypediagnostic: MN2PR11MB3903: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:179; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mF0cAslhscZQAMxDTiZ6tnvhcVU5ghoUBkC3knoxshSW3oKWcUFdf+V+cRbDXLtvajZsUQBgPBhfEIhw+iE2C/i6uzxQ2Qu3dATY3sSXqeimoriaWks8HFH5gSp5N7ynmwSH1bpE0Ta1VpZS4dxPbaSeTmg+h9YgaQmIvM7m5mXD+7MYGb9L81yTETXKoS0VHBUAbbJlX5ninp5QMlnYKknpiEEjZDgDZF0nxlbgezdRug7gHxflkASZxt2fO8ZMdjiIj1gs0sYGhs6S7/USdGGwBGLPy2BcrG6DJYflJOb69VE1FnHF/UG0JhlAFB6LKq8F8nZ1Jii/M1ctIVNIATnpWxFG+lh6BLazII0JePmVldw94mrtUxu9WqAZq9gH2zXwUBLzMZEs8pqwdpBNGA== 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)(39860400002)(396003)(136003)(376002)(346002)(366004)(52536014)(55016002)(9686003)(316002)(26005)(5660300002)(66946007)(86362001)(110136005)(66476007)(8676002)(186003)(66446008)(64756008)(83380400001)(66556008)(7696005)(71200400001)(76116006)(30864003)(478600001)(6506007)(8936002)(2906002)(33656002)(53546011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?RTVJYjYyaTJ5aVE3dWZmcGdMc0hpOE5DSU8wYUtsZGlIanZmakdFQzlpejVo?= =?utf-8?B?L2dodE4zck9jdEprWk9EZU4xYVRKeGtKd1RUWjV6eUFBNVdtS3BUQUd6NjBa?= =?utf-8?B?S0lhbklqWDRBdzVrem5tU0tMNzRPRzdNMXhhcTVqNS9vZi9CTy9kdzdLaFk0?= =?utf-8?B?cDRZR2hyVitYaHlBc3RHMHd4MExDSGJKUTJGVndCVk5iSEJ0cmFzZ1Z5ejlQ?= =?utf-8?B?aVViaDY2TVlPaHhpUVZTYXRFVWVncXBhZFQ3U1lnRlgwR1lMdm5nR1dwSkp3?= =?utf-8?B?TlpyRm1iYWduRUhUbmluU2dkTXB5RmlIS3lrS0NNbHZFNDljTlNDcG9DQk1Q?= =?utf-8?B?ZzIvVzd1eHIxcFZVVXNWeSs4RkozcWVVSXl0bmlBa2NtOUw0UmxZR0xnWFlY?= =?utf-8?B?c2E5c3B4Smp2enNPS2Q2NzJHZ3o5N1NWU2J3NmR2ZzUyd3B2Vlh2QjdtZitv?= =?utf-8?B?TWhxR2NldE90cFc1eVp0UFdBRHlaWEczNzlXNmNrMlpqSGlFNnJ1bkRyTnIy?= =?utf-8?B?MHNXZUdYMXVwekhXYnJPM0pDK1pWUkZHcmJyem5kOXZFaTdPZytJYmtiZlJt?= =?utf-8?B?OVFsaGxHSGt6cnlDYi9oRTZvbWM2Z21ncWR5Wm10b00yRXI1L1EvYWx4bnM3?= =?utf-8?B?MFNZL3Byb1FoRjFmU0hlcmx5M2FRNWlwNUpzSzE3Tnh5UjRLalBGei9TZSt2?= =?utf-8?B?TWQyd1lCOEN1UEd5OTltMDcxTWlIS3pRZlRuSkdBcGZrczA0YVFIbE5JNWR3?= =?utf-8?B?K0M0WmFCZHFkelRISVEzbXVvQ2l6Vkt3WGVsbXlGZXB1b1JFM1llOENBbElW?= =?utf-8?B?V0plUTh6RUh5RkJKM2JMM1lxNjNWNERKMGhwNGgrUHZ5YkEvRFdZR2x1dkxp?= =?utf-8?B?d0pKL3VZdUxyTk9iUzZHcXcxZ1dlTUJvWjJqV1BGcjdnMDJKWnRJUVBRVTY5?= =?utf-8?B?RFlqcHVWVDVIQmYydFlMdjNEOWxmZVo4U0Q3dC9lUXI3MmJBalphbTRoamhC?= =?utf-8?B?Qzl5ZkVyMGVPbVp1UkhXMDF6MHJzWG9MR3FrRW15N2IwZmRkZm51U2VNdFJN?= =?utf-8?B?dmpJaUlDLzhOWFlab1dWTTBnQ0hsY3VjaCtSZ2dzYkp5bXlOck1EdFR6K2ll?= =?utf-8?B?b2FlYmRIRHhCRElOTVppUzh6UzRiTkNlM2ZaUEVYZC9MeC9IMys3WkFDdEYx?= =?utf-8?B?aXFPKzA3azNadmFxNmU5dzhud1czVi9UYXljeXBWR0FQTzBpOS9GK0FINUJJ?= =?utf-8?B?U2k2eVNaOFVSSmlmK0trMmFWTFZSSnpIQTlBQ0xZbm9RL0NoTlFUZlFDdnA5?= =?utf-8?Q?tGn7OD51uFMUJvspUnbiFhC9IwNBdPVs4q?= x-ms-exchange-transport-forked: True 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: 6dde1462-7e63-4250-fcd2-08d8beae9a3e X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2021 08:20:39.2762 (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: k07YNOO3VLslzs4pcd4Th+QDOoLjscKE4WJ+Pt+aZ+mI0r2T2RpqkmWyg3gVsNG+cGcrF8id3jqAGx7+udHtoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3903 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 38/44] net/virtio: move protocol features to Vhost-user 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 Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMjAs IDIwMjEgNToyNSBBTQ0KPiBUbzogZGV2QGRwZGsub3JnOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhp YUBpbnRlbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOw0KPiBhbW9yZW5vekByZWRoYXQu Y29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tDQo+IENjOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjIgMzgvNDRdIG5l dC92aXJ0aW86IG1vdmUgcHJvdG9jb2wgZmVhdHVyZXMgdG8gVmhvc3QtdXNlcg0KPiANCj4gU2lu Y2Ugb25seSBwcm90b2NvbCBmZWF0dXJlcyBhcmUgc3BlY2lmaWMgdG8gVmhvc3QtdXNlcg0KPiBi YWNrZW5kLCB0aGlzIHBhdGNoIG1vdmVzIGFsbCByZWxhdGVkIGNvZGUgdG8gVmhvc3QtdXNlcg0K PiBmaWxlLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29x dWVsaW5AcmVkaGF0LmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3Vz ZXIvdmhvc3QuaCAgICAgICAgfCAyMCArLS0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRp b191c2VyL3Zob3N0X2tlcm5lbC5jIHwgIDkgKysNCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0 aW9fdXNlci92aG9zdF91c2VyLmMgICB8IDgzICsrKysrKysrKysrKysrKy0tLS0NCj4gIGRyaXZl cnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMgICB8IDM0ICsrKysrKystDQo+ ICAuLi4vbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYyAgfCA0NyArKy0t LS0tLS0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyX2V0aGRldi5jICAgICAg IHwgMTcgLS0tLQ0KPiAgNiBmaWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgOTcgZGVs ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191 c2VyL3Zob3N0LmgNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0K PiBpbmRleCAyYWE2YjJjYjcwLi5kZmEyNzM1YTIwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3VzZXIvdmhvc3QuaA0KPiBAQCAtNDYsMjMgKzQ2LDYgQEAgc3RydWN0IHZob3N0X3Zy aW5nX2FkZHIgew0KPiAgCXVpbnQ2NF90IGxvZ19ndWVzdF9hZGRyOw0KPiAgfTsNCj4gDQo+IC0j aWZuZGVmIFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUw0KPiAtI2RlZmluZSBWSE9TVF9V U0VSX0ZfUFJPVE9DT0xfRkVBVFVSRVMgMzANCj4gLSNlbmRpZg0KPiAtDQo+IC0vKiogUHJvdG9j b2wgZmVhdHVyZXMuICovDQo+IC0jaWZuZGVmIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9NUQ0KPiAt I2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfTVEgMA0KPiAtI2VuZGlmDQo+IC0NCj4gLSNp Zm5kZWYgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1JFUExZX0FDSw0KPiAtI2RlZmluZSBWSE9TVF9V U0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLIDMNCj4gLSNlbmRpZg0KPiAtDQo+IC0jaWZuZGVmIFZI T1NUX1VTRVJfUFJPVE9DT0xfRl9TVEFUVVMNCj4gLSNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NP TF9GX1NUQVRVUyAxNg0KPiAtI2VuZGlmDQo+IC0NCj4gICNpZm5kZWYgVkhPU1RfQkFDS0VORF9G X0lPVExCX01TR19WMg0KPiAgI2RlZmluZSBWSE9TVF9CQUNLRU5EX0ZfSU9UTEJfTVNHX1YyIDEN Cj4gICNlbmRpZg0KPiBAQCAtODIsMTEgKzY1LDEwIEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXY7 DQo+IA0KPiAgc3RydWN0IHZpcnRpb191c2VyX2JhY2tlbmRfb3BzIHsNCj4gIAlpbnQgKCpzZXR1 cCkoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KTsNCj4gKwlpbnQgKCpnZXRfYmFja2VuZF9m ZWF0dXJlcykodWludDY0X3QgKmZlYXR1cmVzKTsNCj4gIAlpbnQgKCpzZXRfb3duZXIpKHN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKmRldik7DQo+ICAJaW50ICgqZ2V0X2ZlYXR1cmVzKShzdHJ1Y3Qg dmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90ICpmZWF0dXJlcyk7DQo+ICAJaW50ICgqc2V0 X2ZlYXR1cmVzKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90IGZlYXR1cmVz KTsNCj4gLQlpbnQgKCpnZXRfcHJvdG9jb2xfZmVhdHVyZXMpKHN0cnVjdCB2aXJ0aW9fdXNlcl9k ZXYgKmRldiwgdWludDY0X3QNCj4gKmZlYXR1cmVzKTsNCj4gLQlpbnQgKCpzZXRfcHJvdG9jb2xf ZmVhdHVyZXMpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3QNCj4gZmVhdHVy ZXMpOw0KPiAgCWludCAoKnNldF9tZW1vcnlfdGFibGUpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldik7DQo+ICAJaW50ICgqc2V0X3ZyaW5nX251bSkoc3RydWN0IHZpcnRpb191c2VyX2RldiAq ZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdfc3RhdGUgKnN0YXRlKTsNCj4gIAlpbnQgKCpzZXRf dnJpbmdfYmFzZSkoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3Rf dnJpbmdfc3RhdGUgKnN0YXRlKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92 aXJ0aW9fdXNlci92aG9zdF9rZXJuZWwuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlci92aG9zdF9rZXJuZWwuYw0KPiBpbmRleCA2OGYwYzBiODNkLi41NDc3ZWI3MDE1IDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVsLmMN Cj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+ IEBAIC00NDUsOCArNDQ1LDE3IEBAIHZob3N0X2tlcm5lbF9lbmFibGVfcXVldWVfcGFpcihzdHJ1 Y3QgdmlydGlvX3VzZXJfZGV2DQo+ICpkZXYsDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0KPiAr c3RhdGljIGludA0KPiArdmhvc3Rfa2VybmVsX2dldF9iYWNrZW5kX2ZlYXR1cmVzKHVpbnQ2NF90 ICpmZWF0dXJlcykNCj4gK3sNCj4gKwkqZmVhdHVyZXMgPSAwOw0KPiArDQo+ICsJcmV0dXJuIDA7 DQo+ICt9DQo+ICsNCj4gIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29wcyB2aXJ0aW9fb3Bz X2tlcm5lbCA9IHsNCj4gIAkuc2V0dXAgPSB2aG9zdF9rZXJuZWxfc2V0dXAsDQo+ICsJLmdldF9i YWNrZW5kX2ZlYXR1cmVzID0gdmhvc3Rfa2VybmVsX2dldF9iYWNrZW5kX2ZlYXR1cmVzLA0KPiAg CS5zZXRfb3duZXIgPSB2aG9zdF9rZXJuZWxfc2V0X293bmVyLA0KPiAgCS5nZXRfZmVhdHVyZXMg PSB2aG9zdF9rZXJuZWxfZ2V0X2ZlYXR1cmVzLA0KPiAgCS5zZXRfZmVhdHVyZXMgPSB2aG9zdF9r ZXJuZWxfc2V0X2ZlYXR1cmVzLA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNl ci92aG9zdF91c2VyLmMNCj4gaW5kZXggYTQ4ZmFkZDhjOS4uOTg2ZDhhYzFhYyAxMDA2NDQNCj4g LS0tIGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3VzZXIuYw0KPiArKysg Yi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+IEBAIC0xNyw2 ICsxNywyOSBAQA0KPiAgI2luY2x1ZGUgInZob3N0LmgiDQo+ICAjaW5jbHVkZSAidmlydGlvX3Vz ZXJfZGV2LmgiDQo+IA0KPiArDQo+ICsjaWZuZGVmIFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFU VVJFUw0KPiArI2RlZmluZSBWSE9TVF9VU0VSX0ZfUFJPVE9DT0xfRkVBVFVSRVMgMzANCj4gKyNl bmRpZg0KPiArDQo+ICsvKiogUHJvdG9jb2wgZmVhdHVyZXMuICovDQo+ICsjaWZuZGVmIFZIT1NU X1VTRVJfUFJPVE9DT0xfRl9NUQ0KPiArI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfTVEg MA0KPiArI2VuZGlmDQo+ICsNCj4gKyNpZm5kZWYgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1JFUExZ X0FDSw0KPiArI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLIDMNCj4gKyNl bmRpZg0KPiArDQo+ICsjaWZuZGVmIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9TVEFUVVMNCj4gKyNk ZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1NUQVRVUyAxNg0KPiArI2VuZGlmDQo+ICsNCj4g KyNkZWZpbmUgVkhPU1RfVVNFUl9TVVBQT1JURURfUFJPVE9DT0xfRkVBVFVSRVMJCVwNCj4gKwko MVVMTCA8PCBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfTVEgfAkJXA0KPiArCSAxVUxMIDw8IFZIT1NU X1VTRVJfUFJPVE9DT0xfRl9SRVBMWV9BQ0sgfAlcDQo+ICsJIDFVTEwgPDwgVkhPU1RfVVNFUl9Q Uk9UT0NPTF9GX1NUQVRVUykNCj4gKw0KPiAgLyogVGhlIHZlcnNpb24gb2YgdGhlIHByb3RvY29s IHdlIHN1cHBvcnQgKi8NCj4gICNkZWZpbmUgVkhPU1RfVVNFUl9WRVJTSU9OICAgIDB4MQ0KPiAN Cj4gQEAgLTIwNSwxMSArMjI4LDExIEBAIHZob3N0X3VzZXJfc2V0X293bmVyKHN0cnVjdCB2aXJ0 aW9fdXNlcl9kZXYgKmRldikNCj4gIH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+IC12aG9zdF91c2Vy X2dldF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90ICpmZWF0 dXJlcykNCj4gK3Zob3N0X3VzZXJfZ2V0X3Byb3RvY29sX2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9f dXNlcl9kZXYgKmRldiwgdWludDY0X3QNCj4gKmZlYXR1cmVzKQ0KPiAgew0KPiAgCWludCByZXQ7 DQo+ICAJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZyA9IHsNCj4gLQkJLnJlcXVlc3QgPSBWSE9T VF9VU0VSX0dFVF9GRUFUVVJFUywNCj4gKwkJLnJlcXVlc3QgPSBWSE9TVF9VU0VSX0dFVF9QUk9U T0NPTF9GRUFUVVJFUywNCj4gIAkJLmZsYWdzID0gVkhPU1RfVVNFUl9WRVJTSU9OLA0KPiAgCX07 DQo+IA0KPiBAQCAtMjIxLDcgKzI0NCw3IEBAIHZob3N0X3VzZXJfZ2V0X2ZlYXR1cmVzKHN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gdWludDY0X3QgKmZlYXR1cmVzKQ0KPiAgCWlmIChy ZXQgPCAwKQ0KPiAgCQlnb3RvIGVycjsNCj4gDQo+IC0JaWYgKG1zZy5yZXF1ZXN0ICE9IFZIT1NU X1VTRVJfR0VUX0ZFQVRVUkVTKSB7DQo+ICsJaWYgKG1zZy5yZXF1ZXN0ICE9IFZIT1NUX1VTRVJf R0VUX1BST1RPQ09MX0ZFQVRVUkVTKSB7DQo+ICAJCVBNRF9EUlZfTE9HKEVSUiwgIlVuZXhwZWN0 ZWQgcmVxdWVzdCB0eXBlICglZCkiLCBtc2cucmVxdWVzdCk7DQo+ICAJCWdvdG8gZXJyOw0KPiAg CX0NCj4gQEAgLTIzNSwyNyArMjU4LDI1IEBAIHZob3N0X3VzZXJfZ2V0X2ZlYXR1cmVzKHN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gdWludDY0X3QgKmZlYXR1cmVzKQ0KPiANCj4gIAly ZXR1cm4gMDsNCj4gIGVycjoNCj4gLQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gZ2V0IGJh Y2tlbmQgZmVhdHVyZXMiKTsNCj4gKwlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gZ2V0IGJh Y2tlbmQgcHJvdG9jb2wgZmVhdHVyZXMiKTsNCj4gDQo+ICAJcmV0dXJuIC0xOw0KPiAgfQ0KPiAN Cj4gIHN0YXRpYyBpbnQNCj4gLXZob3N0X3VzZXJfc2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9f dXNlcl9kZXYgKmRldiwgdWludDY0X3QgZmVhdHVyZXMpDQo+ICt2aG9zdF91c2VyX3NldF9wcm90 b2NvbF9mZWF0dXJlcyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90DQo+IGZl YXR1cmVzKQ0KPiAgew0KPiAgCWludCByZXQ7DQo+ICAJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1z ZyA9IHsNCj4gLQkJLnJlcXVlc3QgPSBWSE9TVF9VU0VSX1NFVF9GRUFUVVJFUywNCj4gKwkJLnJl cXVlc3QgPSBWSE9TVF9VU0VSX1NFVF9QUk9UT0NPTF9GRUFUVVJFUywNCj4gIAkJLmZsYWdzID0g VkhPU1RfVVNFUl9WRVJTSU9OLA0KPiAgCQkuc2l6ZSA9IHNpemVvZihmZWF0dXJlcyksDQo+ICAJ CS5wYXlsb2FkLnU2NCA9IGZlYXR1cmVzLA0KPiAgCX07DQo+IA0KPiAtCW1zZy5wYXlsb2FkLnU2 NCB8PSBkZXYtPmRldmljZV9mZWF0dXJlcyAmICgxVUxMIDw8DQo+IFZIT1NUX1VTRVJfRl9QUk9U T0NPTF9GRUFUVVJFUyk7DQo+IC0NCj4gIAlyZXQgPSB2aG9zdF91c2VyX3dyaXRlKGRldi0+dmhv c3RmZCwgJm1zZywgTlVMTCwgMCk7DQo+ICAJaWYgKHJldCA8IDApIHsNCj4gLQkJUE1EX0RSVl9M T0coRVJSLCAiRmFpbGVkIHRvIHNldCBmZWF0dXJlcyIpOw0KPiArCQlQTURfRFJWX0xPRyhFUlIs ICJGYWlsZWQgdG8gc2V0IHByb3RvY29sIGZlYXR1cmVzIik7DQo+ICAJCXJldHVybiAtMTsNCj4g IAl9DQo+IA0KPiBAQCAtMjYzLDExICsyODQsMTEgQEAgdmhvc3RfdXNlcl9zZXRfZmVhdHVyZXMo c3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0KPiB1aW50NjRfdCBmZWF0dXJlcykNCj4gIH0N Cj4gDQo+ICBzdGF0aWMgaW50DQo+IC12aG9zdF91c2VyX2dldF9wcm90b2NvbF9mZWF0dXJlcyhz dHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ2NF90DQo+ICpmZWF0dXJlcykNCj4gK3Zo b3N0X3VzZXJfZ2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0 X3QgKmZlYXR1cmVzKQ0KPiAgew0KPiAgCWludCByZXQ7DQo+ICAJc3RydWN0IHZob3N0X3VzZXJf bXNnIG1zZyA9IHsNCj4gLQkJLnJlcXVlc3QgPSBWSE9TVF9VU0VSX0dFVF9QUk9UT0NPTF9GRUFU VVJFUywNCj4gKwkJLnJlcXVlc3QgPSBWSE9TVF9VU0VSX0dFVF9GRUFUVVJFUywNCj4gIAkJLmZs YWdzID0gVkhPU1RfVVNFUl9WRVJTSU9OLA0KPiAgCX07DQo+IA0KPiBAQCAtMjc5LDcgKzMwMCw3 IEBAIHZob3N0X3VzZXJfZ2V0X3Byb3RvY29sX2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9k ZXYNCj4gKmRldiwgdWludDY0X3QgKmZlYXR1cmVzDQo+ICAJaWYgKHJldCA8IDApDQo+ICAJCWdv dG8gZXJyOw0KPiANCj4gLQlpZiAobXNnLnJlcXVlc3QgIT0gVkhPU1RfVVNFUl9HRVRfUFJPVE9D T0xfRkVBVFVSRVMpIHsNCj4gKwlpZiAobXNnLnJlcXVlc3QgIT0gVkhPU1RfVVNFUl9HRVRfRkVB VFVSRVMpIHsNCj4gIAkJUE1EX0RSVl9MT0coRVJSLCAiVW5leHBlY3RlZCByZXF1ZXN0IHR5cGUg KCVkKSIsIG1zZy5yZXF1ZXN0KTsNCj4gIAkJZ290byBlcnI7DQo+ICAJfQ0KPiBAQCAtMjkxLDI3 ICszMTIsNDYgQEAgdmhvc3RfdXNlcl9nZXRfcHJvdG9jb2xfZmVhdHVyZXMoc3RydWN0IHZpcnRp b191c2VyX2Rldg0KPiAqZGV2LCB1aW50NjRfdCAqZmVhdHVyZXMNCj4gDQo+ICAJKmZlYXR1cmVz ID0gbXNnLnBheWxvYWQudTY0Ow0KPiANCj4gKwlpZiAoISgqZmVhdHVyZXMgJiAoMVVMTCA8PCBW SE9TVF9VU0VSX0ZfUFJPVE9DT0xfRkVBVFVSRVMpKSkNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4g KwkvKiBOZWdvdGlhdGUgcHJvdG9jb2wgZmVhdHVyZXMgKi8NCj4gKwlyZXQgPSB2aG9zdF91c2Vy X2dldF9wcm90b2NvbF9mZWF0dXJlcyhkZXYsICZkZXYtPnByb3RvY29sX2ZlYXR1cmVzKTsNCj4g KwlpZiAocmV0IDwgMCkNCj4gKwkJZ290byBlcnI7DQo+ICsNCj4gKwlkZXYtPnByb3RvY29sX2Zl YXR1cmVzICY9IFZIT1NUX1VTRVJfU1VQUE9SVEVEX1BST1RPQ09MX0ZFQVRVUkVTOw0KPiArDQo+ ICsJcmV0ID0gdmhvc3RfdXNlcl9zZXRfcHJvdG9jb2xfZmVhdHVyZXMoZGV2LCBkZXYtPnByb3Rv Y29sX2ZlYXR1cmVzKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJZ290byBlcnI7DQo+ICsNCj4g KwlpZiAoIShkZXYtPnByb3RvY29sX2ZlYXR1cmVzICYgKDFVTEwgPDwgVkhPU1RfVVNFUl9QUk9U T0NPTF9GX01RKSkpDQo+ICsJCWRldi0+dW5zdXBwb3J0ZWRfZmVhdHVyZXMgfD0gKDF1bGwgPDwg VklSVElPX05FVF9GX01RKTsNCj4gKw0KPiAgCXJldHVybiAwOw0KPiAgZXJyOg0KPiAtCVBNRF9E UlZfTE9HKEVSUiwgIkZhaWxlZCB0byBnZXQgYmFja2VuZCBwcm90b2NvbCBmZWF0dXJlcyIpOw0K PiArCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBnZXQgYmFja2VuZCBmZWF0dXJlcyIpOw0K PiANCj4gIAlyZXR1cm4gLTE7DQo+ICB9DQo+IA0KPiAgc3RhdGljIGludA0KPiAtdmhvc3RfdXNl cl9zZXRfcHJvdG9jb2xfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50 NjRfdA0KPiBmZWF0dXJlcykNCj4gK3Zob3N0X3VzZXJfc2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0 aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3QgZmVhdHVyZXMpDQo+ICB7DQo+ICAJaW50IHJldDsN Cj4gIAlzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgbXNnID0gew0KPiAtCQkucmVxdWVzdCA9IFZIT1NU X1VTRVJfU0VUX1BST1RPQ09MX0ZFQVRVUkVTLA0KPiArCQkucmVxdWVzdCA9IFZIT1NUX1VTRVJf U0VUX0ZFQVRVUkVTLA0KPiAgCQkuZmxhZ3MgPSBWSE9TVF9VU0VSX1ZFUlNJT04sDQo+ICAJCS5z aXplID0gc2l6ZW9mKGZlYXR1cmVzKSwNCj4gIAkJLnBheWxvYWQudTY0ID0gZmVhdHVyZXMsDQo+ ICAJfTsNCj4gDQo+ICsJbXNnLnBheWxvYWQudTY0IHw9IGRldi0+ZGV2aWNlX2ZlYXR1cmVzICYg KDFVTEwgPDwNCj4gVkhPU1RfVVNFUl9GX1BST1RPQ09MX0ZFQVRVUkVTKTsNCj4gKw0KPiAgCXJl dCA9IHZob3N0X3VzZXJfd3JpdGUoZGV2LT52aG9zdGZkLCAmbXNnLCBOVUxMLCAwKTsNCj4gIAlp ZiAocmV0IDwgMCkgew0KPiAtCQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gc2V0IHByb3Rv Y29sIGZlYXR1cmVzIik7DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZXQgZmVh dHVyZXMiKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gDQo+IEBAIC03ODAsMTMgKzgyMCwy MCBAQCB2aG9zdF91c2VyX2VuYWJsZV9xdWV1ZV9wYWlyKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldiwNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF91 c2VyX2dldF9iYWNrZW5kX2ZlYXR1cmVzKHVpbnQ2NF90ICpmZWF0dXJlcykNCj4gK3sNCj4gKwkq ZmVhdHVyZXMgPSAxVUxMIDw8IFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUzsNCj4gKw0K PiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICBzdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9v cHMgdmlydGlvX29wc191c2VyID0gew0KPiAgCS5zZXR1cCA9IHZob3N0X3VzZXJfc2V0dXAsDQo+ ICsJLmdldF9iYWNrZW5kX2ZlYXR1cmVzID0gdmhvc3RfdXNlcl9nZXRfYmFja2VuZF9mZWF0dXJl cywNCj4gIAkuc2V0X293bmVyID0gdmhvc3RfdXNlcl9zZXRfb3duZXIsDQo+ICAJLmdldF9mZWF0 dXJlcyA9IHZob3N0X3VzZXJfZ2V0X2ZlYXR1cmVzLA0KPiAgCS5zZXRfZmVhdHVyZXMgPSB2aG9z dF91c2VyX3NldF9mZWF0dXJlcywNCj4gLQkuZ2V0X3Byb3RvY29sX2ZlYXR1cmVzID0gdmhvc3Rf dXNlcl9nZXRfcHJvdG9jb2xfZmVhdHVyZXMsDQo+IC0JLnNldF9wcm90b2NvbF9mZWF0dXJlcyA9 IHZob3N0X3VzZXJfc2V0X3Byb3RvY29sX2ZlYXR1cmVzLA0KPiAgCS5zZXRfbWVtb3J5X3RhYmxl ID0gdmhvc3RfdXNlcl9zZXRfbWVtb3J5X3RhYmxlLA0KPiAgCS5zZXRfdnJpbmdfbnVtID0gdmhv c3RfdXNlcl9zZXRfdnJpbmdfbnVtLA0KPiAgCS5zZXRfdnJpbmdfYmFzZSA9IHZob3N0X3VzZXJf c2V0X3ZyaW5nX2Jhc2UsDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlv X3VzZXIvdmhvc3RfdmRwYS5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zo b3N0X3ZkcGEuYw0KPiBpbmRleCA3ZmIxMjQ5NTY5Li44ZDM1NGIyOThlIDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdmRwYS5jDQo+ICsrKyBiL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gQEAgLTEzLDYgKzEz LDEwIEBADQo+ICAjaW5jbHVkZSAidmhvc3QuaCINCj4gICNpbmNsdWRlICJ2aXJ0aW9fdXNlcl9k ZXYuaCINCj4gDQo+ICsjZGVmaW5lIFZIT1NUX1ZEUEFfU1VQUE9SVEVEX0JBQ0tFTkRfRkVBVFVS RVMJCVwNCj4gKwkoMVVMTCA8PCBWSE9TVF9CQUNLRU5EX0ZfSU9UTEJfTVNHX1YyCXwJXA0KPiAr CTFVTEwgPDwgVkhPU1RfQkFDS0VORF9GX0lPVExCX0JBVENIKQ0KPiArDQo+ICAvKiB2aG9zdCBr ZXJuZWwgJiB2ZHBhIGlvY3RscyAqLw0KPiAgI2RlZmluZSBWSE9TVF9WSVJUSU8gMHhBRg0KPiAg I2RlZmluZSBWSE9TVF9HRVRfRkVBVFVSRVMgX0lPUihWSE9TVF9WSVJUSU8sIDB4MDAsIF9fdTY0 KQ0KPiBAQCAtODgsMTMgKzkyLDEzIEBAIHZob3N0X3ZkcGFfc2V0X293bmVyKHN0cnVjdCB2aXJ0 aW9fdXNlcl9kZXYgKmRldikNCj4gIH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+IC12aG9zdF92ZHBh X2dldF9iYWNrZW5kX2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0 X3QNCj4gKmZlYXR1cmVzKQ0KPiArdmhvc3RfdmRwYV9nZXRfcHJvdG9jb2xfZmVhdHVyZXMoc3Ry dWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50NjRfdA0KPiAqZmVhdHVyZXMpDQo+ICB7DQo+ ICAJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9TVF9HRVRfQkFDS0VO RF9GRUFUVVJFUywNCj4gZmVhdHVyZXMpOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQNCj4gLXZo b3N0X3ZkcGFfc2V0X2JhY2tlbmRfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2 LCB1aW50NjRfdA0KPiBmZWF0dXJlcykNCj4gK3Zob3N0X3ZkcGFfc2V0X3Byb3RvY29sX2ZlYXR1 cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3QNCj4gZmVhdHVyZXMpDQo+ ICB7DQo+ICAJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9TVF9TRVRf QkFDS0VORF9GRUFUVVJFUywNCj4gJmZlYXR1cmVzKTsNCj4gIH0NCj4gQEAgLTExMyw2ICsxMTcs MjEgQEAgdmhvc3RfdmRwYV9nZXRfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2 LA0KPiB1aW50NjRfdCAqZmVhdHVyZXMpDQo+ICAJLyogTXVsdGlxdWV1ZSBub3Qgc3VwcG9ydGVk IGZvciBub3cgKi8NCj4gIAkqZmVhdHVyZXMgJj0gfigxVUxMIDw8IFZJUlRJT19ORVRfRl9NUSk7 DQo+IA0KPiArCS8qIE5lZ290aWF0ZWQgdkRQQSBiYWNrZW5kIGZlYXR1cmVzICovDQo+ICsJcmV0 ID0gdmhvc3RfdmRwYV9nZXRfcHJvdG9jb2xfZmVhdHVyZXMoZGV2LCAmZGV2LT5wcm90b2NvbF9m ZWF0dXJlcyk7DQo+ICsJaWYgKHJldCA8IDApIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAiRmFp bGVkIHRvIGdldCBiYWNrZW5kIGZlYXR1cmVzIik7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ ICsNCj4gKwlkZXYtPnByb3RvY29sX2ZlYXR1cmVzICY9IFZIT1NUX1ZEUEFfU1VQUE9SVEVEX0JB Q0tFTkRfRkVBVFVSRVM7DQo+ICsNCj4gKwlyZXQgPSB2aG9zdF92ZHBhX3NldF9wcm90b2NvbF9m ZWF0dXJlcyhkZXYsIGRldi0+cHJvdG9jb2xfZmVhdHVyZXMpOw0KPiArCWlmIChyZXQgPCAwKSB7 DQo+ICsJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZXQgYmFja2VuZCBmZWF0dXJlcyIp Ow0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0K PiBAQCAtNDM4LDEzICs0NTcsMjAgQEAgdmhvc3RfdmRwYV9lbmFibGVfcXVldWVfcGFpcihzdHJ1 Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+IA0KPiArc3Rh dGljIGludA0KPiArdmhvc3RfdmRwYV9nZXRfYmFja2VuZF9mZWF0dXJlcyh1aW50NjRfdCAqZmVh dHVyZXMpDQo+ICt7DQo+ICsJKmZlYXR1cmVzID0gMDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiAr fQ0KPiArDQo+ICBzdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgdmlydGlvX29wc192ZHBh ID0gew0KPiAgCS5zZXR1cCA9IHZob3N0X3ZkcGFfc2V0dXAsDQo+ICsJLmdldF9iYWNrZW5kX2Zl YXR1cmVzID0gdmhvc3RfdmRwYV9nZXRfYmFja2VuZF9mZWF0dXJlcywNCj4gIAkuc2V0X293bmVy ID0gdmhvc3RfdmRwYV9zZXRfb3duZXIsDQo+ICAJLmdldF9mZWF0dXJlcyA9IHZob3N0X3ZkcGFf Z2V0X2ZlYXR1cmVzLA0KPiAgCS5zZXRfZmVhdHVyZXMgPSB2aG9zdF92ZHBhX3NldF9mZWF0dXJl cywNCj4gLQkuZ2V0X3Byb3RvY29sX2ZlYXR1cmVzID0gdmhvc3RfdmRwYV9nZXRfYmFja2VuZF9m ZWF0dXJlcywNCj4gLQkuc2V0X3Byb3RvY29sX2ZlYXR1cmVzID0gdmhvc3RfdmRwYV9zZXRfYmFj a2VuZF9mZWF0dXJlcywNCj4gIAkuc2V0X21lbW9yeV90YWJsZSA9IHZob3N0X3ZkcGFfc2V0X21l bW9yeV90YWJsZSwNCj4gIAkuc2V0X3ZyaW5nX251bSA9IHZob3N0X3ZkcGFfc2V0X3ZyaW5nX251 bSwNCj4gIAkuc2V0X3ZyaW5nX2Jhc2UgPSB2aG9zdF92ZHBhX3NldF92cmluZ19iYXNlLA0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rl di5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5j DQo+IGluZGV4IGMyYTQxZmUzYTAuLjI2MTRiY2IzNDkgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiArKysgYi9kcml2ZXJz L25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMNCj4gQEAgLTQ4MCwyNCAr NDgwLDE1IEBAIHZpcnRpb191c2VyX2Rldl9zZXR1cChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpk ZXYpDQo+ICAJIDFVTEwgPDwgVklSVElPX05FVF9GX0dVRVNUX1RTTzYJfAlcDQo+ICAJIDFVTEwg PDwgVklSVElPX0ZfSU5fT1JERVIJCXwJXA0KPiAgCSAxVUxMIDw8IFZJUlRJT19GX1ZFUlNJT05f MQkJfAlcDQo+IC0JIDFVTEwgPDwgVklSVElPX0ZfUklOR19QQUNLRUQJCXwJXA0KPiAtCSAxVUxM IDw8IFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykNCj4gKwkgMVVMTCA8PCBWSVJUSU9f Rl9SSU5HX1BBQ0tFRCkNCj4gDQo+IC0jZGVmaW5lIFZIT1NUX1VTRVJfU1VQUE9SVEVEX1BST1RP Q09MX0ZFQVRVUkVTCQlcDQo+IC0JKDFVTEwgPDwgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX01RIHwJ CVwNCj4gLQkgMVVMTCA8PCBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLIHwJXA0KPiAt CSAxVUxMIDw8IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9TVEFUVVMpDQo+IC0NCj4gLSNkZWZpbmUg VkhPU1RfVkRQQV9TVVBQT1JURURfUFJPVE9DT0xfRkVBVFVSRVMJCVwNCj4gLQkoMVVMTCA8PCBW SE9TVF9CQUNLRU5EX0ZfSU9UTEJfTVNHX1YyCXwJXA0KPiAtCTFVTEwgPDwgVkhPU1RfQkFDS0VO RF9GX0lPVExCX0JBVENIKQ0KPiAgaW50DQo+ICB2aXJ0aW9fdXNlcl9kZXZfaW5pdChzdHJ1Y3Qg dmlydGlvX3VzZXJfZGV2ICpkZXYsIGNoYXIgKnBhdGgsIGludCBxdWV1ZXMsDQo+ICAJCSAgICAg aW50IGNxLCBpbnQgcXVldWVfc2l6ZSwgY29uc3QgY2hhciAqbWFjLCBjaGFyICoqaWZuYW1lLA0K PiAgCQkgICAgIGludCBzZXJ2ZXIsIGludCBtcmdfcnhidWYsIGludCBpbl9vcmRlciwgaW50IHBh Y2tlZF92cSwNCj4gIAkJICAgICBlbnVtIHZpcnRpb191c2VyX2JhY2tlbmRfdHlwZSBiYWNrZW5k X3R5cGUpDQo+ICB7DQo+IC0JdWludDY0X3QgcHJvdG9jb2xfZmVhdHVyZXMgPSAwOw0KPiArCXVp bnQ2NF90IGJhY2tlbmRfZmVhdHVyZXM7DQo+IA0KPiAgCXB0aHJlYWRfbXV0ZXhfaW5pdCgmZGV2 LT5tdXRleCwgTlVMTCk7DQo+ICAJc3RybGNweShkZXYtPnBhdGgsIHBhdGgsIFBBVEhfTUFYKTsN Cj4gQEAgLTUwOCwxNCArNDk5LDkgQEAgdmlydGlvX3VzZXJfZGV2X2luaXQoc3RydWN0IHZpcnRp b191c2VyX2RldiAqZGV2LCBjaGFyDQo+ICpwYXRoLCBpbnQgcXVldWVzLA0KPiAgCWRldi0+aXNf c2VydmVyID0gc2VydmVyOw0KPiAgCWRldi0+bWFjX3NwZWNpZmllZCA9IDA7DQo+ICAJZGV2LT5m cm9udGVuZF9mZWF0dXJlcyA9IDA7DQo+IC0JZGV2LT51bnN1cHBvcnRlZF9mZWF0dXJlcyA9IH5W SVJUSU9fVVNFUl9TVVBQT1JURURfRkVBVFVSRVM7DQo+ICsJZGV2LT51bnN1cHBvcnRlZF9mZWF0 dXJlcyA9IDA7DQo+ICAJZGV2LT5iYWNrZW5kX3R5cGUgPSBiYWNrZW5kX3R5cGU7DQo+IA0KPiAt CWlmIChkZXYtPmJhY2tlbmRfdHlwZSA9PSBWSVJUSU9fVVNFUl9CQUNLRU5EX1ZIT1NUX1VTRVIp DQo+IC0JCWRldi0+cHJvdG9jb2xfZmVhdHVyZXMgPSBWSE9TVF9VU0VSX1NVUFBPUlRFRF9QUk9U T0NPTF9GRUFUVVJFUzsNCj4gLQllbHNlIGlmIChkZXYtPmJhY2tlbmRfdHlwZSA9PSBWSVJUSU9f VVNFUl9CQUNLRU5EX1ZIT1NUX1ZEUEEpDQo+IC0JCWRldi0+cHJvdG9jb2xfZmVhdHVyZXMgPSBW SE9TVF9WRFBBX1NVUFBPUlRFRF9QUk9UT0NPTF9GRUFUVVJFUzsNCj4gLQ0KPiAgCXBhcnNlX21h YyhkZXYsIG1hYyk7DQo+IA0KPiAgCWlmICgqaWZuYW1lKSB7DQo+IEBAIC01MjgsMzggKzUxNCwy MSBAQCB2aXJ0aW9fdXNlcl9kZXZfaW5pdChzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIGNo YXINCj4gKnBhdGgsIGludCBxdWV1ZXMsDQo+ICAJCXJldHVybiAtMTsNCj4gIAl9DQo+IA0KPiAt CWlmIChkZXYtPmJhY2tlbmRfdHlwZSAhPSBWSVJUSU9fVVNFUl9CQUNLRU5EX1ZIT1NUX1VTRVIp DQo+IC0JCWRldi0+dW5zdXBwb3J0ZWRfZmVhdHVyZXMgfD0NCj4gLQkJCSgxVUxMIDw8IFZIT1NU X1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUyk7DQo+IC0NCj4gIAlpZiAoZGV2LT5vcHMtPnNldF9v d25lcihkZXYpIDwgMCkgew0KPiAgCQlQTURfSU5JVF9MT0coRVJSLCAiKCVzKSBGYWlsZWQgdG8g c2V0IGJhY2tlbmQgb3duZXIiLCBkZXYtPnBhdGgpOw0KPiAgCQlyZXR1cm4gLTE7DQo+ICAJfQ0K PiANCj4gLQlpZiAoZGV2LT5vcHMtPmdldF9mZWF0dXJlcyhkZXYsICZkZXYtPmRldmljZV9mZWF0 dXJlcykgPCAwKSB7DQo+ICsJaWYgKGRldi0+b3BzLT5nZXRfYmFja2VuZF9mZWF0dXJlcygmYmFj a2VuZF9mZWF0dXJlcykgPCAwKSB7DQo+ICAJCVBNRF9JTklUX0xPRyhFUlIsICIoJXMpIEZhaWxl ZCB0byBnZXQgYmFja2VuZCBmZWF0dXJlcyIsIGRldi0NCj4gPnBhdGgpOw0KPiAgCQlyZXR1cm4g LTE7DQo+ICAJfQ0KPiANCj4gLQlpZiAoKGRldi0+ZGV2aWNlX2ZlYXR1cmVzICYgKDFVTEwgPDwg VkhPU1RfVVNFUl9GX1BST1RPQ09MX0ZFQVRVUkVTKSkgfHwNCj4gLQkJCWRldi0+YmFja2VuZF90 eXBlID09IFZJUlRJT19VU0VSX0JBQ0tFTkRfVkhPU1RfVkRQQSkgew0KPiAtCQlpZiAoZGV2LT5v cHMtPmdldF9wcm90b2NvbF9mZWF0dXJlcyhkZXYsICZwcm90b2NvbF9mZWF0dXJlcykpIHsNCj4g LQkJCVBNRF9JTklUX0xPRyhFUlIsICIoJXMpIEZhaWxlZCB0byBnZXQgYmFja2VuZCBwcm90b2Nv bA0KPiBmZWF0dXJlcyIsDQo+IC0JCQkJCWRldi0+cGF0aCk7DQo+IC0JCQlyZXR1cm4gLTE7DQo+ IC0JCX0NCj4gLQ0KPiAtCQlkZXYtPnByb3RvY29sX2ZlYXR1cmVzICY9IHByb3RvY29sX2ZlYXR1 cmVzOw0KPiAtDQo+IC0JCWlmIChkZXYtPm9wcy0+c2V0X3Byb3RvY29sX2ZlYXR1cmVzKGRldiwg ZGV2LT5wcm90b2NvbF9mZWF0dXJlcykpDQo+IHsNCj4gLQkJCVBNRF9JTklUX0xPRyhFUlIsICIo JXMpIEZhaWxlZCB0byBzZXQgYmFja2VuZCBwcm90b2NvbA0KPiBmZWF0dXJlcyIsDQo+IC0JCQkJ CWRldi0+cGF0aCk7DQo+IC0JCQlyZXR1cm4gLTE7DQo+IC0JCX0NCj4gKwlkZXYtPnVuc3VwcG9y dGVkX2ZlYXR1cmVzID0gfihWSVJUSU9fVVNFUl9TVVBQT1JURURfRkVBVFVSRVMgfA0KPiBiYWNr ZW5kX2ZlYXR1cmVzKTsNCj4gDQo+IC0JCWlmICghKGRldi0+cHJvdG9jb2xfZmVhdHVyZXMgJiAo MVVMTCA8PCBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfTVEpKSkNCj4gLQkJCWRldi0+dW5zdXBwb3J0 ZWRfZmVhdHVyZXMgfD0gKDF1bGwgPDwgVklSVElPX05FVF9GX01RKTsNCj4gKwlpZiAoZGV2LT5v cHMtPmdldF9mZWF0dXJlcyhkZXYsICZkZXYtPmRldmljZV9mZWF0dXJlcykgPCAwKSB7DQo+ICsJ CVBNRF9JTklUX0xPRyhFUlIsICIoJXMpIEZhaWxlZCB0byBnZXQgZGV2aWNlIGZlYXR1cmVzIiwg ZGV2LT5wYXRoKTsNCj4gKwkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gDQo+ICAJaWYgKCFtcmdfcnhi dWYpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2 LmMNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMNCj4gaW5kZXgg ZTgyMmQ5MzY5MC4uZTJjNjA2YTgzOCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb191c2VyX2V0aGRldi5jDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlcl9ldGhkZXYuYw0KPiBAQCAtNzAsNyArNzAsNiBAQCB2aXJ0aW9fdXNlcl9zZXJ2ZXJfcmVj b25uZWN0KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldikNCj4gIAlpbnQgcmV0LCBjb25uZWN0 ZmQsIG9sZF9zdGF0dXM7DQo+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2ID0gJnJ0ZV9l dGhfZGV2aWNlc1tkZXYtPnBvcnRfaWRdOw0KPiAgCXN0cnVjdCB2aXJ0aW9faHcgKmh3ID0gJmRl di0+aHc7DQo+IC0JdWludDY0X3QgcHJvdG9jb2xfZmVhdHVyZXM7DQo+IA0KPiAgCWNvbm5lY3Rm ZCA9IGFjY2VwdChkZXYtPmxpc3RlbmZkLCBOVUxMLCBOVUxMKTsNCj4gIAlpZiAoY29ubmVjdGZk IDwgMCkNCj4gQEAgLTkxLDIyICs5MCw2IEBAIHZpcnRpb191c2VyX3NlcnZlcl9yZWNvbm5lY3Qo c3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgCQlyZXR1cm4gLTE7DQo+ICAJfQ0KPiAN Cj4gLQlpZiAoZGV2LT5kZXZpY2VfZmVhdHVyZXMgJg0KPiAtCQkJKDFVTEwgPDwgVkhPU1RfVVNF Ul9GX1BST1RPQ09MX0ZFQVRVUkVTKSkgew0KPiAtCQlpZiAoZGV2LT5vcHMtPmdldF9wcm90b2Nv bF9mZWF0dXJlcyhkZXYsICZwcm90b2NvbF9mZWF0dXJlcykpDQo+IC0JCQlyZXR1cm4gLTE7DQo+ IC0NCj4gLQkJLyogT2ZmZXIgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1NUQVRVUyAqLw0KPiAtCQlk ZXYtPnByb3RvY29sX2ZlYXR1cmVzIHw9ICgxVUxMIDw8IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9T VEFUVVMpOw0KPiAtCQlkZXYtPnByb3RvY29sX2ZlYXR1cmVzICY9IHByb3RvY29sX2ZlYXR1cmVz Ow0KPiAtDQo+IC0JCWlmIChkZXYtPm9wcy0+c2V0X3Byb3RvY29sX2ZlYXR1cmVzKGRldiwgZGV2 LT5wcm90b2NvbF9mZWF0dXJlcykpDQo+IC0JCQlyZXR1cm4gLTE7DQo+IC0NCj4gLQkJaWYgKCEo ZGV2LT5wcm90b2NvbF9mZWF0dXJlcyAmICgxVUxMIDw8IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9N USkpKQ0KPiAtCQkJZGV2LT51bnN1cHBvcnRlZF9mZWF0dXJlcyB8PSAoMXVsbCA8PCBWSVJUSU9f TkVUX0ZfTVEpOw0KPiAtCX0NCj4gLQ0KPiAgCWRldi0+ZGV2aWNlX2ZlYXR1cmVzIHw9IGRldi0+ ZnJvbnRlbmRfZmVhdHVyZXM7DQo+IA0KPiAgCS8qIHVtYXNrIHZob3N0LXVzZXIgdW5zdXBwb3J0 ZWQgZmVhdHVyZXMgKi8NCj4gLS0NCj4gMi4yOS4yDQoNClJldmlld2VkLWJ5OiBDaGVuYm8gWGlh IDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCg==