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 A2FD9C636D4 for ; Sat, 11 Feb 2023 04:41:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229585AbjBKElQ (ORCPT ); Fri, 10 Feb 2023 23:41:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229447AbjBKElP (ORCPT ); Fri, 10 Feb 2023 23:41:15 -0500 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 573DD7BFF4; Fri, 10 Feb 2023 20:41:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676090473; x=1707626473; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=E2HwXPfp7Cj5yw8DU0nQ6aWYOc/FTraUGJni3vkUyKU=; b=nGhPlb4VCTDafitwgA3upnIErPIJsxOimgCGUPYRG5R+Fp0mg+2EliSF ImkO+/T3yHgcI1LwidvtuZhcEx+Cx5bVb317wPAdzBVII3d4r0SAMEcLl wkInDs+0m2fNOhLSLOJzHgGWXiHWGnClGm5MxVL2HW/aN8Ns5RifTxDOb uIwrKh8dR3UE1Z8TcLqy0dlO7USDW7SwGX2vu+FvIqRd94g+sp+9j9/Mi /3gpezsAjG7TxnIPHc56o37laYBjl2Ja51D/RUPLeA/efRrTI2VyvMP5r tofXZZ0N8rFQm2Ms+2VJDho8iuUzO4HvBVJn4ZCZEh/kEQRXHZERnDnJQ g==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="310946468" X-IronPort-AV: E=Sophos;i="5.97,289,1669104000"; d="scan'208";a="310946468" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 20:41:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="661617187" X-IronPort-AV: E=Sophos;i="5.97,289,1669104000"; d="scan'208";a="661617187" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga007.jf.intel.com with ESMTP; 10 Feb 2023 20:41:11 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Fri, 10 Feb 2023 20:41:11 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Fri, 10 Feb 2023 20:41:11 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.106) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Fri, 10 Feb 2023 20:41:10 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FNSZl8Lv8YYScIpqdSUNqJdS6vhWiaDsXllCuDZzIIyv4kHkpCkNWHheX+YNE3dQY2eQ4Vg5175niwXcz/06E/c30dkqXMvfOLzk+xhC2++4tIgyIYcaK4zVoBOgZO7MWx0h2vw6exEih4IvUyzRRkGK7EwHNXFOfVoboxjafHpgDHcexv4YfiSC4mZN6YF2yuWej4OTiUHh6gOcAosO4Vxaq3Giv/kqKT8kuy810+dGU7L5nSfo/1Q6VRH2AP/Nb2p0nBwelV8PovyikIfYFUBnqKy7ynRELgkWDJWv5Ny540iozkJyHENRpRyxd2zIWqNa/evAzA9ToU0B3gcODw== 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=E2HwXPfp7Cj5yw8DU0nQ6aWYOc/FTraUGJni3vkUyKU=; b=GY7fF+M2qG9mkGv0lUPdzxRIp+HtK9fMFsjDZo2bIsBhNQmEuBc5F8ZupKAwTHnU3J3JDN0IyBlP4+o9NOiXc5jos/PJSsmBcaq84TL6bkxYGsfM0lIjtLgV5eNlX/NPABr7+9qSwyWkEloSfafR1wih9/AcgNvj+xrrH3alMVFZ0Cptmlvn6LENMwpxYwWkNZIWrW0lo4awX6YnRCtgW+/ZdatJqj04WiPGLgkez374c4gQ5US0vL2VzOibn8hQ1foriJgAXFXMJb2GCuvOORv+CVUpnEbxmp8kvdqY86r4tqG9dXtQ79MWouFaEbdClllizpeDycsGq/fhaWy7Fg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MN2PR11MB3999.namprd11.prod.outlook.com (2603:10b6:208:154::32) by PH7PR11MB7099.namprd11.prod.outlook.com (2603:10b6:510:20e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.22; Sat, 11 Feb 2023 04:41:06 +0000 Received: from MN2PR11MB3999.namprd11.prod.outlook.com ([fe80::35af:d7a8:8484:627]) by MN2PR11MB3999.namprd11.prod.outlook.com ([fe80::35af:d7a8:8484:627%5]) with mapi id 15.20.6086.017; Sat, 11 Feb 2023 04:41:06 +0000 From: "Verma, Vishal L" To: "Williams, Dan J" , "linux-cxl@vger.kernel.org" CC: "linux-mm@kvack.org" , "fan.ni@samsung.com" , "dave.hansen@linux.intel.com" , "linux-acpi@vger.kernel.org" Subject: Re: [PATCH v2 18/20] dax/hmem: Move hmem device registration to dax_hmem.ko Thread-Topic: [PATCH v2 18/20] dax/hmem: Move hmem device registration to dax_hmem.ko Thread-Index: AQHZPS8Ts7wnB/d8GEmhYyXN8FaA9K7JK7mA Date: Sat, 11 Feb 2023 04:41:05 +0000 Message-ID: <0f73a0a27ff018219dadd355283f5c7120dbe65e.camel@intel.com> References: <167601992097.1924368.18291887895351917895.stgit@dwillia2-xfh.jf.intel.com> <167602002771.1924368.5653558226424530127.stgit@dwillia2-xfh.jf.intel.com> In-Reply-To: <167602002771.1924368.5653558226424530127.stgit@dwillia2-xfh.jf.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.46.3 (3.46.3-1.fc37) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR11MB3999:EE_|PH7PR11MB7099:EE_ x-ms-office365-filtering-correlation-id: 2cb94d8e-c0c0-4819-fcc6-08db0bea2fd9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Kv0efBWiFfKc64Mdcf5l0WOIbojCGsmWy2dB1pHyrJKNZtaH1axBZw72Q7cy/nmWaPWK8MqCmweWrvb5RQDEhfD99HkxFYPrMLj7vIYT8t2RVanCZQO170PSjRpvjHm2bJGaNcuq8Na05nhFDJreCOs91S7ozGWJjyzmUysmi1PshbzvlANf7nxnpfE0TqyPoZgO+LbOWP3e5jXYLcFLL1pfnKj5pKGE6W5hDCooJnncS+HhTOv2zuh3aExRlXQRhJe7CguZL0ZWRsTXva1nhvAFvPcnYU77MZc+clfYYOTA6lGyvFK4WJD+Ul6+NMxcrSQkevyyW0GlliH0lChMqih8C6P/69tX6Tuo+AiEuy3Pz/0DMgkE+DVWH5VwwnAHTk+wIWH+8iLytv2SD78qRdbPsxFnKeh+KUhCyxObikE+2ANH+njSe2oVyQ4sT6YZnPE5eftTk1OZoq2BLrKXrD1NLts0bivPlfH9kzWvt1+uBadUfGJlvcWnVdF9+TkIdecQK9SqTC0vmwN7x2mCtAEyki/aUzOrLzuE8pGM6GmgX4uEUCIAEC5H3fdV7FkpIoHHVAyn3q3HevKDal1TfiUYBhbt0pOYaf8z21zXTdByvMluyJXMfm6RUQUgXNoL+48sODw3KM1RmfCqHJSAyHPkG6DzhK+pxetqy7B7dsd8FRQM0KWRakVoOV2s8ikTIjZWbLXNyK88AbrwseWb2X4DxIOZysZET2kdRQA3MQ8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB3999.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(136003)(366004)(39860400002)(376002)(346002)(451199018)(82960400001)(122000001)(38100700002)(6486002)(966005)(478600001)(83380400001)(36756003)(6512007)(26005)(6506007)(186003)(2616005)(71200400001)(66946007)(66446008)(64756008)(66556008)(66476007)(86362001)(5660300002)(8936002)(41300700001)(316002)(110136005)(54906003)(38070700005)(76116006)(91956017)(4326008)(2906002)(8676002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?THVWSTRnd015R3k2TGo4S01wWjdERGl3RE5MOUU3YU1TOU94bEd6S0N6K0dw?= =?utf-8?B?VElCbHVSYlpFeEJLT1gvWHVmVlJqQXpxRFJKVHVwbUZsODc1NHRNMEJUL3dW?= =?utf-8?B?cmZLRDJhVUk5SHd0Z2ZqL1dJajZXQnJ2bDBhcTRKUXpvaFpNSEp1MXRlVjFS?= =?utf-8?B?bWxwakpWLzZIMzRHSFBncUxtMVd2Zm5KenFDZkNEaVpPNGZ5N0RNMnp5OGJx?= =?utf-8?B?VDU2ZUFpRkJYSWFBN0EvYnM0SkxzdVRzbC9qZTRWUG1UWEFiejExMktibGpE?= =?utf-8?B?ZzJCUm1FUXZwMTBOSHYvc0puWU1PdkZCODByaUZxUUg4Um4vcTNGbTErS3Jt?= =?utf-8?B?NnNKZFFYYmptMzBlTVF6RThaMTA1dHlDakR0c3ZSRVRYOHkva0VKd2UyakNQ?= =?utf-8?B?dVVsNDg0bE5uU0pKRnUxaU53N1FJWEF6MzhMU0JsOWJrNGFwTUhZZkV4VjdZ?= =?utf-8?B?d3dyMjBwM0lHNGtWZDJDNnZiZDNUSFFpNTdrWmNFMVZOSGc5bGdiN0ZUT3Ex?= =?utf-8?B?VnNQTEVZZ2N0MHdqZW9TVnVQd0FPVno1NFBhY2NGaEdyMjJjV3Mwbk9sZitV?= =?utf-8?B?Vm4zVXUwQW5kL2hrZ3FpcGswYnFQMzRLL291YnZTVGI1VWcvNldIR24zOGJi?= =?utf-8?B?Z3NoZXVhZE9DNHNsajNXdlRMcWpZVnBHMXBlcW9Gc3AzT2Y0YldTOTZ4eTNy?= =?utf-8?B?clZCNDNBczBKNWNTcWtZV2E5UDQ5dFFpYlprdTlrcTgwTVJ5dmxXbEdTUGhB?= =?utf-8?B?ZFlSa0RSVmRDNHc2eXBsbURGSXdrTzhoUkM2ZStpSSs1UTQyMU93ZVl4WnBJ?= =?utf-8?B?WCtLbEpLQlRTZDVMM0RYbnZhOCtvVVI4anlZSjZHRlMzeC9RZHplY0ZhN1NV?= =?utf-8?B?NVU2b1ZyQVVJL2UzV2RSQjlmQUhFaE9uTDU4OXQwckRuZDloTzVjOVlzZTdl?= =?utf-8?B?YmJ4bXFxVXpCaEE3WUZVZHdSVUZVL0VFRm02L2VhOWlWcDlqNXZHTFdGM0N1?= =?utf-8?B?MG96YnNQbTBqZEI1QWJEUGlXaGwrSVNDYjhvMkNYNGt5MmVBY1MzNWxUMWNS?= =?utf-8?B?S1dldGtQNUVMTkxyUHE2emp4K0JnbUlBbzVkYjZQNkVsNzk0YTJ3QTdJS1JF?= =?utf-8?B?My9NUERXRWNXMFRDWnlWZHd0OTZzOGp6YjdZaFhOTWpGc2xDWXIxck1KVy9x?= =?utf-8?B?cHpXbFJNbE1iSUxUZmlUdVhVUDd1WEpyOG5pZnBPNDVrNGJPNXN3c1ZwOEw0?= =?utf-8?B?R2FqKzB0NlhCRXRiVGtxUjU5UUtHcW1GZ0RCaU1lL3h2ZW9sWk83ald6eE9R?= =?utf-8?B?V3c3T3JHeHU0NkJvejFnb2xnODhWQkRJZGE4NTNJU1pseFRBWlQzL2E1MGcw?= =?utf-8?B?Y0R6RWNqSUNLdmduOGFTY2pVZlNLREs1eWkwOGdaT3VHQ2tWUmQxNkF5R1ha?= =?utf-8?B?MENja2ZxNUkrU2ptRXRVVGl1djBlUlg2amVndWJYa2NRVFdscEFDQXVHVGpF?= =?utf-8?B?NFdPbmlGaGRFMkR0M2E4dy9SQWNianBYNkdFMWpsbDZsclhoZEpNLzdBTUp3?= =?utf-8?B?TTlINDBrMGpLdEREUERXUmNIY09yRmV2VVlPdnA4bFNtL3pkdGNXbHFKY21h?= =?utf-8?B?aWV1Yk0yakJYdXUwUm9oN21QNzFURk0rK3JDUGhFdVpsZGNFMFkrM0ZHNXhV?= =?utf-8?B?M2ZENFR6UWY5Y3Rtb3BPeklqRFZqV2JnbEtwUDlZem9VbFViS3B0aWc5S0U3?= =?utf-8?B?d0RVZmYwLzlYc09rTGFRSjhKSTVrZzFoSmxJbzNaa0hYWjNrTi96V3RDYncy?= =?utf-8?B?YVU0aVZGNUhuVE84Sk5CV2JQR0tVV3g1VkpJYS9vZHgzZE9KTEk4a3RyMVV2?= =?utf-8?B?QXhpR21iYUp3K3M0Z2ZTdHVXVUNnM3AvcUJiOUZHbDR2MjJ5bjc5Z2plNUdC?= =?utf-8?B?TVI2T1NLbEZxK20wUXZ5blpTcHJXRmg0cU9TU1pjK0IwMWQzTlJwU1ZCYnNJ?= =?utf-8?B?TGl3WVBGbCtmNU9NSTc5OUJtYkZSTGxwMnBxUXpqdTJZUmZ1VFdST3pjNVRm?= =?utf-8?B?bjRodk14NGc0b3pJbGNuZ2ZUUDZxRFFHUU13OWZESDhyZmI2RVdWR1NLTGR5?= =?utf-8?B?R0o3QVlMUGQxZTFmQmFRY3kyL0ZZaHdHUkxubG9ib1h3a1hwVTNEWWlkalls?= =?utf-8?B?Rmc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <98A3A8D7AD79A54091B3587148DA95EC@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB3999.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cb94d8e-c0c0-4819-fcc6-08db0bea2fd9 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Feb 2023 04:41:05.5812 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ofiQNNwQ4bWYqzFIfNGrGN6dJb9fP2ervD3RhccUwOqoecap2A2iJCNiY4ciSoyDLXH1jjHwLVH92JxabvrrYBf+/dgMQNRq55V1xK2K9D0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7099 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org T24gRnJpLCAyMDIzLTAyLTEwIGF0IDAxOjA3IC0wODAwLCBEYW4gV2lsbGlhbXMgd3JvdGU6Cj4g SW4gcHJlcGFyYXRpb24gZm9yIHRoZSBDWEwgcmVnaW9uIGRyaXZlciB0byB0YWtlIG92ZXIgdGhl IHJlc3BvbnNpYmlsaXR5Cj4gb2YgcmVnaXN0ZXJpbmcgZGV2aWNlLWRheCBpbnN0YW5jZXMgZm9y IENYTCByZWdpb25zLCBtb3ZlIHRoZQo+IHJlZ2lzdHJhdGlvbiBvZiAiaG1lbSIgZGV2aWNlcyB0 byBkYXhfaG1lbS5rby4KPiAKPiBQcmV2aW91c2x5IHRoZSBidWlsdGluIGNvbXBvbmVudCBvZiB0 aGlzIGVuYWJsaW5nCj4gKGRyaXZlcnMvZGF4L2htZW0vZGV2aWNlLm8pIHdvdWxkIHJlZ2lzdGVy IHBsYXRmb3JtIGRldmljZXMgZm9yIGVhY2gKPiBhZGRyZXNzIHJhbmdlIGFuZCB0cmlnZ2VyIHRo ZSBkYXhfaG1lbS5rbyBtb2R1bGUgdG8gbG9hZCBhbmQgYXR0YWNoCj4gZGV2aWNlLWRheCBpbnN0 YW5jZXMgdG8gdGhvc2UgZGV2aWNlcy4gTm93LCB0aGUgcmFuZ2VzIGFyZSBjb2xsZWN0ZWQKPiBm cm9tIHRoZSBITUFUIGFuZCBFRkkgbWVtb3J5IG1hcCB3YWxraW5nLCBidXQgdGhlIGRldmljZSBj cmVhdGlvbiBpcwo+IGRlZmVycmVkLiBBIG5ldyAiaG1lbV9wbGF0Zm9ybSIgZGV2aWNlIGlzIGNy ZWF0ZWQgd2hpY2ggdHJpZ2dlcnMKPiBkYXhfaG1lbS5rbyB0byBsb2FkIGFuZCByZWdpc3RlciB0 aGUgcGxhdGZvcm0gZGV2aWNlcy4KPiAKPiBUZXN0ZWQtYnk6IEZhbiBOaSA8ZmFuLm5pQHNhbXN1 bmcuY29tPgo+IExpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMTY3NTY0NTQzOTIzLjg0 NzE0Ni45MDMwMzgwMjIzNjIyMDQ0NzQ0LnN0Z2l0QGR3aWxsaWEyLXhmaC5qZi5pbnRlbC5jb20K PiBTaWduZWQtb2ZmLWJ5OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4K PiAtLS0KPiDCoGRyaXZlcnMvYWNwaS9udW1hL2htYXQuY8KgIHzCoMKgwqAgMiAtCj4gwqBkcml2 ZXJzL2RheC9LY29uZmlnwqDCoMKgwqDCoMKgIHzCoMKgwqAgMiAtCj4gwqBkcml2ZXJzL2RheC9o bWVtL2RldmljZS5jIHzCoMKgIDkxICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLQo+IMKgZHJpdmVycy9kYXgvaG1lbS9obWVtLmPCoMKgIHzCoCAxMDUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gwqBpbmNsdWRlL2xpbnV4L2RheC5o wqDCoMKgwqDCoMKgIHzCoMKgwqAgNyArKy0KPiDCoDUgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2Vy dGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQoKTG9va3MgZ29vZCwKClJldmlld2VkLWJ5OiBWaXNo YWwgVmVybWEgPHZpc2hhbC5sLnZlcm1hQGludGVsLmNvbT4KCj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYWNwaS9udW1hL2htYXQuYyBiL2RyaXZlcnMvYWNwaS9udW1hL2htYXQuYwo+IGluZGV4 IGZmMjQyODIzMDFhYi4uYmJhMjY4ZWNkODAyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvYWNwaS9u dW1hL2htYXQuYwo+ICsrKyBiL2RyaXZlcnMvYWNwaS9udW1hL2htYXQuYwo+IEBAIC03MTgsNyAr NzE4LDcgQEAgc3RhdGljIHZvaWQgaG1hdF9yZWdpc3Rlcl90YXJnZXRfZGV2aWNlcyhzdHJ1Y3Qg bWVtb3J5X3RhcmdldCAqdGFyZ2V0KQo+IMKgwqDCoMKgwqDCoMKgwqBmb3IgKHJlcyA9IHRhcmdl dC0+bWVtcmVnaW9ucy5jaGlsZDsgcmVzOyByZXMgPSByZXMtPnNpYmxpbmcpIHsKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludCB0YXJnZXRfbmlkID0gcHhtX3RvX25vZGUodGFy Z2V0LT5tZW1vcnlfcHhtKTsKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBo bWVtX3JlZ2lzdGVyX2RldmljZSh0YXJnZXRfbmlkLCByZXMpOwo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBobWVtX3JlZ2lzdGVyX3Jlc291cmNlKHRhcmdldF9uaWQsIHJlcyk7Cj4g wqDCoMKgwqDCoMKgwqDCoH0KPiDCoH0KPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RheC9L Y29uZmlnIGIvZHJpdmVycy9kYXgvS2NvbmZpZwo+IGluZGV4IDVmZGYyNjlhODIyZS4uZDEzYzg4 OWMyYTY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZGF4L0tjb25maWcKPiArKysgYi9kcml2ZXJz L2RheC9LY29uZmlnCj4gQEAgLTQ2LDcgKzQ2LDcgQEAgY29uZmlnIERFVl9EQVhfSE1FTQo+IMKg wqDCoMKgwqDCoMKgwqDCoCBTYXkgTSBpZiB1bnN1cmUuCj4gwqAKPiDCoGNvbmZpZyBERVZfREFY X0hNRU1fREVWSUNFUwo+IC3CoMKgwqDCoMKgwqDCoGRlcGVuZHMgb24gREVWX0RBWF9ITUVNICYm IERBWD15Cj4gK8KgwqDCoMKgwqDCoMKgZGVwZW5kcyBvbiBERVZfREFYX0hNRU0gJiYgREFYCj4g wqDCoMKgwqDCoMKgwqDCoGRlZl9ib29sIHkKPiDCoAo+IMKgY29uZmlnIERFVl9EQVhfS01FTQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RheC9obWVtL2RldmljZS5jIGIvZHJpdmVycy9kYXgvaG1l bS9kZXZpY2UuYwo+IGluZGV4IGIxYjMzOWJjY2ZlNS4uZjllMWE3NmEwNGE5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZGF4L2htZW0vZGV2aWNlLmMKPiArKysgYi9kcml2ZXJzL2RheC9obWVtL2Rl dmljZS5jCj4gQEAgLTgsNiArOCw4IEBACj4gwqBzdGF0aWMgYm9vbCBub2htZW07Cj4gwqBtb2R1 bGVfcGFyYW1fbmFtZWQoZGlzYWJsZSwgbm9obWVtLCBib29sLCAwNDQ0KTsKPiDCoAo+ICtzdGF0 aWMgYm9vbCBwbGF0Zm9ybV9pbml0aWFsaXplZDsKPiArc3RhdGljIERFRklORV9NVVRFWChobWVt X3Jlc291cmNlX2xvY2spOwo+IMKgc3RhdGljIHN0cnVjdCByZXNvdXJjZSBobWVtX2FjdGl2ZSA9 IHsKPiDCoMKgwqDCoMKgwqDCoMKgLm5hbWUgPSAiSE1FTSBkZXZpY2VzIiwKPiDCoMKgwqDCoMKg wqDCoMKgLnN0YXJ0ID0gMCwKPiBAQCAtMTUsNzEgKzE3LDY2IEBAIHN0YXRpYyBzdHJ1Y3QgcmVz b3VyY2UgaG1lbV9hY3RpdmUgPSB7Cj4gwqDCoMKgwqDCoMKgwqDCoC5mbGFncyA9IElPUkVTT1VS Q0VfTUVNLAo+IMKgfTsKPiDCoAo+IC12b2lkIGhtZW1fcmVnaXN0ZXJfZGV2aWNlKGludCB0YXJn ZXRfbmlkLCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKPiAraW50IHdhbGtfaG1lbV9yZXNvdXJjZXMo c3RydWN0IGRldmljZSAqaG9zdCwgd2Fsa19obWVtX2ZuIGZuKQo+ICt7Cj4gK8KgwqDCoMKgwqDC oMKgc3RydWN0IHJlc291cmNlICpyZXM7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IHJjID0gMDsKPiAr Cj4gK8KgwqDCoMKgwqDCoMKgbXV0ZXhfbG9jaygmaG1lbV9yZXNvdXJjZV9sb2NrKTsKPiArwqDC oMKgwqDCoMKgwqBmb3IgKHJlcyA9IGhtZW1fYWN0aXZlLmNoaWxkOyByZXM7IHJlcyA9IHJlcy0+ c2libGluZykgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYyA9IGZuKGhvc3Qs IChpbnQpIHJlcy0+ZGVzYywgcmVzKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgKHJjKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg YnJlYWs7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICvCoMKgwqDCoMKgwqDCoG11dGV4X3VubG9jaygm aG1lbV9yZXNvdXJjZV9sb2NrKTsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gcmM7Cj4gK30KPiAr RVhQT1JUX1NZTUJPTF9HUEwod2Fsa19obWVtX3Jlc291cmNlcyk7Cj4gKwo+ICtzdGF0aWMgdm9p ZCBfX2htZW1fcmVnaXN0ZXJfcmVzb3VyY2UoaW50IHRhcmdldF9uaWQsIHN0cnVjdCByZXNvdXJj ZSAqcmVzKQo+IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2Owo+IC3CoMKgwqDCoMKgwqDCoHN0cnVjdCBtZW1yZWdpb25faW5mbyBpbmZvOwo+IC3CoMKg wqDCoMKgwqDCoGludCByYywgaWQ7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHJlc291cmNlICpu ZXc7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IHJjOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaWYgKG5v aG1lbSkKPiArwqDCoMKgwqDCoMKgwqBuZXcgPSBfX3JlcXVlc3RfcmVnaW9uKCZobWVtX2FjdGl2 ZSwgcmVzLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShyZXMpLCAiIiwKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwKTsKPiArwqDCoMKg wqDCoMKgwqBpZiAoIW5ldykgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwcl9k ZWJ1ZygiaG1lbSByYW5nZSAlcHIgYWxyZWFkeSBhY3RpdmVcbiIsIHJlcyk7Cj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gK8KgwqDCoMKgwqDCoMKgfQo+IMKgCj4g LcKgwqDCoMKgwqDCoMKgcmMgPSByZWdpb25faW50ZXJzZWN0cyhyZXMtPnN0YXJ0LCByZXNvdXJj ZV9zaXplKHJlcyksIElPUkVTT1VSQ0VfTUVNLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElPUkVTX0RFU0NfU09GVF9SRVNFUlZF RCk7Cj4gLcKgwqDCoMKgwqDCoMKgaWYgKHJjICE9IFJFR0lPTl9JTlRFUlNFQ1RTKQo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm47Cj4gK8KgwqDCoMKgwqDCoMKgbmV3LT5k ZXNjID0gdGFyZ2V0X25pZDsKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoGlkID0gbWVtcmVnaW9uX2Fs bG9jKEdGUF9LRVJORUwpOwo+IC3CoMKgwqDCoMKgwqDCoGlmIChpZCA8IDApIHsKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJfZXJyKCJtZW1yZWdpb24gYWxsb2NhdGlvbiBmYWls dXJlIGZvciAlcHJcbiIsIHJlcyk7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHBsYXRmb3JtX2luaXRp YWxpemVkKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+IC3CoMKg wqDCoMKgwqDCoH0KPiDCoAo+IC3CoMKgwqDCoMKgwqDCoHBkZXYgPSBwbGF0Zm9ybV9kZXZpY2Vf YWxsb2MoImhtZW0iLCBpZCk7Cj4gK8KgwqDCoMKgwqDCoMKgcGRldiA9IHBsYXRmb3JtX2Rldmlj ZV9hbGxvYygiaG1lbV9wbGF0Zm9ybSIsIDApOwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoIXBkZXYp IHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJfZXJyKCJobWVtIGRldmljZSBh bGxvY2F0aW9uIGZhaWx1cmUgZm9yICVwclxuIiwgcmVzKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgZ290byBvdXRfcGRldjsKPiAtwqDCoMKgwqDCoMKgwqB9Cj4gLQo+IC3CoMKg wqDCoMKgwqDCoGlmICghX19yZXF1ZXN0X3JlZ2lvbigmaG1lbV9hY3RpdmUsIHJlcy0+c3RhcnQs IHJlc291cmNlX3NpemUocmVzKSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGV2X25hbWUoJnBkZXYtPmRldiksIDApKSB7Cj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldl9kYmcoJnBkZXYtPmRldiwgImhtZW0gcmFu Z2UgJXByIGFscmVhZHkgYWN0aXZlXG4iLCByZXMpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBnb3RvIG91dF9hY3RpdmU7Cj4gLcKgwqDCoMKgwqDCoMKgfQo+IC0KPiAtwqDCoMKg wqDCoMKgwqBwZGV2LT5kZXYubnVtYV9ub2RlID0gbnVtYV9tYXBfdG9fb25saW5lX25vZGUodGFy Z2V0X25pZCk7Cj4gLcKgwqDCoMKgwqDCoMKgaW5mbyA9IChzdHJ1Y3QgbWVtcmVnaW9uX2luZm8p IHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLnRhcmdldF9ub2RlID0gdGFyZ2V0 X25pZCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLnJhbmdlID0gewo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLnN0YXJ0ID0gcmVzLT5z dGFydCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC5l bmQgPSByZXMtPmVuZCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSwKPiAtwqDC oMKgwqDCoMKgwqB9Owo+IC3CoMKgwqDCoMKgwqDCoHJjID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9k YXRhKHBkZXYsICZpbmZvLCBzaXplb2YoaW5mbykpOwo+IC3CoMKgwqDCoMKgwqDCoGlmIChyYyA8 IDApIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJfZXJyKCJobWVtIG1lbXJl Z2lvbl9pbmZvIGFsbG9jYXRpb24gZmFpbHVyZSBmb3IgJXByXG4iLCByZXMpOwo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIG91dF9yZXNvdXJjZTsKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgcHJfZXJyX29uY2UoImZhaWxlZCB0byByZWdpc3RlciBkZXZpY2Ut ZGF4IGhtZW1fcGxhdGZvcm0gZGV2aWNlXG4iKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgcmV0dXJuOwo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKg cmMgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpOwo+IC3CoMKgwqDCoMKgwqDCoGlmIChyYyA8 IDApIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X2VycigmcGRldi0+ZGV2 LCAiZGV2aWNlIGFkZCBmYWlsZWQgZm9yICVwclxuIiwgcmVzKTsKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZ290byBvdXRfcmVzb3VyY2U7Cj4gLcKgwqDCoMKgwqDCoMKgfQo+ICvC oMKgwqDCoMKgwqDCoGlmIChyYykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGxh dGZvcm1fZGV2aWNlX3B1dChwZGV2KTsKPiArwqDCoMKgwqDCoMKgwqBlbHNlCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHBsYXRmb3JtX2luaXRpYWxpemVkID0gdHJ1ZTsKPiArfQo+ IMKgCj4gLcKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+ICt2b2lkIGhtZW1fcmVnaXN0ZXJfcmVzb3Vy Y2UoaW50IHRhcmdldF9uaWQsIHN0cnVjdCByZXNvdXJjZSAqcmVzKQo+ICt7Cj4gK8KgwqDCoMKg wqDCoMKgaWYgKG5vaG1lbSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJu Owo+IMKgCj4gLW91dF9yZXNvdXJjZToKPiAtwqDCoMKgwqDCoMKgwqBfX3JlbGVhc2VfcmVnaW9u KCZobWVtX2FjdGl2ZSwgcmVzLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShyZXMpKTsKPiAtb3V0X2Fj dGl2ZToKPiAtwqDCoMKgwqDCoMKgwqBwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpOwo+IC1vdXRf cGRldjoKPiAtwqDCoMKgwqDCoMKgwqBtZW1yZWdpb25fZnJlZShpZCk7Cj4gK8KgwqDCoMKgwqDC oMKgbXV0ZXhfbG9jaygmaG1lbV9yZXNvdXJjZV9sb2NrKTsKPiArwqDCoMKgwqDCoMKgwqBfX2ht ZW1fcmVnaXN0ZXJfcmVzb3VyY2UodGFyZ2V0X25pZCwgcmVzKTsKPiArwqDCoMKgwqDCoMKgwqBt dXRleF91bmxvY2soJmhtZW1fcmVzb3VyY2VfbG9jayk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBf X2luaXQgaW50IGhtZW1fcmVnaXN0ZXJfb25lKHN0cnVjdCByZXNvdXJjZSAqcmVzLCB2b2lkICpk YXRhKQo+IMKgewo+IC3CoMKgwqDCoMKgwqDCoGhtZW1fcmVnaXN0ZXJfZGV2aWNlKHBoeXNfdG9f dGFyZ2V0X25vZGUocmVzLT5zdGFydCksIHJlcyk7Cj4gK8KgwqDCoMKgwqDCoMKgaG1lbV9yZWdp c3Rlcl9yZXNvdXJjZShwaHlzX3RvX3RhcmdldF9ub2RlKHJlcy0+c3RhcnQpLCByZXMpOwo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiAwOwo+IMKgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2RheC9obWVtL2htZW0uYyBiL2RyaXZlcnMvZGF4L2htZW0vaG1lbS5jCj4gaW5kZXggNTAyNWE4 Yzk4NTBiLi5lN2JkZmYzMTMyZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9kYXgvaG1lbS9obWVt LmMKPiArKysgYi9kcml2ZXJzL2RheC9obWVtL2htZW0uYwo+IEBAIC0zLDYgKzMsNyBAQAo+IMKg I2luY2x1ZGUgPGxpbnV4L21lbXJlZ2lvbi5oPgo+IMKgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o Pgo+IMKgI2luY2x1ZGUgPGxpbnV4L3Bmbl90Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kYXguaD4K PiDCoCNpbmNsdWRlICIuLi9idXMuaCIKPiDCoAo+IMKgc3RhdGljIGJvb2wgcmVnaW9uX2lkbGU7 Cj4gQEAgLTQzLDggKzQ0LDExMCBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkYXhf aG1lbV9kcml2ZXIgPSB7Cj4gwqDCoMKgwqDCoMKgwqDCoH0sCj4gwqB9Owo+IMKgCj4gLW1vZHVs ZV9wbGF0Zm9ybV9kcml2ZXIoZGF4X2htZW1fZHJpdmVyKTsKPiArc3RhdGljIHZvaWQgcmVsZWFz ZV9tZW1yZWdpb24odm9pZCAqZGF0YSkKPiArewo+ICvCoMKgwqDCoMKgwqDCoG1lbXJlZ2lvbl9m cmVlKChsb25nKSBkYXRhKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcmVsZWFzZV9obWVtKHZv aWQgKnBkZXYpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3Rl cihwZGV2KTsKPiArfQo+ICsKPiArc3RhdGljIGludCBobWVtX3JlZ2lzdGVyX2RldmljZShzdHJ1 Y3QgZGV2aWNlICpob3N0LCBpbnQgdGFyZ2V0X25pZCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb25zdCBzdHJ1Y3QgcmVz b3VyY2UgKnJlcykKPiArewo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXY7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IG1lbXJlZ2lvbl9pbmZvIGluZm87Cj4gK8Kg wqDCoMKgwqDCoMKgbG9uZyBpZDsKPiArwqDCoMKgwqDCoMKgwqBpbnQgcmM7Cj4gKwo+ICvCoMKg wqDCoMKgwqDCoHJjID0gcmVnaW9uX2ludGVyc2VjdHMocmVzLT5zdGFydCwgcmVzb3VyY2Vfc2l6 ZShyZXMpLCBJT1JFU09VUkNFX01FTSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJT1JFU19ERVNDX1NPRlRfUkVTRVJWRUQpOwo+ ICvCoMKgwqDCoMKgwqDCoGlmIChyYyAhPSBSRUdJT05fSU5URVJTRUNUUykKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlkID0g bWVtcmVnaW9uX2FsbG9jKEdGUF9LRVJORUwpOwo+ICvCoMKgwqDCoMKgwqDCoGlmIChpZCA8IDAp IHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X2Vycihob3N0LCAibWVtcmVn aW9uIGFsbG9jYXRpb24gZmFpbHVyZSBmb3IgJXByXG4iLCByZXMpOwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVOT01FTTsKPiArwqDCoMKgwqDCoMKgwqB9Cj4gK8Kg wqDCoMKgwqDCoMKgcmMgPSBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQoaG9zdCwgcmVsZWFzZV9t ZW1yZWdpb24sICh2b2lkICopIGlkKTsKPiArwqDCoMKgwqDCoMKgwqBpZiAocmMpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiByYzsKPiArCj4gK8KgwqDCoMKgwqDCoMKg cGRldiA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygiaG1lbSIsIGlkKTsKPiArwqDCoMKgwqDCoMKg wqBpZiAoIXBkZXYpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2X2Vyciho b3N0LCAiZGV2aWNlIGFsbG9jYXRpb24gZmFpbHVyZSBmb3IgJXByXG4iLCByZXMpOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVOT01FTTsKPiArwqDCoMKgwqDCoMKg wqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHBkZXYtPmRldi5udW1hX25vZGUgPSBudW1hX21hcF90 b19vbmxpbmVfbm9kZSh0YXJnZXRfbmlkKTsKPiArwqDCoMKgwqDCoMKgwqBpbmZvID0gKHN0cnVj dCBtZW1yZWdpb25faW5mbykgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAudGFy Z2V0X25vZGUgPSB0YXJnZXRfbmlkLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAu cmFuZ2UgPSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAuc3RhcnQgPSByZXMtPnN0YXJ0LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgLmVuZCA9IHJlcy0+ZW5kLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB9LAo+ICvCoMKgwqDCoMKgwqDCoH07Cj4gK8KgwqDCoMKgwqDCoMKgcmMgPSBwbGF0 Zm9ybV9kZXZpY2VfYWRkX2RhdGEocGRldiwgJmluZm8sIHNpemVvZihpbmZvKSk7Cj4gK8KgwqDC oMKgwqDCoMKgaWYgKHJjIDwgMCkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBk ZXZfZXJyKGhvc3QsICJtZW1yZWdpb25faW5mbyBhbGxvY2F0aW9uIGZhaWx1cmUgZm9yICVwclxu IiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlcyk7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gb3V0X3B1dDsKPiArwqDCoMKgwqDC oMKgwqB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoHJjID0gcGxhdGZvcm1fZGV2aWNlX2FkZChwZGV2 KTsKPiArwqDCoMKgwqDCoMKgwqBpZiAocmMgPCAwKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGRldl9lcnIoaG9zdCwgIiVzIGFkZCBmYWlsZWQgZm9yICVwclxuIiwgZGV2X25h bWUoJnBkZXYtPmRldiksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXMpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIG91dF9w dXQ7Cj4gK8KgwqDCoMKgwqDCoMKgfQo+ICsKPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gZGV2bV9h ZGRfYWN0aW9uX29yX3Jlc2V0KGhvc3QsIHJlbGVhc2VfaG1lbSwgcGRldik7Cj4gKwo+ICtvdXRf cHV0Ogo+ICvCoMKgwqDCoMKgwqDCoHBsYXRmb3JtX2RldmljZV9wdXQocGRldik7Cj4gK8KgwqDC oMKgwqDCoMKgcmV0dXJuIHJjOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGRheF9obWVtX3BsYXRm b3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArwqDCoMKgwqDC oMKgwqByZXR1cm4gd2Fsa19obWVtX3Jlc291cmNlcygmcGRldi0+ZGV2LCBobWVtX3JlZ2lzdGVy X2RldmljZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGRheF9o bWVtX3BsYXRmb3JtX2RyaXZlciA9IHsKPiArwqDCoMKgwqDCoMKgwqAucHJvYmUgPSBkYXhfaG1l bV9wbGF0Zm9ybV9wcm9iZSwKPiArwqDCoMKgwqDCoMKgwqAuZHJpdmVyID0gewo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAubmFtZSA9ICJobWVtX3BsYXRmb3JtIiwKPiArwqDCoMKg wqDCoMKgwqB9LAo+ICt9Owo+ICsKPiArc3RhdGljIF9faW5pdCBpbnQgZGF4X2htZW1faW5pdCh2 b2lkKQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IHJjOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBy YyA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmZGF4X2htZW1fcGxhdGZvcm1fZHJpdmVyKTsK PiArwqDCoMKgwqDCoMKgwqBpZiAocmMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHJldHVybiByYzsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmMgPSBwbGF0Zm9ybV9kcml2ZXJfcmVn aXN0ZXIoJmRheF9obWVtX2RyaXZlcik7Cj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJjKQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmZGF4 X2htZW1fcGxhdGZvcm1fZHJpdmVyKTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHJjOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgX19leGl0IHZvaWQgZGF4X2htZW1fZXhpdCh2b2lkKQo+ICt7Cj4g K8KgwqDCoMKgwqDCoMKgcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmRheF9obWVtX2RyaXZl cik7Cj4gK8KgwqDCoMKgwqDCoMKgcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmRheF9obWVt X3BsYXRmb3JtX2RyaXZlcik7Cj4gK30KPiArCj4gK21vZHVsZV9pbml0KGRheF9obWVtX2luaXQp Owo+ICttb2R1bGVfZXhpdChkYXhfaG1lbV9leGl0KTsKPiDCoAo+IMKgTU9EVUxFX0FMSUFTKCJw bGF0Zm9ybTpobWVtKiIpOwo+ICtNT0RVTEVfQUxJQVMoInBsYXRmb3JtOmhtZW1fcGxhdGZvcm0q Iik7Cj4gwqBNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Cj4gwqBNT0RVTEVfQVVUSE9SKCJJbnRl bCBDb3Jwb3JhdGlvbiIpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RheC5oIGIvaW5j bHVkZS9saW51eC9kYXguaAo+IGluZGV4IDJiNWVjYjU5MTA1OS4uYmY2MjU4NDcyZTQ5IDEwMDY0 NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvZGF4LmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2RheC5o Cj4gQEAgLTI2MiwxMSArMjYyLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBkYXhfbWFwcGluZyhz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykKPiDCoH0KPiDCoAo+IMKgI2lmZGVmIENPTkZJ R19ERVZfREFYX0hNRU1fREVWSUNFUwo+IC12b2lkIGhtZW1fcmVnaXN0ZXJfZGV2aWNlKGludCB0 YXJnZXRfbmlkLCBzdHJ1Y3QgcmVzb3VyY2UgKnIpOwo+ICt2b2lkIGhtZW1fcmVnaXN0ZXJfcmVz b3VyY2UoaW50IHRhcmdldF9uaWQsIHN0cnVjdCByZXNvdXJjZSAqcik7Cj4gwqAjZWxzZQo+IC1z dGF0aWMgaW5saW5lIHZvaWQgaG1lbV9yZWdpc3Rlcl9kZXZpY2UoaW50IHRhcmdldF9uaWQsIHN0 cnVjdCByZXNvdXJjZSAqcikKPiArc3RhdGljIGlubGluZSB2b2lkIGhtZW1fcmVnaXN0ZXJfcmVz b3VyY2UoaW50IHRhcmdldF9uaWQsIHN0cnVjdCByZXNvdXJjZSAqcikKPiDCoHsKPiDCoH0KPiDC oCNlbmRpZgo+IMKgCj4gK3R5cGVkZWYgaW50ICgqd2Fsa19obWVtX2ZuKShzdHJ1Y3QgZGV2aWNl ICpkZXYsIGludCB0YXJnZXRfbmlkLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCByZXNvdXJjZSAqcmVzKTsKPiAraW50 IHdhbGtfaG1lbV9yZXNvdXJjZXMoc3RydWN0IGRldmljZSAqZGV2LCB3YWxrX2htZW1fZm4gZm4p Owo+IMKgI2VuZGlmCj4gCgo=