From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 696E7C433EF for ; Mon, 27 Jun 2022 10:36:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233713AbiF0KgN (ORCPT ); Mon, 27 Jun 2022 06:36:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233588AbiF0KgM (ORCPT ); Mon, 27 Jun 2022 06:36:12 -0400 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.154.123]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9ECBF6402 for ; Mon, 27 Jun 2022 03:36:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1656326170; x=1687862170; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=CH/nAOEwr/8kt4dJoep8gMhRqLSOJRkJCcqFUKU6jDM=; b=1SG5FXqNwcZfDE1g01t1nn0RotT8t9YT/08sMhSMStiUTQc1YBpsNQkJ yx4evEhQsl0c3PyQxyE0X5Jnq5gpaBCNSARoaWB1DgW0V5mqHljhd+7xD odG4PVBGh08XOu9LVtaRKwRJFZV58qWQ2ehVzs9GAynaw5DQaOAPfQusx CWlrrMnFXgrM2sgJwOa8thncoA1SR8/fRJNbscvvMEPWALQ7YLzucFAVL g5ICCBJQ0E1QUHafpBa/LoRT1GnSQaSnhPuZQUkAw7cCUbjSks8ur8Yzr 9y7R0blmtX1yPQwVcy/VleITyFCieWaD2cngxMIWQi51UFEc5LsRtMZS9 w==; X-IronPort-AV: E=Sophos;i="5.92,226,1650956400"; d="scan'208";a="165215976" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa2.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 27 Jun 2022 03:36:09 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.85.152) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Mon, 27 Jun 2022 03:36:09 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Mon, 27 Jun 2022 03:36:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OHTzbJKEyx/pF/aMXRXvxO3zfpS76xM9f7Z9Zp/NSSewgKOfwF2QDd4mUj+cAno5EDFB4KvO9xS3iNFKPcaMhz4VaEg1fSeiA9PbU3Z/S9qX6jlq/ZQ/Kl5CKOjey6Io52HENq1GApOHnwiHLayqA1p/i38UWET0RPvLkjlJTd9dbNfSNzIvzSjVM7hw30iuJ46E8reAqiu00/P/ruVvogd7KcctNaEJzPKttWIG+9NcI3npCK9vKpRvqZTmd+poMBk4OQ9O0kUF3ivoCyek+YUcnJiUYjCBewaeggNwNQXl0qaRLR827LClXNg+t74/GMQaY9ME8UPRhBu2e1YqgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CH/nAOEwr/8kt4dJoep8gMhRqLSOJRkJCcqFUKU6jDM=; b=C8UtDK5DN7IUOU0ZRXGlRCtWqfWVa3frRhZuuB9ODEAqrbGkXBUpYd40T/nzYbCcIO4fNcSCTKwowP12ds4XuvU7bjB5VWo8xQSrGH5hsursdOZxbfGSJ58OFzHnR4+Xsi5nR45SY+Uojya6eyo9t3QOFYgzkL66rZqvFvzlUIJIjAG/Fduzkqxuq5Z2z1t7G+KQ4oFZrNAFK4B6z8I/VoJGwetFhIsl6yEAdyj5eAifgoi1HVKiW2fBMZjhEU9chgOZwW6I23LzKxlNgPHuOS8ElK+3srYAhpHOcYw4cSDsaldvuyyf7SC9zp09prr6sQz4xSTe9/bImXZZbZVjOw== 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=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CH/nAOEwr/8kt4dJoep8gMhRqLSOJRkJCcqFUKU6jDM=; b=vMenKEFON1gPidMMItlwkMH4kmlO5MQc0APLoqww1ts2X22IwyghjozlbdLGcmsKnfBI8pvvEw9ieeGzzbfcIzLKtvriU/AE9oY4sLWMHfxd+tPbQecJq1hvCnlcQ3btF9XlzFIddLvLyaYz7sSst4S7TbAlp7zEtlcxJrhYmkI= Received: from BN6PR11MB1953.namprd11.prod.outlook.com (2603:10b6:404:105::14) by BL1PR11MB5239.namprd11.prod.outlook.com (2603:10b6:208:31a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Mon, 27 Jun 2022 10:36:07 +0000 Received: from BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::5c8c:c31f:454d:824c]) by BN6PR11MB1953.namprd11.prod.outlook.com ([fe80::5c8c:c31f:454d:824c%8]) with mapi id 15.20.5373.015; Mon, 27 Jun 2022 10:36:07 +0000 From: To: CC: , , , , Subject: Re: [PATCH] clk/at91: Hold reference returned by of_get_parent() Thread-Topic: [PATCH] clk/at91: Hold reference returned by of_get_parent() Thread-Index: AQHYigUGxnPdfkmkSUOcNfYy9ZyM3A== Date: Mon, 27 Jun 2022 10:36:06 +0000 Message-ID: <124de637-4a38-54f8-ee8b-e930bcefd7bc@microchip.com> References: <20220624105958.4184250-1-windhl@126.com> <1c40621.78fc.181a4b8363c.Coremail.windhl@126.com> In-Reply-To: <1c40621.78fc.181a4b8363c.Coremail.windhl@126.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 54f44d6f-1cb1-4a90-ed8f-08da5828d7d6 x-ms-traffictypediagnostic: BL1PR11MB5239:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ZjOrJDyK9VPRqW1j2yGlFtnWTRnhTb0fmnx0IuIpFn1hm9/jDOIE5gky2H0mdoF1SLiYWeq8eQ11PuCZIs5yrRz7cB4UmGuM/j1eX8OyW6B163BKzqRceXhXwC8xL5LJlpZLBvaTrfTOokPVhMec3uoMHScGrQDcKtEh07QLt9IWM7ssyEtB5/8g3iaQea5/oiWmHEXND8uYdvbauQH7QoRsJWuulI2Q2Kr8SefDgHTkwPB0s5mskdyCXakYA+XBcZL4+4l1lgTOgP/V9BGT6rX9Fv3Z8abI0UevxjAG4MSWVDZXt3xoE6SKXKt4PmSNXoxfsfq3/V59Or1DLVs4/e/UVXfJOCdZorfjm0/N89fIMd1DT5YHPSl4Bx8HFF3M/AjTUSmXOSprek434ChkpIqhbFoKTzoUqpa1LqOCGGwNmWdNRCMmpMMna5+dHHqEwF82Noi3hA5bCUlLm9Ub997ZrdfQpPkZW47ZJWx3zLprZYIDIW3Mv8sUG6NS/g21pLpeseba71FHoLxS6rAaksgafopl5Zz0bCgtdbLiQtKrHFgf9Aau1xisFmKKHRgmd/VsP9ZBWlxcZuHfdhxWxWHapn7vyRzBtsYon0mq126G81I77LOxM1r1uLtr3lowUDSK7uSeR/urX3pkD4YFnHDelKO0/sJgsskX7B6BIQoQUiiUxFynrqOGzSCQx49dWUM2T26Zww44Lj3/o6js4Ep7da7KFuqJila3ydLAPr2mav8BQeu2a8SeEWmmMtsHd7iqWSX2QZ+WDwwOitnyHWGtomHkP7JOc39/qJ3iBppAxTk41Csuji+y1I+kRHK7gqFIpcOEXMEHUY/nIZu8LnSb4iJ2aWwl7UnQEyiy7kc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1953.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(376002)(366004)(346002)(39860400002)(396003)(136003)(38100700002)(6506007)(71200400001)(2616005)(30864003)(2906002)(53546011)(86362001)(8936002)(5660300002)(186003)(478600001)(41300700001)(76116006)(38070700005)(122000001)(6486002)(26005)(83380400001)(36756003)(91956017)(6512007)(6916009)(64756008)(8676002)(54906003)(66556008)(66946007)(66446008)(66476007)(316002)(4326008)(31696002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NWhKSXJ6ME9HNlBndzNFMldzZEJ3eXZ0M3oxREFiQzluNnNSRU9oeER4d3ZY?= =?utf-8?B?bXJ1ZHFZR2pZYy9QWFgwZXZ0TjY4QXgyczVIMGk1T1VWZE5LRzg5MlYwMzBz?= =?utf-8?B?YWcvWHlmNldRREtvOFo5YlZiaVhGNGczeGRZSGlzWFcxM3BRZER6NHBwQXRl?= =?utf-8?B?RWcxSGpwZlAyQ3VsZEJLcTIyVDdwSGVzN2FETTY2aXlmdTVXMXhGNzlFZkxY?= =?utf-8?B?Y1UxVHh1cUlKbFVVaGNsdXg2RXJkbWd0ZFQvbnZxOHJuNXIvRWFSWDNudDla?= =?utf-8?B?dzNJbDVEOW53VFNSMGFsTkpoRTJLdlBIRzQzZ214clNmNkxUZkpudkVzczg4?= =?utf-8?B?SkxHK0l4aVBPYk1qc2FTUnB6cm5WSU9FWkluNHRwRnRubEVVQUo2bFZVMjZT?= =?utf-8?B?T0dDNkVSR1BWd0pyNUdxcVBIc3YvaUVENlVEd0RqVnZneXJSWE5ISlBUNkhv?= =?utf-8?B?bFRzU3JpdkswdHNRSzZQUnJsWVhMdFZvazJLZkQ0dzJITG9KSjVRN1kxL0JM?= =?utf-8?B?ekxKMUhJN2pNUmEzYWIwc296TStMZytDVEg4aXU3M2MwNS9oTCtKY01PTUds?= =?utf-8?B?V3EvdWk3eDlyVUZod2Ria3RPMXRIR3BsRjdxL3BSbkxDUUo0eit5MHdmU3dG?= =?utf-8?B?VnVtUFRNUGdWbTJxdmVBUnZLL1hNMVZpaVF5WjBTcUIwbmFiMk4zNzByL1h2?= =?utf-8?B?L0U2UWZ4T0Y4aTRhQ0FoTzN3MVZ6ZFk0WjFXL3c4MEgwd0ZEOEtlY3VxTlhp?= =?utf-8?B?R3FScDZENUdnMFAzL29MdXRaTTkzc2doY2NoVWNraVVJWmVFRTUyN2psclVX?= =?utf-8?B?c2ZhMU1iSit1dzNid3dLVVd1WUVyWnFjOEhDblhxRUVPL3dlaFFZTTlRbmd0?= =?utf-8?B?V3JRR0lud3RyYTNjdkdpL29kRnQxUTVMNThuT29weTRuZjM4N04wa1RmSGRt?= =?utf-8?B?ODdhWTVDS2hqODJubTB6aTZ4MS9ReGF1Mnd0MU5OaVpLQVdraDJxaXZudm5C?= =?utf-8?B?Y01lRHM5NW1jd25QVjZnbjc4RnhHSkpza2ZGRTNzcnA1N1l6U0cvWS83UmJw?= =?utf-8?B?a3M4MEYvSUF6OHZPK1N1ZlVaSnRxQkdiMGFQRkh0djJ3V0NZaDZrSHBGbVJk?= =?utf-8?B?b3NJRmE0Yk8xQ2o3ZklGRU5saUlkSVo2ckZIc21sdXVPTDhqRFNwd1BSRXNE?= =?utf-8?B?Mm9GdFdoUzcrR0RMRFdJd29OQjFENDlUU0lRMlRiRFkvNGlLM3JETmN0L2s5?= =?utf-8?B?RkhEcW5VS3JQK2puS2FDM3JvZUJ2aFduNjRMOGhFU0pXYUxUSXRBa1ZMSlZs?= =?utf-8?B?WDNZOWllYS9CeG8xMVdYSjZPZEhqazF2TWVnc2Jqd0szY1hjSGdHSjVVbDZy?= =?utf-8?B?d291UGtXOWRSa2ZtVFJYVnJOOEQvcEFZWmpZcFBzcURaRVF1SFlrc05iVHp6?= =?utf-8?B?aUVSZHFhZ1pSWkZTTUFtVHMzbDFGOXJ2WlRWUjMzcFBMSzlCSnFRS3hobEJj?= =?utf-8?B?S21nUUVGVGc1RVpsdEFyN25oQkhwWlpsTUVqbUwzZXloYUJLSEp4NGhRWTZ4?= =?utf-8?B?RVUraWVGekUyUjdJamhzblkxUkgrck5pUDNab0NMOVVySVNvMDVKajhLekF2?= =?utf-8?B?M0lVK3phaVpHWDdFeVI0S2F3OWNQWlBOMUJkMlZlV2V1NlNhSExMb3c5eTNX?= =?utf-8?B?OEJ4am9SWTNFOHR5akxEYXVsdm80Z0RMWEtiRG9ScWo1b1hPUHQ3cUtNbk04?= =?utf-8?B?R2dtZXRTL2k3eEVaN0hvbHpRUVI5NFNMa2JGcjc0eXFXUVhDMWZFRlpEMjRH?= =?utf-8?B?YWoyaHJFakhJSWJuQ1RKcEtXNktHNnlqUWVMVjZOdmxQU21uWGpyREhPeG5H?= =?utf-8?B?QTBQNFFlekZVOHJ3UUowdW82TWNwVW4rWlRZQkdPWlZ6TFhCcUtKS3JZTmht?= =?utf-8?B?aTQxN0Z6RkluOTk4WlMrU05HbWdhUWZFYmNzSXZNZ0VEM29SY25pUExrWGVB?= =?utf-8?B?ZHVGUlQrYnRRcGZSWHFsb1ovSUIyVHQ1YldNVDBWYzhTUE1nL3Zsa3ZKZWF1?= =?utf-8?B?Ty9kWUNObnFDazh2U1JVcS82dUE1VVZyaEJYamQ4VUdtMi9HSDY2ZWZsUHlW?= =?utf-8?B?emlIaTQ4MzZWODhxNTBTK3hhbUdVRXBTTFQ2VXA0ZzI3TkJQS09KK0oyTWFu?= =?utf-8?B?bFE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR11MB1953.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54f44d6f-1cb1-4a90-ed8f-08da5828d7d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2022 10:36:06.8844 (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: 1HcQBJDKw72fKHzwV3gdMtXLSgRID+JqESZiDyWR/gfWiHXj9ES/d+KzKhF7upb+q+Xk/ZEDYvF5oBmBQqALW8gG8Me/Q9dUuLXmW8Qi1pA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5239 Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org T24gMjcuMDYuMjAyMiAxMzozMiwgTGlhbmcgSGUgd3JvdGU6DQo+IEVYVEVSTkFMIEVNQUlMOiBE byBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGtub3cgdGhl IGNvbnRlbnQgaXMgc2FmZQ0KPiANCj4gQXQgMjAyMi0wNi0yNyAxNzowNToxOCwgQ2xhdWRpdS5C ZXpuZWFAbWljcm9jaGlwLmNvbSB3cm90ZToNCj4+IEhpLCBMaWFuZywNCj4+DQo+PiBQYXRjaCB0 aXRsZSBzaG91bGQgYmUgc29tZXRoaW5nIGxpa2UgImNsazogYXQ5MTogZHQtY29tcGF0OiA8eW91 IG1lc3NhZ2U+Ig0KPj4NCj4gDQo+IFRoYW5rcywgSSBhbSBwcmVwYXJpbmcgdGhlIHZlcnNpb24t MiBwYXRjaCBjb2RlIGFuZCBJIHdpbGwgY2hhbmdlIGFsbCBzaW1pbGFyIGNsayBidWdzIGNvbW1p dCB0aXRsZQ0KPiB1c2luZyBhYm92ZSBmb3JtYXQuDQo+IA0KPj4NCj4+IE9uIDI0LjA2LjIwMjIg MTM6NTksIExpYW5nIEhlIHdyb3RlOg0KPj4+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sg bGlua3Mgb3Igb3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGtub3cgdGhlIGNvbnRlbnQgaXMg c2FmZQ0KPj4+DQo+Pj4gV2UgbmVlZCB0byBob2xkIHRoZSByZWZlcmVuY2UgcmV0dXJuZWQgYnkg b2ZfZ2V0X3BhcmVudCgpIGFuZCB1c2UNCj4+PiBpdCB0byBjYWxsIG9mX25vZGVfcHV0KCkgZm9y IHJlZmNvdW50IGJhbGFuY2UuDQo+Pj4NCj4+PiBGaXhlczogNjIwNjFkMzU3YzdmICgiY2xrOiBh dDkxOiBtb3ZlIERUIGNvbXBhdGliaWxpdHkgY29kZSB0byBpdHMgb3duIGZpbGUiKQ0KPj4+IFNp Z25lZC1vZmYtYnk6IExpYW5nIEhlIDx3aW5kaGxAMTI2LmNvbT4NCj4+PiAtLS0NCj4+PiAgdGhl c2UgYnVncyBhcmUgZm91bmQgaW4gNS4xOXJjMg0KPj4+ICB0aGVzZSBidWdzIGFyZSBjb25maXJt ZWQgbm90IGZpeGVkIGJ5IGxvcmUua2VybmVsLm9yZw0KPj4+ICB0aGVzZSBidWdzIGFyZSBjb21w aWxlZCB0ZXN0ZWQgaW4gNS4xOXJjMiB3aXRoIGF0OTFfZHRfZGVmY29uZmlnDQo+Pj4NCj4+PiAg ZHJpdmVycy9jbGsvYXQ5MS9kdC1jb21wYXQuYyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLQ0KPj4+ICAxIGZpbGUgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMjQg ZGVsZXRpb25zKC0pDQo+Pj4NCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvYXQ5MS9kdC1j b21wYXQuYyBiL2RyaXZlcnMvY2xrL2F0OTEvZHQtY29tcGF0LmMNCj4+PiBpbmRleCA4Y2E4YmNh Y2Y2NmQuLmNjMzQxNDE4NjRiZCAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2Nsay9hdDkxL2R0 LWNvbXBhdC5jDQo+Pj4gKysrIGIvZHJpdmVycy9jbGsvYXQ5MS9kdC1jb21wYXQuYw0KPj4+IEBA IC0zMyw4ICszMywxMSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2Zfc2FtYTVkMl9jbGtfYXVkaW9f cGxsX2ZyYWNfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkNCj4+PiAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsNCj4+PiAgICAgICAgIGNvbnN0IGNoYXIgKnBhcmVudF9u YW1lOw0KPj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOw0KPj4+ICsgICAgICAgc3Ry dWN0IGRldmljZV9ub2RlICp0cDsNCj4+DQo+PiBXaGF0IHRwIHN0YW5kcyBmb3I/DQo+IA0KPiBJ IG9ubHkgd2FudCB0byB1c2UgaXQgdG8gbWVhbiAndG1wX3BvaW50ZXInLCBidXQgTWFydGluIGFk dmlzZXMgdG8NCj4gdXNlICdwYXJlbnRfbnAnLg0KPiANCj4gSSB3aWxsIGNob3NlIHRvIHVzZSAn cGFyZW50X25wJyBpbiBteSB2ZXJzaW9uLTIgcGF0Y2gsIGFuZCBob3cgZG8geW91DQo+IHRoaW5r IGFib3V0IHRoaXMgbmFtZT8NCg0KcGFyZW50X25wIGlzIGdvb2QuDQoNClRoYW5rIHlvdSwNCkNs YXVkaXUgQmV6bmVhDQoNCj4gDQo+IFRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHJldmlld2luZyBteSBw YXRjaCBjb2RlLg0KPiANCj4gTGlhbmcNCj4+DQo+Pj4NCj4+PiAtICAgICAgIHJlZ21hcCA9IHN5 c2Nvbl9ub2RlX3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0cCA9 IG9mX2dldF9wYXJlbnQobnApOw0KPj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9f cmVnbWFwKHRwKTsNCj4+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+PiAgICAgICAgIGlm IChJU19FUlIocmVnbWFwKSkNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+Pj4g QEAgLTU2LDggKzU5LDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvZl9zYW1hNWQyX2Nsa19hdWRp b19wbGxfcGFkX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApDQo+Pj4gICAgICAgICBjb25z dCBjaGFyICpuYW1lID0gbnAtPm5hbWU7DQo+Pj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRf bmFtZTsNCj4+PiAgICAgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcDsNCj4+PiArICAgICAgIHN0 cnVjdCBkZXZpY2Vfbm9kZSAqdHA7DQo+Pj4NCj4+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9u b2RlX3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0cCA9IG9mX2dl dF9wYXJlbnQobnApOw0KPj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFw KHRwKTsNCj4+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+PiAgICAgICAgIGlmIChJU19F UlIocmVnbWFwKSkNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+Pj4gQEAgLTc5 LDggKzg1LDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvZl9zYW1hNWQyX2Nsa19hdWRpb19wbGxf cG1jX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApDQo+Pj4gICAgICAgICBjb25zdCBjaGFy ICpuYW1lID0gbnAtPm5hbWU7DQo+Pj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZTsN Cj4+PiAgICAgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcDsNCj4+PiArICAgICAgIHN0cnVjdCBk ZXZpY2Vfbm9kZSAqdHA7DQo+Pj4NCj4+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3Rv X3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJl bnQobnApOw0KPj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsN Cj4+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+PiAgICAgICAgIGlmIChJU19FUlIocmVn bWFwKSkNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+Pj4gQEAgLTEyMCw3ICsx MjksNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2Zfc2FtYTVkMl9jbGtfZ2VuZXJhdGVkX3NldHVw KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApDQo+Pj4gICAgICAgICBzdHJ1Y3QgY2xrX2h3ICpodzsN Cj4+PiAgICAgICAgIHVuc2lnbmVkIGludCBudW1fcGFyZW50czsNCj4+PiAgICAgICAgIGNvbnN0 IGNoYXIgKnBhcmVudF9uYW1lc1tHRU5FUkFURURfU09VUkNFX01BWF07DQo+Pj4gLSAgICAgICBz dHJ1Y3QgZGV2aWNlX25vZGUgKmdja25wOw0KPj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2Rl ICpnY2tucCwgKnRwOw0KPj4+ICAgICAgICAgc3RydWN0IGNsa19yYW5nZSByYW5nZSA9IENMS19S QU5HRSgwLCAwKTsNCj4+PiAgICAgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcDsNCj4+Pg0KPj4+ IEBAIC0xMzQsNyArMTQzLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX3NhbWE1ZDJfY2xrX2dl bmVyYXRlZF9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQ0KPj4+ICAgICAgICAgaWYgKCFu dW0gfHwgbnVtID4gUEVSSVBIRVJBTF9NQVgpDQo+Pj4gICAgICAgICAgICAgICAgIHJldHVybjsN Cj4+Pg0KPj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9w YXJlbnQobnApKTsNCj4+PiArICAgICAgIHRwID0gb2ZfZ2V0X3BhcmVudChucCk7DQo+Pj4gKyAg ICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAodHApOw0KPj4+ICsgICAgICAgb2Zf bm9kZV9wdXQodHApOw0KPj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXApKQ0KPj4+ICAgICAg ICAgICAgICAgICByZXR1cm47DQo+Pj4NCj4+PiBAQCAtMTgwLDggKzE5MSwxMSBAQCBzdGF0aWMg dm9pZCBfX2luaXQgb2Zfc2FtYTVkNF9jbGtfaDMybXhfc2V0dXAoc3RydWN0IGRldmljZV9ub2Rl ICpucCkNCj4+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsNCj4+PiAgICAg ICAgIGNvbnN0IGNoYXIgKnBhcmVudF9uYW1lOw0KPj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAq cmVnbWFwOw0KPj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICp0cDsNCj4+Pg0KPj4+IC0g ICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsN Cj4+PiArICAgICAgIHRwID0gb2ZfZ2V0X3BhcmVudChucCk7DQo+Pj4gKyAgICAgICByZWdtYXAg PSBzeXNjb25fbm9kZV90b19yZWdtYXAodHApOw0KPj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHAp Ow0KPj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXApKQ0KPj4+ICAgICAgICAgICAgICAgICBy ZXR1cm47DQo+Pj4NCj4+PiBAQCAtMjQzLDEyICsyNTcsMTUgQEAgc3RhdGljIHZvaWQgX19pbml0 IG9mX2F0OTFybTkyMDBfY2xrX21haW5fb3NjX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAp DQo+Pj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZTsNCj4+PiAgICAgICAgIHN0cnVj dCByZWdtYXAgKnJlZ21hcDsNCj4+PiAgICAgICAgIGJvb2wgYnlwYXNzOw0KPj4+ICsgICAgICAg c3RydWN0IGRldmljZV9ub2RlICp0cDsNCj4+Pg0KPj4+ICAgICAgICAgb2ZfcHJvcGVydHlfcmVh ZF9zdHJpbmcobnAsICJjbG9jay1vdXRwdXQtbmFtZXMiLCAmbmFtZSk7DQo+Pj4gICAgICAgICBi eXBhc3MgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICJhdG1lbCxvc2MtYnlwYXNzIik7DQo+ Pj4gICAgICAgICBwYXJlbnRfbmFtZSA9IG9mX2Nsa19nZXRfcGFyZW50X25hbWUobnAsIDApOw0K Pj4+DQo+Pj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3Bh cmVudChucCkpOw0KPj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsNCj4+PiArICAg ICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7DQo+Pj4gKyAgICAgICBvZl9u b2RlX3B1dCh0cCk7DQo+Pj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkpDQo+Pj4gICAgICAg ICAgICAgICAgIHJldHVybjsNCj4+Pg0KPj4+IEBAIC0yNjgsMTIgKzI4NSwxNSBAQCBzdGF0aWMg dm9pZCBfX2luaXQgb2ZfYXQ5MXNhbTl4NV9jbGtfbWFpbl9yY19vc2Nfc2V0dXAoc3RydWN0IGRl dmljZV9ub2RlICpucCkNCj4+PiAgICAgICAgIHUzMiBhY2N1cmFjeSA9IDA7DQo+Pj4gICAgICAg ICBjb25zdCBjaGFyICpuYW1lID0gbnAtPm5hbWU7DQo+Pj4gICAgICAgICBzdHJ1Y3QgcmVnbWFw ICpyZWdtYXA7DQo+Pj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOw0KPj4+DQo+Pj4g ICAgICAgICBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIs ICZuYW1lKTsNCj4+PiAgICAgICAgIG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAiY2xvY2stZnJl cXVlbmN5IiwgJmZyZXF1ZW5jeSk7DQo+Pj4gICAgICAgICBvZl9wcm9wZXJ0eV9yZWFkX3UzMihu cCwgImNsb2NrLWFjY3VyYWN5IiwgJmFjY3VyYWN5KTsNCj4+Pg0KPj4+IC0gICAgICAgcmVnbWFw ID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsNCj4+PiArICAgICAg IHRwID0gb2ZfZ2V0X3BhcmVudChucCk7DQo+Pj4gKyAgICAgICByZWdtYXAgPSBzeXNjb25fbm9k ZV90b19yZWdtYXAodHApOw0KPj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOw0KPj4+ICAgICAg ICAgaWYgKElTX0VSUihyZWdtYXApKQ0KPj4+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+Pj4N Cj4+PiBAQCAtMjkyLDExICszMTIsMTQgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFybTky MDBfY2xrX21haW5fc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkNCj4+PiAgICAgICAgIGNv bnN0IGNoYXIgKnBhcmVudF9uYW1lOw0KPj4+ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IG5w LT5uYW1lOw0KPj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOw0KPj4+ICsgICAgICAg c3RydWN0IGRldmljZV9ub2RlICp0cDsNCj4+Pg0KPj4+ICAgICAgICAgcGFyZW50X25hbWUgPSBv Zl9jbGtfZ2V0X3BhcmVudF9uYW1lKG5wLCAwKTsNCj4+PiAgICAgICAgIG9mX3Byb3BlcnR5X3Jl YWRfc3RyaW5nKG5wLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwgJm5hbWUpOw0KPj4+DQo+Pj4gLSAg ICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChucCkpOw0K Pj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsNCj4+PiArICAgICAgIHJlZ21hcCA9 IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7DQo+Pj4gKyAgICAgICBvZl9ub2RlX3B1dCh0cCk7 DQo+Pj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkpDQo+Pj4gICAgICAgICAgICAgICAgIHJl dHVybjsNCj4+Pg0KPj4+IEBAIC0zMTYsMTMgKzMzOSwxNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQg b2ZfYXQ5MXNhbTl4NV9jbGtfbWFpbl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQ0KPj4+ ICAgICAgICAgdW5zaWduZWQgaW50IG51bV9wYXJlbnRzOw0KPj4+ICAgICAgICAgY29uc3QgY2hh ciAqbmFtZSA9IG5wLT5uYW1lOw0KPj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOw0K Pj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICp0cDsNCj4+Pg0KPj4+ICAgICAgICAgbnVt X3BhcmVudHMgPSBvZl9jbGtfZ2V0X3BhcmVudF9jb3VudChucCk7DQo+Pj4gICAgICAgICBpZiAo bnVtX3BhcmVudHMgPT0gMCB8fCBudW1fcGFyZW50cyA+IDIpDQo+Pj4gICAgICAgICAgICAgICAg IHJldHVybjsNCj4+Pg0KPj4+ICAgICAgICAgb2ZfY2xrX3BhcmVudF9maWxsKG5wLCBwYXJlbnRf bmFtZXMsIG51bV9wYXJlbnRzKTsNCj4+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3Rv X3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJl bnQobnApOw0KPj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsN Cj4+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+PiAgICAgICAgIGlmIChJU19FUlIocmVn bWFwKSkNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+Pj4gQEAgLTM3Myw2ICsz OTksNyBAQCBvZl9hdDkxX2Nsa19tYXN0ZXJfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCwN Cj4+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsNCj4+PiAgICAgICAgIHN0 cnVjdCBjbGtfbWFzdGVyX2NoYXJhY3RlcmlzdGljcyAqY2hhcmFjdGVyaXN0aWNzOw0KPj4+ICAg ICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOw0KPj4+ICsgICAgICAgc3RydWN0IGRldmljZV9u b2RlICp0cDsNCj4+Pg0KPj4+ICAgICAgICAgbnVtX3BhcmVudHMgPSBvZl9jbGtfZ2V0X3BhcmVu dF9jb3VudChucCk7DQo+Pj4gICAgICAgICBpZiAobnVtX3BhcmVudHMgPT0gMCB8fCBudW1fcGFy ZW50cyA+IE1BU1RFUl9TT1VSQ0VfTUFYKQ0KPj4+IEBAIC0zODYsNyArNDEzLDkgQEAgb2ZfYXQ5 MV9jbGtfbWFzdGVyX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsDQo+Pj4gICAgICAgICBp ZiAoIWNoYXJhY3RlcmlzdGljcykNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+ Pj4gLSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChu cCkpOw0KPj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsNCj4+PiArICAgICAgIHJl Z21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7DQo+Pj4gKyAgICAgICBvZl9ub2RlX3B1 dCh0cCk7DQo+Pj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkpDQo+Pj4gICAgICAgICAgICAg ICAgIHJldHVybjsNCj4+Pg0KPj4+IEBAIC00MzMsNiArNDYyLDcgQEAgb2ZfYXQ5MV9jbGtfcGVy aXBoX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHU4IHR5cGUpDQo+Pj4gICAgICAgICBj b25zdCBjaGFyICpuYW1lOw0KPj4+ICAgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpwZXJpcGhj bGtucDsNCj4+PiAgICAgICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcDsNCj4+PiArICAgICAgIHN0 cnVjdCBkZXZpY2Vfbm9kZSAqdHA7DQo+Pj4NCj4+PiAgICAgICAgIHBhcmVudF9uYW1lID0gb2Zf Y2xrX2dldF9wYXJlbnRfbmFtZShucCwgMCk7DQo+Pj4gICAgICAgICBpZiAoIXBhcmVudF9uYW1l KQ0KPj4+IEBAIC00NDIsNyArNDcyLDkgQEAgb2ZfYXQ5MV9jbGtfcGVyaXBoX3NldHVwKHN0cnVj dCBkZXZpY2Vfbm9kZSAqbnAsIHU4IHR5cGUpDQo+Pj4gICAgICAgICBpZiAoIW51bSB8fCBudW0g PiBQRVJJUEhFUkFMX01BWCkNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+Pj4g LSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChucCkp Ow0KPj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsNCj4+PiArICAgICAgIHJlZ21h cCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7DQo+Pj4gKyAgICAgICBvZl9ub2RlX3B1dCh0 cCk7DQo+Pj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkpDQo+Pj4gICAgICAgICAgICAgICAg IHJldHVybjsNCj4+Pg0KPj4+IEBAIC02MDIsNiArNjM0LDcgQEAgb2ZfYXQ5MV9jbGtfcGxsX3Nl dHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsDQo+Pj4gICAgICAgICBjb25zdCBjaGFyICpwYXJl bnRfbmFtZTsNCj4+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsNCj4+PiAg ICAgICAgIHN0cnVjdCBjbGtfcGxsX2NoYXJhY3RlcmlzdGljcyAqY2hhcmFjdGVyaXN0aWNzOw0K Pj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICp0cDsNCj4+Pg0KPj4+ICAgICAgICAgaWYg KG9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAicmVnIiwgJmlkKSkNCj4+PiAgICAgICAgICAgICAg ICAgcmV0dXJuOw0KPj4+IEBAIC02MTAsNyArNjQzLDkgQEAgb2ZfYXQ5MV9jbGtfcGxsX3NldHVw KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsDQo+Pj4NCj4+PiAgICAgICAgIG9mX3Byb3BlcnR5X3Jl YWRfc3RyaW5nKG5wLCAiY2xvY2stb3V0cHV0LW5hbWVzIiwgJm5hbWUpOw0KPj4+DQo+Pj4gLSAg ICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChucCkpOw0K Pj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsNCj4+PiArICAgICAgIHJlZ21hcCA9 IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7DQo+Pj4gKyAgICAgICBvZl9ub2RlX3B1dCh0cCk7 DQo+Pj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkpDQo+Pj4gICAgICAgICAgICAgICAgIHJl dHVybjsNCj4+Pg0KPj4+IEBAIC02NjUsMTIgKzcwMCwxNSBAQCBvZl9hdDkxc2FtOXg1X2Nsa19w bGxkaXZfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkNCj4+PiAgICAgICAgIGNvbnN0IGNo YXIgKnBhcmVudF9uYW1lOw0KPj4+ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IG5wLT5uYW1l Ow0KPj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOw0KPj4+ICsgICAgICAgc3RydWN0 IGRldmljZV9ub2RlICp0cDsNCj4+Pg0KPj4+ICAgICAgICAgcGFyZW50X25hbWUgPSBvZl9jbGtf Z2V0X3BhcmVudF9uYW1lKG5wLCAwKTsNCj4+Pg0KPj4+ICAgICAgICAgb2ZfcHJvcGVydHlfcmVh ZF9zdHJpbmcobnAsICJjbG9jay1vdXRwdXQtbmFtZXMiLCAmbmFtZSk7DQo+Pj4NCj4+PiAtICAg ICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7DQo+ Pj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnApOw0KPj4+ICsgICAgICAgcmVnbWFwID0g c3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsNCj4+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsN Cj4+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkNCj4+PiAgICAgICAgICAgICAgICAgcmV0 dXJuOw0KPj4+DQo+Pj4gQEAgLTY5NCw3ICs3MzIsNyBAQCBvZl9hdDkxX2Nsa19wcm9nX3NldHVw KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsDQo+Pj4gICAgICAgICB1bnNpZ25lZCBpbnQgbnVtX3Bh cmVudHM7DQo+Pj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZXNbUFJPR19TT1VSQ0Vf TUFYXTsNCj4+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7DQo+Pj4gLSAgICAgICBzdHJ1Y3Qg ZGV2aWNlX25vZGUgKnByb2djbGtucDsNCj4+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAq cHJvZ2Nsa25wLCAqdHA7DQo+Pj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7DQo+Pj4N Cj4+PiAgICAgICAgIG51bV9wYXJlbnRzID0gb2ZfY2xrX2dldF9wYXJlbnRfY291bnQobnApOw0K Pj4+IEBAIC03MDcsNyArNzQ1LDkgQEAgb2ZfYXQ5MV9jbGtfcHJvZ19zZXR1cChzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5wLA0KPj4+ICAgICAgICAgaWYgKCFudW0gfHwgbnVtID4gKFBST0dfSURfTUFY ICsgMSkpDQo+Pj4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4+Pg0KPj4+IC0gICAgICAgcmVn bWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dldF9wYXJlbnQobnApKTsNCj4+PiArICAg ICAgIHRwID0gb2ZfZ2V0X3BhcmVudChucCk7DQo+Pj4gKyAgICAgICByZWdtYXAgPSBzeXNjb25f bm9kZV90b19yZWdtYXAodHApOw0KPj4+ICsgICAgICAgb2Zfbm9kZV9wdXQodHApOw0KPj4+ICAg ICAgICAgaWYgKElTX0VSUihyZWdtYXApKQ0KPj4+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+ Pj4NCj4+PiBAQCAtNzU2LDEzICs3OTYsMTYgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFz YW05MjYwX2Nsa19zbG93X3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApDQo+Pj4gICAgICAg ICB1bnNpZ25lZCBpbnQgbnVtX3BhcmVudHM7DQo+Pj4gICAgICAgICBjb25zdCBjaGFyICpuYW1l ID0gbnAtPm5hbWU7DQo+Pj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7DQo+Pj4gKyAg ICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOw0KPj4+DQo+Pj4gICAgICAgICBudW1fcGFyZW50 cyA9IG9mX2Nsa19nZXRfcGFyZW50X2NvdW50KG5wKTsNCj4+PiAgICAgICAgIGlmIChudW1fcGFy ZW50cyAhPSAyKQ0KPj4+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+Pj4NCj4+PiAgICAgICAg IG9mX2Nsa19wYXJlbnRfZmlsbChucCwgcGFyZW50X25hbWVzLCBudW1fcGFyZW50cyk7DQo+Pj4g LSAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAob2ZfZ2V0X3BhcmVudChucCkp Ow0KPj4+ICsgICAgICAgdHAgPSBvZl9nZXRfcGFyZW50KG5wKTsNCj4+PiArICAgICAgIHJlZ21h cCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7DQo+Pj4gKyAgICAgICBvZl9ub2RlX3B1dCh0 cCk7DQo+Pj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21hcCkpDQo+Pj4gICAgICAgICAgICAgICAg IHJldHVybjsNCj4+Pg0KPj4+IEBAIC03ODgsNiArODMxLDcgQEAgc3RhdGljIHZvaWQgX19pbml0 IG9mX2F0OTFzYW05eDVfY2xrX3NtZF9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQ0KPj4+ ICAgICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWVzW1NNRF9TT1VSQ0VfTUFYXTsNCj4+PiAg ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsNCj4+PiAgICAgICAgIHN0cnVjdCBy ZWdtYXAgKnJlZ21hcDsNCj4+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7DQo+Pj4N Cj4+PiAgICAgICAgIG51bV9wYXJlbnRzID0gb2ZfY2xrX2dldF9wYXJlbnRfY291bnQobnApOw0K Pj4+ICAgICAgICAgaWYgKG51bV9wYXJlbnRzID09IDAgfHwgbnVtX3BhcmVudHMgPiBTTURfU09V UkNFX01BWCkNCj4+PiBAQCAtNzk3LDcgKzg0MSw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvZl9h dDkxc2FtOXg1X2Nsa19zbWRfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkNCj4+Pg0KPj4+ ICAgICAgICAgb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmcobnAsICJjbG9jay1vdXRwdXQtbmFtZXMi LCAmbmFtZSk7DQo+Pj4NCj4+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21h cChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnAp Ow0KPj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsNCj4+PiAr ICAgICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkN Cj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+Pj4gQEAgLTgxOCw3ICs4NjQsNyBA QCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfYXQ5MXJtOTIwMF9jbGtfc3lzX3NldHVwKHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnApDQo+Pj4gICAgICAgICB1MzIgaWQ7DQo+Pj4gICAgICAgICBzdHJ1Y3Qg Y2xrX2h3ICpodzsNCj4+PiAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7DQo+Pj4gLSAgICAgICBz dHJ1Y3QgZGV2aWNlX25vZGUgKnN5c2Nsa25wOw0KPj4+ICsgICAgICAgc3RydWN0IGRldmljZV9u b2RlICpzeXNjbGtucCwgKnRwOw0KPj4+ICAgICAgICAgY29uc3QgY2hhciAqcGFyZW50X25hbWU7 DQo+Pj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7DQo+Pj4NCj4+PiBAQCAtODI2LDcg Kzg3Miw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvZl9hdDkxcm05MjAwX2Nsa19zeXNfc2V0dXAo c3RydWN0IGRldmljZV9ub2RlICpucCkNCj4+PiAgICAgICAgIGlmIChudW0gPiAoU1lTVEVNX01B WF9JRCArIDEpKQ0KPj4+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+Pj4NCj4+PiAtICAgICAg IHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4g KyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnApOw0KPj4+ICsgICAgICAgcmVnbWFwID0gc3lz Y29uX25vZGVfdG9fcmVnbWFwKHRwKTsNCj4+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+ PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJu Ow0KPj4+DQo+Pj4gQEAgLTg1OSw2ICs5MDcsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfYXQ5 MXNhbTl4NV9jbGtfdXNiX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApDQo+Pj4gICAgICAg ICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZXNbVVNCX1NPVVJDRV9NQVhdOw0KPj4+ICAgICAgICAg Y29uc3QgY2hhciAqbmFtZSA9IG5wLT5uYW1lOw0KPj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAq cmVnbWFwOw0KPj4+ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICp0cDsNCj4+Pg0KPj4+ICAg ICAgICAgbnVtX3BhcmVudHMgPSBvZl9jbGtfZ2V0X3BhcmVudF9jb3VudChucCk7DQo+Pj4gICAg ICAgICBpZiAobnVtX3BhcmVudHMgPT0gMCB8fCBudW1fcGFyZW50cyA+IFVTQl9TT1VSQ0VfTUFY KQ0KPj4+IEBAIC04NjgsNyArOTE3LDkgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFzYW05 eDVfY2xrX3VzYl9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQ0KPj4+DQo+Pj4gICAgICAg ICBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsICZuYW1l KTsNCj4+Pg0KPj4+IC0gICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG9mX2dl dF9wYXJlbnQobnApKTsNCj4+PiArICAgICAgIHRwID0gb2ZfZ2V0X3BhcmVudChucCk7DQo+Pj4g KyAgICAgICByZWdtYXAgPSBzeXNjb25fbm9kZV90b19yZWdtYXAodHApOw0KPj4+ICsgICAgICAg b2Zfbm9kZV9wdXQodHApOw0KPj4+ICAgICAgICAgaWYgKElTX0VSUihyZWdtYXApKQ0KPj4+ICAg ICAgICAgICAgICAgICByZXR1cm47DQo+Pj4NCj4+PiBAQCAtODg4LDYgKzkzOSw3IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBvZl9hdDkxc2FtOW4xMl9jbGtfdXNiX3NldHVwKHN0cnVjdCBkZXZpY2Vf bm9kZSAqbnApDQo+Pj4gICAgICAgICBjb25zdCBjaGFyICpwYXJlbnRfbmFtZTsNCj4+PiAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBucC0+bmFtZTsNCj4+PiAgICAgICAgIHN0cnVjdCByZWdt YXAgKnJlZ21hcDsNCj4+PiArICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqdHA7DQo+Pj4NCj4+ PiAgICAgICAgIHBhcmVudF9uYW1lID0gb2ZfY2xrX2dldF9wYXJlbnRfbmFtZShucCwgMCk7DQo+ Pj4gICAgICAgICBpZiAoIXBhcmVudF9uYW1lKQ0KPj4+IEBAIC04OTUsNyArOTQ3LDkgQEAgc3Rh dGljIHZvaWQgX19pbml0IG9mX2F0OTFzYW05bjEyX2Nsa191c2Jfc2V0dXAoc3RydWN0IGRldmlj ZV9ub2RlICpucCkNCj4+Pg0KPj4+ICAgICAgICAgb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmcobnAs ICJjbG9jay1vdXRwdXQtbmFtZXMiLCAmbmFtZSk7DQo+Pj4NCj4+PiAtICAgICAgIHJlZ21hcCA9 IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0 cCA9IG9mX2dldF9wYXJlbnQobnApOw0KPj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVf dG9fcmVnbWFwKHRwKTsNCj4+PiArICAgICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+PiAgICAgICAg IGlmIChJU19FUlIocmVnbWFwKSkNCj4+PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+DQo+ Pj4gQEAgLTkxNSw2ICs5NjksNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb2ZfYXQ5MXJtOTIwMF9j bGtfdXNiX3NldHVwKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApDQo+Pj4gICAgICAgICBjb25zdCBj aGFyICpuYW1lID0gbnAtPm5hbWU7DQo+Pj4gICAgICAgICB1MzIgZGl2aXNvcnNbNF0gPSB7MCwg MCwgMCwgMH07DQo+Pj4gICAgICAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7DQo+Pj4gKyAgICAg ICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOw0KPj4+DQo+Pj4gICAgICAgICBwYXJlbnRfbmFtZSA9 IG9mX2Nsa19nZXRfcGFyZW50X25hbWUobnAsIDApOw0KPj4+ICAgICAgICAgaWYgKCFwYXJlbnRf bmFtZSkNCj4+PiBAQCAtOTI2LDcgKzk4MSw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvZl9hdDkx cm05MjAwX2Nsa191c2Jfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkNCj4+Pg0KPj4+ICAg ICAgICAgb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmcobnAsICJjbG9jay1vdXRwdXQtbmFtZXMiLCAm bmFtZSk7DQo+Pj4NCj4+PiAtICAgICAgIHJlZ21hcCA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcChv Zl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnApOw0K Pj4+ICsgICAgICAgcmVnbWFwID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKHRwKTsNCj4+PiArICAg ICAgIG9mX25vZGVfcHV0KHRwKTsNCj4+PiAgICAgICAgIGlmIChJU19FUlIocmVnbWFwKSkNCj4+ PiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPj4+ICAgICAgICAgaHcgPSBhdDkxcm05MjAwX2Ns a19yZWdpc3Rlcl91c2IocmVnbWFwLCBuYW1lLCBwYXJlbnRfbmFtZSwgZGl2aXNvcnMpOw0KPj4+ IEBAIC05NDYsMTIgKzEwMDMsMTUgQEAgc3RhdGljIHZvaWQgX19pbml0IG9mX2F0OTFzYW05eDVf Y2xrX3V0bWlfc2V0dXAoc3RydWN0IGRldmljZV9ub2RlICpucCkNCj4+PiAgICAgICAgIGNvbnN0 IGNoYXIgKnBhcmVudF9uYW1lOw0KPj4+ICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IG5wLT5u YW1lOw0KPj4+ICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwX3BtYywgKnJlZ21hcF9zZnI7 DQo+Pj4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnRwOw0KPj4+DQo+Pj4gICAgICAgICBw YXJlbnRfbmFtZSA9IG9mX2Nsa19nZXRfcGFyZW50X25hbWUobnAsIDApOw0KPj4+DQo+Pj4gICAg ICAgICBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgImNsb2NrLW91dHB1dC1uYW1lcyIsICZu YW1lKTsNCj4+Pg0KPj4+IC0gICAgICAgcmVnbWFwX3BtYyA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21h cChvZl9nZXRfcGFyZW50KG5wKSk7DQo+Pj4gKyAgICAgICB0cCA9IG9mX2dldF9wYXJlbnQobnAp Ow0KPj4+ICsgICAgICAgcmVnbWFwX3BtYyA9IHN5c2Nvbl9ub2RlX3RvX3JlZ21hcCh0cCk7DQo+ Pj4gKyAgICAgICBvZl9ub2RlX3B1dCh0cCk7DQo+Pj4gICAgICAgICBpZiAoSVNfRVJSKHJlZ21h cF9wbWMpKQ0KPj4+ICAgICAgICAgICAgICAgICByZXR1cm47DQo+Pj4NCj4+PiAtLQ0KPj4+IDIu MjUuMQ0KPj4+DQo+Pg0KDQo=