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 E989C46CA6; Mon, 4 Aug 2025 11:23:23 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8FF594025D; Mon, 4 Aug 2025 11:23:23 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2043.outbound.protection.outlook.com [40.107.92.43]) by mails.dpdk.org (Postfix) with ESMTP id DC431400D5 for ; Mon, 4 Aug 2025 11:23:21 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DqYnGmnT6wZW9+WE6vyDeoyh+FT1ZEqyjqeZAmt6UBy1CZ0DISD1AiUBCXuAPyUZ/2+yTJ1ElelWTmqjM3Z4I2iUlsa9ir2MnTawXSkmoiKVUgkXQ/s1ANt/wslkmXQoRHxP7x886wWRQlqhpwC1qHJp/yx6R9vhBvFHUTG3Mx5xYu1EAc0K5VCKcX2+N8R/8/rq3bCUUkKN89a6I6HVfTO2ZDSFcyaYXraIaBSJeD6MzxXEZ9ZM6yrjSCRzsnx4E2EhFpjQ1PZ097uFW1htzYpO5TQ76XUdhi1+n8X72tg0yJTPUMQIAUTSpPkbQR6hoOEw0HSdwkpIniA/WS1yyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=/zeppZb0g2N1LUijszJmXNw6EnRXcUNsM8N5SFDOH/w=; b=hEBlkRGBV9BJ76jlrL6srCERTGUeNRAyJqQlwMlhEgYCn7tp3v2GdxeEFyj955w7cNFcoiPZaBwJvHEMFZ5SenTd0fCWKfm7BYywRRf197ibpPwtaxXlnd/PSgjKuY9EXi6CdqLX2I7ruCh/fLlC9znCeSLhoJOkUopPXMo2w4McHxdk0GLVLyIoOFD0fj4ta7I8Hfikq2NjmyR5w+/8AdrQtJlpVbSnTl66bwUIwkagOzFK6CGPYe5zHiRO+hO9hNxTtgCdz/Bk/ZSKrRf4CtOelx9T9cFDqks8Yi01Q3bOQzqnjgcL7VdV2JUwmdzPI4luHJD1h9TYFvfdyD1CAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/zeppZb0g2N1LUijszJmXNw6EnRXcUNsM8N5SFDOH/w=; b=BPBDIVlA/m22/KFouXj+dGkY59c6Mor3pXwQ2wwhajDXuP++zUoyIQehP6vLzgZYU9HGDy5laWODP143rgZPic6gj/lDPDxRIP69Rk7Ym4mH13H/GzOilr9FULBbH7e+Q0U2Jc7GNkE09whYXLNJKdAe70qioZ3iXXxVKyf/Em8= Received: from PH7PR12MB8596.namprd12.prod.outlook.com (2603:10b6:510:1b7::6) by CY1PR12MB9674.namprd12.prod.outlook.com (2603:10b6:930:106::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.20; Mon, 4 Aug 2025 09:23:19 +0000 Received: from PH7PR12MB8596.namprd12.prod.outlook.com ([fe80::a011:943d:7291:8069]) by PH7PR12MB8596.namprd12.prod.outlook.com ([fe80::a011:943d:7291:8069%2]) with mapi id 15.20.8989.010; Mon, 4 Aug 2025 09:23:19 +0000 From: "Varghese, Vipin" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "dev@dpdk.org" , Tetsuya Mukawa , Stephen Hemminger , "P, Thiyagarajan" , Ivan Malov , Konstantin Ananyev Subject: RE: [PATCH v4] net/null: Add fast mbuf release TX offload Thread-Topic: [PATCH v4] net/null: Add fast mbuf release TX offload Thread-Index: AQHcAVrvFb/3DFzNrEGOtQisnsxUGLRSPubw Date: Mon, 4 Aug 2025 09:23:18 +0000 Message-ID: References: <20250624181416.167181-1-mb@smartsharesystems.com> <20250730140451.622906-1-mb@smartsharesystems.com> In-Reply-To: <20250730140451.622906-1-mb@smartsharesystems.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Enabled=True; MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_SetDate=2025-08-04T09:19:10.0000000Z; MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Name=Open Source; MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_ContentBits=3; MSIP_Label_f265efc6-e181-49d6-80f4-fae95cf838a0_Method=Privileged authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR12MB8596:EE_|CY1PR12MB9674:EE_ x-ms-office365-filtering-correlation-id: 1d925984-c135-4dac-65dd-08ddd3388cb9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?cDRaelNpWjdHUVk0a2RYR3ptbnNncWZOMmZjekxRMFFISFNzK3hkZW5GYUFm?= =?utf-8?B?anNRRnAwZHE2TXVYNWdqcEY4S3B2enNGNldIQ3planBtQW1oMGZPQzdXZEdj?= =?utf-8?B?K01pdGowZjgxQ3RoTTdVQTJ2S2tqM295bGtheWE4Ukd6R0ZmOHk4K1dVZXlH?= =?utf-8?B?cDBGNjhtMGlzT0w2NXJuQnRxZ3dTdGE0NE5LMmk4NVk4YnREazYxTmdteE5q?= =?utf-8?B?YXEzRmM5UWFEcHY4T1FFZUZrOXg2bENqNUQ1K3cyUnc1NXN2S3dxcGRldUwx?= =?utf-8?B?THFLVkdzOFRyT3dWenc4RnIzcnpaQmx0cnAzcnhKMHBCQmdLRGw0ZDV0Zzhk?= =?utf-8?B?RGc3ZHR5TFVxZkh3NVU0TVhHRzVEYm1SbGNFNGxGYktpb1VvNU84NC9pYm5T?= =?utf-8?B?L0NXcTlWRjczMllKYkFyU3B0eTQ4QTVCaGxEeWhwNE1ZRGoxRGFEbjdmd0c4?= =?utf-8?B?aGIyNlZsMjZwRmpKYmNjVHpTeXdvVWZYMldJei90OVVrRlFqZzA3RXErOXNm?= =?utf-8?B?ZXBHdjE4Q2pGVkFnYmN5ejFzeUhIaXhwdFlVQUp1M0Uxd0w3Y0RUL0NUZWtW?= =?utf-8?B?STFxWjMxK2pWY2ZRTEFRL1poQTdWUVpXWkl5aGwxNjM5eDhqUThpMllMZDRY?= =?utf-8?B?cTVOc01JS3RnYlA2em9jcjMzZTcvRktiWThTbVh6K3hIMjNxbFoxbXVNcEZq?= =?utf-8?B?dWM1UHJjU2tGbUxyd2JRaXFxdkJOYlpBbFQxZ3l6TEc4aEJZa0FGL0VuMDZp?= =?utf-8?B?QXNrVjd1VVp1V0xZQkthNGVvMnJpUk1ZZ1ptMTFSbCsvNk9jd3pYQWg2d0lx?= =?utf-8?B?alo5YjNnZGZ6TmZld3lWZWJKamJiM2d3Myt4dHNGSkFhOTFsUzk5aEFrQXBP?= =?utf-8?B?Mm1iWCtQOHZEbFJINGpEZXVoZVZTSU5XMFVPcTV0cGlFUjhHbVZyNjJKV21V?= =?utf-8?B?Zjc0YXNNdjJwUlRsSjhEK0tvRGR3Sys3SkJJQnpIeVlSVVJtRTl4NDBveWlm?= =?utf-8?B?UENkSnl6KzZOZXBkSkxwWFpzVmVndjRsQVE5SXNrSlo0amZrU0tqc2hNeHdK?= =?utf-8?B?RWpXV2M5d1V5ZFppU1FLanFjbDBKcVhCL1B5b25nUmJaa3Q3S2JmTGVvelR1?= =?utf-8?B?amVTUHJlMXZtRXBNTGY0K1JVcTV1Vk9YZU9TMnZ2MW05QjhnWXdhWlU4YVJF?= =?utf-8?B?SEpkS3BIaS9IYWRzcjRMVE5KYnZhOTNMeDFxZy9EZU1iSUVrQ0EyYzMrdkFD?= =?utf-8?B?dkk2Z0RxcmFEWk1ZQzkrRjkyQ3RTOExjTTdSSzUrdERoMEJmUC9xTmh6c3V6?= =?utf-8?B?c2pkYmZaaXVCTUUyR3VKWThndmhoandaejBxbVc1N0NGVXNVaGhZV2ttRzNy?= =?utf-8?B?NUpnVU00cU9Zczl2WW12OGw4dHhiVlZlUVB0WCsxMG10Wm0xeWQzQllzZm5m?= =?utf-8?B?TFFiZW9BUVpISmQvTjl0VWd2dmE0UGpVVkg2cVFPWHpLZUpqNkdZWVRhRUdo?= =?utf-8?B?bnlienhpbUY2MTJjTGRFY1VBanRRcWxUV2ptL1REaXFnZjdFSkQ3RDhRZS9N?= =?utf-8?B?ZG5FYmJ4NWxwM0hqdEthSUU5NVJ5bnpJckE4b2dTRWdKMWVSRnArU1lENE1q?= =?utf-8?B?b1hjRTRXbUE4d0tiZUszZi9UM1VqdmsxWlcwUk9Fb3U0NDZPYTNkd2NMY0lE?= =?utf-8?B?aUdad1pDWVdDMXFNaXk2a2E3bjBzT1kzWGxLSlRGZGNHaGVzVXBMMFo1N24y?= =?utf-8?B?MVlYK1laamQ4N29YZ2w2QTRnLzRoWmxpMjJFVENIMXdHWThBVVdJeC92dXdn?= =?utf-8?B?ZWZ3TGJBVmxrQjBkSzE3QldaTzFFUmNLekdpL2NTZjhSRHpUejdUL3FnQVMz?= =?utf-8?B?N0NkZlFFMTFNUXZrZERzL3pPZE5NSjRCQW0vUHlZa09VcWxlbXA3RkVBR1Jm?= =?utf-8?B?ZVdEMTE1TnQvTnBhc3dUdllLVkRBc0VjV2U1aE1wazR1R1F5SS9KNVVtNy9F?= =?utf-8?Q?WlJjQrh0WXw7vIR7D9KV0j6IgPE0Bw=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR12MB8596.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VWZnSmg2OFVZeTJ2YUdGL1RjREJ5WndVa2RoNkQzNWIxdVVmY1RjTElteGdH?= =?utf-8?B?eGtkWjVsa09TN1FqS0pJcWdrYVZpZkNZdnp0WjlHNHJ3dGZ1bjczNmk2WkQv?= =?utf-8?B?Mm1EL2Rja0xlL001MWdxWTAzSHVMYjlPYmRYRmhUU25CS2ZncFQyU0tJU0Vx?= =?utf-8?B?OERYT0ZQdEpmRDJ4dzBtUWhwdi9lRnNvNERZVTdBdkY1TEdNR2ZkMjJQdm80?= =?utf-8?B?T3A0MVRiZS9ISGN1eXhvVXZuVVlkMUZ5dW9DV3VmOEFuQUdFM0RTK0JKazJX?= =?utf-8?B?WFRxQUxXY3RNeXRKWWxvYWVLM25yVStDOUZFcy9HZ25XbFFodTM2RGMyelB0?= =?utf-8?B?alRhSUFpbjVyT1pjMk50K3NldUo4cTZjQ2lva3RhaVUvQXR0TklickVMVkRH?= =?utf-8?B?TzBKcXViS1VrQ0tUUzNkWjJPOW8xN0hnUXltM05ScGpLQ3NIbU44dUYxK0c4?= =?utf-8?B?SWFQNWttSEJwN0JURUVKdDZYL01TRUdVZHBwN1lYbjNmZ1EvTUt2dXRTNzcy?= =?utf-8?B?WXpWRU5WNVJEZkpidDJRbkFEZkt3bXNnUDZFUTJqL2Y5RGg2Vzc2SmNkRnBP?= =?utf-8?B?djkxVGlxQnI5MW5iTVN3UVE0WHE1M0VmeC9DZnAxWWRwNVBmM2hoUXppUloz?= =?utf-8?B?UkJNTlRFdE9JZlF0cDRIcVgwQStLeWE0UG5uWTVuLzVDTUZ2aGVYRVBZRUF1?= =?utf-8?B?R1RFU3MyRGluY2NyTSsxeE1xc21yQnhMbUhxQUlhWmxTOW43dVprbmw1VjJk?= =?utf-8?B?cU95bXljVnZFYnZlTjVqM1Q2WENZN2ZMOURGM1habDlJTkYzQTJlUlU1NUIz?= =?utf-8?B?RWRiOGZ2RzdoOGkrWm1wbGZKTmNGRzlwWWd5MEUxRXNNeTIwSUdDckt2a0lQ?= =?utf-8?B?K1dybGFWd3B5REVCTzhIVjBoY0R0dFhHZzZmdHEvTm80aDlZbUVrV2R5SnZU?= =?utf-8?B?aitxaWlTVnFNWVZYSDcxUTkxcndjMjh2Skkvc2hGQVdQWUpFQXN1TTdITFNW?= =?utf-8?B?Q0lROUJVSVhCa1R0MmhuTUJHWEdWV2hYTFdMNUJLN3FkTHpISHZyWFJOYlMv?= =?utf-8?B?S2FhNnlSVDFuWkN3M0xHZzhSUW5LYU1jYzNKbDFHcit0UHJsQy9BY3pSYWRN?= =?utf-8?B?blgvOEF0T2R4ckVwc0xzZkcwcEFKUy8zKzlZVElMbEFyQkRFOGwyTko3OTlh?= =?utf-8?B?bTF1Y0FNYitjMXJuOEhaR1l5R3NYNFNzWXR5aUNWbmxsMGlVWjMvQ3d5dnBy?= =?utf-8?B?bS9oOHhmTWFrVEM4bG5Yd08xSnYxWlV2S1BuUTBOSjNORithZzJ3dXdjWDZ0?= =?utf-8?B?aHB5Rk94R0lNeUJWMUt1SHR4UCs0SENlV2ZIdDJtOXYyVmhCTjJSSDM3NW12?= =?utf-8?B?OVhmZjdBd3lRM3lBWEx1RFZ5K1ZvLzVWdUxxTDhIcjM3WjVtNUdLdk4wMk1m?= =?utf-8?B?Vm5nZ3FDTmdxektzSnlXcXRmbzJ2WUpnNDRLdlFMRDNhcnFvMVc2bjhYZ243?= =?utf-8?B?KzJFYXdNQnFuTnV0N2w1Q2lyMzdKSWU2MVJlekdta1Q5bHFZcG1zK1dORHJW?= =?utf-8?B?WjhEOXREVkxyQWRQL2NOUE9wbCsrT3JIL3doZkkzQTdxOGd4WHF5QnJVbWwx?= =?utf-8?B?UjFza244dC82aDNzaWZhUUJMeWFHQit1TWFlaUZ2NVcwZVQyWWlYNHZqclRD?= =?utf-8?B?YzBNbFpnQnlFT09pckcvWDZTOWNQYUlrb0NFWFJTN3FUd0lMY2VBbnhmOWFK?= =?utf-8?B?SVk1dWF4QkV2ZDExOXNBa1ZXbHpmK1MxOWhZOEE5SWt2YWxVUGo1M3cxTVhX?= =?utf-8?B?UWYwem1ONDdtVGl4S2xELzdZMnpzZjJ2V3pvTjJ5WCtJNytsMVVwclhrY3lL?= =?utf-8?B?NzZhZnkwazZZVmNhRW9IV0VSSHhrcE1aNGliaHJ5eTRqRTNYUDgwUUs4ZXk3?= =?utf-8?B?OTNSSEtNL2p2cW9wSnpjTW50cVdFNHRBdk5MbEFyaC8rREJ2R0FsUk1KRStZ?= =?utf-8?B?RVJpeTRoZEhPTytKTDg5bk9nSVVtK0RqcWp5Z2dDOXNrMEZ4T2NBandvRkFC?= =?utf-8?B?VW5uN2ppd3JBMVZKa01vOFBscjhKWktVOUYrbndJc1l2MEdWd2lxci9ib1Qr?= =?utf-8?Q?lyzY=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB8596.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d925984-c135-4dac-65dd-08ddd3388cb9 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Aug 2025 09:23:18.8461 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: s059wgyE5TAWqRPeiXsF4FEzQ/G9eH+gI7om1RxwH+3YUVzcdO2spXyCQbFw453kJSvjZ0mzz7wEYOOEL5KTOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9674 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 W1B1YmxpY10NCg0KSGkgTW9ydGVuLA0KDQpQbGVhc2UgZmluZCBvdXIgdGVzdGluZyByZXN1bHRz IGJlbG93DQoNCnNuaXBwZWQNCj4NCj4NCj4gQWRkZWQgZmFzdCBtYnVmIHJlbGVhc2UsIHJlLXVz aW5nIHRoZSBleGlzdGluZyBtYnVmIHBvb2wgcG9pbnRlciBpbiB0aGUgcXVldWUNCj4gc3RydWN0 dXJlLg0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5 c3RlbXMuY29tPg0KPiAtLS0NCj4gdjQ6DQo+ICogRm9yY2UgdGhlIGdlbmVyaWMgZnVuY3Rpb24g Y2FsbGVkIGJ5IHRoZSBzZXBhcmF0ZSB0eF9wa3RfYnVyc3QgY2FsbGJhY2tzDQo+ICAgdG8gYmUg aW5saW5lZC4NCj4gdjM6DQo+ICogVXNlIHNlcGFyYXRlIHR4X3BrdF9idXJzdCBjYWxsYmFja3Mg ZGVwZW5kaW5nIG9uIHBlci1kZXZpY2UgVFggb2ZmbG9hZA0KPiAgIGNvbmZpZ3VyYXRpb24uIChJ dmFuIE1hbG92LCBLb25zdGFudGluIEFuYW55ZXYpDQo+ICogQ2hlY2sgVFggb2ZmbG9hZCBjb25m aWd1cmF0aW9uIGZvciBtdXR1YWxseSBleGNsdXNpdmUgTUJVRl9GQVNUX0ZSRUUgYW5kDQo+ICAg TVVMVElfU0VHUyBmbGFncy4gKEl2YW4gTWFsb3YsIEtvbnN0YW50aW4gQW5hbnlldikNCj4gKiBB bHNvIGFubm91bmNlIE1VTFRJX1NFR1MgVFggb2ZmbG9hZCBhcyBhIHBlci1xdWV1ZSBjYXBhYmls aXR5Lg0KPiB2MjoNCj4gKiBBbHNvIGFubm91bmNlIHRoZSBNQlVGX0ZBU1RfRlJFRSBUWCBvZmZs b2FkIGFzIGEgcGVyLXF1ZXVlIGNhcGFiaWxpdHkuDQo+ICogQWRkZWQgbWlzc2luZyB0ZXN0IG9m IHBlci1kZXZpY2UgTUJVRl9GQVNUX0ZSRUUgVFggb2ZmbG9hZCBjb25maWd1cmF0aW9uDQo+ICAg d2hlbiBjb25maWd1cmluZyB0aGUgcXVldWUuDQo+IC0tLQ0KPiAgZHJpdmVycy9uZXQvbnVsbC9y dGVfZXRoX251bGwuYyB8IDE0MyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPiAg MSBmaWxlIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkNCj4NCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxsLmMgYi9kcml2ZXJzL25l dC9udWxsL3J0ZV9ldGhfbnVsbC5jIGluZGV4DQo+IDhhOWI3NGEwM2IuLjRmMjczMzE5ZjIgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L251bGwvcnRlX2V0aF9udWxsLmMNCj4gKysrIGIvZHJp dmVycy9uZXQvbnVsbC9ydGVfZXRoX251bGwuYw0KPiBAQCAtMzQsNiArMzQsMTcgQEAgc3RydWN0 IHBtZF9pbnRlcm5hbHM7ICBzdHJ1Y3QgbnVsbF9xdWV1ZSB7DQo+ICAgICAgICAgc3RydWN0IHBt ZF9pbnRlcm5hbHMgKmludGVybmFsczsNCj4NCj4gKyAgICAgICAvKioNCj4gKyAgICAgICAgKiBG b3IgUlggcXVldWU6DQo+ICsgICAgICAgICogIE1lbXBvb2wgdG8gYWxsb2NhdGUgbWJ1ZnMgZnJv bS4NCj4gKyAgICAgICAgKg0KPiArICAgICAgICAqIEZvciBUWCBxdWV1ZToNCj4gKyAgICAgICAg KiAgTWVtcG9vbCB0byBmcmVlIG1idWZzIHRvLCBpZiBmYXN0IHJlbGVhc2Ugb2YgbWJ1ZnMgaXMg ZW5hYmxlZC4NCj4gKyAgICAgICAgKiAgVUlOVFBUUl9NQVggaWYgdGhlIG1lbXBvb2wgZm9yIGZh c3QgcmVsZWFzZSBvZiBtYnVmcyBoYXMgbm90IHlldCBiZWVuDQo+IGRldGVjdGVkLg0KPiArICAg ICAgICAqICBOVUxMIGlmIGZhc3QgcmVsZWFzZSBvZiBtYnVmcyBpcyBub3QgZW5hYmxlZC4NCj4g KyAgICAgICAgKg0KPiArICAgICAgICAqICBAc2VlIFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZB U1RfRlJFRQ0KPiArICAgICAgICAqLw0KPiAgICAgICAgIHN0cnVjdCBydGVfbWVtcG9vbCAqbWJf cG9vbDsNCj4gICAgICAgICB2b2lkICpkdW1teV9wYWNrZXQ7DQo+DQo+IEBAIC0xNDEsOCArMTUy LDE1IEBAIGV0aF9udWxsX25vX3J4KHZvaWQgKnEgX19ydGVfdW51c2VkLCBzdHJ1Y3QgcnRlX21i dWYNCj4gKipidWZzIF9fcnRlX3VudXNlZCwNCj4gICAgICAgICByZXR1cm4gMDsNCj4gIH0NCj4N Cj4gLXN0YXRpYyB1aW50MTZfdA0KPiAtZXRoX251bGxfdHgodm9pZCAqcSwgc3RydWN0IHJ0ZV9t YnVmICoqYnVmcywgdWludDE2X3QgbmJfYnVmcykNCj4gK2VudW0gZXRoX3R4X2ZyZWVfbW9kZSB7 DQo+ICsgICAgICAgRVRIX1RYX0ZSRUVfTU9ERV9OT19NQlVGX0ZBU1RfRlJFRSwgLyogTUJVRl9G QVNUX0ZSRUUNCj4gbm90IHBvc3NpYmxlLiAqLw0KPiArICAgICAgIEVUSF9UWF9GUkVFX01PREVf TUJVRl9GQVNUX0ZSRUUsICAgIC8qIE1CVUZfRkFTVF9GUkVFDQo+IGVuYWJsZWQgZm9yIHRoZSBk ZXZpY2UuICovDQo+ICsgICAgICAgRVRIX1RYX0ZSRUVfTU9ERV9QRVJfUVVFVUUsICAgICAgICAg LyogVmFyaWVzIHBlciBUWCBxdWV1ZS4gKi8NCj4gK307DQo+ICsNCj4gK3N0YXRpYyBfX3J0ZV9h bHdheXNfaW5saW5lIHVpbnQxNl90DQo+ICtldGhfbnVsbF90eF9jb21tb24odm9pZCAqcSwgc3Ry dWN0IHJ0ZV9tYnVmICoqYnVmcywgdWludDE2X3QgbmJfYnVmcywNCj4gKyAgICAgICAgICAgICAg IGVudW0gZXRoX3R4X2ZyZWVfbW9kZSBtb2RlKQ0KPiAgew0KPiAgICAgICAgIHN0cnVjdCBudWxs X3F1ZXVlICpoID0gcTsNCj4gICAgICAgICB1bnNpZ25lZCBpbnQgaTsNCj4gQEAgLTE1MSwxMyAr MTY5LDQyIEBAIGV0aF9udWxsX3R4KHZvaWQgKnEsIHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsIHVp bnQxNl90DQo+IG5iX2J1ZnMpDQo+ICAgICAgICAgZm9yIChpID0gMDsgaSA8IG5iX2J1ZnM7IGkr KykNCj4gICAgICAgICAgICAgICAgIGJ5dGVzICs9IHJ0ZV9wa3RtYnVmX3BrdF9sZW4oYnVmc1tp XSk7DQo+DQo+IC0gICAgICAgcnRlX3BrdG1idWZfZnJlZV9idWxrKGJ1ZnMsIG5iX2J1ZnMpOw0K PiArICAgICAgIGlmIChtb2RlID09IEVUSF9UWF9GUkVFX01PREVfTUJVRl9GQVNUX0ZSRUUgfHwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgKG1vZGUgPT0gRVRIX1RYX0ZSRUVfTU9ERV9QRVJf UVVFVUUgJiYgaC0+bWJfcG9vbA0KPiAhPSBOVUxMKSkgew0KPiArICAgICAgICAgICAgICAgLyog UlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFICovDQo+ICsgICAgICAgICAgICAgICBp ZiAodW5saWtlbHkoaC0+bWJfcG9vbCA9PSAodm9pZCAqKVVJTlRQVFJfTUFYKSkgew0KPiArICAg ICAgICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkobmJfYnVmcyA9PSAwKSkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogRG8gbm90IGRlcmVmZXJlbmNl IHVuaW5pdGlhbGl6ZWQgYnVmc1swXS4gKi8NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgaC0+ bWJfcG9vbCA9IGJ1ZnNbMF0tPnBvb2w7DQo+ICsgICAgICAgICAgICAgICB9DQo+ICsgICAgICAg ICAgICAgICBydGVfbWJ1Zl9yYXdfZnJlZV9idWxrKGgtPm1iX3Bvb2wsIGJ1ZnMsIG5iX2J1ZnMp Ow0KPiArICAgICAgIH0gZWxzZSB7DQo+ICsgICAgICAgICAgICAgICBydGVfcGt0bWJ1Zl9mcmVl X2J1bGsoYnVmcywgbmJfYnVmcyk7DQo+ICsgICAgICAgfQ0KPiAgICAgICAgIHJ0ZV9hdG9taWNf ZmV0Y2hfYWRkX2V4cGxpY2l0KCZoLT50eF9wa3RzLCBuYl9idWZzLA0KPiBydGVfbWVtb3J5X29y ZGVyX3JlbGF4ZWQpOw0KPiAgICAgICAgIHJ0ZV9hdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KCZo LT50eF9ieXRlcywgYnl0ZXMsDQo+IHJ0ZV9tZW1vcnlfb3JkZXJfcmVsYXhlZCk7DQo+DQo+ICAg ICAgICAgcmV0dXJuIG5iX2J1ZnM7DQo+ICB9DQo+DQo+ICtzdGF0aWMgdWludDE2X3QNCj4gK2V0 aF9udWxsX3R4KHZvaWQgKnEsIHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsIHVpbnQxNl90IG5iX2J1 ZnMpIHsNCj4gKyAgICAgICByZXR1cm4gZXRoX251bGxfdHhfY29tbW9uKHEsIGJ1ZnMsIG5iX2J1 ZnMsDQo+ICtFVEhfVFhfRlJFRV9NT0RFX1BFUl9RVUVVRSk7IH0NCj4gKw0KPiArc3RhdGljIHVp bnQxNl90DQo+ICtldGhfbnVsbF90eF9ub19tYnVmX2Zhc3RfZnJlZSh2b2lkICpxLCBzdHJ1Y3Qg cnRlX21idWYgKipidWZzLCB1aW50MTZfdA0KPiArbmJfYnVmcykgew0KPiArICAgICAgIHJldHVy biBldGhfbnVsbF90eF9jb21tb24ocSwgYnVmcywgbmJfYnVmcywNCj4gK0VUSF9UWF9GUkVFX01P REVfTk9fTUJVRl9GQVNUX0ZSRUUpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdWludDE2X3QNCj4g K2V0aF9udWxsX3R4X21idWZfZmFzdF9mcmVlKHZvaWQgKnEsIHN0cnVjdCBydGVfbWJ1ZiAqKmJ1 ZnMsIHVpbnQxNl90DQo+ICtuYl9idWZzKSB7DQo+ICsgICAgICAgcmV0dXJuIGV0aF9udWxsX3R4 X2NvbW1vbihxLCBidWZzLCBuYl9idWZzLA0KPiArRVRIX1RYX0ZSRUVfTU9ERV9NQlVGX0ZBU1Rf RlJFRSk7IH0NCj4gKw0KPiAgc3RhdGljIHVpbnQxNl90DQo+ICBldGhfbnVsbF9jb3B5X3R4KHZv aWQgKnEsIHN0cnVjdCBydGVfbWJ1ZiAqKmJ1ZnMsIHVpbnQxNl90IG5iX2J1ZnMpICB7IEBAIC0x NzgsOQ0KPiArMjI1LDQ4IEBAIGV0aF9udWxsX2NvcHlfdHgodm9pZCAqcSwgc3RydWN0IHJ0ZV9t YnVmICoqYnVmcywgdWludDE2X3QgbmJfYnVmcykNCj4gICAgICAgICByZXR1cm4gbmJfYnVmczsN Cj4gIH0NCj4NCj4gK3N0YXRpYyB2b2lkDQo+ICtldGhfZGV2X2Fzc2lnbl9yeHR4X29wcyhzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldikgew0KPiArICAgICAgIHN0cnVjdCBwbWRfaW50ZXJuYWxzICpp bnRlcm5hbHMgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiArDQo+ICsgICAgICAgaWYgKGlu dGVybmFscy0+cGFja2V0X2NvcHkpIHsNCj4gKyAgICAgICAgICAgICAgIGRldi0+cnhfcGt0X2J1 cnN0ID0gZXRoX251bGxfY29weV9yeDsNCj4gKyAgICAgICAgICAgICAgIGRldi0+dHhfcGt0X2J1 cnN0ID0gZXRoX251bGxfY29weV90eDsNCj4gKyAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAg ICAgICAgaWYgKGludGVybmFscy0+bm9fcngpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGRl di0+cnhfcGt0X2J1cnN0ID0gZXRoX251bGxfbm9fcng7DQo+ICsgICAgICAgICAgICAgICBlbHNl DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGRldi0+cnhfcGt0X2J1cnN0ID0gZXRoX251bGxf cng7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGRldi0+dHhfcGt0X2J1cnN0ID0gZXRoX251bGxf dHg7DQo+ICsgICAgICAgICAgICAgICBpZiAoZGV2LT5kYXRhLT5kZXZfY29uZi50eG1vZGUub2Zm bG9hZHMgJg0KPiBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgZGV2LT50eF9wa3RfYnVyc3QgPSBldGhfbnVsbF90eF9ub19tYnVmX2Zhc3Rf ZnJlZTsNCj4gKyAgICAgICAgICAgICAgIGlmIChkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5v ZmZsb2FkcyAmDQo+IFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgZGV2LT50eF9wa3RfYnVyc3QgPSBldGhfbnVsbF90eF9tYnVmX2Zh c3RfZnJlZTsNCj4gKyAgICAgICB9DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBpbnQNCj4gLWV0aF9k ZXZfY29uZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2IF9fcnRlX3VudXNlZCkNCj4gK2V0 aF9kZXZfY29uZmlndXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KPiAgew0KPiArICAgICAg IHN0cnVjdCBwbWRfaW50ZXJuYWxzICppbnRlcm5hbHMgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRl Ow0KPiArDQo+ICsgICAgICAgaWYgKChkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5vZmZsb2Fk cyAmDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIChSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9G QVNUX0ZSRUUgfA0KPiBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykpID09DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIChSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUgfA0K PiBSVEVfRVRIX1RYX09GRkxPQURfTVVMVElfU0VHUykpIHsNCj4gKyAgICAgICAgICAgICAgIFBN RF9MT0coRVJSLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAiVFggb2ZmbG9hZHMgTUJVRl9G QVNUX0ZSRUUgYW5kIE1VTFRJX1NFR1MgYXJlIG11dHVhbGx5DQo+IGV4Y2x1c2l2ZSIpOw0KPiAr ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgICAgfQ0KPiArICAgICAgIGlm IChkZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5vZmZsb2FkcyAmDQo+IFJURV9FVEhfVFhfT0ZG TE9BRF9NQlVGX0ZBU1RfRlJFRSAmJg0KPiArICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5h bHMtPnBhY2tldF9jb3B5KSB7DQo+ICsgICAgICAgICAgICAgICBQTURfTE9HKElORk8sDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICJUWCBvZmZsb2FkIE1CVUZfRkFTVF9GUkVFIGlzIGlnbm9y ZWQgd2l0aCAlcyBhcmd1bWVudCIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIEVUSF9OVUxM X1BBQ0tFVF9DT1BZX0FSRyk7DQo+ICsgICAgICAgfQ0KPiArICAgICAgIC8qIEFzc2lnbiBSWC9U WCBvcHMgZGVwZW5kaW5nIG9uIGRldmljZSBUWCBvZmZsb2Fkcy4gKi8NCj4gKyAgICAgICBldGhf ZGV2X2Fzc2lnbl9yeHR4X29wcyhkZXYpOw0KPiAgICAgICAgIHJldHVybiAwOw0KPiAgfQ0KPg0K PiBAQCAtMjU5LDcgKzM0NSw3IEBAIHN0YXRpYyBpbnQNCj4gIGV0aF90eF9xdWV1ZV9zZXR1cChz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgdHhfcXVldWVfaWQsDQo+ICAgICAgICAg ICAgICAgICB1aW50MTZfdCBuYl90eF9kZXNjIF9fcnRlX3VudXNlZCwNCj4gICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBzb2NrZXRfaWQgX19ydGVfdW51c2VkLA0KPiAtICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfdHhjb25mICp0eF9jb25mIF9fcnRlX3VudXNlZCkNCj4g KyAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBydGVfZXRoX3R4Y29uZiAqdHhfY29uZikNCj4g IHsNCj4gICAgICAgICBzdHJ1Y3QgcnRlX21idWYgKmR1bW15X3BhY2tldDsNCj4gICAgICAgICBz dHJ1Y3QgcG1kX2ludGVybmFscyAqaW50ZXJuYWxzOyBAQCAtMjczLDYgKzM1OSwyMCBAQA0KPiBl dGhfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQxNl90IHR4X3F1 ZXVlX2lkLA0KPiAgICAgICAgIGlmICh0eF9xdWV1ZV9pZCA+PSBkZXYtPmRhdGEtPm5iX3R4X3F1 ZXVlcykNCj4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOw0KPg0KPiArICAgICAgIGlm ICgoKGRldi0+ZGF0YS0+ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzIHwgdHhfY29uZi0+b2ZmbG9h ZHMpICYNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgKFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVG X0ZBU1RfRlJFRSB8DQo+IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKSkgPT0NCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgKFJURV9FVEhfVFhfT0ZGTE9BRF9NQlVGX0ZBU1RfRlJFRSB8 DQo+IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxUSV9TRUdTKSkgew0KPiArICAgICAgICAgICAgICAg UE1EX0xPRyhFUlIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICJUWCBvZmZsb2FkcyBNQlVG X0ZBU1RfRlJFRSBhbmQgTVVMVElfU0VHUyBhcmUgbXV0dWFsbHkNCj4gZXhjbHVzaXZlIik7DQo+ ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICAgICB9DQo+ICsgICAgICAg aWYgKHR4X2NvbmYtPm9mZmxvYWRzICYgUlRFX0VUSF9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVF ICYmDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFscy0+cGFja2V0X2NvcHkpIHsN Cj4gKyAgICAgICAgICAgICAgIFBNRF9MT0coSU5GTywNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIlRYIG9mZmxvYWQgTUJVRl9GQVNUX0ZSRUUgaXMgaWdub3JlZCB3aXRoICVzIGFyZ3VtZW50 IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgRVRIX05VTExfUEFDS0VUX0NPUFlfQVJHKTsN Cj4gKyAgICAgICB9DQo+ICsNCj4gICAgICAgICBwYWNrZXRfc2l6ZSA9IGludGVybmFscy0+cGFj a2V0X3NpemU7DQo+DQo+ICAgICAgICAgZGV2LT5kYXRhLT50eF9xdWV1ZXNbdHhfcXVldWVfaWRd ID0gQEAgLTI4NCw2ICszODQsMTAgQEANCj4gZXRoX3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2LCB1aW50MTZfdCB0eF9xdWV1ZV9pZCwNCj4NCj4gICAgICAgICBpbnRlcm5h bHMtPnR4X251bGxfcXVldWVzW3R4X3F1ZXVlX2lkXS5pbnRlcm5hbHMgPSBpbnRlcm5hbHM7DQo+ ICAgICAgICAgaW50ZXJuYWxzLT50eF9udWxsX3F1ZXVlc1t0eF9xdWV1ZV9pZF0uZHVtbXlfcGFj a2V0ID0gZHVtbXlfcGFja2V0Ow0KPiArICAgICAgIGludGVybmFscy0+dHhfbnVsbF9xdWV1ZXNb dHhfcXVldWVfaWRdLm1iX3Bvb2wgPQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAoZGV2LT5k YXRhLT5kZXZfY29uZi50eG1vZGUub2ZmbG9hZHMgfCB0eF9jb25mLT5vZmZsb2FkcykgJg0KPiAr ICAgICAgICAgICAgICAgICAgICAgICBSVEVfRVRIX1RYX09GRkxPQURfTUJVRl9GQVNUX0ZSRUUg Pw0KPiArICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKVVJTlRQVFJfTUFYIDogTlVMTDsN Cj4NCj4gICAgICAgICByZXR1cm4gMDsNCj4gIH0NCj4gQEAgLTMwOSw3ICs0MTMsMTAgQEAgZXRo X2Rldl9pbmZvKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiAgICAgICAgIGRldl9pbmZvLT5t YXhfcnhfcXVldWVzID0gUlRFX0RJTShpbnRlcm5hbHMtPnJ4X251bGxfcXVldWVzKTsNCj4gICAg ICAgICBkZXZfaW5mby0+bWF4X3R4X3F1ZXVlcyA9IFJURV9ESU0oaW50ZXJuYWxzLT50eF9udWxs X3F1ZXVlcyk7DQo+ICAgICAgICAgZGV2X2luZm8tPm1pbl9yeF9idWZzaXplID0gMDsNCj4gLSAg ICAgICBkZXZfaW5mby0+dHhfb2ZmbG9hZF9jYXBhID0gUlRFX0VUSF9UWF9PRkZMT0FEX01VTFRJ X1NFR1MgfA0KPiBSVEVfRVRIX1RYX09GRkxPQURfTVRfTE9DS0ZSRUU7DQo+ICsgICAgICAgZGV2 X2luZm8tPnR4X3F1ZXVlX29mZmxvYWRfY2FwYSA9DQo+IFJURV9FVEhfVFhfT0ZGTE9BRF9NVUxU SV9TRUdTIHwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgUlRFX0VUSF9UWF9PRkZMT0FEX01C VUZfRkFTVF9GUkVFOw0KPiArICAgICAgIGRldl9pbmZvLT50eF9vZmZsb2FkX2NhcGEgPSBSVEVf RVRIX1RYX09GRkxPQURfTVRfTE9DS0ZSRUUgfA0KPiArICAgICAgICAgICAgICAgICAgICAgICBk ZXZfaW5mby0+dHhfcXVldWVfb2ZmbG9hZF9jYXBhOw0KPg0KPiAgICAgICAgIGRldl9pbmZvLT5y ZXRhX3NpemUgPSBpbnRlcm5hbHMtPnJldGFfc2l6ZTsNCj4gICAgICAgICBkZXZfaW5mby0+Zmxv d190eXBlX3Jzc19vZmZsb2FkcyA9IGludGVybmFscy0+Zmxvd190eXBlX3Jzc19vZmZsb2FkczsN Cj4gQEAgLTU5MCwxNiArNjk3LDcgQEAgZXRoX2Rldl9udWxsX2NyZWF0ZShzdHJ1Y3QgcnRlX3Zk ZXZfZGV2aWNlICpkZXYsIHN0cnVjdA0KPiBwbWRfb3B0aW9ucyAqYXJncykNCj4gICAgICAgICBl dGhfZGV2LT5kZXZfb3BzID0gJm9wczsNCj4NCj4gICAgICAgICAvKiBmaW5hbGx5IGFzc2lnbiBy eCBhbmQgdHggb3BzICovDQo+IC0gICAgICAgaWYgKGludGVybmFscy0+cGFja2V0X2NvcHkpIHsN Cj4gLSAgICAgICAgICAgICAgIGV0aF9kZXYtPnJ4X3BrdF9idXJzdCA9IGV0aF9udWxsX2NvcHlf cng7DQo+IC0gICAgICAgICAgICAgICBldGhfZGV2LT50eF9wa3RfYnVyc3QgPSBldGhfbnVsbF9j b3B5X3R4Ow0KPiAtICAgICAgIH0gZWxzZSBpZiAoaW50ZXJuYWxzLT5ub19yeCkgew0KPiAtICAg ICAgICAgICAgICAgZXRoX2Rldi0+cnhfcGt0X2J1cnN0ID0gZXRoX251bGxfbm9fcng7DQo+IC0g ICAgICAgICAgICAgICBldGhfZGV2LT50eF9wa3RfYnVyc3QgPSBldGhfbnVsbF90eDsNCj4gLSAg ICAgICB9IGVsc2Ugew0KPiAtICAgICAgICAgICAgICAgZXRoX2Rldi0+cnhfcGt0X2J1cnN0ID0g ZXRoX251bGxfcng7DQo+IC0gICAgICAgICAgICAgICBldGhfZGV2LT50eF9wa3RfYnVyc3QgPSBl dGhfbnVsbF90eDsNCj4gLSAgICAgICB9DQo+ICsgICAgICAgZXRoX2Rldl9hc3NpZ25fcnh0eF9v cHMoZXRoX2Rldik7DQo+DQo+ICAgICAgICAgcnRlX2V0aF9kZXZfcHJvYmluZ19maW5pc2goZXRo X2Rldik7DQo+ICAgICAgICAgcmV0dXJuIDA7DQo+IEBAIC02NzgsNyArNzc2LDYgQEAgcnRlX3Bt ZF9udWxsX3Byb2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKmRldikNCj4gICAgICAgICBQTURf TE9HKElORk8sICJJbml0aWFsaXppbmcgcG1kX251bGwgZm9yICVzIiwgbmFtZSk7DQo+DQo+ICAg ICAgICAgaWYgKHJ0ZV9lYWxfcHJvY2Vzc190eXBlKCkgPT0gUlRFX1BST0NfU0VDT05EQVJZKSB7 DQo+IC0gICAgICAgICAgICAgICBzdHJ1Y3QgcG1kX2ludGVybmFscyAqaW50ZXJuYWxzOw0KPiAg ICAgICAgICAgICAgICAgZXRoX2RldiA9IHJ0ZV9ldGhfZGV2X2F0dGFjaF9zZWNvbmRhcnkobmFt ZSk7DQo+ICAgICAgICAgICAgICAgICBpZiAoIWV0aF9kZXYpIHsNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgUE1EX0xPRyhFUlIsICJGYWlsZWQgdG8gcHJvYmUgJXMiLCBuYW1lKTsgQEAgLTY4 NywxNyArNzg0LDcNCj4gQEAgcnRlX3BtZF9udWxsX3Byb2JlKHN0cnVjdCBydGVfdmRldl9kZXZp Y2UgKmRldikNCj4gICAgICAgICAgICAgICAgIC8qIFRPRE86IHJlcXVlc3QgaW5mbyBmcm9tIHBy aW1hcnkgdG8gc2V0IHVwIFJ4IGFuZCBUeCAqLw0KPiAgICAgICAgICAgICAgICAgZXRoX2Rldi0+ ZGV2X29wcyA9ICZvcHM7DQo+ICAgICAgICAgICAgICAgICBldGhfZGV2LT5kZXZpY2UgPSAmZGV2 LT5kZXZpY2U7DQo+IC0gICAgICAgICAgICAgICBpbnRlcm5hbHMgPSBldGhfZGV2LT5kYXRhLT5k ZXZfcHJpdmF0ZTsNCj4gLSAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMtPnBhY2tldF9jb3B5 KSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGV0aF9kZXYtPnJ4X3BrdF9idXJzdCA9IGV0 aF9udWxsX2NvcHlfcng7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGV0aF9kZXYtPnR4X3Br dF9idXJzdCA9IGV0aF9udWxsX2NvcHlfdHg7DQo+IC0gICAgICAgICAgICAgICB9IGVsc2UgaWYg KGludGVybmFscy0+bm9fcngpIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgZXRoX2Rldi0+ cnhfcGt0X2J1cnN0ID0gZXRoX251bGxfbm9fcng7DQo+IC0gICAgICAgICAgICAgICAgICAgICAg IGV0aF9kZXYtPnR4X3BrdF9idXJzdCA9IGV0aF9udWxsX3R4Ow0KPiAtICAgICAgICAgICAgICAg fSBlbHNlIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgZXRoX2Rldi0+cnhfcGt0X2J1cnN0 ID0gZXRoX251bGxfcng7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGV0aF9kZXYtPnR4X3Br dF9idXJzdCA9IGV0aF9udWxsX3R4Ow0KPiAtICAgICAgICAgICAgICAgfQ0KPiArICAgICAgICAg ICAgICAgZXRoX2Rldl9hc3NpZ25fcnh0eF9vcHMoZXRoX2Rldik7DQo+ICAgICAgICAgICAgICAg ICBydGVfZXRoX2Rldl9wcm9iaW5nX2ZpbmlzaChldGhfZGV2KTsNCj4gICAgICAgICAgICAgICAg IHJldHVybiAwOw0KPiAgICAgICAgIH0NCj4gLS0NCj4gMi40My4wDQoNClNpbmdsZSBQb3J0ICAg ICB8IFRYIE1QUFMgfCBSWCBNUFBTICAgICB8IEZ1bmMtbGF0ZW5jeTogZXRoX251bGxfdHggICAg IHwgRnVuYy1sYXRlbmN5OiBydGVfcGt0bWJ1Zl9mcmVlX2J1bGsNCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjI1LjA3LXJjMSAgICAgICB8IDExNy42MSB8IDExNy42 MSB8IDE5MTggfCAyNjY3DQoyNS4wNy1yYzEgLSB2MiAgfCAxMTcuNTUgfCAxMTcuNTQgfCAxOTIx IHwgMjY2MA0KMjUuMTEtcmMwICAgICAgIHwgMTE4LjE3IHwgMTE4LjE3IHwgMTkxMSB8IDI2NzkN CjI1LjExLXJjMCAtIHY0ICB8IDExNi4xOCB8IDExNi4xOCB8IDE5MjUgfCAyNjc3DQoNCkR1YWwg UG9ydCAgICAgICB8IFRYIE1QUFMgfCBSWCBNUFBTICAgICB8IEZ1bmMtbGF0ZW5jeTogZXRoX251 bGxfdHggICAgIHwgRnVuYy1sYXRlbmN5OiBydGVfcGt0bWJ1Zl9mcmVlX2J1bGsNCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCjI1LjA3LXJjMSAgICAgICB8IDExNy42 MSAgICAgICAgfCAxMTcuNjEgICAgICAgIHwgMTk0MiAgfCAyNTU3DQoyNS4wNy1yYzEgLSB2MiAg fCAxMTcuNTQgICAgICAgIHwgMTE3LjU0ICAgICAgICB8IDE5NDYgIHwgMjc0MA0KMjUuMTEtcmMw ICAgICAgIHwgMTE4LjIxICAgICAgICB8IDExOC4yMSAgICAgICAgfCAxOTI0ICB8IDI3NjgNCjI1 LjExLXJjMCAtIHY0ICB8IDExNy4xMiAgICAgICAgfCAxMTcuMTIgICAgICAgIHwgMTk0MyAgfCAy NzcwDQoNCg==