From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9EC1DC433F5 for ; Tue, 10 May 2022 06:24:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237105AbiEJG2Z (ORCPT ); Tue, 10 May 2022 02:28:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36890 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232711AbiEJG2M (ORCPT ); Tue, 10 May 2022 02:28:12 -0400 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2051.outbound.protection.outlook.com [40.107.101.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB9AE15A00 for ; Mon, 9 May 2022 23:24:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KTYcNXSdaJjxv2319LGLRIMImmCD2kzybDn/AoSaYrpDEK0u7n5aIRMh03B/G3hCjd0MOL7wEZ1RylgLMXQbi8r4J7gwyU74Cb9jHc0TxDNpxb7Hg6XHlI6HrLm48glUSFjxN+0Dm7ejop4QAL1HYl8WOFMLhKqz2asuD07FtaN2wH+3zdBSfK1kkJilgZmYrbWb8705RXKev4mNaRE0Rtvo4CKmo6ZPJi+OPVvEt4WUb6NY2JYWsYYkUW1J4t/tXWQ5CXSz3KkzuY1JLIqmv3tW/owugQZtJJ1lCTmuJzK2CWpyldSjAie4G28KPuSkYGpmWQQ+AaT9DWQUnMju5A== 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=0p/tnfZQeAeg9Nj4WPHjGvnRdTyoW5IE4nr0f/OTJDY=; b=WZ3uEzhN+DE58j3cnHUo4cNnDHgkB8rA0zNpx0Pg0ekOTpybNixY8dz5ZY7qqh39mz1lhbF3If35nTW+1wU/jMt+fP0tLw3h5/cfkfdTGcJYgUOXroIGDeqZpWHmjGfGzcFn3ePtZesnOYP5Ez/p2+3Q4qr+N/Wd7xBgokb1MOnZp11u8rLN3nPX27H6FSvxUjwXbDQSUH+9Ybk7jzW8UHfTKnEF6Or+C9bvv8Q0U5rMJWNmKocHNOt4m35yG36zYVlqQfgJnEmq/kUKlvXoekjXx+Q4a8HnPTcsbmqSdC1n/MBJ1VU2uFE7jerZkW00k0YyyWewl9p1dtzGlsKZFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0p/tnfZQeAeg9Nj4WPHjGvnRdTyoW5IE4nr0f/OTJDY=; b=pQMXQe+h+orzqvoa3KWZCkPDWWwzBe9Xq518y+fQlALyyO9jhp2GmGHfAZuLov9U5BwHEEI0tJufgVf/Yk1jT0rxea7TeTI1tGBxqfAJtc9kqqXBNkkMQUneSY3XQhVHF4doEyw/4D8vkQrPBAj7AhstVvNkkuMlUrRUcXQZbHbFNKHTXRcyOCSNQWMz/p5iv7PkPrO0dGdcgkXdaoo/JNKbCLK80TgvwLeZSof/7y7Y+lTnXukP1cTuyVo17NZJeJRESo2Y6jR/FDIT6IKmXN83441tSB5sL8vB6WsdpdgG8RciHl+oW+4i4ojtxX8KMvev7HebhT5n9mwQaw2vrg== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by PH0PR12MB5645.namprd12.prod.outlook.com (2603:10b6:510:140::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.23; Tue, 10 May 2022 06:24:14 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::a196:bbcc:de9d:50a5]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::a196:bbcc:de9d:50a5%7]) with mapi id 15.20.5227.023; Tue, 10 May 2022 06:24:14 +0000 From: Eli Cohen To: Jason Wang CC: mst , virtualization , linux-kernel , Si-Wei Liu Subject: RE: [PATCH v4 3/3] vdpa/mlx5: Add support for reading descriptor statistics Thread-Topic: [PATCH v4 3/3] vdpa/mlx5: Add support for reading descriptor statistics Thread-Index: AQHYYvlfGAghXfmRsUiycs5coaZQqK0XbmmAgAAoCoA= Date: Tue, 10 May 2022 06:24:14 +0000 Message-ID: References: <20220508163317.204673-1-elic@nvidia.com> <20220508163317.204673-4-elic@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 493bc901-2396-4dd2-2407-08da324db41b x-ms-traffictypediagnostic: PH0PR12MB5645:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dATwu0PDY59G1BqeGW3Juw8BblRPoWCm69X0t1qRdOuvAzrpD8IBn7vauLQ5swR/cdhmEOcOBOk91b/eW4B7i6r2QGXhY+6opEeRu0L6QhpdJsM7VfesRwdklM/XOFfRnwsYuC6pFRFUB5Obh7YFMRjHT4sPty3IEiCY31Z+fjTtgK8xMziVAUobIqKHAeNRsBCdXipUTMOrs89ogzWSJa0WDKPLGLFN4lbzxQICausI/IaP2RBshXy2YPpCe4PezB39Ork4HeksIFj7dv9hZgpoB+awsl4UtGUqLcC08hT+9vNDpG3HLKIQu7V5sUvD99hDe0B2PwbSJQLFkF/MJQgjTpLNEx90fnkE7YQwRkpzvF+GZf6l7AizIHpl4KMPzZ2IIz2cGJtHtoaar30BGR5f8MwrH41IOEDEC2yx28Uu9Ygy18+mpPV/Z5vlClUPzObukwyD1jtkdufEJf5cKMa3amep2vfi2GzGLSe1LtcLjKMpV/tFiW6Wx12OJsBMVdtUt6b1VY85zimzMqjHWthJUB5l+2ZZAi0TXmQAj4Gs5aB20CE3Ta+ejYOt8/yLQUZXfa1lxqCU3HXbhC2Rd3GvZczDXQVswqr4DdBnRDKCaKmXdq/v4NvSmZOJ10JNeNfntftaenj8i41Y3waVoLwFpYQYj/tbdhG/yLdx7caZ4K2wKAGSM1gKM5aqmxtWtcKJgwkeZtMnxf7B/ugpWg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR12MB5400.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(316002)(66476007)(33656002)(186003)(38070700005)(9686003)(53546011)(6506007)(26005)(38100700002)(7696005)(55016003)(2906002)(508600001)(122000001)(30864003)(54906003)(8676002)(4326008)(64756008)(66446008)(6916009)(83380400001)(5660300002)(66556008)(76116006)(52536014)(66946007)(8936002)(71200400001)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bUtSc0NzdjB5SVFnb1R2Sm1aaHZlTnN1VUtSM2tRTjZKeTVTa1BPL1k3dlVK?= =?utf-8?B?a09PbzlOeGNQQzVlZkh5M2pmV0k5SzNzc2JJVkI5c2xjU2pOVis5M2JTNStS?= =?utf-8?B?eWVPaVd3dlFUS2JpTTZPb0NMM0UzYUYrMDRiNGxIaW5vL0ZsaHREdTFWUnds?= =?utf-8?B?VFdJdFlyeDRPejZ0MHJ4azQvRXFMdC9pYkRkVW5YWHh0cklTUnF6Rm10ejdH?= =?utf-8?B?Zlh0Ym1tVlM3WnpUVFMwanJJeXJLcW5YTyt4L1ZwZGRJcGZTdHloQmxaYXRK?= =?utf-8?B?UjlzWEx5QmtRT2J6S1FZa1RtVnNWSlhTQzF0eW9tK0lVdGdaSWRsZTN5dm96?= =?utf-8?B?TXZOOFV5djN2Sjg1OHhQYS96bmFFcXpqd0N4SnNoSzMzb2lSV3Qxb2pWc0ZH?= =?utf-8?B?eTk4Tjg0TGxjZDdueW8yNDZ0WHFoTHhQd1FUdS9HSmNRTHc2REllRUprNDRh?= =?utf-8?B?MG9EN0F2LzdNNG9OTUJYcTQ0c01QK0VRakt4NEg0U09uMU5tQloxUGRKZG5x?= =?utf-8?B?M0xjR214SkJzb3JtUGt6V2paWlgrUzU0WXp4azV3TUsxZ2czQzRFc3BwbXJW?= =?utf-8?B?TGh6WE1ZZzl4QmJBUmhMNVo3YzNibjZmTXBoZG5lSlNxK1YzdVd4cldVTitr?= =?utf-8?B?OEFUb2tEeExVY3ZnUzZOaXdlZEpvblorMGh6L1FvVGN4a1pYcEc4VkR5T3ow?= =?utf-8?B?aWlkcEt5N0JhcUtCRFN1b2c1Ty8vejdlbXFVa2ZJb0lnbFJ0enUwbU1yK2xW?= =?utf-8?B?WTVrdXppcHRvMEhRNXgxL1ZiamNZdmgzVTdQck9TOE45QVF2WFFCczUrWFc3?= =?utf-8?B?ZHBkQjZTcFdkUGQzUUJJSkZGZ0wwZDd2dEhjUmg5OWxJVHd6blAxVXlRVFQ1?= =?utf-8?B?YWoxbVBwbUtNN2d0MlVhak42S2lSZ2hxRlBLTENoSTV0RjBsQzdSU2tyR2NX?= =?utf-8?B?Mko4cFVzRHczTWt4Qkk1Tk1rL3hhU0VSQTd4NklsZ3N2amNjazM0L1d4WHVq?= =?utf-8?B?eDZhQmQ5emJ0MW1NclMxK2dJMkNZRlcxNHBvOGh0SnVDV0pOY3lZL2c1QU9t?= =?utf-8?B?a256UUpCc056cDB2NmVGR2svK1ZrL2U2TWt0VGl0RStqc0pRVGcwVmE2Y1BO?= =?utf-8?B?cVZOR2NMVTFRaExVZWkrUUNPT25iS0ZQSnNPeENGL2lqR1RWVTdTN0puenpF?= =?utf-8?B?eDZ3ZS9ndWhBQUxSV3UySTJzbm9iTkpoN0F6aThnMVJjL0RUQnVJLzNtNHVM?= =?utf-8?B?akFtWVZaYTFjZnVWZXRiMzFNcHVZcTJqdTR6Uk44TENLY29UWHgzQmtSNjIz?= =?utf-8?B?ZVMvS0J0NzJVVEUzc3o1Tmdlbms0RXRJYVpxVWhHdjZEUTZ6WS9qYTVoUTVu?= =?utf-8?B?ZlZmTlRFbzFLQkV0eHJwbXVrbEhLaU9LbkFlNTRrTUdQNm04SHBocjl2ZUVn?= =?utf-8?B?d2RPbHUrVzJRSFVNN1FQcjNLMG95ajcrcDlNNGNHcHpaRkJtS1hhcmY5QjNr?= =?utf-8?B?SFBIajJOdEFINEh0NTB0VHNidkJEdU9zRVIxWXNjbEM2VDk1SDNsWk4wRmRy?= =?utf-8?B?bHBJWUhFMWphNFRRM05KZ2dNQjNCQytDR2NWWW9yTkoyNll0Y3IzUXg1Mi9x?= =?utf-8?B?K2N6TnN6YnRGeTFkemdLdnVDY0ZweE1EUHRnQXpTRTNsVUZhTkJxTFAzSTMr?= =?utf-8?B?RmxwZHRrWHJDR3loT0ZiUGFoUW1CV3BmeEhTUCtIYlZUVDduakM5eW1Gb3dI?= =?utf-8?B?SXMzWFBkbVBOcG5FaXE5NmRNaDd1ZjZEOC9iRHcvdTZHRWVZSWZ4UDNrVHZR?= =?utf-8?B?ZVF3V3FhQlIyQUhmbGtmM1k4RGJtSm1LUm1OMmZFanVvUjcrOWZxTFpndGZz?= =?utf-8?B?S2QzNFlSM3lFNTQ0dEdLelVGUmJ4ZkVKYjJFSzAxRXA2d0lqTHNQdEpHeFdM?= =?utf-8?B?My9XbG5lTlNObE9sZlY1bVJERUhPWWpFOHRaYXcwalNZSWQ4OGN5RGRicFUw?= =?utf-8?B?ajBlWDFLUkhLTTRBZjZnaDRtRWl5L0N5dm5UTzk2Q1NJdHpiaEF2cUpQcFBq?= =?utf-8?B?alNVMkozR2t0UXFLbytXa21kZzJhTkpoV2htcmx2MmlZRktFMXZvU2l4TmJq?= =?utf-8?B?TjZSU1MwV2ZPazl1MmpRb3ZwMTQzdU1ReW41ZW1MWFZ0R04vTnZlNTRuVTNN?= =?utf-8?B?WDhqTkNSenZBVDBpbTlMVGw3SUloOHQ3YmZFbUZ0ZmdldVhkbGJhVk5Wa1lm?= =?utf-8?B?bmVOZ2EvUWFVUGE5eWtwaWljakNnVUVTRzU4UDJvWnk2UnRZVkFlc1dVU1V1?= =?utf-8?Q?1ri2vZgc3ZQiSyGlSb?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 493bc901-2396-4dd2-2407-08da324db41b X-MS-Exchange-CrossTenant-originalarrivaltime: 10 May 2022 06:24:14.1270 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0K6hKSWGSWKAs9cf8yrrrgYkbV+42PdNbEahu2R2g2Ane84COWi7FPi5YHJSdr8m X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5645 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2Fu Z0ByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBNYXkgMTAsIDIwMjIgNjowMSBBTQ0KPiBU bzogRWxpIENvaGVuIDxlbGljQG52aWRpYS5jb20+DQo+IENjOiBtc3QgPG1zdEByZWRoYXQuY29t PjsgdmlydHVhbGl6YXRpb24gPHZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24u b3JnPjsgbGludXgta2VybmVsIDxsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgU2ktDQo+ IFdlaSBMaXUgPHNpLXdlaS5saXVAb3JhY2xlLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2 NCAzLzNdIHZkcGEvbWx4NTogQWRkIHN1cHBvcnQgZm9yIHJlYWRpbmcgZGVzY3JpcHRvciBzdGF0 aXN0aWNzDQo+IA0KPiBPbiBNb24sIE1heSA5LCAyMDIyIGF0IDEyOjMzIEFNIEVsaSBDb2hlbiA8 ZWxpY0BudmlkaWEuY29tPiB3cm90ZToNCj4gPg0KPiA+IEltcGxlbWVudCB0aGUgZ2V0X3ZxX3N0 YXRzIGNhbGJhY2sgb2YgdmRwYV9jb25maWdfb3BzIHRvIHJldHVybiB0aGUNCj4gPiBzdGF0aXN0 aWNzIGZvciBhIHZpcnRxdWV1ZS4NCj4gPg0KPiA+IFRoZSBzdGF0aXN0aWNzIGFyZSBwcm92aWRl ZCBhcyB2ZW5kb3Igc3BlY2lmaWMgc3RhdGlzdGljcyB3aGVyZSB0aGUNCj4gPiBkcml2ZXIgcHJv dmlkZXMgYSBwYWlyIG9mIGF0dHJpYnV0ZSBuYW1lIGFuZCBhdHRyaWJ1dGUgdmFsdWUuDQo+ID4N Cj4gPiBJbiBhZGRpdGlvbiB0byB0aGUgYXR0cmlidXRlIG5hbWUvYXR0cmlidXRlIHZhbHVlIHBh aXIsIHRoZSBkcml2ZXINCj4gPiByZXR1cm5zIHRoZSBuZWdvdGlhdGVkIGZlYXR1cmVzIGFuZCBt YXggdmlydHF1ZXVlIHBhaXJzIGZvciB1c2Vyc3BhY2UNCj4gPiBjYW4gZGVjaWRlIGZvciBhIGdp dmVuIHF1ZXVlIGluZGV4IHdoZXRoZXIgaXQgaXMgYSBkYXRhIG9yIGNvbnRyb2wNCj4gPiB2aXJ0 cXVldWUuDQo+ID4NCj4gPiBDdXJyZW50bHkgc3VwcG9ydGVkIGFyZSByZWNlaXZlZCBkZXNjcmlw dG9ycyBhbmQgY29tcGxldGVkIGRlc2NyaXB0b3JzLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTog RWxpIENvaGVuIDxlbGljQG52aWRpYS5jb20+DQo+ID4NCj4gPiB2MyAtPiB2NDoNCj4gPiBPbmx5 IHJldHVybiBzdGF0aXN0aWNzIGlmIGZlYXR1cmUgbmVnb3RpYXRpb24gd2FzIGNvbXBsZXRlDQo+ ID4gLS0tDQo+ID4gIGRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmggfCAgIDIgKw0K PiA+ICBkcml2ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4NV92bmV0LmMgIHwgMTcxICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+ID4gIGluY2x1ZGUvbGludXgvbWx4NS9tbHg1X2lmYy5oICAg ICAgfCAgIDEgKw0KPiA+ICBpbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNfdmRwYS5oIHwgIDM5 ICsrKysrKysNCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMTMgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmggYi9kcml2 ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oDQo+ID4gaW5kZXggZGFhZjdiNTAzNjc3Li40 NDEwNDA5MzE2M2IgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1 X3ZkcGEuaA0KPiA+ICsrKyBiL2RyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgNCj4g PiBAQCAtNjEsNiArNjEsOCBAQCBzdHJ1Y3QgbWx4NV9jb250cm9sX3ZxIHsNCj4gPiAgICAgICAg IHN0cnVjdCB2cmluZ2hfa2lvdiByaW92Ow0KPiA+ICAgICAgICAgc3RydWN0IHZyaW5naF9raW92 IHdpb3Y7DQo+ID4gICAgICAgICB1bnNpZ25lZCBzaG9ydCBoZWFkOw0KPiA+ICsgICAgICAgdW5z aWduZWQgaW50IHJlY2VpdmVkX2Rlc2M7DQo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgY29tcGxl dGVkX2Rlc2M7DQo+ID4gIH07DQo+ID4NCj4gPiAgc3RydWN0IG1seDVfdmRwYV93cV9lbnQgew0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4NV92bmV0LmMgYi9kcml2 ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4NV92bmV0LmMNCj4gPiBpbmRleCA3OTAwMTMwMWIzODMuLjVi MWM0MzA0ZmZjNyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4NV92 bmV0LmMNCj4gPiArKysgYi9kcml2ZXJzL3ZkcGEvbWx4NS9uZXQvbWx4NV92bmV0LmMNCj4gPiBA QCAtMTE5LDYgKzExOSw3IEBAIHN0cnVjdCBtbHg1X3ZkcGFfdmlydHF1ZXVlIHsNCj4gPiAgICAg ICAgIHN0cnVjdCBtbHg1X3ZkcGFfdW1lbSB1bWVtMjsNCj4gPiAgICAgICAgIHN0cnVjdCBtbHg1 X3ZkcGFfdW1lbSB1bWVtMzsNCj4gPg0KPiA+ICsgICAgICAgdTMyIGNvdW50ZXJfc2V0X2lkOw0K PiA+ICAgICAgICAgYm9vbCBpbml0aWFsaXplZDsNCj4gPiAgICAgICAgIGludCBpbmRleDsNCj4g PiAgICAgICAgIHUzMiB2aXJ0cV9pZDsNCj4gPiBAQCAtMTY0LDYgKzE2NSw4IEBAIHN0cnVjdCBt bHg1X3ZkcGFfbmV0IHsNCj4gPiAgICAgICAgIHN0cnVjdCBub3RpZmllcl9ibG9jayBuYjsNCj4g PiAgICAgICAgIHN0cnVjdCB2ZHBhX2NhbGxiYWNrIGNvbmZpZ19jYjsNCj4gPiAgICAgICAgIHN0 cnVjdCBtbHg1X3ZkcGFfd3FfZW50IGN2cV9lbnQ7DQo+ID4gKyAgICAgICAvKiBzeW5jIGFjY2Vz cyB0byB2aXJ0cXVldWVzIHN0YXRpc3RpY3MgKi8NCj4gPiArICAgICAgIHN0cnVjdCBtdXRleCBu dW1xX2xvY2s7DQo+IA0KPiBDYW4gd2UgcmV1c2UgcmVzbG9jaz8NCg0KV2UgY291bGQgYW5kIHdl IHByb2JhYmx5IHNob3VsZCBub3cgdGhhdCByZXNsb2NrIGFscmVhZHkgcHJvdGVjdHMgdGhlIGNv bnRyb2wgVlEgY2FsbGJhY2suDQpJIHdpbGwgcmVwb3N0Lg0KDQo+IA0KPiA+ICB9Ow0KPiA+DQo+ ID4gIHN0YXRpYyB2b2lkIGZyZWVfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X3ZkcGFfbmV0ICpuZGV2 KTsNCj4gPiBAQCAtODIyLDYgKzgyNSwxMiBAQCBzdGF0aWMgdTE2IGdldF9mZWF0dXJlc18xMl8z KHU2NCBmZWF0dXJlcykNCj4gPiAgICAgICAgICAgICAgICAoISEoZmVhdHVyZXMgJiBCSVRfVUxM KFZJUlRJT19ORVRfRl9HVUVTVF9DU1VNKSkgPDwgNik7DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0 aWMgYm9vbCBjb3VudGVyc19zdXBwb3J0ZWQoY29uc3Qgc3RydWN0IG1seDVfdmRwYV9kZXYgKm12 ZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICByZXR1cm4gTUxYNV9DQVBfR0VOXzY0KG12ZGV2LT5t ZGV2LCBnZW5lcmFsX29ial90eXBlcykgJg0KPiA+ICsgICAgICAgICAgICAgIEJJVF9VTEwoTUxY NV9PQkpfVFlQRV9WSVJUSU9fUV9DT1VOVEVSUyk7DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRp YyBpbnQgY3JlYXRlX3ZpcnRxdWV1ZShzdHJ1Y3QgbWx4NV92ZHBhX25ldCAqbmRldiwgc3RydWN0 IG1seDVfdmRwYV92aXJ0cXVldWUgKm12cSkNCj4gPiAgew0KPiA+ICAgICAgICAgaW50IGlubGVu ID0gTUxYNV9TVF9TWl9CWVRFUyhjcmVhdGVfdmlydGlvX25ldF9xX2luKTsNCj4gPiBAQCAtODc2 LDYgKzg4NSw4IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3ZpcnRxdWV1ZShzdHJ1Y3QgbWx4NV92ZHBh X25ldCAqbmRldiwgc3RydWN0IG1seDVfdmRwYV92aXJ0cXVlDQo+ID4gICAgICAgICBNTFg1X1NF VCh2aXJ0aW9fcSwgdnFfY3R4LCB1bWVtXzNfaWQsIG12cS0+dW1lbTMuaWQpOw0KPiA+ICAgICAg ICAgTUxYNV9TRVQodmlydGlvX3EsIHZxX2N0eCwgdW1lbV8zX3NpemUsIG12cS0+dW1lbTMuc2l6 ZSk7DQo+ID4gICAgICAgICBNTFg1X1NFVCh2aXJ0aW9fcSwgdnFfY3R4LCBwZCwgbmRldi0+bXZk ZXYucmVzLnBkbik7DQo+ID4gKyAgICAgICBpZiAoY291bnRlcnNfc3VwcG9ydGVkKCZuZGV2LT5t dmRldikpDQo+ID4gKyAgICAgICAgICAgICAgIE1MWDVfU0VUKHZpcnRpb19xLCB2cV9jdHgsIGNv dW50ZXJfc2V0X2lkLCBtdnEtPmNvdW50ZXJfc2V0X2lkKTsNCj4gPg0KPiA+ICAgICAgICAgZXJy ID0gbWx4NV9jbWRfZXhlYyhuZGV2LT5tdmRldi5tZGV2LCBpbiwgaW5sZW4sIG91dCwgc2l6ZW9m KG91dCkpOw0KPiA+ICAgICAgICAgaWYgKGVycikNCj4gPiBAQCAtMTEzOSw2ICsxMTUwLDQ3IEBA IHN0YXRpYyBpbnQgbW9kaWZ5X3ZpcnRxdWV1ZShzdHJ1Y3QgbWx4NV92ZHBhX25ldCAqbmRldiwg c3RydWN0IG1seDVfdmRwYV92aXJ0cXVlDQo+ID4gICAgICAgICByZXR1cm4gZXJyOw0KPiA+ICB9 DQo+ID4NCj4gPiArc3RhdGljIGludCBjb3VudGVyX3NldF9hbGxvYyhzdHJ1Y3QgbWx4NV92ZHBh X25ldCAqbmRldiwgc3RydWN0IG1seDVfdmRwYV92aXJ0cXVldWUgKm12cSkNCj4gPiArew0KPiA+ ICsgICAgICAgdTMyIGluW01MWDVfU1RfU1pfRFcoY3JlYXRlX3ZpcnRpb19xX2NvdW50ZXJzX2lu KV0gPSB7fTsNCj4gPiArICAgICAgIHUzMiBvdXRbTUxYNV9TVF9TWl9EVyhjcmVhdGVfdmlydGlv X3FfY291bnRlcnNfb3V0KV0gPSB7fTsNCj4gPiArICAgICAgIHZvaWQgKmNtZF9oZHI7DQo+ID4g KyAgICAgICBpbnQgZXJyOw0KPiA+ICsNCj4gPiArICAgICAgIGlmICghY291bnRlcnNfc3VwcG9y dGVkKCZuZGV2LT5tdmRldikpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiA+ICsN Cj4gPiArICAgICAgIGNtZF9oZHIgPSBNTFg1X0FERFJfT0YoY3JlYXRlX3ZpcnRpb19xX2NvdW50 ZXJzX2luLCBpbiwgaGRyKTsNCj4gPiArDQo+ID4gKyAgICAgICBNTFg1X1NFVChnZW5lcmFsX29i al9pbl9jbWRfaGRyLCBjbWRfaGRyLCBvcGNvZGUsIE1MWDVfQ01EX09QX0NSRUFURV9HRU5FUkFM X09CSkVDVCk7DQo+ID4gKyAgICAgICBNTFg1X1NFVChnZW5lcmFsX29ial9pbl9jbWRfaGRyLCBj bWRfaGRyLCBvYmpfdHlwZSwgTUxYNV9PQkpfVFlQRV9WSVJUSU9fUV9DT1VOVEVSUyk7DQo+ID4g KyAgICAgICBNTFg1X1NFVChnZW5lcmFsX29ial9pbl9jbWRfaGRyLCBjbWRfaGRyLCB1aWQsIG5k ZXYtPm12ZGV2LnJlcy51aWQpOw0KPiA+ICsNCj4gPiArICAgICAgIGVyciA9IG1seDVfY21kX2V4 ZWMobmRldi0+bXZkZXYubWRldiwgaW4sIHNpemVvZihpbiksIG91dCwgc2l6ZW9mKG91dCkpOw0K PiA+ICsgICAgICAgaWYgKGVycikNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4g PiArDQo+ID4gKyAgICAgICBtdnEtPmNvdW50ZXJfc2V0X2lkID0gTUxYNV9HRVQoZ2VuZXJhbF9v Ympfb3V0X2NtZF9oZHIsIG91dCwgb2JqX2lkKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4g MDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgY291bnRlcl9zZXRfZGVhbGxvYyhz dHJ1Y3QgbWx4NV92ZHBhX25ldCAqbmRldiwgc3RydWN0IG1seDVfdmRwYV92aXJ0cXVldWUgKm12 cSkNCj4gPiArew0KPiA+ICsgICAgICAgdTMyIGluW01MWDVfU1RfU1pfRFcoZGVzdHJveV92aXJ0 aW9fcV9jb3VudGVyc19pbildID0ge307DQo+ID4gKyAgICAgICB1MzIgb3V0W01MWDVfU1RfU1pf RFcoZGVzdHJveV92aXJ0aW9fcV9jb3VudGVyc19vdXQpXSA9IHt9Ow0KPiA+ICsNCj4gPiArICAg ICAgIGlmICghY291bnRlcnNfc3VwcG9ydGVkKCZuZGV2LT5tdmRldikpDQo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgICBNTFg1X1NFVChkZXN0cm95X3ZpcnRp b19xX2NvdW50ZXJzX2luLCBpbiwgaGRyLm9wY29kZSwgTUxYNV9DTURfT1BfREVTVFJPWV9HRU5F UkFMX09CSkVDVCk7DQo+ID4gKyAgICAgICBNTFg1X1NFVChkZXN0cm95X3ZpcnRpb19xX2NvdW50 ZXJzX2luLCBpbiwgaGRyLm9ial9pZCwgbXZxLT5jb3VudGVyX3NldF9pZCk7DQo+ID4gKyAgICAg ICBNTFg1X1NFVChkZXN0cm95X3ZpcnRpb19xX2NvdW50ZXJzX2luLCBpbiwgaGRyLnVpZCwgbmRl di0+bXZkZXYucmVzLnVpZCk7DQo+ID4gKyAgICAgICBNTFg1X1NFVChkZXN0cm95X3ZpcnRpb19x X2NvdW50ZXJzX2luLCBpbiwgaGRyLm9ial90eXBlLCBNTFg1X09CSl9UWVBFX1ZJUlRJT19RX0NP VU5URVJTKTsNCj4gPiArICAgICAgIGlmIChtbHg1X2NtZF9leGVjKG5kZXYtPm12ZGV2Lm1kZXYs IGluLCBzaXplb2YoaW4pLCBvdXQsIHNpemVvZihvdXQpKSkNCj4gPiArICAgICAgICAgICAgICAg bWx4NV92ZHBhX3dhcm4oJm5kZXYtPm12ZGV2LCAiZGVhbGxvYyBjb3VudGVyIHNldCAweCV4XG4i LCBtdnEtPmNvdW50ZXJfc2V0X2lkKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIGludCBz ZXR1cF92cShzdHJ1Y3QgbWx4NV92ZHBhX25ldCAqbmRldiwgc3RydWN0IG1seDVfdmRwYV92aXJ0 cXVldWUgKm12cSkNCj4gPiAgew0KPiA+ICAgICAgICAgdTE2IGlkeCA9IG12cS0+aW5kZXg7DQo+ ID4gQEAgLTExNjYsNiArMTIxOCwxMCBAQCBzdGF0aWMgaW50IHNldHVwX3ZxKHN0cnVjdCBtbHg1 X3ZkcGFfbmV0ICpuZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX3ZpcnRxdWV1ZSAqbXZxKQ0KPiA+ICAg ICAgICAgaWYgKGVycikNCj4gPiAgICAgICAgICAgICAgICAgZ290byBlcnJfY29ubmVjdDsNCj4g Pg0KPiA+ICsgICAgICAgZXJyID0gY291bnRlcl9zZXRfYWxsb2MobmRldiwgbXZxKTsNCj4gPiAr ICAgICAgIGlmIChlcnIpDQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX2NvdW50ZXI7DQo+ IA0KPiBEb2VzIHRoaXMgbWVhbiBpZiB0aGUgY291bnRlciBpcyBub3Qgc3VwcG9ydGVkLCB3ZSB3 aWxsIGZhaWwgdGhlDQo+IGVudGlyZSBkZXZpY2Ugc2V0dXA/DQo+IA0KPiA+ICsNCj4gPiAgICAg ICAgIGVyciA9IGNyZWF0ZV92aXJ0cXVldWUobmRldiwgbXZxKTsNCj4gPiAgICAgICAgIGlmIChl cnIpDQo+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXJyX2Nvbm5lY3Q7DQo+ID4gQEAgLTExODMs NiArMTIzOSw4IEBAIHN0YXRpYyBpbnQgc2V0dXBfdnEoc3RydWN0IG1seDVfdmRwYV9uZXQgKm5k ZXYsIHN0cnVjdCBtbHg1X3ZkcGFfdmlydHF1ZXVlICptdnEpDQo+ID4gICAgICAgICByZXR1cm4g MDsNCj4gPg0KPiA+ICBlcnJfY29ubmVjdDoNCj4gPiArICAgICAgIGNvdW50ZXJfc2V0X2RlYWxs b2MobmRldiwgbXZxKTsNCj4gPiArZXJyX2NvdW50ZXI6DQo+ID4gICAgICAgICBxcF9kZXN0cm95 KG5kZXYsICZtdnEtPnZxcXApOw0KPiA+ICBlcnJfdnFxcDoNCj4gPiAgICAgICAgIHFwX2Rlc3Ry b3kobmRldiwgJm12cS0+ZndxcCk7DQo+ID4gQEAgLTEyMjcsNiArMTI4NSw3IEBAIHN0YXRpYyB2 b2lkIHRlYXJkb3duX3ZxKHN0cnVjdCBtbHg1X3ZkcGFfbmV0ICpuZGV2LCBzdHJ1Y3QgbWx4NV92 ZHBhX3ZpcnRxdWV1ZSAqDQo+ID4NCj4gPiAgICAgICAgIHN1c3BlbmRfdnEobmRldiwgbXZxKTsN Cj4gPiAgICAgICAgIGRlc3Ryb3lfdmlydHF1ZXVlKG5kZXYsIG12cSk7DQo+ID4gKyAgICAgICBj b3VudGVyX3NldF9kZWFsbG9jKG5kZXYsIG12cSk7DQo+ID4gICAgICAgICBxcF9kZXN0cm95KG5k ZXYsICZtdnEtPnZxcXApOw0KPiA+ICAgICAgICAgcXBfZGVzdHJveShuZGV2LCAmbXZxLT5md3Fw KTsNCj4gPiAgICAgICAgIGNxX2Rlc3Ryb3kobmRldiwgbXZxLT5pbmRleCk7DQo+ID4gQEAgLTE2 MzMsOCArMTY5MiwxMCBAQCBzdGF0aWMgdmlydGlvX25ldF9jdHJsX2FjayBoYW5kbGVfY3RybF9t cShzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHU4IGNtZCkNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCj4gPiAgICAgICAgICAgICAgICAgfQ0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgIG11dGV4X2xvY2soJm5kZXYtPm51bXFfbG9jayk7DQo+ID4gICAgICAgICAgICAg ICAgIGlmICghY2hhbmdlX251bV9xcHMobXZkZXYsIG5ld3FwcykpDQo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgc3RhdHVzID0gVklSVElPX05FVF9PSzsNCj4gPiArICAgICAgICAgICAgICAg bXV0ZXhfdW5sb2NrKCZuZGV2LT5udW1xX2xvY2spOw0KPiA+DQo+ID4gICAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+ICAgICAgICAgZGVmYXVsdDoNCj4gPiBAQCAtMTY4MSw2ICsxNzQyLDcgQEAg c3RhdGljIHZvaWQgbWx4NV9jdnFfa2lja19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykNCj4gPiAgICAgICAgICAgICAgICAgaWYgKHJlYWQgIT0gc2l6ZW9mKGN0cmwpKQ0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgIGN2 cS0+cmVjZWl2ZWRfZGVzYysrOw0KPiA+ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGN0cmwuY2xh c3MpIHsNCj4gPiAgICAgICAgICAgICAgICAgY2FzZSBWSVJUSU9fTkVUX0NUUkxfTUFDOg0KPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IGhhbmRsZV9jdHJsX21hYyhtdmRldiwg Y3RybC5jbWQpOw0KPiA+IEBAIC0xNzA0LDYgKzE3NjYsNyBAQCBzdGF0aWMgdm9pZCBtbHg1X2N2 cV9raWNrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KPiA+ICAgICAgICAgICAg ICAgICBpZiAodnJpbmdoX25lZWRfbm90aWZ5X2lvdGxiKCZjdnEtPnZyaW5nKSkNCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICB2cmluZ2hfbm90aWZ5KCZjdnEtPnZyaW5nKTsNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICBjdnEtPmNvbXBsZXRlZF9kZXNjKys7DQo+ID4gICAgICAgICAgICAg ICAgIHF1ZXVlX3dvcmsobXZkZXYtPndxLCAmd3FlbnQtPndvcmspOw0KPiA+ICAgICAgICAgICAg ICAgICBicmVhazsNCj4gPiAgICAgICAgIH0NCj4gPiBAQCAtMjMyMyw2ICsyMzg2LDggQEAgc3Rh dGljIGludCBtbHg1X3ZkcGFfcmVzZXQoc3RydWN0IHZkcGFfZGV2aWNlICp2ZGV2KQ0KPiA+ICAg ICAgICAgbWx4NV92ZHBhX2Rlc3Ryb3lfbXIoJm5kZXYtPm12ZGV2KTsNCj4gPiAgICAgICAgIG5k ZXYtPm12ZGV2LnN0YXR1cyA9IDA7DQo+ID4gICAgICAgICBuZGV2LT5jdXJfbnVtX3ZxcyA9IDA7 DQo+ID4gKyAgICAgICBuZGV2LT5tdmRldi5jdnEucmVjZWl2ZWRfZGVzYyA9IDA7DQo+ID4gKyAg ICAgICBuZGV2LT5tdmRldi5jdnEuY29tcGxldGVkX2Rlc2MgPSAwOw0KPiA+ICAgICAgICAgbWVt c2V0KG5kZXYtPmV2ZW50X2NicywgMCwgc2l6ZW9mKCpuZGV2LT5ldmVudF9jYnMpICogKG12ZGV2 LT5tYXhfdnFzICsgMSkpOw0KPiA+ICAgICAgICAgbmRldi0+bXZkZXYuYWN0dWFsX2ZlYXR1cmVz ID0gMDsNCj4gPiAgICAgICAgICsrbXZkZXYtPmdlbmVyYXRpb247DQo+ID4gQEAgLTI0MDEsNiAr MjQ2Niw3IEBAIHN0YXRpYyB2b2lkIG1seDVfdmRwYV9mcmVlKHN0cnVjdCB2ZHBhX2RldmljZSAq dmRldikNCj4gPiAgICAgICAgICAgICAgICAgbWx4NV9tcGZzX2RlbF9tYWMocGZtZGV2LCBuZGV2 LT5jb25maWcubWFjKTsNCj4gPiAgICAgICAgIH0NCj4gPiAgICAgICAgIG1seDVfdmRwYV9mcmVl X3Jlc291cmNlcygmbmRldi0+bXZkZXYpOw0KPiA+ICsgICAgICAgbXV0ZXhfZGVzdHJveSgmbmRl di0+bnVtcV9sb2NrKTsNCj4gPiAgICAgICAgIG11dGV4X2Rlc3Ryb3koJm5kZXYtPnJlc2xvY2sp Ow0KPiA+ICAgICAgICAga2ZyZWUobmRldi0+ZXZlbnRfY2JzKTsNCj4gPiAgICAgICAgIGtmcmVl KG5kZXYtPnZxcyk7DQo+ID4gQEAgLTI0NDIsNiArMjUwOCwxMDggQEAgc3RhdGljIHU2NCBtbHg1 X3ZkcGFfZ2V0X2RyaXZlcl9mZWF0dXJlcyhzdHJ1Y3QgdmRwYV9kZXZpY2UgKnZkZXYpDQo+ID4g ICAgICAgICByZXR1cm4gbXZkZXYtPmFjdHVhbF9mZWF0dXJlczsNCj4gPiAgfQ0KPiA+DQo+ID4g K3N0YXRpYyBpbnQgY291bnRlcl9zZXRfcXVlcnkoc3RydWN0IG1seDVfdmRwYV9uZXQgKm5kZXYs IHN0cnVjdCBtbHg1X3ZkcGFfdmlydHF1ZXVlICptdnEsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1NjQgKnJlY2VpdmVkX2Rlc2MsIHU2NCAqY29tcGxldGVkX2Rlc2MpDQo+ID4g K3sNCj4gPiArICAgICAgIHUzMiBpbltNTFg1X1NUX1NaX0RXKHF1ZXJ5X3ZpcnRpb19xX2NvdW50 ZXJzX2luKV0gPSB7fTsNCj4gPiArICAgICAgIHUzMiBvdXRbTUxYNV9TVF9TWl9EVyhxdWVyeV92 aXJ0aW9fcV9jb3VudGVyc19vdXQpXSA9IHt9Ow0KPiA+ICsgICAgICAgdm9pZCAqY21kX2hkcjsN Cj4gPiArICAgICAgIHZvaWQgKmN0eDsNCj4gPiArICAgICAgIGludCBlcnI7DQo+ID4gKw0KPiA+ ICsgICAgICAgaWYgKCFjb3VudGVyc19zdXBwb3J0ZWQoJm5kZXYtPm12ZGV2KSkNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+ICsNCj4gPiArICAgICAgIGlmICht dnEtPmZ3X3N0YXRlICE9IE1MWDVfVklSVElPX05FVF9RX09CSkVDVF9TVEFURV9SRFkpDQo+ID4g KyAgICAgICAgICAgICAgIHJldHVybiAtRUFHQUlOOw0KPiA+ICsNCj4gPiArICAgICAgIGNtZF9o ZHIgPSBNTFg1X0FERFJfT0YocXVlcnlfdmlydGlvX3FfY291bnRlcnNfaW4sIGluLCBoZHIpOw0K PiA+ICsNCj4gPiArICAgICAgIE1MWDVfU0VUKGdlbmVyYWxfb2JqX2luX2NtZF9oZHIsIGNtZF9o ZHIsIG9wY29kZSwgTUxYNV9DTURfT1BfUVVFUllfR0VORVJBTF9PQkpFQ1QpOw0KPiA+ICsgICAg ICAgTUxYNV9TRVQoZ2VuZXJhbF9vYmpfaW5fY21kX2hkciwgY21kX2hkciwgb2JqX3R5cGUsIE1M WDVfT0JKX1RZUEVfVklSVElPX1FfQ09VTlRFUlMpOw0KPiA+ICsgICAgICAgTUxYNV9TRVQoZ2Vu ZXJhbF9vYmpfaW5fY21kX2hkciwgY21kX2hkciwgdWlkLCBuZGV2LT5tdmRldi5yZXMudWlkKTsN Cj4gPiArICAgICAgIE1MWDVfU0VUKGdlbmVyYWxfb2JqX2luX2NtZF9oZHIsIGNtZF9oZHIsIG9i al9pZCwgbXZxLT5jb3VudGVyX3NldF9pZCk7DQo+ID4gKw0KPiA+ICsgICAgICAgZXJyID0gbWx4 NV9jbWRfZXhlYyhuZGV2LT5tdmRldi5tZGV2LCBpbiwgc2l6ZW9mKGluKSwgb3V0LCBzaXplb2Yo b3V0KSk7DQo+ID4gKyAgICAgICBpZiAoZXJyKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm4g ZXJyOw0KPiA+ICsNCj4gPiArICAgICAgIGN0eCA9IE1MWDVfQUREUl9PRihxdWVyeV92aXJ0aW9f cV9jb3VudGVyc19vdXQsIG91dCwgY291bnRlcnMpOw0KPiA+ICsgICAgICAgKnJlY2VpdmVkX2Rl c2MgPSBNTFg1X0dFVDY0KHZpcnRpb19xX2NvdW50ZXJzLCBjdHgsIHJlY2VpdmVkX2Rlc2MpOw0K PiA+ICsgICAgICAgKmNvbXBsZXRlZF9kZXNjID0gTUxYNV9HRVQ2NCh2aXJ0aW9fcV9jb3VudGVy cywgY3R4LCBjb21wbGV0ZWRfZGVzYyk7DQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0K PiA+ICsNCj4gPiArc3RhdGljIGludCBtbHg1X3ZkcGFfZ2V0X3ZlbmRvcl92cV9zdGF0cyhzdHJ1 Y3QgdmRwYV9kZXZpY2UgKnZkZXYsIHUxNiBpZHgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqbXNnLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0 YWNrKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYgPSB0 b19tdmRldih2ZGV2KTsNCj4gPiArICAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbmV0ICpuZGV2ID0g dG9fbWx4NV92ZHBhX25kZXYobXZkZXYpOw0KPiA+ICsgICAgICAgc3RydWN0IG1seDVfdmRwYV92 aXJ0cXVldWUgKm12cTsNCj4gPiArICAgICAgIHN0cnVjdCBtbHg1X2NvbnRyb2xfdnEgKmN2cTsN Cj4gPiArICAgICAgIHU2NCByZWNlaXZlZF9kZXNjOw0KPiA+ICsgICAgICAgdTY0IGNvbXBsZXRl ZF9kZXNjOw0KPiA+ICsgICAgICAgaW50IGVyciA9IDA7DQo+ID4gKyAgICAgICB1MTYgbWF4X3Zx cDsNCj4gPiArDQo+ID4gKyAgICAgICBtdXRleF9sb2NrKCZuZGV2LT5udW1xX2xvY2spOw0KPiA+ ICsgICAgICAgaWYgKCEobmRldi0+bXZkZXYuc3RhdHVzICYgVklSVElPX0NPTkZJR19TX0ZFQVRV UkVTX09LKSkgew0KPiA+ICsgICAgICAgICAgICAgICBOTF9TRVRfRVJSX01TR19NT0QoZXh0YWNr LCAiZmVhdHVyZSBuZWdvdGlhdGlvbiBub3QgY29tcGxldGUiKTsNCj4gPiArICAgICAgICAgICAg ICAgZXJyID0gLUVBR0FJTjsNCj4gPiArICAgICAgICAgICAgICAgZ290byBvdXRfZXJyOw0KPiA+ ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGlmICghaXNfaW5kZXhfdmFsaWQobXZkZXYs IGlkeCkpIHsNCj4gPiArICAgICAgICAgICAgICAgTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywg InZpcnRxdWV1ZSBpbmRleCBpcyBub3QgdmFsaWQiKTsNCj4gPiArICAgICAgICAgICAgICAgZXJy ID0gLUVJTlZBTDsNCj4gPiArICAgICAgICAgICAgICAgZ290byBvdXRfZXJyOw0KPiA+ICsgICAg ICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGlmIChpZHggPT0gY3RybF92cV9pZHgobXZkZXYpKSB7 DQo+ID4gKyAgICAgICAgICAgICAgIGN2cSA9ICZtdmRldi0+Y3ZxOw0KPiA+ICsgICAgICAgICAg ICAgICByZWNlaXZlZF9kZXNjID0gY3ZxLT5yZWNlaXZlZF9kZXNjOw0KPiA+ICsgICAgICAgICAg ICAgICBjb21wbGV0ZWRfZGVzYyA9IGN2cS0+Y29tcGxldGVkX2Rlc2M7DQo+ID4gKyAgICAgICAg ICAgICAgIGdvdG8gb3V0Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIG12cSA9 ICZuZGV2LT52cXNbaWR4XTsNCj4gPiArICAgICAgIGVyciA9IGNvdW50ZXJfc2V0X3F1ZXJ5KG5k ZXYsIG12cSwgJnJlY2VpdmVkX2Rlc2MsICZjb21wbGV0ZWRfZGVzYyk7DQo+ID4gKyAgICAgICBp ZiAoZXJyKSB7DQo+ID4gKyAgICAgICAgICAgICAgIE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ss ICJmYWlsZWQgdG8gcXVlcnkgaGFyZHdhcmUiKTsNCj4gPiArICAgICAgICAgICAgICAgZ290byBv dXRfZXJyOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArb3V0Og0KPiA+ICsgICAgICAgZXJy ID0gLUVNU0dTSVpFOw0KPiA+ICsgICAgICAgaWYgKG5sYV9wdXRfdTY0XzY0Yml0KG1zZywgVkRQ QV9BVFRSX0RFVl9ORUdPVElBVEVEX0ZFQVRVUkVTLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG12ZGV2LT5hY3R1YWxfZmVhdHVyZXMsIFZEUEFfQVRUUl9QQUQpKQ0KPiA+ICsg ICAgICAgICAgICAgICBnb3RvIG91dF9lcnI7DQo+IA0KPiBSZXRoaW5rIHRoaXMsIGNvbnNpZGVy aW5nIHdlIGFjY2VwdCB2cSBpbmRleCwgaXQgbWlnaHQgbWFrZSBzZW5zZSB0bw0KPiBtb3ZlIHRo aXMgdG8gdGhlIGNhbGxlciAoZ2VuZXJhbCBjb2RlKS4NCj4gDQo+ID4gKw0KPiA+ICsgICAgICAg bWF4X3ZxcCA9IG1seDV2ZHBhMTZfdG9fY3B1KG12ZGV2LCBuZGV2LT5jb25maWcubWF4X3ZpcnRx dWV1ZV9wYWlycyk7DQo+ID4gKyAgICAgICBpZiAobmxhX3B1dF91MTYobXNnLCBWRFBBX0FUVFJf REVWX05FVF9DRkdfTUFYX1ZRUCwgbWF4X3ZxcCkpDQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8g b3V0X2VycjsNCj4gDQo+IEl0IGxvb2tzIHRvIG1lIGxpa2UgdGhlIHVzZXJzcGFjZSBwcm9ncmFt IGRvZXNuJ3QgdXNlIHRoaXMgYXR0cmlidXRlPw0KPiANCj4gVGhhbmtzDQo+IA0KPiA+ICsNCj4g PiArICAgICAgIGlmIChubGFfcHV0X3N0cmluZyhtc2csIFZEUEFfQVRUUl9ERVZfVkVORE9SX0FU VFJfTkFNRSwgInJlY2VpdmVkX2Rlc2MiKSkNCj4gPiArICAgICAgICAgICAgICAgZ290byBvdXRf ZXJyOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChubGFfcHV0X3U2NF82NGJpdChtc2csIFZEUEFf QVRUUl9ERVZfVkVORE9SX0FUVFJfVkFMVUUsIHJlY2VpdmVkX2Rlc2MsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVkRQQV9BVFRSX1BBRCkpDQo+ID4gKyAgICAgICAgICAgICAg IGdvdG8gb3V0X2VycjsNCj4gPiArDQo+ID4gKyAgICAgICBpZiAobmxhX3B1dF9zdHJpbmcobXNn LCBWRFBBX0FUVFJfREVWX1ZFTkRPUl9BVFRSX05BTUUsICJjb21wbGV0ZWRfZGVzYyIpKQ0KPiA+ ICsgICAgICAgICAgICAgICBnb3RvIG91dF9lcnI7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKG5s YV9wdXRfdTY0XzY0Yml0KG1zZywgVkRQQV9BVFRSX0RFVl9WRU5ET1JfQVRUUl9WQUxVRSwgY29t cGxldGVkX2Rlc2MsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkRQQV9BVFRS X1BBRCkpDQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X2VycjsNCj4gPiArDQo+ID4gKyAg ICAgICBlcnIgPSAwOw0KPiA+ICtvdXRfZXJyOg0KPiA+ICsgICAgICAgbXV0ZXhfdW5sb2NrKCZu ZGV2LT5udW1xX2xvY2spOw0KPiA+ICsgICAgICAgcmV0dXJuIGVycjsNCj4gPiArfQ0KPiA+ICsN Cj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2ZHBhX2NvbmZpZ19vcHMgbWx4NV92ZHBhX29wcyA9 IHsNCj4gPiAgICAgICAgIC5zZXRfdnFfYWRkcmVzcyA9IG1seDVfdmRwYV9zZXRfdnFfYWRkcmVz cywNCj4gPiAgICAgICAgIC5zZXRfdnFfbnVtID0gbWx4NV92ZHBhX3NldF92cV9udW0sDQo+ID4g QEAgLTI0NTEsNiArMjYxOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdmRwYV9jb25maWdfb3Bz IG1seDVfdmRwYV9vcHMgPSB7DQo+ID4gICAgICAgICAuZ2V0X3ZxX3JlYWR5ID0gbWx4NV92ZHBh X2dldF92cV9yZWFkeSwNCj4gPiAgICAgICAgIC5zZXRfdnFfc3RhdGUgPSBtbHg1X3ZkcGFfc2V0 X3ZxX3N0YXRlLA0KPiA+ICAgICAgICAgLmdldF92cV9zdGF0ZSA9IG1seDVfdmRwYV9nZXRfdnFf c3RhdGUsDQo+ID4gKyAgICAgICAuZ2V0X3ZlbmRvcl92cV9zdGF0cyA9IG1seDVfdmRwYV9nZXRf dmVuZG9yX3ZxX3N0YXRzLA0KPiA+ICAgICAgICAgLmdldF92cV9ub3RpZmljYXRpb24gPSBtbHg1 X2dldF92cV9ub3RpZmljYXRpb24sDQo+ID4gICAgICAgICAuZ2V0X3ZxX2lycSA9IG1seDVfZ2V0 X3ZxX2lycSwNCj4gPiAgICAgICAgIC5nZXRfdnFfYWxpZ24gPSBtbHg1X3ZkcGFfZ2V0X3ZxX2Fs aWduLA0KPiA+IEBAIC0yNzA2LDYgKzI4NzUsNyBAQCBzdGF0aWMgaW50IG1seDVfdmRwYV9kZXZf YWRkKHN0cnVjdCB2ZHBhX21nbXRfZGV2ICp2X21kZXYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4N Cj4gPiAgICAgICAgIGluaXRfbXZxcyhuZGV2KTsNCj4gPiAgICAgICAgIG11dGV4X2luaXQoJm5k ZXYtPnJlc2xvY2spOw0KPiA+ICsgICAgICAgbXV0ZXhfaW5pdCgmbmRldi0+bnVtcV9sb2NrKTsN Cj4gPiAgICAgICAgIGNvbmZpZyA9ICZuZGV2LT5jb25maWc7DQo+ID4NCj4gPiAgICAgICAgIGlm IChhZGRfY29uZmlnLT5tYXNrICYgQklUX1VMTChWRFBBX0FUVFJfREVWX05FVF9DRkdfTVRVKSkg ew0KPiA+IEBAIC0yNzg4LDYgKzI5NTgsNyBAQCBzdGF0aWMgaW50IG1seDVfdmRwYV9kZXZfYWRk KHN0cnVjdCB2ZHBhX21nbXRfZGV2ICp2X21kZXYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gICAg ICAgICBpZiAoIWlzX3plcm9fZXRoZXJfYWRkcihjb25maWctPm1hYykpDQo+ID4gICAgICAgICAg ICAgICAgIG1seDVfbXBmc19kZWxfbWFjKHBmbWRldiwgY29uZmlnLT5tYWMpOw0KPiA+ICBlcnJf bXR1Og0KPiA+ICsgICAgICAgbXV0ZXhfZGVzdHJveSgmbmRldi0+bnVtcV9sb2NrKTsNCj4gPiAg ICAgICAgIG11dGV4X2Rlc3Ryb3koJm5kZXYtPnJlc2xvY2spOw0KPiA+ICBlcnJfYWxsb2M6DQo+ ID4gICAgICAgICBwdXRfZGV2aWNlKCZtdmRldi0+dmRldi5kZXYpOw0KPiA+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmMuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9tbHg1 X2lmYy5oDQo+ID4gaW5kZXggNDlhNDhkNzcwOWFjLi4xZDE5M2Q5YjYwMjkgMTAwNjQ0DQo+ID4g LS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjLmgNCj4gPiArKysgYi9pbmNsdWRlL2xp bnV4L21seDUvbWx4NV9pZmMuaA0KPiA+IEBAIC05NCw2ICs5NCw3IEBAIGVudW0gew0KPiA+ICBl bnVtIHsNCj4gPiAgICAgICAgIE1MWDVfT0JKX1RZUEVfR0VORVZFX1RMVl9PUFQgPSAweDAwMGIs DQo+ID4gICAgICAgICBNTFg1X09CSl9UWVBFX1ZJUlRJT19ORVRfUSA9IDB4MDAwZCwNCj4gPiAr ICAgICAgIE1MWDVfT0JKX1RZUEVfVklSVElPX1FfQ09VTlRFUlMgPSAweDAwMWMsDQo+ID4gICAg ICAgICBNTFg1X09CSl9UWVBFX01BVENIX0RFRklORVIgPSAweDAwMTgsDQo+ID4gICAgICAgICBN TFg1X09CSl9UWVBFX01LRVkgPSAweGZmMDEsDQo+ID4gICAgICAgICBNTFg1X09CSl9UWVBFX1FQ ID0gMHhmZjAyLA0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9pZmNf dmRwYS5oIGIvaW5jbHVkZS9saW51eC9tbHg1L21seDVfaWZjX3ZkcGEuaA0KPiA+IGluZGV4IDFh OWM5ZDk0Y2I1OS4uNDQxNGVkNWI2ZWQyIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvbGludXgv bWx4NS9tbHg1X2lmY192ZHBhLmgNCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L21seDUvbWx4NV9p ZmNfdmRwYS5oDQo+ID4gQEAgLTE2NSw0ICsxNjUsNDMgQEAgc3RydWN0IG1seDVfaWZjX21vZGlm eV92aXJ0aW9fbmV0X3Ffb3V0X2JpdHMgew0KPiA+ICAgICAgICAgc3RydWN0IG1seDVfaWZjX2dl bmVyYWxfb2JqX291dF9jbWRfaGRyX2JpdHMgZ2VuZXJhbF9vYmpfb3V0X2NtZF9oZHI7DQo+ID4g IH07DQo+ID4NCj4gPiArc3RydWN0IG1seDVfaWZjX3ZpcnRpb19xX2NvdW50ZXJzX2JpdHMgew0K PiA+ICsgICAgICAgdTggICAgbW9kaWZ5X2ZpZWxkX3NlbGVjdFsweDQwXTsNCj4gPiArICAgICAg IHU4ICAgIHJlc2VydmVkX2F0XzQwWzB4NDBdOw0KPiA+ICsgICAgICAgdTggICAgcmVjZWl2ZWRf ZGVzY1sweDQwXTsNCj4gPiArICAgICAgIHU4ICAgIGNvbXBsZXRlZF9kZXNjWzB4NDBdOw0KPiA+ ICsgICAgICAgdTggICAgZXJyb3JfY3Flc1sweDIwXTsNCj4gPiArICAgICAgIHU4ICAgIGJhZF9k ZXNjX2Vycm9yc1sweDIwXTsNCj4gPiArICAgICAgIHU4ICAgIGV4Y2VlZF9tYXhfY2hhaW5bMHgy MF07DQo+ID4gKyAgICAgICB1OCAgICBpbnZhbGlkX2J1ZmZlclsweDIwXTsNCj4gPiArICAgICAg IHU4ICAgIHJlc2VydmVkX2F0XzE4MFsweDI4MF07DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1 Y3QgbWx4NV9pZmNfY3JlYXRlX3ZpcnRpb19xX2NvdW50ZXJzX2luX2JpdHMgew0KPiA+ICsgICAg ICAgc3RydWN0IG1seDVfaWZjX2dlbmVyYWxfb2JqX2luX2NtZF9oZHJfYml0cyBoZHI7DQo+ID4g KyAgICAgICBzdHJ1Y3QgbWx4NV9pZmNfdmlydGlvX3FfY291bnRlcnNfYml0cyB2aXJ0aW9fcV9j b3VudGVyczsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBtbHg1X2lmY19jcmVhdGVfdmly dGlvX3FfY291bnRlcnNfb3V0X2JpdHMgew0KPiA+ICsgICAgICAgc3RydWN0IG1seDVfaWZjX2dl bmVyYWxfb2JqX2luX2NtZF9oZHJfYml0cyBoZHI7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWx4NV9p ZmNfdmlydGlvX3FfY291bnRlcnNfYml0cyB2aXJ0aW9fcV9jb3VudGVyczsNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0cnVjdCBtbHg1X2lmY19kZXN0cm95X3ZpcnRpb19xX2NvdW50ZXJzX2luX2Jp dHMgew0KPiA+ICsgICAgICAgc3RydWN0IG1seDVfaWZjX2dlbmVyYWxfb2JqX2luX2NtZF9oZHJf Yml0cyBoZHI7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbWx4NV9pZmNfZGVzdHJveV92 aXJ0aW9fcV9jb3VudGVyc19vdXRfYml0cyB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWx4NV9pZmNf Z2VuZXJhbF9vYmpfb3V0X2NtZF9oZHJfYml0cyBoZHI7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtz dHJ1Y3QgbWx4NV9pZmNfcXVlcnlfdmlydGlvX3FfY291bnRlcnNfaW5fYml0cyB7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgbWx4NV9pZmNfZ2VuZXJhbF9vYmpfaW5fY21kX2hkcl9iaXRzIGhkcjsNCj4g PiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBtbHg1X2lmY19xdWVyeV92aXJ0aW9fcV9jb3VudGVy c19vdXRfYml0cyB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWx4NV9pZmNfZ2VuZXJhbF9vYmpfaW5f Y21kX2hkcl9iaXRzIGhkcjsNCj4gPiArICAgICAgIHN0cnVjdCBtbHg1X2lmY192aXJ0aW9fcV9j b3VudGVyc19iaXRzIGNvdW50ZXJzOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgI2VuZGlmIC8qIF9f TUxYNV9JRkNfVkRQQV9IXyAqLw0KPiA+IC0tDQo+ID4gMi4zNS4xDQo+ID4NCg0K