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 92450470C9 for ; Tue, 23 Dec 2025 08:47:53 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6CA2C4025A; Tue, 23 Dec 2025 08:47:53 +0100 (CET) Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011033.outbound.protection.outlook.com [40.93.194.33]) by mails.dpdk.org (Postfix) with ESMTP id 360A94025A for ; Tue, 23 Dec 2025 08:47:52 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nfjh7EqJgvz/TGGp25TxKWu0rUfb0egtuv+KZkqwACdKfiSGOmL1oAvOYAQIQRhaxXVa1DNtOLuNjYvCmxF8/Wq+b9Kv4JuWAhVayMe4IPrBKtaY5G2lv6adnBZlQ8AOH8/73DIT3CB8AGrbNuaS1zVvdL+PgdabetW3AxS0fdpPEcOt2gNwwK/VFpP6bknHd4VRT15AizGIEasF69GOEpXBQRELncXXD2WKZcYWhUtLz+uW+7a+s9qiYLNyFlos9mxdnr+bdSXhxHFMF9dUlzn8D1NzwQs6tvwS0aSeEpPh3vZ95+UVJQGVGHqk4uDu+aiNDJH6+hfqEdHuGsDzUA== 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=LczMAs90qENlKr0cOJzldhefYAm/3zJYvH3CgMA+8XU=; b=XzFUHvCSJqMPCgIwMpimI9BtE5IpvYPnFh9qSf/JtcgCOOdv/1SqdvNKSV1gWp26UxMX7ZiqGphSIouaIf36Chy5wr/chvdYlmhrRxBEZWPTCY4QcnOUb+278oebaKqneF2X+BZg19HCdS27VG/1W1gDBaHj+M1bEakS5LaXiF5ZCWajNDRdKy2cwgiYFXDxCA+8K49zqpzCh5v1GamzvvH6hvSX/GZ3TuwckkauOTpHSpIN0NB9NG19wB1DWDQ0XEdyo/KdGgIK3kjAFWqzHC815CxDxnX8dMkZBYM+76ZX/iIAB17/fQCFqdUlNW5vAD3re/aY3A3RKz7DgF3Nrw== 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=LczMAs90qENlKr0cOJzldhefYAm/3zJYvH3CgMA+8XU=; b=RiCkAxyw5A17anJFDwtQtgA1nhKXqswRnMLl6zblxlajbqNM4fSCmYGUU8ZtFDpZwS3l6rM0bnzdU3u19tPa0Feg2VupdNx+z2wZT2jHymG8iCD6ruaHRnewzjrrN6XaBYDB4XNKwEXuvAcUfgr0VcTGhtX8UKc1VTze94sB+MTLG1knf3+fmy2KLJ5pZQ3Uicm8llBOs5Kr4BED13HoVSlTzJhcfgz8tdLtwOHP4lUxmeQ7GZI4zqgJZEZW93mp8VC2oLvzed3TUs0dyfqt8F9ACmmW4p83Ix0Cj3L5YQELzymPMobrzgcPM66ZXjm6IunwVMKbsh6mizq5jxgpag== Received: from MW4PR12MB7484.namprd12.prod.outlook.com (2603:10b6:303:212::14) by CY3PR12MB9702.namprd12.prod.outlook.com (2603:10b6:930:103::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.11; Tue, 23 Dec 2025 07:47:47 +0000 Received: from MW4PR12MB7484.namprd12.prod.outlook.com ([fe80::5a5:56d:2ea4:ee25]) by MW4PR12MB7484.namprd12.prod.outlook.com ([fe80::5a5:56d:2ea4:ee25%7]) with mapi id 15.20.9456.008; Tue, 23 Dec 2025 07:47:47 +0000 From: Shani Peretz To: Gagandeep Singh , "stable@dpdk.org" CC: "hemant.agrawal@nxp.com" Subject: RE: [PATCH 23.11] bus/dpaa: improve cleanup Thread-Topic: [PATCH 23.11] bus/dpaa: improve cleanup Thread-Index: AQHccwqu1Rhs1mv1zESfMCvhxZSndrUu2lJg Date: Tue, 23 Dec 2025 07:47:47 +0000 Message-ID: References: <20251222061607.2685380-1-g.singh@nxp.com> In-Reply-To: <20251222061607.2685380-1-g.singh@nxp.com> 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-traffictypediagnostic: MW4PR12MB7484:EE_|CY3PR12MB9702:EE_ x-ms-office365-filtering-correlation-id: 61189ddd-3d56-4826-4d1b-08de41f790ea x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?YUU2R2kvbStIZ1VtZjBMMnB1ZkZ5aHh3bTlhYmphVWZBU0NTSzlnNzZoR2ww?= =?utf-8?B?dExNZDcyeWp5OExyTHUvTHdlUVRuSVRaUmFJdDdSYXhJWGEvS0ljdWNNNmhl?= =?utf-8?B?UVAwUFkydmhtTmFta04xd0ZWVFFDOFZzalV0RmRDcGw2VityUElWYmtRVTZG?= =?utf-8?B?cTc0Zy9HUS9VaG9xaXBoelFHRXpkcGtwdWZ1RStxZHFOQXVPY2tNaXNaNlV2?= =?utf-8?B?TmJGa25hcGx1YkRqK1dFTytBdy92MnFkY2YzOWlKcU4vUkJOQjhEWEVrU09s?= =?utf-8?B?dUo2TExONWZ6YmJsNHVCM09CTkRFZHVDZUdLbmhMaVRpSjFmV2dqY1JueVgw?= =?utf-8?B?aGN2T0tjM0pnL2t2UW5JZkFvc0paV0RaZmxCdkdRSHZXa0I1U0VyWDQxYTNY?= =?utf-8?B?VnUzYkZzRy9DRXQzVEVSYy9iUXMxN2crRUdwZUdXZkh6dGo0ZmluUTVSOUpK?= =?utf-8?B?SEFlRTM5MWE3SjZxWnFoSXZMNVVxSHpxNHhOckJHVkRzQTExeGY2cVFLSFpT?= =?utf-8?B?R21hV1Q1VWhUVzlmQ1J1UldkS0VLR2hZazFJWXFYM3UwS01BNWIyU3BYNzRv?= =?utf-8?B?TFJpRWt2MEpwWCtnMGJiS1ZzYmRzQUU5WnJGYlhEcUw3LzBsVGdNUk5jck05?= =?utf-8?B?bzhsL2JaMzhDU1FrTk10YllpRCtBQ2dET1lzVjQ4L2pMUU1lem54N2lDUmU4?= =?utf-8?B?YnlFMDNYT1hYanNqdjJ5VGptQ3M5Y1QrSlIyTXA3eCtxR3R1SFVkdmw3WU5v?= =?utf-8?B?SFlqVmNaSnAwUGp6SmVkYUovcThYZlA0aG5wMXExc1RXcEtubDFZcE5hblZp?= =?utf-8?B?Z21ZTmpWRlNIaURrbVZFSjQzTkRzb0x2eEdzLzEwQVVnVjJaUnVkTHpnNVhq?= =?utf-8?B?M2ZoS0gwL0RmK09RWG9sK3M4eExXa29SK2l3ZytXKzR0MnU3ZVNrRDVHWWsv?= =?utf-8?B?UWJDNHNjSzJSakNSbWFHSTBFSnBYQTRaUjYxbWN4VVZpUnprTlNYaktCbnNM?= =?utf-8?B?RXNIV0lKT2xDK21QakRQWDcrYW9pRjJ6NzdweWptcnRFVUlzbllRbk16VWor?= =?utf-8?B?L3ZtTlVWb1l6VmgvWEtWQS9uTGg5RFJyWGozM3EraEV2YlVubW9DTkZZWXZp?= =?utf-8?B?dzJzRHdjcUtacGdUYUtEa2gvY2N1MzRJcDZxSDhVRUtPalBlald5UFNNc1BV?= =?utf-8?B?SW9wQmkvQzJPUU9lN21rNnROdFgxTlVSYlBvKzdTY1lkUy9qdEs2RnJCMjJV?= =?utf-8?B?WXVzNmtaYmRvcUNqVnJiSUkwbXJEMTJpMG15SW8wa1RQTHE4RG96TWxTelU3?= =?utf-8?B?REp5aE5zdi9jNkhYYXJLU0RMcTgvR01NRTAzUWMzY0w2MmtqY2xkYVo5YW1D?= =?utf-8?B?dVI1QzFJdnNOK2hQclJqVWpua21ZaFl4WGI4eDNsb3dsYW83aHdBeHJTWEhT?= =?utf-8?B?RDN1RFlLTlBmNXdwNytNYWk2VHljNkwwa3A2TEIzR1hrUUxlR0RpWUdZS3dh?= =?utf-8?B?NGc0TlM0ZjJQN09GcFN5WWxnMXRBTWdxWXNyMDR0cDZid01qRGRoSnJWK0RF?= =?utf-8?B?ZlN1SWJ2MUQyZG9vOFYrVmNDM3RzOTcwZ2xwblhOSVRrdmEzSnlyemFHZ3pS?= =?utf-8?B?dTN6M2kxVitPL2xLNDRpT3M5bHVUdzhmS1VPY016bGFZS3N2QkxxWnp2TUZE?= =?utf-8?B?M0NsZjdybWlaM1o1V0g2cTVia1lCV0diTFp4enF3cjNFdlFJOVMzc2tvRXlD?= =?utf-8?B?V2JBZ2xQd2hIUXQrN0pSbm45eXo5MjB3N2dnTVY0bGQrUlVkY2NMRGExRmVa?= =?utf-8?B?b0YrWHZTTFc1b0tmejdTS3FpdmxKOWI5SURnWGtNSURVSVhBQmRBV0RLWE51?= =?utf-8?B?dnVHMytRQW9WcGdsckJac0ovTVYwMVBYNk1wK3NvaHFoakFXdm5FL1REdks3?= =?utf-8?B?UFpPQ1c4SjBybkNBMlp1ZENucHRIdlpONzE0MjJVQ0ZER1pTNWNPV0w1Kzdn?= =?utf-8?B?R09QaGxlT0VSZUNTOXdiWmI5c01pQnl3SVV4dXhPWmRRUGtlUEtlKzJjRmhx?= =?utf-8?Q?e1CLbI?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW4PR12MB7484.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NjFWSlVnSVcwTnNsaGl1YlorVHgwREtaZS9NbmFyVWNBR3BVTkJjSHp4ZjVH?= =?utf-8?B?cW1Fa2JCanVlc1haeElYaC95V0lTS3RsVGJnQjdvSHdWWmpkZDFLOHNXMUFi?= =?utf-8?B?S1dJRjVqbTNTelc2Tng1bnAxdW9hRVN3MGpzWVhmbUVEUkoxM2lBeFU5T1NJ?= =?utf-8?B?c2ZtMGV3TGljek1wVHV3Tk1vVU1IMGpPTlByWFg3ZnVPMktPdzg5dUtja2Ra?= =?utf-8?B?UmtFNjNiczFJOTFJQWF0dUhwcFZzSzVwL1ZvNm02bnUveGF1VHFOU1NJUmFu?= =?utf-8?B?R01vYVFvVjRBUUc2eWM2UlBqS2U3blFhUy9BMDZGQlZvci9EOXhpVUU0cW0r?= =?utf-8?B?ZWE5UWcrU3lFdU8rWlhDUHY1T0VzUFRMUEFNcjFLcUt6RzhzZldadGFNSWZG?= =?utf-8?B?dUFaTkpYZEhWdndSTTlPMzdhaElrNjhuenRtSkZGVmplakJzSmMrRE80UmhM?= =?utf-8?B?WUpBUzUzeHB3WU1XMmM1RjYvY244K0hRTHhSR2J0MGpJWG1yL0xBY05vZnRR?= =?utf-8?B?VjdNZ3BITzh4NCswUTF3bEg1QUxBYVFaeDNQbmxXeFA2TnBYYitTY3VGL1Nn?= =?utf-8?B?M29Bbkx3V0RHYnZ1dWdhaHhBY2Y0UTlkZCswNEoyZWt4QmUwRG02MmdOSEZz?= =?utf-8?B?bEJNR3B4ci96dDlKTXpiT2dYdlBXR1E3dEFtWTJ4UStHTjVOOWt5NDVJSTZU?= =?utf-8?B?cGYzcWU3WmtETCtvZVY5aitPcFZrQUZrcjZVa0JFZWFyb1R5Sm9RUFI4Y09G?= =?utf-8?B?cWE3Rnc4QzFrcjZFUStRbHdaWGx0dm9wT09XZGlGUjAwSDl6RWgraE9NN01w?= =?utf-8?B?TnZJaGtEeWpock5ZbUFnNGs5UGVNT3orYTJwOTdoOGorV0NGSDlMN1F2bnl0?= =?utf-8?B?OFhpTkFHSllKNmx6Y2R2emFRaUZDOHhDZjkyZks3aERUT2VpWG85Z3lrbTRD?= =?utf-8?B?MVhTU0g3RjJET08vQzNkbzZLYkJyNThxcnBwUEVsSFpUL0RBRmN4cTJtSFdr?= =?utf-8?B?WEszaVNiREhCQ0VXc0MrTlZzMzlteG1KSDdrWXZPZ2xHSkRacHBvaU01UGpY?= =?utf-8?B?ZHp2bjdjcEJUclEvak1BdDZsZ1NCQ1FxLzRxNXp6UFFyaEN6WmVmS3NJM0V2?= =?utf-8?B?MjMya1VHaGZCdStiVXdIb1JMSGljMERIUWFpaE1yRzFMMnJlVDE2dlhyRTd3?= =?utf-8?B?aVNvM0JnZ1ZVbXRJS1ROVVBYTnRhZUlTdktkOTkwWGg2QlR3Q0VKNXQ5RXFh?= =?utf-8?B?RmI0R1VUcGMrUjVTTWUyK3dQSmFWdTM5VmRiNnoxNE0vdHBMM01iK3NYTkZz?= =?utf-8?B?UTBoeXJTLzRYSTR5d2JQZXlFN01nQzlYV1RWSXhJSjdaQVJhc2hreWJkRU9o?= =?utf-8?B?VVRhU0FidFA4WVlrZ28wNFd3SXB6Y0FmVnozVnRqVUtPSnNYYVc1aE1ldkV2?= =?utf-8?B?WWNRSTlwM3VOS2VtdCtTTGUrNVlKUnhYUS93Z3daTFZCMjNNRmJtYXBKc0I3?= =?utf-8?B?UVB5T2RRNDNrbUN3dmFIT3Z0TDdLNkhWMXd5b0hvVCtyU2FxVExVL3dSUHBj?= =?utf-8?B?Y0JlTE51U3pYQnY3YXVGdHdFVmNhN1Z3QUVHM0FXcngzb3R6QUxHZGl6VEJF?= =?utf-8?B?bS9oRDJHMlJSY1FqTURKWjZVNmxwa0V0amdOUDZ4T0x5QW1CcytuTk8vTDkw?= =?utf-8?B?R2hoMzFHdXVWNWhDN2JQNVl4YklMYXFJUjZXRm11b3lQcHFxR1AwQ3V1ekRp?= =?utf-8?B?K1BaRkVuVm1NWm5LZWdyODdPd0dCQlByL2EycXF1QkJnVmxjbDBtOHEzSkhX?= =?utf-8?B?M0o0RnE5eG40VE9pQlhNNjJ1cFREbHJ0clNEbVJkdUd1QWRKSkRHaDJKdDN5?= =?utf-8?B?YkdyVFFXWjUxY0VFSENtTVp4MmlWbjRBdm42amtSTERsNVYrSlRzTDU5Y1NB?= =?utf-8?B?NFVlUitScW5FdTlUTEp5QzB2MmN6NkZvU0p3QSttekJSVE1yMU9UWklhQnQ3?= =?utf-8?B?a0Rkb3g0eVJKN09rTkxvOWthRkMyekI1c3JGY3dzc0FNekdJWFhvOE50YzBF?= =?utf-8?B?bEFIZHFUTlorRUNnT1FENUVBZm1OZFFyTE5vd005WkhSVU5LNWU1TDdFZEl0?= =?utf-8?B?cHZRMmFEUDBsVmxLSXJmSDkyeEVBQ1d3Vm9BWU1xQ2w0SWEwbitjdjFCWi90?= =?utf-8?B?UDQzK1ovMFlLOXc1aDl6N1pCYmMxQTUxbjQ3YnJKSWRHelVnRERsL1YxcXF4?= =?utf-8?B?eDhpOXFxUTMzVzFJbmVsVjhiZ2RvUDFUUCt0VUVkNldIKzd6bEUySFEvVVNG?= =?utf-8?Q?+TxA8BFTBy3VBpV0dS?= 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: MW4PR12MB7484.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61189ddd-3d56-4826-4d1b-08de41f790ea X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Dec 2025 07:47:47.6627 (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: GjC3JveowxX3EAXi2gjD7qQi++7DnclxyFQr3phXBlEs6DtJnxOEP9ikqbr1fXmW2b6NR03jKqkZ7b4ti6ouOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY3PR12MB9702 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2FnYW5kZWVwIFNpbmdo IDxnLnNpbmdoQG54cC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgMjIgRGVjZW1iZXIgMjAyNSA4OjE2 DQo+IFRvOiBzdGFibGVAZHBkay5vcmcNCj4gQ2M6IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207IEdh Z2FuZGVlcCBTaW5naCA8Zy5zaW5naEBueHAuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggMjMuMTFd IGJ1cy9kcGFhOiBpbXByb3ZlIGNsZWFudXANCj4gDQo+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1 dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+IA0KPiANCj4gWyB1cHN0cmVhbSBj b21taXQgNzhlYTRiNGZjYjUyZjc4NmFlYjFjNDcwYzczMGVhM2U1NGUyMzlkNSBdDQo+IA0KPiBU aGlzIHBhdGNoIGFkZHJlc3NlcyBEUEFBIGRyaXZlciBpc3N1ZXMgd2l0aCB0aGUgaW50cm9kdWN0 aW9uIG9mDQo+IHJ0ZV9lYWxfY2xlYW51cCwgd2hpY2ggY2F1c2VkIGRyaXZlci1zcGVjaWZpYyBk ZXN0cnVjdG9ycyB0byBmYWlsIGR1ZSB0bw0KPiBtZW1vcnkgY2xlYW51cC4NCj4gVG8gcmVzb2x2 ZSB0aGlzLCB3ZSByZW1vdmUgdGhlIGRyaXZlciBkZXN0cnVjdG9yIGFuZCByZWxvY2F0ZSB0aGUg Y29kZSB0byB0aGUNCj4gYnVzIGNsZWFudXAgZnVuY3Rpb24uDQo+IA0KPiBTbywgdGhpcyBwYXRj aCBhbHNvIGltcGxlbWVudHMgRFBBQSBidXMgY2xlYW51cC4NCj4gDQo+IEZpeGVzOiBmZjllMTEy ZDc4NzAgKCJuZXQvZHBhYTogYWRkIE5YUCBEUEFBIFBNRCBkcml2ZXIgc2tlbGV0b24iKQ0KPiBD Yzogc3RhYmxlQGRwZGsub3JnDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBHYWdhbmRlZXAgU2luZ2gg PGcuc2luZ2hAbnhwLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2J1cy9kcGFhL2Jhc2UvcWJtYW4v cW1hbl9kcml2ZXIuYyB8ICAgMiAtDQo+ICBkcml2ZXJzL2J1cy9kcGFhL2RwYWFfYnVzLmMgICAg ICAgICAgICAgICB8ICA1OCArKysrKysNCj4gIGRyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYu YyAgICAgICAgICAgIHwgMjM0ICsrKysrKysrKysrKysrKy0tLS0tLS0NCj4gIDMgZmlsZXMgY2hh bmdlZCwgMjE5IGluc2VydGlvbnMoKyksIDc1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvYnVzL2RwYWEvYmFzZS9xYm1hbi9xbWFuX2RyaXZlci5jDQo+IGIvZHJpdmVy cy9idXMvZHBhYS9iYXNlL3FibWFuL3FtYW5fZHJpdmVyLmMNCj4gaW5kZXggN2ExMjlhMmQ4Ni4u Y2RjZTZiNzc3YiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9idXMvZHBhYS9iYXNlL3FibWFuL3Ft YW5fZHJpdmVyLmMNCj4gKysrIGIvZHJpdmVycy9idXMvZHBhYS9iYXNlL3FibWFuL3FtYW5fZHJp dmVyLmMNCj4gQEAgLTIyOCw4ICsyMjgsNiBAQCBpbnQgZnNsX3FtYW5fZnFfcG9ydGFsX2Rlc3Ry b3koc3RydWN0IHFtYW5fcG9ydGFsDQo+ICpxcCkNCj4gICAgICAgICBpZiAocmV0KQ0KPiAgICAg ICAgICAgICAgICAgcHJfZXJyKCJxbWFuX2ZyZWVfZ2xvYmFsX3BvcnRhbCgpICglZClcbiIsIHJl dCk7DQo+IA0KPiAtICAgICAgIGtmcmVlKHFwKTsNCj4gLQ0KPiAgICAgICAgIHByb2Nlc3NfcG9y dGFsX2lycV91bm1hcChjZmctPmlycSk7DQo+IA0KPiAgICAgICAgIGFkZHIuY2VuYSA9IGNmZy0+ YWRkcl92aXJ0W0RQQUFfUE9SVEFMX0NFXTsgZGlmZiAtLWdpdA0KPiBhL2RyaXZlcnMvYnVzL2Rw YWEvZHBhYV9idXMuYyBiL2RyaXZlcnMvYnVzL2RwYWEvZHBhYV9idXMuYyBpbmRleA0KPiBhYWYy YTVmNDNlLi4yZjcxOGFkN2YxIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2J1cy9kcGFhL2RwYWFf YnVzLmMNCj4gKysrIGIvZHJpdmVycy9idXMvZHBhYS9kcGFhX2J1cy5jDQo+IEBAIC00Myw2ICs0 Myw3IEBADQo+ICAjaW5jbHVkZSA8ZnNsX2JtYW4uaD4NCj4gICNpbmNsdWRlIDxuZXRjZmcuaD4N Cj4gDQo+ICsjZGVmaW5lIFJURV9QUklPUklUWV8xMDIgMTAyDQo+ICBzdHJ1Y3QgcnRlX2RwYWFf YnVzIHsNCj4gICAgICAgICBzdHJ1Y3QgcnRlX2J1cyBidXM7DQo+ICAgICAgICAgVEFJTFFfSEVB RCgsIHJ0ZV9kcGFhX2RldmljZSkgZGV2aWNlX2xpc3Q7IEBAIC01Niw2ICs1Nyw5IEBAIHN0cnVj dA0KPiBuZXRjZmdfaW5mbyAqZHBhYV9uZXRjZmc7DQo+IA0KPiAgLyogZGVmaW5lIGEgdmFyaWFi bGUgdG8gaG9sZCB0aGUgcG9ydGFsX2tleSwgb25jZSBjcmVhdGVkLiovICBzdGF0aWMNCj4gcHRo cmVhZF9rZXlfdCBkcGFhX3BvcnRhbF9rZXk7DQo+ICsvKiBkcGFhIGxjb3JlIHNwZWNpZmljICBw b3J0YWxzICovDQo+ICtzdHJ1Y3QgZHBhYV9wb3J0YWwgKmRwYWFfcG9ydGFsc1tSVEVfTUFYX0xD T1JFXSA9IHtOVUxMfTsgc3RhdGljIGludA0KPiArZHBhYV9idXNfZ2xvYmFsX2luaXQ7DQo+IA0K PiAgdW5zaWduZWQgaW50IGRwYWFfc3ZyX2ZhbWlseTsNCj4gDQo+IEBAIC0zNzcsNiArMzgxLDcg QEAgaW50IHJ0ZV9kcGFhX3BvcnRhbF9pbml0KHZvaWQgKmFyZykNCj4gDQo+ICAgICAgICAgICAg ICAgICByZXR1cm4gcmV0Ow0KPiAgICAgICAgIH0NCj4gKyAgICAgICBkcGFhX3BvcnRhbHNbbGNv cmVdID0gRFBBQV9QRVJfTENPUkVfUE9SVEFMOw0KPiANCj4gICAgICAgICBEUEFBX0JVU19MT0co REVCVUcsICJRTUFOIHRocmVhZCBpbml0aWFsaXplZCIpOw0KPiANCj4gQEAgLTQzNCw2ICs0Mzks OCBAQCBkcGFhX3BvcnRhbF9maW5pc2godm9pZCAqYXJnKQ0KPiAgICAgICAgIHJ0ZV9mcmVlKGRw YWFfaW9fcG9ydGFsKTsNCj4gICAgICAgICBkcGFhX2lvX3BvcnRhbCA9IE5VTEw7DQo+ICAgICAg ICAgRFBBQV9QRVJfTENPUkVfUE9SVEFMID0gTlVMTDsNCj4gKyAgICAgICBkcGFhX3BvcnRhbHNb cnRlX2xjb3JlX2lkKCldID0gTlVMTDsNCj4gKyAgICAgICBEUEFBX0JVU19ERUJVRygiUG9ydGFs IGNsZWFudXAgZG9uZSBmb3IgbGNvcmUgPSAlZCIsDQo+ICsgcnRlX2xjb3JlX2lkKCkpOw0KPiAg fQ0KPiANCj4gIHN0YXRpYyBpbnQNCj4gQEAgLTcxMiw2ICs3MTksNyBAQCBydGVfZHBhYV9idXNf cHJvYmUodm9pZCkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAg ICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiArICAgICAgIGRwYWFfYnVzX2dsb2JhbF9pbml0ID0g MTsNCj4gDQo+ICAgICAgICAgcmV0dXJuIDA7DQo+ICB9DQo+IEBAIC04MTksNiArODI3LDU1IEBA IGRwYWFfYnVzX2Rldl9pdGVyYXRlKGNvbnN0IHZvaWQgKnN0YXJ0LCBjb25zdCBjaGFyDQo+ICpz dHIsDQo+ICAgICAgICAgcmV0dXJuIE5VTEw7DQo+ICB9DQo+IA0KPiArc3RhdGljIGludA0KPiAr ZHBhYV9idXNfY2xlYW51cCh2b2lkKQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBydGVfZHBhYV9k ZXZpY2UgKmRldiwgKnRtcF9kZXY7DQo+ICsNCj4gKyAgICAgICBCVVNfSU5JVF9GVU5DX1RSQUNF KCk7DQo+ICsgICAgICAgUlRFX1RBSUxRX0ZPUkVBQ0hfU0FGRShkZXYsICZydGVfZHBhYV9idXMu ZGV2aWNlX2xpc3QsIG5leHQsDQo+IHRtcF9kZXYpIHsNCj4gKyAgICAgICAgICAgICAgIHN0cnVj dCBydGVfZHBhYV9kcml2ZXIgKmRydiA9IGRldi0+ZHJpdmVyOw0KPiArICAgICAgICAgICAgICAg aW50IHJldCA9IDA7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlmICghcnRlX2Rldl9pc19wcm9i ZWQoJmRldi0+ZGV2aWNlKSkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ ICsgICAgICAgICAgICAgICBpZiAoIWRydiB8fCAhZHJ2LT5yZW1vdmUpDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArICAgICAgICAgICAgICAgcmV0ID0gZHJ2LT5yZW1v dmUoZGV2KTsNCj4gKyAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJ0ZV9lcnJubyA9IGVycm5vOw0KPiArICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gLTE7DQo+ICsgICAgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICAgICBkZXYt PmRyaXZlciA9IE5VTEw7DQo+ICsgICAgICAgICAgICAgICBkZXYtPmRldmljZS5kcml2ZXIgPSBO VUxMOw0KPiArICAgICAgIH0NCj4gKyAgICAgICBkcGFhX3BvcnRhbF9maW5pc2goKHZvaWQgKilE UEFBX1BFUl9MQ09SRV9QT1JUQUwpOw0KPiArICAgICAgIGRwYWFfYnVzX2dsb2JhbF9pbml0ID0g MDsNCj4gKyAgICAgICBEUEFBX0JVU19ERUJVRygiQnVzIGNsZWFudXAgZG9uZSIpOw0KPiArDQo+ ICsgICAgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qIEFkZGluZyBkZXN0cnVjdG9yIGZv ciBkb3VibGUgY2hlY2sgaW4gY2FzZSBub24tZ3JhY2VmdWxseQ0KPiArICogZXhpdC4NCj4gKyAq Lw0KPiArUlRFX0ZJTklfUFJJTyhkcGFhX2NsZWFudXAsIDEwMikNCj4gK3sNCj4gKyAgICAgICB1 bnNpZ25lZCBpbnQgbGNvcmVfaWQ7DQo+ICsNCj4gKyAgICAgICBpZiAoIWRwYWFfYnVzX2dsb2Jh bF9pbml0KQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgICAgLyogY2xl YW51cCBwb3J0YWxzIGluIGNhc2Ugbm9uLWdyYWNlZnVsIGV4aXQgKi8NCj4gKyAgICAgICBSVEVf TENPUkVfRk9SRUFDSF9XT1JLRVIobGNvcmVfaWQpIHsNCj4gKyAgICAgICAgICAgICAgIC8qIENo ZWNrIGZvciBub24gemVybyBpZCAqLw0KPiArICAgICAgICAgICAgICAgZHBhYV9wb3J0YWxfZmlu aXNoKCh2b2lkICopZHBhYV9wb3J0YWxzW2xjb3JlX2lkXSk7DQo+ICsgICAgICAgfQ0KPiArICAg ICAgIGRwYWFfcG9ydGFsX2ZpbmlzaCgodm9pZCAqKURQQUFfUEVSX0xDT1JFX1BPUlRBTCk7DQo+ ICsgICAgICAgZHBhYV9idXNfZ2xvYmFsX2luaXQgPSAwOw0KPiArICAgICAgIERQQUFfQlVTX0RF QlVHKCJXb3JrZXIgdGhyZWFkIGNsZWFuIHVwIGRvbmUiKTsgfQ0KPiArDQo+ICBzdGF0aWMgc3Ry dWN0IHJ0ZV9kcGFhX2J1cyBydGVfZHBhYV9idXMgPSB7DQo+ICAgICAgICAgLmJ1cyA9IHsNCj4g ICAgICAgICAgICAgICAgIC5zY2FuID0gcnRlX2RwYWFfYnVzX3NjYW4sIEBAIC04MjksNiArODg2 LDcgQEAgc3RhdGljIHN0cnVjdA0KPiBydGVfZHBhYV9idXMgcnRlX2RwYWFfYnVzID0gew0KPiAg ICAgICAgICAgICAgICAgLnBsdWcgPSBkcGFhX2J1c19wbHVnLA0KPiAgICAgICAgICAgICAgICAg LnVucGx1ZyA9IGRwYWFfYnVzX3VucGx1ZywNCj4gICAgICAgICAgICAgICAgIC5kZXZfaXRlcmF0 ZSA9IGRwYWFfYnVzX2Rldl9pdGVyYXRlLA0KPiArICAgICAgICAgICAgICAgLmNsZWFudXAgPSBk cGFhX2J1c19jbGVhbnVwLA0KPiAgICAgICAgIH0sDQo+ICAgICAgICAgLmRldmljZV9saXN0ID0g VEFJTFFfSEVBRF9JTklUSUFMSVpFUihydGVfZHBhYV9idXMuZGV2aWNlX2xpc3QpLA0KPiAgICAg ICAgIC5kcml2ZXJfbGlzdCA9IFRBSUxRX0hFQURfSU5JVElBTElaRVIocnRlX2RwYWFfYnVzLmRy aXZlcl9saXN0KSwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYu Yw0KPiBiL2RyaXZlcnMvbmV0L2RwYWEvZHBhYV9ldGhkZXYuYyBpbmRleCA2ZmRiZTgwMzM0Li42 NGY1MWIzNTE3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9kcGFhL2RwYWFfZXRoZGV2LmMN Cj4gKysrIGIvZHJpdmVycy9uZXQvZHBhYS9kcGFhX2V0aGRldi5jDQo+IEBAIC01Miw2ICs1Miw3 IEBADQo+IA0KPiAgI2RlZmluZSBDSEVDS19JTlRFUlZBTCAgICAgICAgIDEwMCAgLyogMTAwbXMg Ki8NCj4gICNkZWZpbmUgTUFYX1JFUEVBVF9USU1FICAgICAgICA5MCAgIC8qIDlzICg5MCAqIDEw MG1zKSBpbiB0b3RhbCAqLw0KPiArI2RlZmluZSBSVEVfUFJJT1JJVFlfMTAzICAgICAgIDEwMw0K PiANCj4gIC8qIFN1cHBvcnRlZCBSeCBvZmZsb2FkcyAqLw0KPiAgc3RhdGljIHVpbnQ2NF90IGRl dl9yeF9vZmZsb2Fkc19zdXAgPQ0KPiBAQCAtMjg3LDEwICsyODgsMTEgQEAgZHBhYV9ldGhfZGV2 X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gICAgICAgICB9DQo+IA0KPiAg ICAgICAgIGlmICghKGRlZmF1bHRfcSB8fCBmbWNfcSkpIHsNCj4gLSAgICAgICAgICAgICAgIGlm IChkcGFhX2ZtX2NvbmZpZyhkZXYsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGV0aF9jb25m LT5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYpKSB7DQo+ICsgICAgICAgICAgICAgICByZXQg PSBkcGFhX2ZtX2NvbmZpZyhkZXYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGV0aF9jb25m LT5yeF9hZHZfY29uZi5yc3NfY29uZi5yc3NfaGYpOw0KPiArICAgICAgICAgICAgICAgaWYgKHJl dCkgew0KPiAgICAgICAgICAgICAgICAgICAgICAgICBkcGFhX3dyaXRlX2ZtX2NvbmZpZ190b19m aWxlKCk7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIERQQUFfUE1EX0VSUigiRk0gcG9ydCBj b25maWd1cmF0aW9uOiBGYWlsZWRcbiIpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBEUEFB X1BNRF9FUlIoIkZNIHBvcnQgY29uZmlndXJhdGlvbjoNCj4gKyBGYWlsZWQoJWQpIiwgcmV0KTsN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KPiAgICAgICAgICAgICAgICAg fQ0KPiAgICAgICAgICAgICAgICAgZHBhYV93cml0ZV9mbV9jb25maWdfdG9fZmlsZSgpOyBAQCAt NDgxLDYgKzQ4Myw3IEBAIHN0YXRpYyBpbnQNCj4gZHBhYV9ldGhfZGV2X2Nsb3NlKHN0cnVjdCBy dGVfZXRoX2RldiAqZGV2KQ0KPiAgICAgICAgIHN0cnVjdCBydGVfaW50cl9oYW5kbGUgKmludHJf aGFuZGxlOw0KPiAgICAgICAgIHN0cnVjdCBydGVfZXRoX2xpbmsgKmxpbmsgPSAmZGV2LT5kYXRh LT5kZXZfbGluazsNCj4gICAgICAgICBzdHJ1Y3QgZHBhYV9pZiAqZHBhYV9pbnRmID0gZGV2LT5k YXRhLT5kZXZfcHJpdmF0ZTsNCj4gKyAgICAgICBzdHJ1Y3QgcW1hbl9mcSAqZnE7DQo+ICAgICAg ICAgaW50IGxvb3A7DQo+ICAgICAgICAgaW50IHJldDsNCj4gDQo+IEBAIC00OTAsMTQgKzQ5Mywx NyBAQCBzdGF0aWMgaW50IGRwYWFfZXRoX2Rldl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4g KmRldikNCj4gICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiANCj4gICAgICAgICBpZiAoIWRw YWFfaW50Zikgew0KPiAtICAgICAgICAgICAgICAgRFBBQV9QTURfV0FSTigiQWxyZWFkeSBjbG9z ZWQgb3Igbm90IHN0YXJ0ZWQiKTsNCj4gLSAgICAgICAgICAgICAgIHJldHVybiAtMTsNCj4gKyAg ICAgICAgICAgICAgIERQQUFfUE1EX0RFQlVHKCJBbHJlYWR5IGNsb3NlZCBvciBub3Qgc3RhcnRl ZCIpOw0KPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7DQo+ICAgICAgICAgfQ0KPiAN Cj4gICAgICAgICAvKiBEUEFBIEZNIGRlY29uZmlnICovDQo+ICAgICAgICAgaWYgKCEoZGVmYXVs dF9xIHx8IGZtY19xKSkgew0KPiAtICAgICAgICAgICAgICAgaWYgKGRwYWFfZm1fZGVjb25maWco ZHBhYV9pbnRmLCBkZXYtPnByb2Nlc3NfcHJpdmF0ZSkpDQo+IC0gICAgICAgICAgICAgICAgICAg ICAgIERQQUFfUE1EX1dBUk4oIkRQQUEgRk0gZGVjb25maWcgZmFpbGVkXG4iKTsNCj4gKyAgICAg ICAgICAgICAgIHJldCA9IGRwYWFfZm1fZGVjb25maWcoZHBhYV9pbnRmLCBkZXYtPnByb2Nlc3Nf cHJpdmF0ZSk7DQo+ICsgICAgICAgICAgICAgICBpZiAocmV0KSB7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgIERQQUFfUE1EX1dBUk4oIiVzOiBGTSBkZWNvbmZpZyBmYWlsZWQoJWQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPm5hbWUsIHJldCk7DQo+ ICsgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiANCj4gICAgICAgICBkcGFhX2RldiA9 IGNvbnRhaW5lcl9vZihyZGV2LCBzdHJ1Y3QgcnRlX2RwYWFfZGV2aWNlLCBkZXZpY2UpOyBAQCAt DQo+IDUwNSwxNyArNTExLDMzIEBAIHN0YXRpYyBpbnQgZHBhYV9ldGhfZGV2X2Nsb3NlKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KQ0KPiAgICAgICAgIF9fZmlmID0gY29udGFpbmVyX29mKGZpZiwg c3RydWN0IF9fZm1hbl9pZiwgX19pZik7DQo+IA0KPiAgICAgICAgIHJldCA9IGRwYWFfZXRoX2Rl dl9zdG9wKGRldik7DQo+ICsgICAgICAgaWYgKHJldCkgew0KPiArICAgICAgICAgICAgICAgRFBB QV9QTURfV0FSTigiJXM6IHN0b3AgZGV2aWNlIGZhaWxlZCglZCkiLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICBkZXYtPmRhdGEtPm5hbWUsIHJldCk7DQo+ICsgICAgICAgfQ0KPiANCj4gICAg ICAgICAvKiBSZXNldCBsaW5rIHRvIGF1dG9uZWcgKi8NCj4gLSAgICAgICBpZiAobGluay0+bGlu a19zdGF0dXMgJiYgIWxpbmstPmxpbmtfYXV0b25lZykNCj4gLSAgICAgICAgICAgICAgIGRwYWFf cmVzdGFydF9saW5rX2F1dG9uZWcoX19maWYtPm5vZGVfbmFtZSk7DQo+ICsgICAgICAgaWYgKGxp bmstPmxpbmtfc3RhdHVzICYmICFsaW5rLT5saW5rX2F1dG9uZWcpIHsNCj4gKyAgICAgICAgICAg ICAgIHJldCA9IGRwYWFfcmVzdGFydF9saW5rX2F1dG9uZWcoX19maWYtPm5vZGVfbmFtZSk7DQo+ ICsgICAgICAgICAgICAgICBpZiAocmV0KSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIERQ QUFfUE1EX1dBUk4oIiVzOiByZXN0YXJ0IGxpbmsgZmFpbGVkKCVkKSIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5uYW1lLCByZXQpOw0KPiArICAgICAgICAg ICAgICAgfQ0KPiArICAgICAgIH0NCj4gDQo+ICAgICAgICAgaWYgKGludHJfaGFuZGxlICYmIHJ0 ZV9pbnRyX2ZkX2dldChpbnRyX2hhbmRsZSkgJiYNCj4gICAgICAgICAgICAgZGV2LT5kYXRhLT5k ZXZfY29uZi5pbnRyX2NvbmYubHNjICE9IDApIHsNCj4gLSAgICAgICAgICAgICAgIGRwYWFfaW50 cl9kaXNhYmxlKF9fZmlmLT5ub2RlX25hbWUpOw0KPiAtICAgICAgICAgICAgICAgcnRlX2ludHJf Y2FsbGJhY2tfdW5yZWdpc3RlcihpbnRyX2hhbmRsZSwNCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZHBhYV9pbnRlcnJ1cHRfaGFuZGxlciwNCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKilkZXYpOw0KPiAr ICAgICAgICAgICAgICAgcmV0ID0gZHBhYV9pbnRyX2Rpc2FibGUoX19maWYtPm5vZGVfbmFtZSk7 DQo+ICsgICAgICAgICAgICAgICBpZiAocmV0KSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAg IERQQUFfUE1EX1dBUk4oIiVzOiBkaXNhYmxlIGludGVycnVwdCBmYWlsZWQoJWQpIiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPm5hbWUsIHJldCk7DQo+ICsg ICAgICAgICAgICAgICB9DQo+ICsgICAgICAgICAgICAgICByZXQgPSBydGVfaW50cl9jYWxsYmFj a191bnJlZ2lzdGVyKGludHJfaGFuZGxlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBkcGFh X2ludGVycnVwdF9oYW5kbGVyLCAodm9pZCAqKWRldik7DQo+ICsgICAgICAgICAgICAgICBpZiAo cmV0KSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIERQQUFfUE1EX1dBUk4oIiVzOiB1bnJl Z2lzdGVyIGludGVycnVwdCBmYWlsZWQoJWQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZXYtPmRhdGEtPm5hbWUsIHJldCk7DQo+ICsgICAgICAgICAgICAgICB9DQo+ICAg ICAgICAgfQ0KPiANCj4gICAgICAgICAvKiByZWxlYXNlIGNvbmZpZ3VyYXRpb24gbWVtb3J5ICov IEBAIC01MjMsMjYgKzU0NSw2MyBAQCBzdGF0aWMgaW50DQo+IGRwYWFfZXRoX2Rldl9jbG9zZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gDQo+ICAgICAgICAgLyogUmVsZWFzZSBSWCBjb25n ZXN0aW9uIEdyb3VwcyAqLw0KPiAgICAgICAgIGlmIChkcGFhX2ludGYtPmNncl9yeCkgew0KPiAt ICAgICAgICAgICAgICAgZm9yIChsb29wID0gMDsgbG9vcCA8IGRwYWFfaW50Zi0+bmJfcnhfcXVl dWVzOyBsb29wKyspDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIHFtYW5fZGVsZXRlX2Nncigm ZHBhYV9pbnRmLT5jZ3JfcnhbbG9vcF0pOw0KPiArICAgICAgICAgICAgICAgZm9yIChsb29wID0g MDsgbG9vcCA8IGRwYWFfaW50Zi0+bmJfcnhfcXVldWVzOyBsb29wKyspIHsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0ID0gcW1hbl9kZWxldGVfY2dyKCZkcGFhX2ludGYtPmNncl9yeFts b29wXSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpIHsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEUEFBX1BNRF9XQVJOKCIlczogZGVsZXRlIHJ4cSVkJ3Mg Y2dyIGVyciglZCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV2LT5kYXRhLT5uYW1lLCBsb29wLCByZXQpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICB9 DQo+ICsgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiANCj4gICAgICAgICBydGVfZnJl ZShkcGFhX2ludGYtPmNncl9yeCk7DQo+ICAgICAgICAgZHBhYV9pbnRmLT5jZ3JfcnggPSBOVUxM Ow0KPiAgICAgICAgIC8qIFJlbGVhc2UgVFggY29uZ2VzdGlvbiBHcm91cHMgKi8NCj4gICAgICAg ICBpZiAoZHBhYV9pbnRmLT5jZ3JfdHgpIHsNCj4gLSAgICAgICAgICAgICAgIGZvciAobG9vcCA9 IDA7IGxvb3AgPCBNQVhfRFBBQV9DT1JFUzsgbG9vcCsrKQ0KPiAtICAgICAgICAgICAgICAgICAg ICAgICBxbWFuX2RlbGV0ZV9jZ3IoJmRwYWFfaW50Zi0+Y2dyX3R4W2xvb3BdKTsNCj4gKyAgICAg ICAgICAgICAgIGZvciAobG9vcCA9IDA7IGxvb3AgPCBNQVhfRFBBQV9DT1JFUzsgbG9vcCsrKSB7 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IHFtYW5fZGVsZXRlX2NncigmZHBhYV9p bnRmLT5jZ3JfdHhbbG9vcF0pOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KSB7 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBBQV9QTURfV0FSTigiJXM6IGRl bGV0ZSB0eHElZCdzIGNnciBlcnIoJWQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRldi0+ZGF0YS0+bmFtZSwgbG9vcCwgcmV0KTsNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgfQ0KPiArICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgICAgcnRl X2ZyZWUoZHBhYV9pbnRmLT5jZ3JfdHgpOw0KPiAgICAgICAgICAgICAgICAgZHBhYV9pbnRmLT5j Z3JfdHggPSBOVUxMOw0KPiAgICAgICAgIH0NCj4gDQo+ICsgICAgICAgLyogRnJlZWluZyBxdWV1 ZSBzcGVjaWZpYyBwb3J0YWxzICovDQo+ICsgICAgICAgZm9yIChsb29wID0gMDsgbG9vcCA8IGRw YWFfaW50Zi0+bmJfcnhfcXVldWVzOyBsb29wKyspIHsNCj4gKyAgICAgICAgICAgICAgIGlmICgh ZHBhYV9pbnRmLT5yeF9xdWV1ZXMpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0K PiArDQo+ICsgICAgICAgICAgICAgICBmcSA9ICZkcGFhX2ludGYtPnJ4X3F1ZXVlc1tsb29wXTsN Cj4gKyAgICAgICAgICAgICAgIGlmIChmcS0+cXBfaW5pdGlhbGl6ZWQpIHsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcnRlX2RwYWFfcG9ydGFsX2ZxX2Nsb3NlKGZxKTsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgZnEtPnFwX2luaXRpYWxpemVkID0gMDsNCj4gKyAgICAgICAgICAgICAg IH0NCj4gKyAgICAgICB9DQo+ICsNCj4gICAgICAgICBydGVfZnJlZShkcGFhX2ludGYtPnJ4X3F1 ZXVlcyk7DQo+ICAgICAgICAgZHBhYV9pbnRmLT5yeF9xdWV1ZXMgPSBOVUxMOw0KPiANCj4gICAg ICAgICBydGVfZnJlZShkcGFhX2ludGYtPnR4X3F1ZXVlcyk7DQo+ICAgICAgICAgZHBhYV9pbnRm LT50eF9xdWV1ZXMgPSBOVUxMOw0KPiANCj4gKyAgICAgICBpZiAoZHBhYV9pbnRmLT5wb3J0X2hh bmRsZSkgew0KPiArICAgICAgICAgICAgICAgcmV0ID0gZHBhYV9mbV9kZWNvbmZpZyhkcGFhX2lu dGYsIGZpZik7DQo+ICsgICAgICAgICAgICAgICBpZiAocmV0KSB7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgIERQQUFfUE1EX1dBUk4oIiVzOiBGTSBkZWNvbmZpZyBmYWlsZWQoJWQpIiwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPmRhdGEtPm5hbWUsIHJldCk7DQo+ ICsgICAgICAgICAgICAgICB9DQo+ICsgICAgICAgfQ0KPiArICAgICAgIGlmIChmaWYtPm51bV9w cm9maWxlcykgew0KPiArICAgICAgICAgICAgICAgcmV0ID0gZHBhYV9wb3J0X3ZzcF9jbGVhbnVw KGRwYWFfaW50ZiwgZmlmKTsNCj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpIHsNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgRFBBQV9QTURfV0FSTigiJXM6IGNsZWFudXAgVlNQIGZhaWxlZCgl ZCkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+ZGF0YS0+bmFtZSwg cmV0KTsNCj4gKyAgICAgICAgICAgICAgIH0NCj4gKyAgICAgICB9DQo+ICsNCj4gICAgICAgICBy ZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gQEAgLTEzNjMsNiArMTQyMiw4IEBAIGRwYWFfZmxvd19j dHJsX3NldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgIHsNCj4gICAgICAgICBzdHJ1Y3QgZHBh YV9pZiAqZHBhYV9pbnRmID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gICAgICAgICBzdHJ1 Y3QgcnRlX2V0aF9mY19jb25mICpuZXRfZmM7DQo+ICsgICAgICAgc3RydWN0IGZtYW5faWYgKmZt X2lmID0gZGV2LT5wcm9jZXNzX3ByaXZhdGU7DQo+ICsgICAgICAgaW50IHJldDsNCj4gDQo+ICAg ICAgICAgUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KPiANCj4gQEAgLTEzODEsMTkgKzE0NDIsMzEg QEAgZHBhYV9mbG93X2N0cmxfc2V0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICAgICAgICAgfQ0KPiANCj4gLSAgICAgICBpZiAo ZmNfY29uZi0+bW9kZSA9PSBSVEVfRVRIX0ZDX05PTkUpIHsNCj4gKyAgICAgICBpZiAoZmNfY29u Zi0+bW9kZSA9PSBSVEVfRVRIX0ZDX05PTkUpDQo+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsN Cj4gLSAgICAgICB9IGVsc2UgaWYgKGZjX2NvbmYtPm1vZGUgPT0gUlRFX0VUSF9GQ19UWF9QQVVT RSB8fA0KPiAtICAgICAgICAgICAgICAgIGZjX2NvbmYtPm1vZGUgPT0gUlRFX0VUSF9GQ19GVUxM KSB7DQo+IC0gICAgICAgICAgICAgICBmbWFuX2lmX3NldF9mY190aHJlc2hvbGQoZGV2LT5wcm9j ZXNzX3ByaXZhdGUsDQo+ICsNCj4gKyAgICAgICBpZiAoZmNfY29uZi0+bW9kZSAhPSBSVEVfRVRI X0ZDX1RYX1BBVVNFICYmDQo+ICsgICAgICAgICAgICAgICBmY19jb25mLT5tb2RlICE9IFJURV9F VEhfRkNfRlVMTCkNCj4gKyAgICAgICAgICAgICAgIGdvdG8gc2F2ZV9mYzsNCj4gKw0KPiArICAg ICAgIHJldCA9IGZtYW5faWZfc2V0X2ZjX3RocmVzaG9sZChmbV9pZiwNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmY19jb25mLT5oaWdoX3dhdGVyLA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjX2NvbmYtPmxvd193YXRlciwN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcGFhX2ludGYtPmJw X2luZm8tPmJwaWQpOw0KPiAtICAgICAgICAgICAgICAgaWYgKGZjX2NvbmYtPnBhdXNlX3RpbWUp DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGZtYW5faWZfc2V0X2ZjX3F1YW50YShkZXYtPnBy b2Nlc3NfcHJpdmF0ZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZjX2NvbmYtPnBhdXNlX3RpbWUpOw0KPiArICAgICAgIGlmIChyZXQpIHsNCj4gKyAg ICAgICAgICAgICAgIERQQUFfUE1EX0VSUigiU2V0ICVzJ3MgZmMgb24gYnBpZCglZCkgZXJyKCVk KSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5uYW1lLCBk cGFhX2ludGYtPmJwX2luZm8tPmJwaWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0KTsNCj4gKyAgICAgICB9DQo+ICsgICAgICAgaWYgKGZjX2NvbmYtPnBhdXNlX3RpbWUp IHsNCj4gKyAgICAgICAgICAgICAgIHJldCA9IGZtYW5faWZfc2V0X2ZjX3F1YW50YShmbV9pZiwg ZmNfY29uZi0+cGF1c2VfdGltZSk7DQo+ICsgICAgICAgICAgICAgICBpZiAocmV0KSB7DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIERQQUFfUE1EX0VSUigiU2V0ICVzJ3MgZmMgcGF1c2UgdGlt ZSBlcnIoJWQpIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPmRhdGEt Pm5hbWUsIHJldCk7DQo+ICsgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiANCj4gK3Nh dmVfZmM6DQo+ICAgICAgICAgLyogU2F2ZSB0aGUgaW5mb3JtYXRpb24gaW4gZHBhYSBkZXZpY2Ug Ki8NCj4gICAgICAgICBuZXRfZmMtPnBhdXNlX3RpbWUgPSBmY19jb25mLT5wYXVzZV90aW1lOw0K PiAgICAgICAgIG5ldF9mYy0+aGlnaF93YXRlciA9IGZjX2NvbmYtPmhpZ2hfd2F0ZXI7IEBAIC0x NDg2LDEzICsxNTU5LDE1IEBADQo+IGRwYWFfZGV2X3Jzc19oYXNoX3VwZGF0ZShzdHJ1Y3QgcnRl X2V0aF9kZXYgKmRldiwgIHsNCj4gICAgICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSAqZGF0 YSA9IGRldi0+ZGF0YTsNCj4gICAgICAgICBzdHJ1Y3QgcnRlX2V0aF9jb25mICpldGhfY29uZiA9 ICZkYXRhLT5kZXZfY29uZjsNCj4gKyAgICAgICBpbnQgcmV0Ow0KPiANCj4gICAgICAgICBQTURf SU5JVF9GVU5DX1RSQUNFKCk7DQo+IA0KPiAgICAgICAgIGlmICghKGRlZmF1bHRfcSB8fCBmbWNf cSkpIHsNCj4gLSAgICAgICAgICAgICAgIGlmIChkcGFhX2ZtX2NvbmZpZyhkZXYsIHJzc19jb25m LT5yc3NfaGYpKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIERQQUFfUE1EX0VSUigiRk0g cG9ydCBjb25maWd1cmF0aW9uOiBGYWlsZWRcbiIpOw0KPiAtICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gLTE7DQo+ICsgICAgICAgICAgICAgICByZXQgPSBkcGFhX2ZtX2NvbmZpZyhkZXYs IHJzc19jb25mLT5yc3NfaGYpOw0KPiArICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPiArICAg ICAgICAgICAgICAgICAgICAgICBEUEFBX1BNRF9FUlIoIkZNIHBvcnQgY29uZmlndXJhdGlvbjog RmFpbGVkKCVkKSIsIHJldCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7 DQo+ICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgICAgICAgICBldGhfY29uZi0+cnhfYWR2 X2NvbmYucnNzX2NvbmYucnNzX2hmID0gcnNzX2NvbmYtPnJzc19oZjsNCj4gICAgICAgICB9IGVs c2Ugew0KPiBAQCAtMTk1NCw4ICsyMDI5LDggQEAgZHBhYV9kZXZfaW5pdChzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmV0aF9kZXYpDQo+ICAgICAgICAgLyogRWFjaCBkZXZpY2UgY2FuIG5vdCBoYXZlIG1v cmUgdGhhbiBEUEFBX01BWF9OVU1fUENEX1FVRVVFUw0KPiBSWA0KPiAgICAgICAgICAqIHF1ZXVl cy4NCj4gICAgICAgICAgKi8NCj4gLSAgICAgICBpZiAobnVtX3J4X2ZxcyA8IDAgfHwgbnVtX3J4 X2ZxcyA+IERQQUFfTUFYX05VTV9QQ0RfUVVFVUVTKSB7DQo+IC0gICAgICAgICAgICAgICBEUEFB X1BNRF9FUlIoIkludmFsaWQgbnVtYmVyIG9mIFJYIHF1ZXVlc1xuIik7DQo+ICsgICAgICAgaWYg KG51bV9yeF9mcXMgPiBEUEFBX01BWF9OVU1fUENEX1FVRVVFUykgew0KPiArICAgICAgICAgICAg ICAgRFBBQV9QTURfRVJSKCJJbnZhbGlkIG51bWJlciBvZiBSWCBxdWV1ZXMoJWQpIiwNCj4gKyBu dW1fcnhfZnFzKTsNCj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiAgICAgICAg IH0NCj4gDQo+IEBAIC0yMTk3LDggKzIyNzIsOCBAQCBydGVfZHBhYV9wcm9iZShzdHJ1Y3QgcnRl X2RwYWFfZHJpdmVyICpkcGFhX2RydiwNCj4gICAgICAgICAgICAgICAgIGV0aF9kZXYtPmRldl9v cHMgPSAmZHBhYV9kZXZvcHM7DQo+IA0KPiAgICAgICAgICAgICAgICAgcmV0ID0gZHBhYV9kZXZf aW5pdF9zZWNvbmRhcnkoZXRoX2Rldik7DQo+IC0gICAgICAgICAgICAgICBpZiAocmV0ICE9IDAp IHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgUlRFX0xPRyhFUlIsIFBNRCwgInNlY29uZGFy eSBkZXYgaW5pdCBmYWlsZWRcbiIpOw0KPiArICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPiAr ICAgICAgICAgICAgICAgICAgICAgICBEUEFBX1BNRF9FUlIoInNlY29uZGFyeSBkZXYgaW5pdCBm YWlsZWQoJWQpIiwNCj4gKyByZXQpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cmV0Ow0KPiAgICAgICAgICAgICAgICAgfQ0KPiANCj4gQEAgLTIyMTMsOSArMjI4OCwxMCBAQCBy dGVfZHBhYV9wcm9iZShzdHJ1Y3QgcnRlX2RwYWFfZHJpdmVyDQo+ICpkcGFhX2RydiwNCj4gICAg ICAgICAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgICAgICAgICBpZiAoIShkZWZhdWx0X3EgfHwg Zm1jX3EpKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChkcGFhX2ZtX2luaXQoKSkg ew0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERQQUFfUE1EX0VSUigiRk0gaW5p dCBmYWlsZWRcbiIpOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt MTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gZHBhYV9mbV9pbml0KCk7DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEUEFBX1BNRF9FUlIoIkZNIGluaXQgZmFpbGVkKCVkKSIsIHJldCk7DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgICAgfQ0KPiANCj4gQEAgLTIyOTAsNTkgKzIz NjYsNzEgQEAgcnRlX2RwYWFfcHJvYmUoc3RydWN0IHJ0ZV9kcGFhX2RyaXZlcg0KPiAqZHBhYV9k cnYsDQo+ICAgICAgICAgcmV0dXJuIGRpYWc7DQo+ICB9DQo+IA0KPiAtc3RhdGljIGludA0KPiAt cnRlX2RwYWFfcmVtb3ZlKHN0cnVjdCBydGVfZHBhYV9kZXZpY2UgKmRwYWFfZGV2KQ0KPiArLyog QWRkaW5nIGRlc3RydWN0b3IgZm9yIGRvdWJsZSBjaGVjayBpbiBjYXNlIG5vbi1ncmFjZWZ1bGx5 DQo+ICsgKiBleGl0Lg0KPiArICovDQo+ICtSVEVfRklOSV9QUklPKGRwYWFfZmluaXNoLCAxMDMp DQo+ICB7DQo+IC0gICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2Ow0KPiAtICAgICAg IGludCByZXQ7DQo+ICsgICAgICAgc3RydWN0IGRwYWFfaWYgKmRwYWFfaW50ZjsNCj4gKyAgICAg ICBpbnQgbG9vcDsNCj4gKyAgICAgICBzdHJ1Y3QgcW1hbl9mcSAqZnE7DQo+ICsgICAgICAgdWlu dDE2X3QgcG9ydGlkOw0KPiArICAgICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2Ow0KPiANCj4g ICAgICAgICBQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQo+IA0KPiAtICAgICAgIGV0aF9kZXYgPSBk cGFhX2Rldi0+ZXRoX2RldjsNCj4gLSAgICAgICBkcGFhX2V0aF9kZXZfY2xvc2UoZXRoX2Rldik7 DQo+IC0gICAgICAgZHBhYV92YWxpZF9kZXYtLTsNCj4gLSAgICAgICBpZiAoIWRwYWFfdmFsaWRf ZGV2KQ0KPiAtICAgICAgICAgICAgICAgcnRlX21lbXBvb2xfZnJlZShkcGFhX3R4X3NnX3Bvb2wp Ow0KPiAtICAgICAgIHJldCA9IHJ0ZV9ldGhfZGV2X3JlbGVhc2VfcG9ydChldGhfZGV2KTsNCj4g LQ0KPiAtICAgICAgIHJldHVybiByZXQ7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyB2b2lkIF9fYXR0 cmlidXRlX18oKGRlc3RydWN0b3IoMTAyKSkpIGRwYWFfZmluaXNoKHZvaWQpIC17DQo+ICAgICAg ICAgLyogRm9yIHNlY29uZGFyeSwgcHJpbWFyeSB3aWxsIGRvIGFsbCB0aGUgY2xlYW51cCAqLw0K PiAgICAgICAgIGlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpICE9IFJURV9QUk9DX1BSSU1BUlkp DQo+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+IA0KPiArICAgICAgIGlmICghaXNfZ2xvYmFs X2luaXQpDQo+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ICsNCj4gICAgICAgICBpZiAoIShk ZWZhdWx0X3EgfHwgZm1jX3EpKSB7DQo+IC0gICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaTsN Cj4gLQ0KPiAtICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IFJURV9NQVhfRVRIUE9SVFM7 IGkrKykgew0KPiAtICAgICAgICAgICAgICAgICAgICAgICBpZiAocnRlX2V0aF9kZXZpY2VzW2ld LmRldl9vcHMgPT0gJmRwYWFfZGV2b3BzKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW2ldOw0KPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcGFhX2lmICpkcGFhX2ludGYg PQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5kYXRhLT5k ZXZfcHJpdmF0ZTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm1h bl9pZiAqZmlmID0NCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl di0+cHJvY2Vzc19wcml2YXRlOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChkcGFhX2ludGYtPnBvcnRfaGFuZGxlKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKGRwYWFfZm1fZGVjb25maWcoZHBhYV9pbnRmLCBmaWYpKQ0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUEFBX1BNRF9XQVJO KCJEUEFBIEZNICINCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiZGVjb25maWcgZmFpbGVkXG4iKTsNCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoZmlmLT5udW1fcHJvZmlsZXMpIHsNCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkcGFhX3BvcnRfdnNwX2NsZWFudXAoZHBhYV9p bnRmLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmaWYpKQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEUEFBX1BNRF9XQVJOKCJEUEFBIEZNIHZzcCBjbGVhbnVwIGZhaWxl ZFxuIik7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiArICAgICAgICAg ICAgICAgaWYgKGRwYWFfZm1fdGVybSgpKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICBEUEFB X1BNRF9XQVJOKCJEUEFBIEZNIHRlcm0gZmFpbGVkIik7DQo+ICsNCj4gKyAgICAgICAgICAgICAg IERQQUFfUE1EX0lORk8oIkRQQUEgZm1hbiBjbGVhbmVkIHVwIik7DQo+ICsgICAgICAgfQ0KPiAr DQo+ICsgICAgICAgUlRFX0VUSF9GT1JFQUNIX0RFVihwb3J0aWQpIHsNCj4gKyAgICAgICAgICAg ICAgIGRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydGlkXTsNCj4gKyAgICAgICAgICAgICAgIGlm IChzdHJjbXAoZGV2LT5kZXZpY2UtPmRyaXZlci0+bmFtZSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgcnRlX2RwYWFfcG1kLmRyaXZlci5uYW1lKSkNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7DQo+ICsgICAgICAgICAgICAgICBkcGFhX2ludGYgPSBkZXYtPmRhdGEtPmRl dl9wcml2YXRlOw0KPiArICAgICAgICAgICAgICAgLyogRnJlZWluZyBxdWV1ZSBzcGVjaWZpYyBw b3J0YWxzICovDQo+ICsgICAgICAgICAgICAgICBmb3IgKGxvb3AgPSAwOyBsb29wIDwgZHBhYV9p bnRmLT5uYl9yeF9xdWV1ZXM7IGxvb3ArKykgew0KPiArICAgICAgICAgICAgICAgICAgICAgICBp ZiAoIWRwYWFfaW50Zi0+cnhfcXVldWVzKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOw0KPiArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGZxID0gJmRwYWFfaW50 Zi0+cnhfcXVldWVzW2xvb3BdOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAoZnEtPnFw X2luaXRpYWxpemVkKSB7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2Rw YWFfcG9ydGFsX2ZxX2Nsb3NlKGZxKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmcS0+cXBfaW5pdGlhbGl6ZWQgPSAwOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ ICAgICAgICAgICAgICAgICB9DQo+IC0gICAgICAgICAgICAgICBpZiAoaXNfZ2xvYmFsX2luaXQp DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChkcGFhX2ZtX3Rlcm0oKSkNCj4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEUEFBX1BNRF9XQVJOKCJEUEFBIEZNIHRlcm0gZmFp bGVkXG4iKTsNCj4gKyAgICAgICB9DQo+ICsgICAgICAgaXNfZ2xvYmFsX2luaXQgPSAwOw0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtydGVfZHBhYV9yZW1vdmUoc3RydWN0IHJ0ZV9kcGFh X2RldmljZSAqZHBhYV9kZXYpIHsNCj4gKyAgICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXY7DQo+ICsgICAgICAgaW50IHJldDsNCj4gDQo+IC0gICAgICAgICAgICAgICBpc19nbG9iYWxf aW5pdCA9IDA7DQo+ICsgICAgICAgUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KPiANCj4gLSAgICAg ICAgICAgICAgIERQQUFfUE1EX0lORk8oIkRQQUEgZm1hbiBjbGVhbmVkIHVwIik7DQo+ICsgICAg ICAgZXRoX2RldiA9IGRwYWFfZGV2LT5ldGhfZGV2Ow0KPiArICAgICAgIGRwYWFfZXRoX2Rldl9j bG9zZShldGhfZGV2KTsNCj4gKyAgICAgICByZXQgPSBydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQo ZXRoX2Rldik7DQo+ICsgICAgICAgZHBhYV92YWxpZF9kZXYtLTsNCj4gKyAgICAgICBpZiAoIWRw YWFfdmFsaWRfZGV2KSB7DQo+ICsgICAgICAgICAgICAgICBydGVfbWVtcG9vbF9mcmVlKGRwYWFf dHhfc2dfcG9vbCk7DQo+ICsgICAgICAgICAgICAgICBkcGFhX2ZpbmlzaCgpOw0KPiAgICAgICAg IH0NCj4gKyAgICAgICByZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gIHN0YXRpYyBzdHJ1Y3QgcnRl X2RwYWFfZHJpdmVyIHJ0ZV9kcGFhX3BtZCA9IHsNCj4gLS0NCj4gMi4yNS4xDQoNClRoYW5rcyBH YWdhbmRlZXAsIEkgYXBwbGllZCB0aGUgcGF0Y2ggdG8gMjMuMTEgYnJhbmNoDQoNCg0K