From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2072.outbound.protection.outlook.com [40.107.237.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3CD211FC7EC; Fri, 17 Jan 2025 10:50:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.72 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737111057; cv=fail; b=szEG5SIF++lqtjmlMNeiY3rWjlui+nnB6aU6nLzYx0u30AYvoGf4uYoHIip1nQ/sunHuYMYgFv9mGmmRTFNY0xkUhEE5NeD19x1aPurW6LPC8z4QAkp9B9vSPossyzaYdehI0ARxsRPxLJaD6HDc3OyU9JOFgps1jtiHqVPyqD8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737111057; c=relaxed/simple; bh=JK8py/4mV3F1oUmyCwoz/vtaMr1EuV6uDZy6chEpdjM=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=qOMB8avzTsP3IgvaGrk9M/D1ZgsHA6l+9ZNrvmx5Ob/aGAiUtcdzmlyzKRQuwdbN2SGSC0fn+EAXWKIsH6SmeFjfy46J9fbRr8137LPQWJr7trUDyLvlZcptHv3OgPEy4Wj6CjIcY/ZDkXQS5aJjQ6g32RBSijb6tD50cscVLfk= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=microchip.com; spf=pass smtp.mailfrom=microchip.com; dkim=pass (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b=IHAx6sHj; arc=fail smtp.client-ip=40.107.237.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=microchip.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=microchip.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="IHAx6sHj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iausoT+RAKGk1yhXHL2MBr0aln/gm3PWpkz94DzogW3ApXY7HDDxH7Y6a214cQ87DP8Mqf+ys/g6rKk+L5mvqAmKnAdUP3joqp51yqQ6nfFMXzTip6tvJoW4trTzueVcOxbqR8+htMoW3ex2M8EAu7EoghhO9FHMc+KVabY8GVJS/YWlHNJk78CW/rAqAanTpW1kMGUTeY6IVk04oU4UUH066pErH9QGGXe2IXNJnOlXnAB/vgvwPAxtVoG3+TcxJId+Wrqz4P6zMnapABYuY6WoPv23iiseW5O/7nK7Wgo8zlxec/QewWtrLVKeoU37jOctzotZURfha5QiCo+ZBg== 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=JK8py/4mV3F1oUmyCwoz/vtaMr1EuV6uDZy6chEpdjM=; b=uSMhWOr3C7YzcKKIRY6BouyFK43j8lTT+2WCWUR2eJ4FVcts4VCFxqLEiXkd82+ax+eB2n92WCDGjy2EOGS/0ywSk3nFTZ6RzIoDnVDnqsRg4FgxKkPf7TlGD5DAtLGPHJJGc7kq+pyzUQeUM0euR8ptoXiUrOT0/s6qNrhaKu/EDd59xdnNzq7679PcWigz5tCWrvn1WfZX39GukChEwtU+Y93tOPWM+a7Q8qZDBZ13chlrrB0+7Afu3qy9usqIvbtkybjRetOCraRcEsVEf5W0JDwBCBrsiNkmTIsyXFyBQi2N9BK7lTN+CmJneOt7uzf/X7Yl1UMkC6+H7xfrtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchip.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JK8py/4mV3F1oUmyCwoz/vtaMr1EuV6uDZy6chEpdjM=; b=IHAx6sHjB5Vt+H4FwdpKNDUHte4HoOpLRhOkuwpIEUYntE3G5pcv5LkOKtnm+WHlIyvOfG6l0M1/JT9viIubcyyuuVToMsdv+7f3MEBOxZGLv6XFkXVRNscZybMKB67Zm3wjBUg3P6dvJCD4MCEMsGtbRISIs17TfmirrPoK9wHTxOdo6Sp0mp12wrC8f/iPYhU20A6aFT+9fEiUenpej1Tez7j5Xj25CIoXAePB1sqBbcX5gnQnxHSalGDnJH+FjV8mRwZa9z+P2yi7M8LOIGbzMdIKTNfoS5ES7bcbOriI80iRD42cUTriDFwqiZIxre6b29A+eusOihZj1CK24w== Received: from DS0PR11MB7481.namprd11.prod.outlook.com (2603:10b6:8:14b::16) by SJ0PR11MB6792.namprd11.prod.outlook.com (2603:10b6:a03:485::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.17; Fri, 17 Jan 2025 10:50:49 +0000 Received: from DS0PR11MB7481.namprd11.prod.outlook.com ([fe80::3a8a:2d38:64c0:cc4f]) by DS0PR11MB7481.namprd11.prod.outlook.com ([fe80::3a8a:2d38:64c0:cc4f%6]) with mapi id 15.20.8356.014; Fri, 17 Jan 2025 10:50:48 +0000 From: To: , , , , , , , CC: , , , , Subject: Re: [PATCH net-next v1 1/7] net: usb: lan78xx: Convert to PHYlink for improved PHY and MAC management Thread-Topic: [PATCH net-next v1 1/7] net: usb: lan78xx: Convert to PHYlink for improved PHY and MAC management Thread-Index: AQHbYcbRcZuED2ZvdUG2n2mw4pBx47Ma1wsA Date: Fri, 17 Jan 2025 10:50:48 +0000 Message-ID: <0328797731d5ec0af580cf2f4f7e000212befa69.camel@microchip.com> References: <20250108121341.2689130-1-o.rempel@pengutronix.de> <20250108121341.2689130-2-o.rempel@pengutronix.de> In-Reply-To: <20250108121341.2689130-2-o.rempel@pengutronix.de> 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=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DS0PR11MB7481:EE_|SJ0PR11MB6792:EE_ x-ms-office365-filtering-correlation-id: 9a884f6a-6b8c-44d0-0723-08dd36e4cdab x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR11MB7481.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?RnNnVG04Q2lSSHpsMTdiQTQ2WUpLaUNZZ1A4Vzh4Y2gxOFdiYkFqa1hqdThi?= =?utf-8?B?aTlsTGNkb2hmMDN4UnhPTDNnTlR3K2VRWEFndWxOYVN1SW81R0FESC9sT3pS?= =?utf-8?B?YVQ0WDE5VW1LTlRVLzR2RUVVQWNuRHpBT20xYVJOOHN4TFlnUzMyRFBxS29Y?= =?utf-8?B?b1U5N3dvMVI1MTJFYXhOc1preFprT2Rxbm8rckw3aERoeFBQRE1SUGJ3RDlQ?= =?utf-8?B?aXBqMGJKZmwzSDd4L1ErczZtd3UzMzVaNnVPMG1ZbzFUSDJNYnVUbldHMGFM?= =?utf-8?B?MlIwSllTYjZwOEpZWWNIMjYySHNLR0tDd1lSZ2RYd2FwbmQydjg4L21hVlhI?= =?utf-8?B?c3JROTRsVGxOTGZPWW9tOWY2M0x4bmEvYlZUMjJpZVIveE5nS0xaMjN6NDNV?= =?utf-8?B?cmplTm5pM21DNmVaVHJPTzhMd0N4eURmTUtvZHVWY3NteGpkVUV5TDNOL0Y0?= =?utf-8?B?bm5Cc3I5TnNQbkhOYTJQTER2STlhdG9oNEpoQ1gwdkNCeG9qTlFaTFhodVU4?= =?utf-8?B?cmdmUmw0SVVtOFFGejJxQ1R6dEVXU0dvRksxWmhhRXA2alg4cjI3VFA0ZHNj?= =?utf-8?B?T05RWEQyNHl2OUFYNmJFUUg3ODFucHUzd3ZsVTdZWERkb2plMWh2TVJ0U0Fz?= =?utf-8?B?aDB6a1YvaVdRdW0xTCtpaTdzaTFFTWFCQkxqUnVTdHBNbHRleVdXVVFhZCtq?= =?utf-8?B?czFkbWlCK3BZa3o1bTdZQVBkVmgrcWZyaW1Fc2hQbVBZdXd5OHUxYVJPclN1?= =?utf-8?B?MGgySmxEMFlUb3dBWWVYbEI4dXJBL3F1ekNTRDVxeElHbzVxNWhpZS9wbFdJ?= =?utf-8?B?N1BnZ2RHTUs4dlo3K3FFUElEZzU0Q0hUYithOHd3cmlmMlhhclltZHVtbnA4?= =?utf-8?B?MFF3bnlmNURMQys4bWVpdlpmSWxvbDExSU5xWDVWcjRaT3d2SnVPM215MlRC?= =?utf-8?B?ZmJjYUZNNzFKZHR1NkhmdmUxUVExU2QxWlg1eWx2bmt4M0piZjIrVFdhWE13?= =?utf-8?B?ZlEwMHIzM0Ixbm54OUtxaWtIVUlXQkFFWjY4ajIyVklFQ1NaUlVMbnlCeC9K?= =?utf-8?B?UWJzMVhkRlV1dDhybWN6cURkMkFNcjhMWExudWYya3lrRWFkRTN1djJOMitE?= =?utf-8?B?NkYzTWxEU1lXVjRWOXgwYlk5R01zeGtyY2FGazBCUEJWSDFwZUhJM3VuSEFT?= =?utf-8?B?MmYyVEk5dGFvRTdZRy9uRXpEUWlSUFUvR2s0T0tsZ05GNWxCRHFnNHRXVUdp?= =?utf-8?B?Vk15V1h1R0ovMzVqN24wcTgydVd2UHhycjNoeVQwRGFYeXdPT3MwYXowdGJs?= =?utf-8?B?SWFTTDlYUjZSL2ZQYzBmTHZUc2FzbUFWcXRBOFNLOGo5WGVobkN3d0hvSWtL?= =?utf-8?B?MVhoM281RnRCTDJCcDVrSEhEUjI0cks4eEYzUTZBNWNVbk5Cc1NuaXF5Z1c3?= =?utf-8?B?OE4zVHF1Rk9aT1ZsSndQSDV5em9LZkRBaUEwKzcrMVRxZWlMUHo0NXJ2MDli?= =?utf-8?B?cFR5b29uekdaWXBiT2dXRnRFQmVhaFJWOTVRaXZYV3BpeGZkUmFaOVNBdWZJ?= =?utf-8?B?eEY4ZkR6RHVtbmJiUFFPR1VhZURITDhhbi9JNnMwcTZwbS9PTlVoczR6alp5?= =?utf-8?B?Nkc4ZzVDZ3E1Y0dtU3FJWG43aEtWZGJHYUlXbFdjd1ZMcTR1K2VYb3FObjkz?= =?utf-8?B?eTl5cVlVaDRNZkJ4QXJqY3ZTbzNhNFAvRStnR2tLZ0FhQ2N3YjZxMS9mUExI?= =?utf-8?B?Lzg0eDB1TngvYmJHL3dkTTRheE9pTHFLQ1FUYnREbmdRMk5hYUZINWVkdHJL?= =?utf-8?B?d2tBSEx6NVJUSlVLQW93dGJ2YUFsS285YkRWa1FzWTg4WGo5RFV3ZmNJU001?= =?utf-8?B?d3lqQ2xDYnkrREh0aHJ3U2RxSnlQT0YvaitjUkVQNVdJRHNRR3o5RUV5VHJ5?= =?utf-8?Q?4qNQ9bi+cRe9tnRKZSueiO8NoTy9VBsj?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZUR3SjhSV1Fub1A3TStBZ2ZLVzk5cTk5cTlPTGE0bk11RC93OUUvbDBveWNS?= =?utf-8?B?VnBjWS8yTFJVL3FHRTlVcXpDT0dTc0czcGZzZFhGaC8ySGRjL3Q0enNuUGNZ?= =?utf-8?B?N1dneXZnOTZVUGhFOCtMSkRsU0JrODZESTd4QmtFUVl2TlNiaWRwZXY5TmlY?= =?utf-8?B?aUhuRnNLcDA0NW9EdmZJYUxsbU5TK0VDeUtnanFIRjJTN2YyOWN3Mk5yRmw0?= =?utf-8?B?ZERlQXNyM0ZRaW1WNmtIblRaL21yMTZsVWN3d0twYk1qalZnUFJxR2NYYmF1?= =?utf-8?B?T1Arc0lVRDRtcG1NVG1KdVZDRXJaYXc3T0hQd2hWNXdFY3FPUFlXS3JMMGIy?= =?utf-8?B?eEpvN1RQUTNMaEIrQlkrbmtPa1NLK28vVWRKS3ZLQUFaUnFPcU42STJyWEYx?= =?utf-8?B?YW5qUzMrNk1GRFJXUU1yRm1nZFdVd2JtZlh2M0syMXFVb2pCZE42VWtES3lI?= =?utf-8?B?dGVzQnBFQWdzMlYyc2tFQW9KZlNmUGlTaUhyQ1pFUXNCUlZDbm0yNTM5S0tH?= =?utf-8?B?a2pSWXF2elduYmxwM2Z0ZHJadm1qVUQvdU9nUi95Q1BuRXFpaXhLUE14aWpZ?= =?utf-8?B?cU01VCthbjBIU2h1NVdhVHZkVU5tVWZxbmg0WkRqUmNVTWlQTER1SUJNYWhx?= =?utf-8?B?NDJ6YnVNaUpCUkNCME1LdytnVTJRZnN5b1ZFNWVVZTAxU2FtUFJIc29GVFFS?= =?utf-8?B?NHVCcVNUNmd4UWJEQ1pzNUVTOHdVcmVvWGkzWjROTGFZSXdKUjdkdHZDSWY4?= =?utf-8?B?RFdhYUF5WjlwUzVOWFpwenlRNml0L00xQ2NzeDRxM1Rrd2FEY3U5R3lWNnQx?= =?utf-8?B?QmszclhTK0xhNUV6VEtMSVNLVDdyazZ6SmNVTXNqODFsbXI3ZHdVNFpmYkxI?= =?utf-8?B?TWUxWE1PTE9aSU5vSUE5aGx4ZFBlVEY4NU5JYXdKUS9mMjZXQ3ZIYThSNmFp?= =?utf-8?B?L2VONU1yaG4rODNzQ2REVER4Uno0bGFZQmI3RlV1RnQ5NXc5TFlzUk9NY3Bt?= =?utf-8?B?MHlqTE11TEx5SFBTRzAvWVFhYnlHV1ZOVDZsWDN2bWpyRFg5WU1nMVVjb2hB?= =?utf-8?B?VXBKZEpUN3kvZkdpSzNGcHBObE02dm1CQktxVHd0NE1TUGdlVXl1UjlTK2dj?= =?utf-8?B?TSs5bGgzcm9zU0psM0N4UFNscU4wdzV6Y05CTW55RmR2N1N6VEJPamM0UTZF?= =?utf-8?B?My9VM2JsR01WVDdBYk8zR2xoZVA0S29IYkRYSDd5dFZyMlFNZEFPYnJGbXdN?= =?utf-8?B?bWtjaGV5RUNSUlNXakdIWGlaVTZDMGIzaFNvRTVBVk5EQTFSMWsrWkl4ZG92?= =?utf-8?B?NTZMTjlyTDB6VW0wQWtmUFlkL0tYWElVWXBjUDhiVXdUdlVRckcrY015cVVi?= =?utf-8?B?OE5Nd3B2MnNyank5UHNHRURTZU40YnllcW5yQXFEa09LNjdqNzYzUFE5QnNM?= =?utf-8?B?WjRtZXR6VWJUc3lCR0VBbWljSng4YmMzME1UUUQzRkxVWEdBa3ZWVlN0d2pW?= =?utf-8?B?aXJjTHdZTWI1MWZnK09zVHY1RDlwb1l2dVBTT1FhaU1yWUhVM0d3dk9uQUtu?= =?utf-8?B?bVE2U1ZpRmR2WGs3d3ViZUZXbkFZU1F0U01yNXFIM2VCcWhJQUd2Sy9vbEl1?= =?utf-8?B?Tkl4QmdtakpOc2FWVmZKd1o3UVEvckRNWUF4Q1NzYU82cTRuOWRPL1BsdnJh?= =?utf-8?B?Q1UrNUppUXdIS2NYU2xPVWZzcDlsWVZaVi9VK3BZbm5hemlrSFhjYXlpc2ZW?= =?utf-8?B?L3VUWTdyOHR2Ni95eHQrU25XT1lQT1pDQ1BlNlBkSHJnWWZxRUJOT00wZHFD?= =?utf-8?B?ck9neGhmTUR5Zm1mSmtWZEtGVDJHdXFnSi9NUnNjMEhydkNqUng4SlR6ajFk?= =?utf-8?B?SitFMnlwT3Y5L0w3THo1Mm5pd0ZYRWt1d0I5M0RHVTU5K05aeWxhYThUUThu?= =?utf-8?B?RWZKL0tsTTIzaENNcHd5NTBBQWR6NE9GREtJbWl4aldsVkxOR2FyZ1NPWlVL?= =?utf-8?B?S0dOQjdidmZJME5uVWVkL0c4a1hKSEhEeVRDUHBKU0ZSdkEyMXQ0WGdzUSsv?= =?utf-8?B?bFl5NEpRUFFwemFYbGZQUEJHdkZwTVFrTmJkQnZORXBzVnRmWlQ4NXB1ek1O?= =?utf-8?B?MUF5SlBQSlNzaGVYWWZPRC9ZODZXSTVnTjZWck1uUEJTdkF3Z2ZWZVZ3OE1x?= =?utf-8?B?SEE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: microchip.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7481.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a884f6a-6b8c-44d0-0723-08dd36e4cdab X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2025 10:50:48.7427 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: I7nrC13iMWU718N94QV4DNZxRxrLR5M4tE0HX2xMgBxGbmmrYC3CQLZcaM92WhnATItVQXHrJbZxRMo+q4aISgyFCuE/cULqKJK4V0EvFn0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB6792 SGkgT2xla3NqaSwNCg0KT24gV2VkLCAyMDI1LTAxLTA4IGF0IDEzOjEzICswMTAwLCBPbGVrc2lq IFJlbXBlbCB3cm90ZToNCj4gRVhURVJOQUwgRU1BSUw6IERvIG5vdCBjbGljayBsaW5rcyBvciBv cGVuIGF0dGFjaG1lbnRzIHVubGVzcyB5b3UNCj4ga25vdyB0aGUgY29udGVudCBpcyBzYWZlDQo+ IA0KPiBDb252ZXJ0IHRoZSBMQU43OHh4IGRyaXZlciB0byB1c2UgdGhlIFBIWWxpbmsgZnJhbWV3 b3JrIGZvciBtYW5hZ2luZw0KPiBQSFkgYW5kIE1BQyBpbnRlcmFjdGlvbnMuDQo+IA0KPiBLZXkg Y2hhbmdlcyBpbmNsdWRlOg0KPiAtIFJlcGxhY2UgZGlyZWN0IFBIWSBvcGVyYXRpb25zIHdpdGgg cGh5bGluayBlcXVpdmFsZW50cyAoZS5nLiwNCj4gICBwaHlsaW5rX3N0YXJ0LCBwaHlsaW5rX3N0 b3ApLg0KPiAtIEludHJvZHVjZSBsYW43OHh4X3BoeWxpbmtfc2V0dXAgZm9yIHBoeWxpbmsgaW5p dGlhbGl6YXRpb24gYW5kDQo+ICAgY29uZmlndXJhdGlvbi4NCj4gLSBBZGQgcGh5bGluayBNQUMg b3BlcmF0aW9ucyAobGFuNzh4eF9tYWNfY29uZmlnLA0KPiAgIGxhbjc4eHhfbWFjX2xpbmtfZG93 biwgbGFuNzh4eF9tYWNfbGlua191cCkgZm9yIG1hbmFnaW5nIGxpbmsNCj4gICBzZXR0aW5ncyBh bmQgZmxvdyBjb250cm9sLg0KPiAtIFJlbW92ZSByZWR1bmRhbnQgYW5kIG5vdyBwaHlsaW5rLW1h bmFnZWQgZnVuY3Rpb25zIGxpa2UNCj4gICBgbGFuNzh4eF9saW5rX3N0YXR1c19jaGFuZ2VgLg0K PiANCj4gU2lnbmVkLW9mZi1ieTogT2xla3NpaiBSZW1wZWwgPG8ucmVtcGVsQHBlbmd1dHJvbml4 LmRlPg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMgfCA1MjUgKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tDQo+IC0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMjg3 IGluc2VydGlvbnMoKyksIDIzOCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC91c2IvbGFuNzh4eC5jIGIvZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYw0KPiBpbmRl eCBhOTFiZjljN2UzMWQuLjZkZmQ5MzAxMjc5ZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQv dXNiL2xhbjc4eHguYw0KPiArKysgYi9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jDQo+IEBAIC02 LDYgKzYsNyBAQA0KPiAgI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPg0KPiAgI2luY2x1ZGUg PGxpbnV4L2V0aGVyZGV2aWNlLmg+DQo+ICAjaW5jbHVkZSA8bGludXgvZXRodG9vbC5oPg0KPiAr I2luY2x1ZGUgPGxpbnV4L3BoeWxpbmsuaD4NCj4gICNpbmNsdWRlIDxsaW51eC91c2IuaD4NCj4g ICNpbmNsdWRlIDxsaW51eC9jcmMzMi5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPg0K PiBAQCAtMzg0LDcgKzM4NSw3IEBAIHN0cnVjdCBza2JfZGF0YSB7ICAgICAgICAgICAvKiBza2It PmNiIGlzIG9uZSBvZg0KPiB0aGVzZSAqLw0KPiAgI2RlZmluZSBFVkVOVF9SWF9IQUxUICAgICAg ICAgICAgICAgICAgMQ0KPiAgI2RlZmluZSBFVkVOVF9SWF9NRU1PUlkgICAgICAgICAgICAgICAg ICAgICAgICAyDQo+ICAjZGVmaW5lIEVWRU5UX1NUU19TUExJVCAgICAgICAgICAgICAgICAgICAg ICAgIDMNCj4gLSNkZWZpbmUgRVZFTlRfTElOS19SRVNFVCAgICAgICAgICAgICAgIDQNCj4gKyNk ZWZpbmUgRVZFTlRfUEhZX0lOVF9BQ0sgICAgICAgICAgICAgIDQNCj4gICNkZWZpbmUgRVZFTlRf UlhfUEFVU0VEICAgICAgICAgICAgICAgICAgICAgICAgNQ0KPiAgI2RlZmluZSBFVkVOVF9ERVZf V0FLSU5HICAgICAgICAgICAgICAgNg0KPiAgI2RlZmluZSBFVkVOVF9ERVZfQVNMRUVQICAgICAg ICAgICAgICAgNw0KPiBAQCAtNDcwLDYgKzQ3MSw5IEBAIHN0cnVjdCBsYW43OHh4X25ldCB7DQo+ ICAgICAgICAgc3RydWN0IHN0YXRzdGFnZSAgICAgICAgc3RhdHM7DQo+IA0KPiAgICAgICAgIHN0 cnVjdCBpcnFfZG9tYWluX2RhdGEgIGRvbWFpbl9kYXRhOw0KPiArDQo+ICsgICAgICAgc3RydWN0 IHBoeWxpbmsgICAgICAgICAgKnBoeWxpbms7DQo+ICsgICAgICAgc3RydWN0IHBoeWxpbmtfY29u ZmlnICAgcGh5bGlua19jb25maWc7DQo+ICB9Ow0KPiANCj4gIC8qIHVzZSBldGh0b29sIHRvIGNo YW5nZSB0aGUgbGV2ZWwgZm9yIGFueSBnaXZlbiBkZXZpY2UgKi8NCj4gQEAgLTE1NTQsNDAgKzE1 NTgsNiBAQCBzdGF0aWMgdm9pZCBsYW43OHh4X3NldF9tdWx0aWNhc3Qoc3RydWN0DQo+IG5ldF9k ZXZpY2UgKm5ldGRldikNCj4gICAgICAgICBzY2hlZHVsZV93b3JrKCZwZGF0YS0+c2V0X211bHRp Y2FzdCk7DQo+ICB9DQo+IA0KPiANCj4gK3N0YXRpYyB2b2lkIGxhbjc4eHhfbWFjX2NvbmZpZyhz dHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywNCj4gdW5zaWduZWQgaW50IG1vZGUsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGh5bGlua19saW5rX3N0 YXRlDQo+ICpzdGF0ZSkNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ID0g dG9fbmV0X2Rldihjb25maWctPmRldik7DQo+ICsgICAgICAgc3RydWN0IGxhbjc4eHhfbmV0ICpk ZXYgPSBuZXRkZXZfcHJpdihuZXQpOw0KPiArICAgICAgIHUzMiByZ21paV9pZCA9IDA7DQo+ICsg ICAgICAgdTMyIG1hY19jciA9IDA7DQo+ICsgICAgICAgaW50IHJldDsNCj4gKw0KPiArICAgICAg IC8qIENoZWNrIGlmIHRoZSBtb2RlIGlzIHN1cHBvcnRlZCAqLw0KPiArICAgICAgIGlmIChtb2Rl ICE9IE1MT19BTl9GSVhFRCAmJiBtb2RlICE9IE1MT19BTl9QSFkpIHsNCj4gKyAgICAgICAgICAg ICAgIG5ldGRldl9lcnIobmV0LCAiVW5zdXBwb3J0ZWQgbmVnb3RpYXRpb24gbW9kZTogJXVcbiIs DQo+IG1vZGUpOw0KPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArICAgICAgIH0NCj4gKw0K PiArICAgICAgIHN3aXRjaCAoc3RhdGUtPmludGVyZmFjZSkgew0KPiArICAgICAgIGNhc2UgUEhZ X0lOVEVSRkFDRV9NT0RFX0lOVEVSTkFMOg0KPiArICAgICAgIGNhc2UgUEhZX0lOVEVSRkFDRV9N T0RFX0dNSUk6DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIG1hY19jciB8PSBNQUNfQ1JfR01J SV9FTl87DQo+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICBjYXNlIFBIWV9JTlRF UkZBQ0VfTU9ERV9SR01JSV9JRDoNCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAg IGRlZmF1bHQ6DQo+ICsgICAgICAgICAgICAgICBuZXRkZXZfd2FybihuZXQsICJVbnN1cHBvcnRl ZCBpbnRlcmZhY2UgbW9kZTogJWRcbiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGF0ZS0+aW50ZXJmYWNlKTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gKyAgICAgICB9 DQo+ICsNCj4gKyAgICAgICAvKiBieSB0aGUgd2F5LCBtYWtlIHN1cmUgYXV0byBzcGVlZCBhbmQg ZHVwbGV4IGFyZSBkaXNhYmxlZA0KPiAqLw0KPiArICAgICAgIHJldCA9IGxhbjc4eHhfdXBkYXRl X3JlZyhkZXYsIE1BQ19DUiwgTUFDX0NSX0FVVE9fRFVQTEVYXyB8DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1BQ19DUl9BVVRPX1NQRUVEXyB8DQo+IE1BQ19DUl9HTUlJX0VO XywgbWFjX2NyKTsNCj4gKyAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgICAgIGdv dG8gbWFjX2NvbmZpZ19mYWlsOw0KPiArDQo+ICsgICAgICAgcmV0ID0gbGFuNzh4eF93cml0ZV9y ZWcoZGV2LCBNQUNfUkdNSUlfSUQsIHJnbWlpX2lkKTsNCj4gKyAgICAgICBpZiAocmV0IDwgMCkN Cj4gKyAgICAgICAgICAgICAgIGdvdG8gbWFjX2NvbmZpZ19mYWlsOw0KPiArDQo+ICsgICAgICAg cmV0dXJuOw0KPiArDQo+ICttYWNfY29uZmlnX2ZhaWw6DQo+ICsgICAgICAgbmV0ZGV2X2Vycihu ZXQsICJGYWlsZWQgdG8gY29uZmlnIE1BQyB3aXRoIGVycm9yICVwZVxuIiwNCj4gRVJSX1BUUihy ZXQpKTsNCj4gK30NCj4gKw0KPiArDQo+ICtzdGF0aWMgaW50IGxhbjc4eHhfY29uZmlndXJlX3Vz YihzdHJ1Y3QgbGFuNzh4eF9uZXQgKmRldiwgaW50IHNwZWVkKQ0KPiArew0KPiArICAgICAgIGlu dCByZXQ7DQo+ICsNCj4gKyAgICAgICBpZiAoZGV2LT51ZGV2LT5zcGVlZCAhPSBVU0JfU1BFRURf U1VQRVIpDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gKw0KPiArICAgICAgIGlmIChz cGVlZCAhPSBTUEVFRF8xMDAwKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIGxhbjc4eHhfdXBk YXRlX3JlZyhkZXYsIFVTQl9DRkcxLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBVU0JfQ0ZHMV9ERVZfVTJfSU5JVF9FTl8gfA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBVU0JfQ0ZHMV9ERVZfVTFfSU5JVF9FTl8sDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTQl9DRkcxX0RFVl9VMl9J TklUX0VOXyB8DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVT Ql9DRkcxX0RFVl9VMV9JTklUX0VOXyk7DQo+ICsNCj4gKyAgICAgICAvKiBkaXNhYmxlIFUyICov DQo+ICsgICAgICAgcmV0ID0gbGFuNzh4eF91cGRhdGVfcmVnKGRldiwgVVNCX0NGRzEsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTQl9DRkcxX0RFVl9VMl9JTklUX0VOXywg MCk7DQo+ICsgICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0 Ow0KPiArICAgICAgIC8qIGVuYWJsZSBVMSAqLw0KPiArICAgICAgIHJldHVybiBsYW43OHh4X3Vw ZGF0ZV9yZWcoZGV2LCBVU0JfQ0ZHMSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFVTQl9DRkcxX0RFVl9VMV9JTklUX0VOXywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFVTQl9DRkcxX0RFVl9VMV9JTklUX0VOXyk7DQoNClNpbmNlLCBpbiB0aGUgYWxs IHRoZSBhYm92ZSBjYXNlcyB3ZSB1cGRhdGUgdGhlIFVTQl9DRkcxIGJhc2VkIG9uIHRoZQ0KbWFz ayBhbmQgdmFsdWUgZGVwZW5kaW5nIG9uIHZhcmlvdXMgc3BlZWRzLCBoYXZlIGEgdmFyaWFibGUg Zm9yIG1hc2sNCmFuZCB2YWx1ZSBhbmQgdXNlIHRoZW0gdG8gcmVwcmVzZW50IGVuYWJsZWQgZmxh Z3MgaW5zdGVhZCBvZiBwYXNzaW5nDQp0aGUgZmxhZ3MgZGlyZWN0bHkgZm9yIGJldHRlciByZWFk YWJpbGl0eS4NCg0KRm9yIEVnOiBoYXZlIG1hc2sgPSBVU0JfQ0ZHMV9ERVZfVTJfSU5JVF9FTl8g YW5kIHZhbCA9IDAgYW5kIHBhc3MgdGhlbQ0KYXMgYXJndW1lbnRzLg0KDQo+ICt9DQo+ICsNCj4g K3N0YXRpYyBpbnQgbGFuNzh4eF9jb25maWd1cmVfZmxvd2NvbnRyb2woc3RydWN0IGxhbjc4eHhf bmV0ICpkZXYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCB0eF9wYXVzZSwgYm9vbA0KPiByeF9wYXVzZSkNCj4gK3sNCj4gKyAgICAgICB1MzIgZmxvdyA9 IDAsIGZjdF9mbG93ID0gMDsNCj4gKyAgICAgICBpbnQgcmV0Ow0KPiArDQo+ICsgICAgICAgaWYg KHR4X3BhdXNlKQ0KPiArICAgICAgICAgICAgICAgZmxvdyB8PSAoRkxPV19DUl9UWF9GQ0VOXyB8 IDB4RkZGRik7DQo+ICsNCj4gKyAgICAgICBpZiAocnhfcGF1c2UpDQo+ICsgICAgICAgICAgICAg ICBmbG93IHw9IEZMT1dfQ1JfUlhfRkNFTl87DQo+ICsNCj4gKyAgICAgICBpZiAoZGV2LT51ZGV2 LT5zcGVlZCA9PSBVU0JfU1BFRURfU1VQRVIpDQo+ICsgICAgICAgICAgICAgICBmY3RfZmxvdyA9 IEZMT1dfQ1RSTF9USFJFU0hPTEQoRkxPV19PTl9TUywNCj4gRkxPV19PRkZfU1MpOw0KPiArICAg ICAgIGVsc2UgaWYgKGRldi0+dWRldi0+c3BlZWQgPT0gVVNCX1NQRUVEX0hJR0gpDQo+ICsgICAg ICAgICAgICAgICBmY3RfZmxvdyA9IEZMT1dfQ1RSTF9USFJFU0hPTEQoRkxPV19PTl9IUywNCj4g RkxPV19PRkZfSFMpOw0KPiArDQo+ICsgICAgICAgcmV0ID0gbGFuNzh4eF93cml0ZV9yZWcoZGV2 LCBGQ1RfRkxPVywgZmN0X2Zsb3cpOw0KPiArICAgICAgIGlmIChyZXQgPCAwKQ0KPiArICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4gKw0KPiArICAgICAgIC8qIHRocmVzaG9sZCB2YWx1ZSBz aG91bGQgYmUgc2V0IGJlZm9yZSBlbmFibGluZyBmbG93ICovDQo+ICsgICAgICAgcmV0dXJuIGxh bjc4eHhfd3JpdGVfcmVnKGRldiwgRkxPVywgZmxvdyk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2 b2lkIGxhbjc4eHhfbWFjX2xpbmtfdXAoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbW9kZSwgcGh5 X2ludGVyZmFjZV90DQo+IGludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgc3BlZWQsIGludCBkdXBsZXgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCB0eF9wYXVzZSwgYm9vbCByeF9wYXVzZSkNCj4gK3sNCj4gKyAgICAgICBzdHJ1 Y3QgbmV0X2RldmljZSAqbmV0ID0gdG9fbmV0X2Rldihjb25maWctPmRldik7DQo+ICsgICAgICAg c3RydWN0IGxhbjc4eHhfbmV0ICpkZXYgPSBuZXRkZXZfcHJpdihuZXQpOw0KPiArICAgICAgIHUz MiBtYWNfY3IgPSAwOw0KPiArICAgICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICAgICBzd2l0Y2gg KHNwZWVkKSB7DQo+ICsgICAgICAgY2FzZSBTUEVFRF8xMDAwOg0KPiArICAgICAgICAgICAgICAg bWFjX2NyIHw9IE1BQ19DUl9TUEVFRF8xMDAwXzsNCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0K PiArICAgICAgIGNhc2UgU1BFRURfMTAwOg0KPiArICAgICAgICAgICAgICAgbWFjX2NyIHw9IE1B Q19DUl9TUEVFRF8xMDBfOw0KPiArICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgY2Fz ZSBTUEVFRF8xMDoNCj4gKyAgICAgICAgICAgICAgIG1hY19jciB8PSBNQUNfQ1JfU1BFRURfMTBf Ow0KPiArICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgZGVmYXVsdDoNCj4gKyAgICAg ICAgICAgICAgIG5ldGRldl9lcnIoZGV2LT5uZXQsICJVbnN1cHBvcnRlZCBzcGVlZCAlZFxuIiwN Cj4gc3BlZWQpOw0KPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArICAgICAgIH0NCj4gKw0K PiArICAgICAgIGlmIChkdXBsZXggPT0gRFVQTEVYX0ZVTEwpDQo+ICsgICAgICAgICAgICAgICBt YWNfY3IgfD0gTUFDX0NSX0ZVTExfRFVQTEVYXzsNCj4gKw0KPiArICAgICAgIC8qIG1ha2Ugc3Vy ZSBUWEVOIGFuZCBSWEVOIGFyZSBkaXNhYmxlZCBiZWZvcmUgcmVjb25maWd1cmluZw0KPiBNQUMg Ki8NCj4gKyAgICAgICByZXQgPSBsYW43OHh4X3VwZGF0ZV9yZWcoZGV2LCBNQUNfQ1IsIE1BQ19D Ul9TUEVFRF9NQVNLXyB8DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BQ19D Ul9GVUxMX0RVUExFWF8gfA0KPiBNQUNfQ1JfRUVFX0VOXywgbWFjX2NyKTsNCg0KVGhlIGF1dG8t c3BlZWQgYW5kIGR1cGxleCBhcmUgZGlzYWJsZWQgaW4gbGFuNzh4eF9tYWNfY29uZmlnIGlzIGl0 DQpuZWNlc3NhcnkgdG8gZGlzYWJsZSB0aGlzIGFnYWluIGhlcmUuIFlvdSBjYW4gZGlzYWJsZSBp dCBvbmNlIHRvIA0KYXZvaWQgcmVkdW5kYW5jeS4NCg0KPiArICAgICAgIGlmIChyZXQgPCAwKQ0K PiArICAgICAgICAgICAgICAgZ290byBsaW5rX3VwX2ZhaWw7DQo+ICsNCj4gKyAgICAgICByZXQg PSBsYW43OHh4X2NvbmZpZ3VyZV9mbG93Y29udHJvbChkZXYsIHR4X3BhdXNlLCByeF9wYXVzZSk7 DQo+ICsgICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICAgICBnb3RvIGxpbmtfdXBf ZmFpbDsNCj4gKw0KPiArICAgICAgIHJldCA9IGxhbjc4eHhfY29uZmlndXJlX3VzYihkZXYsIHNw ZWVkKTsNCj4gKyAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgICAgIGdvdG8gbGlu a191cF9mYWlsOw0KPiArDQo+ICsgICAgICAgbGFuNzh4eF9yeF91cmJfc3VibWl0X2FsbChkZXYp Ow0KPiArDQo+ICsgICAgICAgcmV0ID0gbGFuNzh4eF9mbHVzaF9yeF9maWZvKGRldik7DQo+ICsg ICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICAgICBnb3RvIGxpbmtfdXBfZmFpbDsN Cj4gKw0KPiArICAgICAgIHJldCA9IGxhbjc4eHhfZmx1c2hfdHhfZmlmbyhkZXYpOw0KPiArICAg ICAgIGlmIChyZXQgPCAwKQ0KPiArICAgICAgICAgICAgICAgZ290byBsaW5rX3VwX2ZhaWw7DQo+ ICsNCj4gKyAgICAgICByZXQgPSBsYW43OHh4X3N0YXJ0X3R4X3BhdGgoZGV2KTsNCj4gKyAgICAg ICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgICAgIGdvdG8gbGlua191cF9mYWlsOw0KPiAr DQo+ICsgICAgICAgcmV0ID0gbGFuNzh4eF9zdGFydF9yeF9wYXRoKGRldik7DQo+ICsgICAgICAg aWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICAgICBnb3RvIGxpbmtfdXBfZmFpbDsNCj4gKw0K PiArICAgICAgIHJldHVybjsNCj4gK2xpbmtfdXBfZmFpbDoNCj4gKyAgICAgICBuZXRkZXZfZXJy KGRldi0+bmV0LCAiRmFpbGVkIHRvIHNldCBNQUMgdXAgd2l0aCBlcnJvciAlcGVcbiIsDQo+ICsg ICAgICAgICAgICAgICAgICBFUlJfUFRSKHJldCkpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgY29u c3Qgc3RydWN0IHBoeWxpbmtfbWFjX29wcyBsYW43OHh4X3BoeWxpbmtfbWFjX29wcyA9IHsNCj4g KyAgICAgICAubWFjX2NvbmZpZyA9IGxhbjc4eHhfbWFjX2NvbmZpZywNCj4gKyAgICAgICAubWFj X2xpbmtfZG93biA9IGxhbjc4eHhfbWFjX2xpbmtfZG93biwNCj4gKyAgICAgICAubWFjX2xpbmtf dXAgPSBsYW43OHh4X21hY19saW5rX3VwLA0KPiArfTsNCg0KSWYgcG9zc2libGUsIGhhdmUgTUFD IGFuZCBwaHkgcmVsYXRlZCBBUElzIGluIHNlcGVyYXRlIHBhdGNoLg0KDQo+IA0KPiArDQo+ICBz dGF0aWMgaW50IGxhbjc4eHhfcGh5X2luaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpDQo+ICB7 DQo+IC0gICAgICAgX19FVEhUT09MX0RFQ0xBUkVfTElOS19NT0RFX01BU0soZmMpID0geyAwLCB9 Ow0KPiAtICAgICAgIGludCByZXQ7DQo+IC0gICAgICAgdTMyIG1paV9hZHY7DQo+ICAgICAgICAg c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldjsNCj4gKyAgICAgICBpbnQgcmV0Ow0KPiANCj4gICAg ICAgICBzd2l0Y2ggKGRldi0+Y2hpcGlkKSB7DQo+ICAgICAgICAgY2FzZSBJRF9SRVZfQ0hJUF9J RF83ODAxXzoNCj4gQEAgLTI1NzYsNyArMjY3Myw3IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9waHlf aW5pdChzdHJ1Y3QgbGFuNzh4eF9uZXQNCj4gKmRldikNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIC1FSU87DQo+ICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgICAgICAgICBw aHlkZXYtPmlzX2ludGVybmFsID0gdHJ1ZTsNCj4gLSAgICAgICAgICAgICAgIGRldi0+aW50ZXJm YWNlID0gUEhZX0lOVEVSRkFDRV9NT0RFX0dNSUk7DQo+ICsgICAgICAgICAgICAgICBwaHlkZXYt PmludGVyZmFjZSA9IFBIWV9JTlRFUkZBQ0VfTU9ERV9JTlRFUk5BTDsNCj4gICAgICAgICAgICAg ICAgIGJyZWFrOw0KPiANCj4gICAgICAgICBkZWZhdWx0Og0KPiBAQCAtMjU5MSwxMiArMjY4OCw3 IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9waHlfaW5pdChzdHJ1Y3QgbGFuNzh4eF9uZXQNCj4gKmRl dikNCj4gICAgICAgICAgICAgICAgIHBoeWRldi0+aXJxID0gUEhZX1BPTEw7DQo+ICAgICAgICAg bmV0ZGV2X2RiZyhkZXYtPm5ldCwgInBoeWRldi0+aXJxID0gJWRcbiIsIHBoeWRldi0+aXJxKTsN Cj4gDQo+IC0gICAgICAgLyogc2V0IHRvIEFVVE9NRElYICovDQo+IC0gICAgICAgcGh5ZGV2LT5t ZGl4ID0gRVRIX1RQX01ESV9BVVRPOw0KPiAtDQo+IC0gICAgICAgcmV0ID0gcGh5X2Nvbm5lY3Rf ZGlyZWN0KGRldi0+bmV0LCBwaHlkZXYsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxhbjc4eHhfbGlua19zdGF0dXNfY2hhbmdlLA0KPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZXYtPmludGVyZmFjZSk7DQo+ICsgICAgICAgcmV0ID0gcGh5bGlua19jb25u ZWN0X3BoeShkZXYtPnBoeWxpbmssIHBoeWRldik7DQo+ICAgICAgICAgaWYgKHJldCkgew0KPiAg ICAgICAgICAgICAgICAgbmV0ZGV2X2VycihkZXYtPm5ldCwgImNhbid0IGF0dGFjaCBQSFkgdG8g JXNcbiIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldi0+bWRpb2J1cy0+aWQpOw0K PiBAQCAtMjYwOSwxOCArMjcwMSw3IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9waHlfaW5pdChzdHJ1 Y3QgbGFuNzh4eF9uZXQNCj4gKmRldikNCj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlPOw0K PiAgICAgICAgIH0NCj4gDQo+IC0gICAgICAgLyogTUFDIGRvZXNuJ3Qgc3VwcG9ydCAxMDAwVCBI YWxmICovDQo+IC0gICAgICAgcGh5X3JlbW92ZV9saW5rX21vZGUocGh5ZGV2LA0KPiBFVEhUT09M X0xJTktfTU9ERV8xMDAwYmFzZVRfSGFsZl9CSVQpOw0KDQpTaW5jZSBNQUMgZG9lc24ndCBzdXBw b3J0IDEwMDBCYXNlLVQgaGFsZi1kdXBsZXggZG9lcyBwaHlsaW5rIGhhbmRsZQ0KaXRzIHJlbW92 YWwgZnJvbSB0aGUgYWR2ZXJ0aXNlZCBsaW5rIG1vZGVzLiBQcmV2aW91c2x5LCBpdCB3YXMgZG9u ZQ0KdXNpbmcgcGh5X3JlbW92ZV9saW5rX21vZGUuIElmIG5vdCwgZW5zdXJlIHRoYXQgdGhlIHBo eSBkb2Vzbid0IGVuZA0KdXAgYWR2ZXJ0aXNpbmcgYW4gdW5zdXBwb3J0ZWQgbW9kZS4NCg0KPiAt DQo+IC0gICAgICAgLyogc3VwcG9ydCBib3RoIGZsb3cgY29udHJvbHMgKi8NCj4gLSAgICAgICBk ZXYtPmZjX3JlcXVlc3RfY29udHJvbCA9IChGTE9XX0NUUkxfUlggfCBGTE9XX0NUUkxfVFgpOw0K PiAtICAgICAgIGxpbmttb2RlX2NsZWFyX2JpdChFVEhUT09MX0xJTktfTU9ERV9QYXVzZV9CSVQs DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIHBoeWRldi0+YWR2ZXJ0aXNpbmcpOw0KPiAt ICAgICAgIGxpbmttb2RlX2NsZWFyX2JpdChFVEhUT09MX0xJTktfTU9ERV9Bc3ltX1BhdXNlX0JJ VCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGh5ZGV2LT5hZHZlcnRpc2luZyk7DQo+ IC0gICAgICAgbWlpX2FkdiA9ICh1MzIpbWlpX2FkdmVydGlzZV9mbG93Y3RybChkZXYtDQo+ID5m Y19yZXF1ZXN0X2NvbnRyb2wpOw0KPiAtICAgICAgIG1paV9hZHZfdG9fbGlua21vZGVfYWR2X3Qo ZmMsIG1paV9hZHYpOw0KPiAtICAgICAgIGxpbmttb2RlX29yKHBoeWRldi0+YWR2ZXJ0aXNpbmcs IGZjLCBwaHlkZXYtPmFkdmVydGlzaW5nKTsNCj4gKyAgICAgICBwaHlfc3VzcGVuZChwaHlkZXYp Ow0KPiANCj4gICAgICAgICBwaHlfc3VwcG9ydF9lZWUocGh5ZGV2KTsNCj4gDQo+IEBAIC0yNjQ2 LDEwICsyNzI3LDYgQEAgc3RhdGljIGludCBsYW43OHh4X3BoeV9pbml0KHN0cnVjdCBsYW43OHh4 X25ldA0KPiAqZGV2KQ0KPiAgICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgIH0NCj4gDQo+IC0g ICAgICAgZ2VucGh5X2NvbmZpZ19hbmVnKHBoeWRldik7DQo+IC0NCj4gLSAgICAgICBkZXYtPmZj X2F1dG9uZWcgPSBwaHlkZXYtPmF1dG9uZWc7DQo+IC0NCj4gICAgICAgICByZXR1cm4gMDsNCj4g IH0NCj4gDQo+IEBAIC0yOTg5LDcgKzMwNjYsNiBAQCBzdGF0aWMgaW50IGxhbjc4eHhfcmVzZXQo c3RydWN0IGxhbjc4eHhfbmV0DQo+ICpkZXYpDQo+ICAgICAgICAgdW5zaWduZWQgbG9uZyB0aW1l b3V0Ow0KPiAgICAgICAgIGludCByZXQ7DQo+ICAgICAgICAgdTMyIGJ1ZjsNCj4gLSAgICAgICB1 OCBzaWc7DQo+IA0KPiAgICAgICAgIHJldCA9IGxhbjc4eHhfcmVhZF9yZWcoZGV2LCBIV19DRkcs ICZidWYpOw0KPiAgICAgICAgIGlmIChyZXQgPCAwKQ0KPiBAQCAtMzE0NiwyMiArMzIyMiwxMiBA QCBzdGF0aWMgaW50IGxhbjc4eHhfcmVzZXQoc3RydWN0IGxhbjc4eHhfbmV0DQo+ICpkZXYpDQo+ ICAgICAgICAgaWYgKHJldCA8IDApDQo+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiAN Cj4gKyAgICAgICBidWYgJj0gfihNQUNfQ1JfQVVUT19EVVBMRVhfIHwgTUFDX0NSX0FVVE9fU1BF RURfKTsNCj4gKw0KPiAgICAgICAgIC8qIExBTjc4MDEgb25seSBoYXMgUkdNSUkgbW9kZSAqLw0K PiAtICAgICAgIGlmIChkZXYtPmNoaXBpZCA9PSBJRF9SRVZfQ0hJUF9JRF83ODAxXykgew0KPiAr ICAgICAgIGlmIChkZXYtPmNoaXBpZCA9PSBJRF9SRVZfQ0hJUF9JRF83ODAxXykNCj4gICAgICAg ICAgICAgICAgIGJ1ZiAmPSB+TUFDX0NSX0dNSUlfRU5fOw0KPiAtICAgICAgICAgICAgICAgLyog RW5hYmxlIEF1dG8gRHVwbGV4IGFuZCBBdXRvIHNwZWVkICovDQo+IC0gICAgICAgICAgICAgICBi dWYgfD0gTUFDX0NSX0FVVE9fRFVQTEVYXyB8IE1BQ19DUl9BVVRPX1NQRUVEXzsNCj4gLSAgICAg ICB9DQo+IA0KPiAtICAgICAgIGlmIChkZXYtPmNoaXBpZCA9PSBJRF9SRVZfQ0hJUF9JRF83ODAw XyB8fA0KPiAtICAgICAgICAgICBkZXYtPmNoaXBpZCA9PSBJRF9SRVZfQ0hJUF9JRF83ODUwXykg ew0KPiAtICAgICAgICAgICAgICAgcmV0ID0gbGFuNzh4eF9yZWFkX3Jhd19lZXByb20oZGV2LCAw LCAxLCAmc2lnKTsNCj4gLSAgICAgICAgICAgICAgIGlmICghcmV0ICYmIHNpZyAhPSBFRVBST01f SU5ESUNBVE9SKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIC8qIEltcGxpZXMgdGhlcmUg aXMgbm8gZXh0ZXJuYWwgZWVwcm9tLiBTZXQNCj4gbWFjIHNwZWVkICovDQo+IC0gICAgICAgICAg ICAgICAgICAgICAgIG5ldGRldl9pbmZvKGRldi0+bmV0LCAiTm8gRXh0ZXJuYWwgRUVQUk9NLg0K PiBTZXR0aW5nIE1BQyBTcGVlZFxuIik7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGJ1ZiB8 PSBNQUNfQ1JfQVVUT19EVVBMRVhfIHwNCj4gTUFDX0NSX0FVVE9fU1BFRURfOw0KPiAtICAgICAg ICAgICAgICAgfQ0KPiAtICAgICAgIH0NCj4gICAgICAgICByZXQgPSBsYW43OHh4X3dyaXRlX3Jl ZyhkZXYsIE1BQ19DUiwgYnVmKTsNCj4gICAgICAgICBpZiAocmV0IDwgMCkNCj4gICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+IEBAIC0zMjExLDkgKzMyNzcsMTEgQEAgc3RhdGljIGludCBs YW43OHh4X29wZW4oc3RydWN0IG5ldF9kZXZpY2UNCj4gKm5ldCkNCj4gDQo+ICAgICAgICAgbXV0 ZXhfbG9jaygmZGV2LT5kZXZfbXV0ZXgpOw0KPiANCj4gLSAgICAgICBwaHlfc3RhcnQobmV0LT5w aHlkZXYpOw0KPiArICAgICAgIGxhbjc4eHhfaW5pdF9zdGF0cyhkZXYpOw0KPiANCj4gLSAgICAg ICBuZXRpZl9kYmcoZGV2LCBpZnVwLCBkZXYtPm5ldCwgInBoeSBpbml0aWFsaXNlZA0KPiBzdWNj ZXNzZnVsbHkiKTsNCj4gKyAgICAgICBuYXBpX2VuYWJsZSgmZGV2LT5uYXBpKTsNCj4gKw0KPiAr ICAgICAgIHNldF9iaXQoRVZFTlRfREVWX09QRU4sICZkZXYtPmZsYWdzKTsNCj4gDQo+ICAgICAg ICAgLyogZm9yIExpbmsgQ2hlY2sgKi8NCj4gICAgICAgICBpZiAoZGV2LT51cmJfaW50cikgew0K PiBAQCAtMzIyNSwzMSArMzI5Myw5IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9vcGVuKHN0cnVjdCBu ZXRfZGV2aWNlDQo+ICpuZXQpDQo+ICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiAN Cj4gLSAgICAgICByZXQgPSBsYW43OHh4X2ZsdXNoX3J4X2ZpZm8oZGV2KTsNCj4gLSAgICAgICBp ZiAocmV0IDwgMCkNCj4gLSAgICAgICAgICAgICAgIGdvdG8gZG9uZTsNCj4gLSAgICAgICByZXQg PSBsYW43OHh4X2ZsdXNoX3R4X2ZpZm8oZGV2KTsNCj4gLSAgICAgICBpZiAocmV0IDwgMCkNCj4g LSAgICAgICAgICAgICAgIGdvdG8gZG9uZTsNCj4gLQ0KPiAtICAgICAgIHJldCA9IGxhbjc4eHhf c3RhcnRfdHhfcGF0aChkZXYpOw0KPiAtICAgICAgIGlmIChyZXQgPCAwKQ0KPiAtICAgICAgICAg ICAgICAgZ290byBkb25lOw0KPiAtICAgICAgIHJldCA9IGxhbjc4eHhfc3RhcnRfcnhfcGF0aChk ZXYpOw0KPiAtICAgICAgIGlmIChyZXQgPCAwKQ0KPiAtICAgICAgICAgICAgICAgZ290byBkb25l Ow0KPiAtDQo+IC0gICAgICAgbGFuNzh4eF9pbml0X3N0YXRzKGRldik7DQo+IC0NCj4gLSAgICAg ICBzZXRfYml0KEVWRU5UX0RFVl9PUEVOLCAmZGV2LT5mbGFncyk7DQo+ICsgICAgICAgcGh5bGlu a19zdGFydChkZXYtPnBoeWxpbmspOw0KPiANCj4gICAgICAgICBuZXRpZl9zdGFydF9xdWV1ZShu ZXQpOw0KPiAtDQo+IC0gICAgICAgZGV2LT5saW5rX29uID0gZmFsc2U7DQo+IC0NCj4gLSAgICAg ICBuYXBpX2VuYWJsZSgmZGV2LT5uYXBpKTsNCj4gLQ0KPiAtICAgICAgIGxhbjc4eHhfZGVmZXJf a2V2ZW50KGRldiwgRVZFTlRfTElOS19SRVNFVCk7DQo+ICBkb25lOg0KPiAgICAgICAgIG11dGV4 X3VubG9jaygmZGV2LT5kZXZfbXV0ZXgpOw0KPiANCj4gQEAgLTMzMTcsMTIgKzMzNjMsNyBAQCBz dGF0aWMgaW50IGxhbjc4eHhfc3RvcChzdHJ1Y3QgbmV0X2RldmljZQ0KPiAqbmV0KQ0KPiAgICAg ICAgICAgICAgICAgICAgbmV0LT5zdGF0cy5yeF9wYWNrZXRzLCBuZXQtPnN0YXRzLnR4X3BhY2tl dHMsDQo+ICAgICAgICAgICAgICAgICAgICBuZXQtPnN0YXRzLnJ4X2Vycm9ycywgbmV0LT5zdGF0 cy50eF9lcnJvcnMpOw0KPiANCj4gLSAgICAgICAvKiBpZ25vcmUgZXJyb3JzIHRoYXQgb2NjdXIg c3RvcHBpbmcgdGhlIFR4IGFuZCBSeCBkYXRhIHBhdGhzDQo+ICovDQo+IC0gICAgICAgbGFuNzh4 eF9zdG9wX3R4X3BhdGgoZGV2KTsNCj4gLSAgICAgICBsYW43OHh4X3N0b3BfcnhfcGF0aChkZXYp Ow0KPiAtDQo+IC0gICAgICAgaWYgKG5ldC0+cGh5ZGV2KQ0KPiAtICAgICAgICAgICAgICAgcGh5 X3N0b3AobmV0LT5waHlkZXYpOw0KPiArICAgICAgIHBoeWxpbmtfc3RvcChkZXYtPnBoeWxpbmsp Ow0KPiANCj4gICAgICAgICB1c2Jfa2lsbF91cmIoZGV2LT51cmJfaW50cik7DQo+IA0KPiBAQCAt MzMzMiw3ICszMzczLDcgQEAgc3RhdGljIGludCBsYW43OHh4X3N0b3Aoc3RydWN0IG5ldF9kZXZp Y2UgKm5ldCkNCj4gICAgICAgICAgKi8NCj4gICAgICAgICBjbGVhcl9iaXQoRVZFTlRfVFhfSEFM VCwgJmRldi0+ZmxhZ3MpOw0KPiAgICAgICAgIGNsZWFyX2JpdChFVkVOVF9SWF9IQUxULCAmZGV2 LT5mbGFncyk7DQo+IC0gICAgICAgY2xlYXJfYml0KEVWRU5UX0xJTktfUkVTRVQsICZkZXYtPmZs YWdzKTsNCj4gKyAgICAgICBjbGVhcl9iaXQoRVZFTlRfUEhZX0lOVF9BQ0ssICZkZXYtPmZsYWdz KTsNCj4gICAgICAgICBjbGVhcl9iaXQoRVZFTlRfU1RBVF9VUERBVEUsICZkZXYtPmZsYWdzKTsN Cj4gDQo+ICAgICAgICAgY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXYtPndxKTsNCj4gQEAg LTQyNTYsMTMgKzQyOTcsMTMgQEAgc3RhdGljIHZvaWQgbGFuNzh4eF9kZWxheWVkd29yayhzdHJ1 Y3QNCj4gd29ya19zdHJ1Y3QgKndvcmspDQo+ICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAg fQ0KPiANCj4gLSAgICAgICBpZiAodGVzdF9iaXQoRVZFTlRfTElOS19SRVNFVCwgJmRldi0+Zmxh Z3MpKSB7DQo+ICsgICAgICAgaWYgKHRlc3RfYml0KEVWRU5UX1BIWV9JTlRfQUNLLCAmZGV2LT5m bGFncykpIHsNCj4gICAgICAgICAgICAgICAgIGludCByZXQgPSAwOw0KPiANCj4gLSAgICAgICAg ICAgICAgIGNsZWFyX2JpdChFVkVOVF9MSU5LX1JFU0VULCAmZGV2LT5mbGFncyk7DQo+IC0gICAg ICAgICAgICAgICBpZiAobGFuNzh4eF9saW5rX3Jlc2V0KGRldikgPCAwKSB7DQo+IC0gICAgICAg ICAgICAgICAgICAgICAgIG5ldGRldl9pbmZvKGRldi0+bmV0LCAibGluayByZXNldCBmYWlsZWQN Cj4gKCVkKVxuIiwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0KTsN Cj4gKyAgICAgICAgICAgICAgIGNsZWFyX2JpdChFVkVOVF9QSFlfSU5UX0FDSywgJmRldi0+Zmxh Z3MpOw0KPiArICAgICAgICAgICAgICAgaWYgKGxhbjc4eHhfcGh5X2ludF9hY2soZGV2KSA8IDAp IHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgbmV0ZGV2X2luZm8oZGV2LT5uZXQsICJQSFkg SU5UIGFjayBmYWlsZWQNCj4gKCVwZSlcbiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEVSUl9QVFIocmV0KSk7DQo+ICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAg fQ0KPiANCj4gQEAgLTQzNDQsMjYgKzQzODUsMjkgQEAgc3RhdGljIHZvaWQgbGFuNzh4eF9kaXNj b25uZWN0KHN0cnVjdA0KPiB1c2JfaW50ZXJmYWNlICppbnRmKQ0KPiAgICAgICAgIGlmICghZGV2 KQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiANCj4gLSAgICAgICBuZXRpZl9uYXBpX2Rl bCgmZGV2LT5uYXBpKTsNCj4gLQ0KPiAgICAgICAgIHVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2 KGludGYpOw0KPiAgICAgICAgIG5ldCA9IGRldi0+bmV0Ow0KPiANCj4gKyAgICAgICBydG5sX2xv Y2soKTsNCj4gKyAgICAgICBwaHlsaW5rX3N0b3AoZGV2LT5waHlsaW5rKTsNCj4gKyAgICAgICBw aHlsaW5rX2Rpc2Nvbm5lY3RfcGh5KGRldi0+cGh5bGluayk7DQo+ICsgICAgICAgcnRubF91bmxv Y2soKTsNCj4gKw0KPiArICAgICAgIG5ldGlmX25hcGlfZGVsKCZkZXYtPm5hcGkpOw0KPiArDQo+ ICAgICAgICAgdW5yZWdpc3Rlcl9uZXRkZXYobmV0KTsNCj4gDQo+ICAgICAgICAgdGltZXJfc2h1 dGRvd25fc3luYygmZGV2LT5zdGF0X21vbml0b3IpOw0KPiAgICAgICAgIHNldF9iaXQoRVZFTlRf REVWX0RJU0NPTk5FQ1QsICZkZXYtPmZsYWdzKTsNCj4gICAgICAgICBjYW5jZWxfZGVsYXllZF93 b3JrX3N5bmMoJmRldi0+d3EpOw0KPiANCj4gLSAgICAgICBwaHlkZXYgPSBuZXQtPnBoeWRldjsN Cj4gLQ0KPiAtICAgICAgIHBoeV9kaXNjb25uZWN0KG5ldC0+cGh5ZGV2KTsNCj4gLQ0KPiAgICAg ICAgIGlmIChwaHlfaXNfcHNldWRvX2ZpeGVkX2xpbmsocGh5ZGV2KSkgew0KPiAgICAgICAgICAg ICAgICAgZml4ZWRfcGh5X3VucmVnaXN0ZXIocGh5ZGV2KTsNCj4gICAgICAgICAgICAgICAgIHBo eV9kZXZpY2VfZnJlZShwaHlkZXYpOw0KPiAgICAgICAgIH0NCj4gDQo+ICsgICAgICAgcGh5bGlu a19kZXN0cm95KGRldi0+cGh5bGluayk7DQo+ICsNCj4gICAgICAgICB1c2Jfc2N1dHRsZV9hbmNo b3JlZF91cmJzKCZkZXYtPmRlZmVycmVkKTsNCj4gDQo+ICAgICAgICAgbGFuNzh4eF91bmJpbmQo ZGV2LCBpbnRmKTsNCj4gQEAgLTQ0NDYsNyArNDQ5MCw2IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9w cm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZQ0KPiAqaW50ZiwNCj4gICAgICAgICAgICAgICAgIGdv dG8gb3V0MTsNCj4gICAgICAgICB9DQo+IA0KPiAtICAgICAgIC8qIG5ldGRldl9wcmludGsoKSBu ZWVkcyB0aGlzICovDQo+ICAgICAgICAgU0VUX05FVERFVl9ERVYobmV0ZGV2LCAmaW50Zi0+ZGV2 KTsNCj4gDQo+ICAgICAgICAgZGV2ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsNCj4gQEAgLTQ1NTgs MTQgKzQ2MDEsMTggQEAgc3RhdGljIGludCBsYW43OHh4X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJm YWNlDQo+ICppbnRmLA0KPiAgICAgICAgIC8qIGRyaXZlciByZXF1aXJlcyByZW1vdGUtd2FrZXVw IGNhcGFiaWxpdHkgZHVyaW5nDQo+IGF1dG9zdXNwZW5kLiAqLw0KPiAgICAgICAgIGludGYtPm5l ZWRzX3JlbW90ZV93YWtldXAgPSAxOw0KPiANCj4gLSAgICAgICByZXQgPSBsYW43OHh4X3BoeV9p bml0KGRldik7DQo+ICsgICAgICAgcmV0ID0gbGFuNzh4eF9waHlsaW5rX3NldHVwKGRldik7DQo+ ICAgICAgICAgaWYgKHJldCA8IDApDQo+ICAgICAgICAgICAgICAgICBnb3RvIGZyZWVfdXJiczsN Cj4gDQo+ICsgICAgICAgcmV0ID0gbGFuNzh4eF9waHlfaW5pdChkZXYpOw0KPiArICAgICAgIGlm IChyZXQgPCAwKQ0KPiArICAgICAgICAgICAgICAgZ290byBkZXN0cm95X3BoeWxpbms7DQo+ICsN Cj4gICAgICAgICByZXQgPSByZWdpc3Rlcl9uZXRkZXYobmV0ZGV2KTsNCj4gICAgICAgICBpZiAo cmV0ICE9IDApIHsNCj4gICAgICAgICAgICAgICAgIG5ldGlmX2VycihkZXYsIHByb2JlLCBuZXRk ZXYsICJjb3VsZG4ndCByZWdpc3RlciB0aGUNCj4gZGV2aWNlXG4iKTsNCj4gLSAgICAgICAgICAg ICAgIGdvdG8gb3V0ODsNCj4gKyAgICAgICAgICAgICAgIGdvdG8gZGlzY29ubmVjdF9waHk7DQo+ ICAgICAgICAgfQ0KPiANCj4gICAgICAgICB1c2Jfc2V0X2ludGZkYXRhKGludGYsIGRldik7DQo+ IEBAIC00NTgwLDggKzQ2MjcsMTAgQEAgc3RhdGljIGludCBsYW43OHh4X3Byb2JlKHN0cnVjdCB1 c2JfaW50ZXJmYWNlDQo+ICppbnRmLA0KPiANCj4gICAgICAgICByZXR1cm4gMDsNCj4gDQo+IC1v dXQ4Og0KPiAtICAgICAgIHBoeV9kaXNjb25uZWN0KG5ldGRldi0+cGh5ZGV2KTsNCj4gK2Rpc2Nv bm5lY3RfcGh5Og0KPiArICAgICAgIHBoeWxpbmtfZGlzY29ubmVjdF9waHkoZGV2LT5waHlsaW5r KTsNCj4gK2Rlc3Ryb3lfcGh5bGluazoNCj4gKyAgICAgICBwaHlsaW5rX2Rlc3Ryb3koZGV2LT5w aHlsaW5rKTsNCj4gIGZyZWVfdXJiczoNCj4gICAgICAgICB1c2JfZnJlZV91cmIoZGV2LT51cmJf aW50cik7DQo+ICBvdXQ1Og0KPiBAQCAtNTE0Myw3ICs1MTkyLDcgQEAgc3RhdGljIGludCBsYW43 OHh4X3Jlc2V0X3Jlc3VtZShzdHJ1Y3QNCj4gdXNiX2ludGVyZmFjZSAqaW50ZikNCj4gICAgICAg ICBpZiAocmV0IDwgMCkNCj4gICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+IA0KPiAtICAg ICAgIHBoeV9zdGFydChkZXYtPm5ldC0+cGh5ZGV2KTsNCj4gKyAgICAgICBwaHlsaW5rX3N0YXJ0 KGRldi0+cGh5bGluayk7DQo+IA0KPiAgICAgICAgIHJldCA9IGxhbjc4eHhfcmVzdW1lKGludGYp Ow0KPiANCj4gLS0NCj4gMi4zOS41DQo+IA0K