Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp744001rdb; Fri, 8 Sep 2023 15:19:08 -0700 (PDT) X-Google-Smtp-Source: AGHT+IECXSB6pOxpcVGvVAmEBbajxbi8EHYvYp5pPDBwSTvVCmQNXm9u+CNIgVZS+6t+7I+lagUY X-Received: by 2002:a05:6402:1287:b0:51d:95f2:ee76 with SMTP id w7-20020a056402128700b0051d95f2ee76mr2916693edv.27.1694211548096; Fri, 08 Sep 2023 15:19:08 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1694211548; cv=pass; d=google.com; s=arc-20160816; b=ET3UPvn+Wtha0oPwdC5S+pAnPbrW4NHZ1znL0tvRTKqUrqO3epEDxtftt1KgXyShtI uMvJeaJBFFSjpvxT6AGHy4+iBFmWCN1r+bpg/3Dt/Ykzt/pH9CEO3/8F/aZAhlNN897q 2NU0P7Bq3UPfAy5S1CAQ2UaRo94w47CmV7VH1ah8ReETP0vhn0kIvrccAzGlLcVPTDH+ CPZKkxUbLhDcB+b0AO+Ctjb/BAL5jTtw8+kjA7Gx9rmqqXjPp9/D6tn9JcePGLNywG4r ao99feGqd5Bl9nCmJl3XjIejyIGgpU2bJK1I0FMyHRmgfoVWZ9xwGuKU7k5tVDzFgSWc EH+w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:wdcipoutbound:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from:dkim-signature:dkim-signature; bh=7ME0ZBuuwdZ+vcL0OOogmYITIM77/dJa2MhYKOEFgJ8=; fh=uf101pTj094/CxJZ+1BV4zpkYgF93tjJ9dQ+F/VHTNA=; b=VH5f9RH/YAjLP3PjFiUb9bHiDeArx8hGtqbvXcl3rVvFA9pzJxsuyIHPbhXLG4Ield C87YiZ9SSqyeXYrjXqK4HuhFznpkkuacHcRU318KXZYtLCrC5wkXDHYgPYdjJMdpkDCF W15g55iz/8htsGoINfApLOzoZFR+c2e2cuVdc6fmgOMIT4BgbSRLaCfwPZ+d0gXmy6fK EvVQt9p1LyGK2b/ic88jpQ/x11zlWejEDMcFnFO+qaWNs36/G/4GVNe/OkUAUJU0/E2J kfTfvqXvWdmM7inLJYCI5CalHykto44Eu0MP/tkiyxLt9yUE74HtrarQ2GjHSnyNh3CR pf9g== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=ScLV3Tu4; dkim=pass header.i=@sharedspace.onmicrosoft.com header.s=selector2-sharedspace-onmicrosoft-com header.b=OSl5f7vc; arc=pass (i=1 spf=pass spfdomain=wdc.com dkim=pass dkdomain=wdc.com dmarc=pass fromdomain=wdc.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d2-20020aa7d682000000b005236af69812si2122885edr.342.2023.09.08.15.18.42; Fri, 08 Sep 2023 15:19:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=ScLV3Tu4; dkim=pass header.i=@sharedspace.onmicrosoft.com header.s=selector2-sharedspace-onmicrosoft-com header.b=OSl5f7vc; arc=pass (i=1 spf=pass spfdomain=wdc.com dkim=pass dkdomain=wdc.com dmarc=pass fromdomain=wdc.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=wdc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243403AbjIHMrH (ORCPT + 99 others); Fri, 8 Sep 2023 08:47:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243317AbjIHMrF (ORCPT ); Fri, 8 Sep 2023 08:47:05 -0400 Received: from esa4.hgst.iphmx.com (esa4.hgst.iphmx.com [216.71.154.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 688521FF9; Fri, 8 Sep 2023 05:46:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1694177194; x=1725713194; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=7ME0ZBuuwdZ+vcL0OOogmYITIM77/dJa2MhYKOEFgJ8=; b=ScLV3Tu4gGclI9U4ZdKLUsg4bavD3EN8rLYp0R9aL9tWrZ6lVIHzkyEl MCwV+asjT+1BzhOaRZZpKwz8SyoNW8DEEhcL/v75a9/JXikndn0BjzFXM hOxX/UNbqyzr82EYPfsjbuvYKUjYwXxHwWrHvpINtEHWV16QbmSTsedVj oUdFIlgp8N9MlN3vQHCTcp1bUGSp/fvwy9I646IFSPTrd1qqwofEZLiWn Ir7XL0AoDK4t95P6HoEVvUaiVuaBus66j7B5xtkBqrrWeRLpSAajr+0j3 6dLh6WLswMsPz6Z8dKM0oQS47P6u7Gq/QuRu+csRrj7OPnM7jRAbln8Ua w==; X-CSE-ConnectionGUID: tVFKLG6ERw22yNMEoqeRiw== X-CSE-MsgGUID: QXjIRkeySb6p5Ej4OmKWvw== X-IronPort-AV: E=Sophos;i="6.02,237,1688400000"; d="scan'208";a="241561995" Received: from mail-bn8nam12lp2168.outbound.protection.outlook.com (HELO NAM12-BN8-obe.outbound.protection.outlook.com) ([104.47.55.168]) by ob1.hgst.iphmx.com with ESMTP; 08 Sep 2023 20:46:31 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dmMDSA17jNWhhQXId5H+5+DxUIBQPnG9Fo3I077SzhVP/UUViY2wWsxvHCy54r98gREcr/seYPCTOnze4cLJAzN63WR91hDVicp64S+cICBoy7tzfnpGxZh8uDNYSyoodv0jRp1+CYozuyziievXx8JiQfDhD4W7DvQqSdsKRxsB1K+vtWGOOaB5iku86nZITKXVHI8U8oObRSQ1SEr3aWk4e5CI3sRcZfEP9k+3krzeZxQR+rTJmrmmN4kj70g8IjMVEX6op/k8LtQdnwd5bqvfSLLUG9uTNfnkocdWDiouRgZs6V6BxSYOD5qnnSCn07myIasVtxb6ZWJNJQ4+ig== 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=7ME0ZBuuwdZ+vcL0OOogmYITIM77/dJa2MhYKOEFgJ8=; b=bTM62g4jNWXJWsY5FPuBJtKrmwdCIV54hlblrem9js5JPZjXGdUPMOA3ZOIVXjOGqvfraukorobR1cMqGWHegoQpQR+xFbufXWRvFQhg//7iw4xlF8G6zwRRqpZlkDPyqDEH7wjl5SEJ7VcvEO08g5/XBfWrx0CcoHxtX3PfR62JCosJk1FJ4k+FACbIhvtLTSr3FTWrU65iH5so6TYWPOUmWbeCgLnVWKUM3WB7wlnrfQMFI6+3qt7Si0yeD+HFPlGWB3Tj+N4glLwzuuDhteyS761MpC1WCGCGlxpcgqu0J1EjWh5I7zfiPEGhK3sYQuXRFvoR9f6W0xsHPbrVQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wdc.com; dmarc=pass action=none header.from=wdc.com; dkim=pass header.d=wdc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7ME0ZBuuwdZ+vcL0OOogmYITIM77/dJa2MhYKOEFgJ8=; b=OSl5f7vctnh718jsc0TWjw36iPshZY+W3d1VqcBNz1caujfgETogEWsG2inNIPqlmcaibMpOpTOZl7XbdhvsT4Z+rIZ2NpvXAFI6hMfGAewAGqFnDFm5X4RsQHuhANtGF2gd+2vk8+KczfG7wLAclw7YpEPa1EKMyb88McpzhwQ= Received: from SN4PR0401MB3582.namprd04.prod.outlook.com (2603:10b6:803:4c::10) by SA1PR04MB8783.namprd04.prod.outlook.com (2603:10b6:806:378::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.28; Fri, 8 Sep 2023 12:46:29 +0000 Received: from SN4PR0401MB3582.namprd04.prod.outlook.com ([fe80::b35e:d4f9:1de8:f321]) by SN4PR0401MB3582.namprd04.prod.outlook.com ([fe80::b35e:d4f9:1de8:f321%6]) with mapi id 15.20.6792.009; Fri, 8 Sep 2023 12:46:29 +0000 From: =?utf-8?B?SsO4cmdlbiBIYW5zZW4=?= To: "ira.weiny@intel.com" , Dan Williams CC: Navneet Singh , Fan Ni , Jonathan Cameron , Davidlohr Bueso , Dave Jiang , Alison Schofield , Vishal Verma , "linux-cxl@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH RFC v2 03/18] cxl/mem: Read Dynamic capacity configuration from the device Thread-Topic: [PATCH RFC v2 03/18] cxl/mem: Read Dynamic capacity configuration from the device Thread-Index: AQHZ2jkq4W9yk25p50CfKrd+1ysf67AQ8IUA Date: Fri, 8 Sep 2023 12:46:29 +0000 Message-ID: <1d49b674-81ef-081e-97d0-2e0c5a54af6e@wdc.com> References: <20230604-dcd-type2-upstream-v2-0-f740c47e7916@intel.com> <20230604-dcd-type2-upstream-v2-3-f740c47e7916@intel.com> In-Reply-To: <20230604-dcd-type2-upstream-v2-3-f740c47e7916@intel.com> Accept-Language: en-GB, 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=wdc.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN4PR0401MB3582:EE_|SA1PR04MB8783:EE_ x-ms-office365-filtering-correlation-id: 6a47c8f0-e6ea-4db6-4815-08dbb0699f49 wdcipoutbound: EOP-TRUE x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U0zydx7/UYVGlLVOR/vsQB8H7CbaQxoOSwjfQTUL7BKJ41loz58jIuHtb9bFLJxJwDLRb9yq5Gm+z8ykLDR6x/fUYAEnD9AKAy7eu7t9z7VnpyiP9oG3GmhAiTUNxRbI0V+3VJlIu06euuUZWvu7hMYpJwdCx2C4ORmH1zHofyW3DtAcJ1xfOTRsBNHeEr/fYkfv6SFFN/qTi3dSeTIqAX5GftqTWxmv2Gx0iKnAt+F6iV8UsM75LUliGt3h+zbRy8OrOrp8T/vDAZwyTSQpxfdznSvxFj3M6svbUEkjLfob4/tmamyxpklu76/r/DwGlECHyBB2aseMbaU6vUQttxA5tCt2yianR0o9xyEVdYpkoh8cPVS4djnxDMJKjI5H2X7MBant9wTQP045TylJs+VQVqRoW1w0w1FEHP9o110DWFByw5+ZWl1WP8OivP3un1zX+DHQ8XTfI2JSmO/5C5PKDhOLkS0zxYFlXWbHE2U8zGoReNEPgn5FkFmnxJRxzsVNdFjboEd72pQXMjQwBXSGOTofi3q5fcSfMxwWC5bAvj38mGcmhePnMJ0o/ocOHsHqDgaEVUVPwlLjdn0a6bNrFt1iGD6DkW/9NazvMT01VlRzO+Lp6wtEA3Y8Q/MSJmCijqKqcJaM2F5Eo+kQ0Y+GVx4AhB+Eg8A9ISvjeb39JUKh7RpCkBXKW4nv4W2o x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN4PR0401MB3582.namprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(39860400002)(346002)(136003)(396003)(376002)(1800799009)(186009)(451199024)(38070700005)(82960400001)(122000001)(31686004)(53546011)(6486002)(6506007)(71200400001)(31696002)(478600001)(38100700002)(36756003)(85202003)(86362001)(85182001)(2616005)(2906002)(30864003)(26005)(6512007)(83380400001)(66476007)(4326008)(91956017)(41300700001)(5660300002)(8936002)(8676002)(64756008)(66556008)(7416002)(66446008)(316002)(54906003)(66946007)(110136005)(76116006)(461764006)(45980500001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bW5raWRnRTE3K3BwRzRubVl1bkNBVnRQekhpbGNDUUN5ZTVSeFZSVng5bEZQ?= =?utf-8?B?Y3hJS0xBUi9JR3dnUStVUEM2WHhLM3RLS0ZBQlorak9YSmZ0VnFpcVdZSWhJ?= =?utf-8?B?dWZVVTB1TnpwcE1tOXpWWDhrdmZza1BkV0lrWUlDQVJZU0NuV0swaUpQQ1dz?= =?utf-8?B?RVpZNEdUM2ZXZzBKNWRLQk5MdGxWMmdWbWJweEFGK1VGdm1nWUt1UWNmUWR6?= =?utf-8?B?S2lSc0dpZjc3cTE4bnVIVi9DWnRDTGIyZWJuUm9JTlQ2MUZqRzBpNU12RmVz?= =?utf-8?B?SEFWY3B0K3FGMW4xWnZQWFRZYnlhY1pqMkt2TmpkVFJJTVRHUEtVeGkzekox?= =?utf-8?B?Z3JSMGZYNFZqVVkyNTZwWCtPaHM3MGM2dkl6c1BkWDRjWXM4ZEoxejdXb2hn?= =?utf-8?B?UitDK0tkS21Ra3NwaGEwUnBSN25Dd1VIT200a29BeTBBd1BjUzBhSEJCNGRP?= =?utf-8?B?ZW5HYUt6YWZXRWNyTjVURFlSTkFZL0dadlVoY2JIRlh6SWh4ZURJZCsrN1ZO?= =?utf-8?B?WjVSSGpUKzd3UmtmbmQ5ZmJlTXBmdVNoSFdXN0lpWXI5L2xWd3pYeEJsckJz?= =?utf-8?B?aVpoeXpNbVdUbGdnYisrVnNob1pOa1lYSkljUHE4WG83TXpDWFBFbS9XTXBz?= =?utf-8?B?YVcvYmJuaEEzN3FqaGZ5Q3AybGl6WGZMb0RWOW9iaGR4d1FpZVpuWmNqVWRz?= =?utf-8?B?ZTRDNjJqbFZPOTZjb2lhbXg0ZElYaXZjWGFYNnp2M2FvdDZUNGhYemF3aDFM?= =?utf-8?B?aGk2RmJsODRGckZ4SkppZWJJZ3VhV0kvelBNZ1BmK3ZXaVRMZTh1VWVlcmZ0?= =?utf-8?B?QXFMN29aY1E5YlRwbVBFeVFwS3Zlci9yK2V0ZXU3NGRId25UY0M5dE9zdEFj?= =?utf-8?B?c1lWaDV5Rkx0UXpXTmhxZDAwYTdndnhnenRxNnhRMklZbzFYUWpkd3VFOHl0?= =?utf-8?B?VndPVlh2ck0wVFEwZzJ0OHIxNDJyLzdQcC9xV2x2ckxuWDh6MzBxUUJHTHNR?= =?utf-8?B?anRYQ1lJQjE5aXI2RHZEek1jTFFaSloxU0JUeVZoZTk2YnZMMitmWnpSM2I0?= =?utf-8?B?Qi95RktRd3diazY3YllNamljUUlUeVdNeFZ3K1liak9Nb1FTc1h1R1J4azU2?= =?utf-8?B?YkNjRFVwSXE3S1Niams1enVRQ0xpMkpza1BZYW1hdjQxZkkxdVFjSGsxUkxr?= =?utf-8?B?S3QzUUw0U25QOFlXTklaUVJhSkJ6VmhSL0U2WXJzYXpGRjBFc2JwRE1QZDRY?= =?utf-8?B?eWRHenpDdU01WDM1Y05heXhkd2FaM3dsY3VXVFRyMElQYVZzbkhlVWtnM1F2?= =?utf-8?B?NEtPOGJtWm4xY2QxcjgrUWlaL3NzT3NCVTJ2aVMvNm9nWEg0UlFYSkhoTzFp?= =?utf-8?B?enJjaFBxcCtNbGV2MUpKMmJaN0xYM1NnNmwzTVZyZDczU25PTXRjbXkvMFNG?= =?utf-8?B?eTRYMXkrRzRUcmxZeURtS2ZydE9mQWxmeE5kUzRTMnorbFNDVEdkT09DdS9h?= =?utf-8?B?NEdDWm9Wc0RONjdXTkljZklFelhEeXN3VWVKREExMVZmQzFuVzBGTGxxaUto?= =?utf-8?B?c2tSK0U5Nkx5MDJWbUJEQW1DZWYweFJ2bkNXMEpoVDlOeWFCV3FkRy93Mm93?= =?utf-8?B?VWxDMjV1UE9Ua0ZXRjhnbXd5MkxFTzdEVXQ4N09kcGcvK0ZDVmVrMzN0MDNt?= =?utf-8?B?UmlpcWdmRjB2NlZSMnNUTjlkOStXdUkyUHRnUWxhcnVkcVhzSHRrNUVlOUg2?= =?utf-8?B?amZxT2t3RnJPcWo4YlQxTjM4aEpRQnlwd3hrVGhaa3llN24wd0dCMlZUaU9K?= =?utf-8?B?bmFWL1MwdzhkaXJLM2tSdmNsWi80cExSalpnTjBRNkRSdlYxRXUyV0dZZzZv?= =?utf-8?B?bnd3RkNnUlU1elNnZ1E2QU5IN0F0Ymw4a24rcy9VcEVtMGtjaFRWQjFXdTIr?= =?utf-8?B?OGJrSmVxTGdzQVBRa3VITXVndkIwL0dWdzB4S3RZamM4Y0FJY09kUC9JbGhv?= =?utf-8?B?SXBLRTZnWDVZQzRpZ3AzQnNWdk11ckkwcGR5aVgrUDdIZzIvSkZ1V24wYTd5?= =?utf-8?B?ZmZxdVBubWxHS2gxcGNHVG02OXZmNjRsTjQ1QisyMHFoLzIrcnE4aWxybjZz?= =?utf-8?B?d2swYzhUM0tPclV2WVNIUXBmck54OVBaRnIwVzR1ai9vbDhRMlppd3NPNzBW?= =?utf-8?B?dUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <55A70CC0FF718A4999BBAA8197FA0264@namprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fHg1RjTqMp68+/1h0UW4+eGhfWc+j7NuQnCYPHshTKKBHAJ5n46h2BWedVFcsd5g0pgbeASCXYjkwrX2MRiNQQw3UXv721Ya8ssX5cxyaGvrE0Lk4FHCC/SH35nM73/PdIWl3rdXM8A4H+NqZ0VO+scw6WlApmhmk/2Ph53py3WeA64is46yhaOd3uNxZ8XyxxX2XmF9NMDNz3hHVUTUnKE65KOxttASVRkurxJHdeshwAsT+1li2CYju7mAugbpLCa0ssj5sM/nOvrl0v2nIN1QcH9xIJ4oKYHGkomG//9Cj3eE0mh8H8ACsEdOxT1xJFKjqAI/Whf6EPr5q5tC6Poj4+Ap1ewSnyPSBDlYknVvxjM2MNEnSb5BAqgcntJwzGKKj8LtJNBg/YFxsg7y1ExFY0/dDRYlb2XrboOmdy8C05VrLdERbKySjnFaM2tOhWYpkuXfSq/WULnAEIS8EJoYw9FwETioo+4HO19u63JCdPobyPlz2K0M5OilqWS08BiqDrMEkyMQp7E5SnxZmwCwmyaV89E7+mhX7uwHn7ZqlA/1vIUmfkklJpq5dFrU3r4lMIxWCNak9pSX6PW5zY5jbONBFKCzvACYBp0mZDlAtnQXMh8nnjRL8k00asMMPtqNQ++6KHmsH8g6RP3xCOt/89mJldkiDy/mlqpOG+TVa+Z6dnIyiFjelO/okvnSTF0zhSADfsvAvhNNRAuMbzVKn9hFpsv17LyTNKiIbtNPo95fiYhZlYCJNYocasfBlhuFraZ+JoYSEnHvfcGbRy2O5NjEBy8ew9EVQ0MCLob01kRnqSjIF+Vha/ZClVgC8VD0ZrhNrNJSWCEb6ivlwW0pjCjE8ZAfQfz422l9DLsvmMu8yuZubv3agfRVF4fKN7rmz3v+DketC5aaYPAFAg== X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN4PR0401MB3582.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a47c8f0-e6ea-4db6-4815-08dbb0699f49 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2023 12:46:29.2889 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gbjDPPQqTV6OMXnQCA92QKEwHoiLjVIUgy4OFRkOaQ8BB6urIxhPy/QcNboXz+YG6v6YrURBia4TSw2xtNmoMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR04MB8783 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gOC8yOS8yMyAwNzoyMCwgaXJhLndlaW55QGludGVsLmNvbSB3cm90ZToNCj4gRnJvbTogTmF2 bmVldCBTaW5naCA8bmF2bmVldC5zaW5naEBpbnRlbC5jb20+DQo+IA0KPiBEZXZpY2VzIGNhbiBv cHRpb25hbGx5IHN1cHBvcnQgRHluYW1pYyBDYXBhY2l0eSAoREMpLiAgVGhlc2UgZGV2aWNlcyBh cmUNCj4ga25vd24gYXMgRHluYW1pYyBDYXBhY2l0eSBEZXZpY2VzIChEQ0QpLg0KPiANCj4gSW1w bGVtZW50IHRoZSBEQyAob3Bjb2RlIDQ4WFhoKSBtYWlsYm94IGNvbW1hbmRzIGFzIHNwZWNpZmll ZCBpbiBDWEwgMy4wDQo+IHNlY3Rpb24gOC4yLjkuOC45LiAgUmVhZCB0aGUgREMgY29uZmlndXJh dGlvbiBhbmQgc3RvcmUgdGhlIERDIHJlZ2lvbg0KPiBpbmZvcm1hdGlvbiBpbiB0aGUgZGV2aWNl IHN0YXRlLg0KPiANCj4gQ28tZGV2ZWxvcGVkLWJ5OiBOYXZuZWV0IFNpbmdoIDxuYXZuZWV0LnNp bmdoQGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogTmF2bmVldCBTaW5naCA8bmF2bmVldC5z aW5naEBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IElyYSBXZWlueSA8aXJhLndlaW55QGlu dGVsLmNvbT4NCj4gDQo+IC0tLQ0KPiBDaGFuZ2VzIGZvciB2Mg0KPiBbaXdlaW55OiBSZWJhc2Vk IHRvIGxhdGVzdCBtYXN0ZXIgdHlwZTIgd29ya10NCj4gW2pvbmF0aGFuOiBzL2RjL2RjX3Jlc3Av XQ0KPiBbaXdlaW55OiBDbGVhbiB1cCBjb21taXQgbWVzc2FnZV0NCj4gW2l3ZWlueTogQ2xlYW4g a2VybmVsIGRvY3NdDQo+IFtkamlhbmc6IEZpeCB1cCBjeGxfaXNfZGNkX2NvbW1hbmRdDQo+IFtk amlhbmc6IGV4dHJhIGJsYW5rIGxpbmVdDQo+IFthbGlzb246IHMvdG90YWxfY2FwYWNpdHkvY2Fw LyBldGMuLi5dDQo+IFthbGlzb246IGtlZXAgcGFydGl0aW9uIGZsYWcgd2l0aCBwYXJ0aXRpb24g c3RydWN0dXJlc10NCj4gW2FsaXNvbjogcmVmb3JtYXQgdW50ZW5hbnRlZF9tZW0gZGVjbGFyYXRp b25dDQo+IFthbGlzb246IG1vdmUgJ2NtZCcgZGVmaW5pdGlvbiBiYWNrXQ0KPiBbYWxpc29uOiBm aXggY29tbWVudCBsaW5lIGxlbmd0aF0NCj4gW2FsaXNvbjogcmV2ZXJzZSB4LXRyZWVdDQo+IFtq b25hdGhhbjogZml4IGFuZCBhZGp1c3QgQ1hMX0RDX1JFR0lPTl9TVFJMRU5dDQo+IFtKb25hdGhh bi9pd2Vpbnk6IEZhY3RvciBvdXQgc3RvcmluZyBlYWNoIERDIHJlZ2lvbiByZWFkIGZyb20gdGhl IGRldmljZV0NCj4gW0pvbmF0aGFuOiBwbGFjZSBhbGwgZGNyIGluaXRpYWxpemVycyB0b2dldGhl cl0NCj4gW0pvbmF0aGFuL2l3ZWlueTogZmxpcCBhcm91bmQgdGhlIHJlZ2lvbiBEUEEgb3JkZXIg Y2hlY2tdDQo+IFtqb25hdGhhbjogQWNjb3VudCBmb3Igc2hvcnQgcmVhZCBvZiBtYWlsYm94IGNv bW1hbmRdDQo+IFtpd2Vpbnk6IHVzZSBzbnByaW50ZiBmb3IgcmVnaW9uIG5hbWVdDQo+IFtpd2Vp bnk6IHVzZSAnPG5pbD4nIGZvciBtaXNzaW5nIHJlZ2lvbiBuYW1lc10NCj4gW2l3ZWlueTogZmFj dG9yIG91dCBzdHJ1Y3QgY3hsX2RjX3JlZ2lvbl9pbmZvXQ0KPiBbaXdlaW55OiBTcGxpdCBvdXQg cmVhZGluZyBDRUxdDQo+IC0tLQ0KPiAgIGRyaXZlcnMvY3hsL2NvcmUvbWJveC5jICAgfCAxNzkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPiAgIGRyaXZl cnMvY3hsL2NvcmUvcmVnaW9uLmMgfCAgNzUgKysrKysrKysrKysrKy0tLS0tLQ0KPiAgIGRyaXZl cnMvY3hsL2N4bC5oICAgICAgICAgfCAgMjcgKysrKysrLQ0KPiAgIGRyaXZlcnMvY3hsL2N4bG1l bS5oICAgICAgfCAgNTUgKysrKysrKysrKysrKy0NCj4gICBkcml2ZXJzL2N4bC9wY2kuYyAgICAg ICAgIHwgICA0ICsrDQo+ICAgNSBmaWxlcyBjaGFuZ2VkLCAzMTQgaW5zZXJ0aW9ucygrKSwgMjYg ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jeGwvY29yZS9tYm94LmMg Yi9kcml2ZXJzL2N4bC9jb3JlL21ib3guYw0KPiBpbmRleCA1NTRlYzk3YTdjMzkuLmQ3Njk4MTRm ODBlMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jeGwvY29yZS9tYm94LmMNCj4gKysrIGIvZHJp dmVycy9jeGwvY29yZS9tYm94LmMNCj4gQEAgLTEwOTYsNyArMTA5Niw3IEBAIGludCBjeGxfZGV2 X3N0YXRlX2lkZW50aWZ5KHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRlICptZHMpDQo+ICAgICAgICAg IGlmIChyYyA8IDApDQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJjOw0KPiANCj4gLSAgICAg ICBtZHMtPnRvdGFsX2J5dGVzID0NCj4gKyAgICAgICBtZHMtPnN0YXRpY19jYXAgPQ0KPiAgICAg ICAgICAgICAgICAgIGxlNjRfdG9fY3B1KGlkLnRvdGFsX2NhcGFjaXR5KSAqIENYTF9DQVBBQ0lU WV9NVUxUSVBMSUVSOw0KPiAgICAgICAgICBtZHMtPnZvbGF0aWxlX29ubHlfYnl0ZXMgPQ0KPiAg ICAgICAgICAgICAgICAgIGxlNjRfdG9fY3B1KGlkLnZvbGF0aWxlX2NhcGFjaXR5KSAqIENYTF9D QVBBQ0lUWV9NVUxUSVBMSUVSOw0KPiBAQCAtMTExNCw2ICsxMTE0LDggQEAgaW50IGN4bF9kZXZf c3RhdGVfaWRlbnRpZnkoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcykNCj4gICAgICAgICAg ICAgICAgICBtZHMtPnBvaXNvbi5tYXhfZXJyb3JzID0gbWluX3QodTMyLCB2YWwsIENYTF9QT0lT T05fTElTVF9NQVgpOw0KPiAgICAgICAgICB9DQo+IA0KPiArICAgICAgIG1kcy0+ZGNfZXZlbnRf bG9nX3NpemUgPSBsZTE2X3RvX2NwdShpZC5kY19ldmVudF9sb2dfc2l6ZSk7DQo+ICsNCj4gICAg ICAgICAgcmV0dXJuIDA7DQo+ICAgfQ0KPiAgIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGN4bF9kZXZf c3RhdGVfaWRlbnRpZnksIENYTCk7DQo+IEBAIC0xMTc4LDYgKzExODAsMTY1IEBAIGludCBjeGxf bWVtX3Nhbml0aXplKHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRlICptZHMsIHUxNiBjbWQpDQo+ICAg fQ0KPiAgIEVYUE9SVF9TWU1CT0xfTlNfR1BMKGN4bF9tZW1fc2FuaXRpemUsIENYTCk7DQo+IA0K PiArc3RhdGljIGludCBjeGxfZGNfc2F2ZV9yZWdpb25faW5mbyhzdHJ1Y3QgY3hsX21lbWRldl9z dGF0ZSAqbWRzLCBpbnQgaW5kZXgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGN4bF9kY19yZWdpb25fY29uZmlnICpyZWdpb25fY29uZmlnKQ0KPiArew0KPiAr ICAgICAgIHN0cnVjdCBjeGxfZGNfcmVnaW9uX2luZm8gKmRjciA9ICZtZHMtPmRjX3JlZ2lvbltp bmRleF07DQo+ICsgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gbWRzLT5jeGxkcy5kZXY7DQo+ ICsNCj4gKyAgICAgICBkY3ItPmJhc2UgPSBsZTY0X3RvX2NwdShyZWdpb25fY29uZmlnLT5yZWdp b25fYmFzZSk7DQo+ICsgICAgICAgZGNyLT5kZWNvZGVfbGVuID0gbGU2NF90b19jcHUocmVnaW9u X2NvbmZpZy0+cmVnaW9uX2RlY29kZV9sZW5ndGgpOw0KPiArICAgICAgIGRjci0+ZGVjb2RlX2xl biAqPSBDWExfQ0FQQUNJVFlfTVVMVElQTElFUjsNCj4gKyAgICAgICBkY3ItPmxlbiA9IGxlNjRf dG9fY3B1KHJlZ2lvbl9jb25maWctPnJlZ2lvbl9sZW5ndGgpOw0KPiArICAgICAgIGRjci0+Ymxr X3NpemUgPSBsZTY0X3RvX2NwdShyZWdpb25fY29uZmlnLT5yZWdpb25fYmxvY2tfc2l6ZSk7DQo+ ICsgICAgICAgZGNyLT5kc21hZF9oYW5kbGUgPSBsZTMyX3RvX2NwdShyZWdpb25fY29uZmlnLT5y ZWdpb25fZHNtYWRfaGFuZGxlKTsNCj4gKyAgICAgICBkY3ItPmZsYWdzID0gcmVnaW9uX2NvbmZp Zy0+ZmxhZ3M7DQo+ICsgICAgICAgc25wcmludGYoZGNyLT5uYW1lLCBDWExfRENfUkVHSU9OX1NU UkxFTiwgImRjJWQiLCBpbmRleCk7DQo+ICsNCj4gKyAgICAgICAvKiBDaGVjayByZWdpb25zIGFy ZSBpbiBpbmNyZWFzaW5nIERQQSBvcmRlciAqLw0KPiArICAgICAgIGlmIChpbmRleCA+IDApIHsN Cj4gKyAgICAgICAgICAgICAgIHN0cnVjdCBjeGxfZGNfcmVnaW9uX2luZm8gKnByZXZfZGNyID0g Jm1kcy0+ZGNfcmVnaW9uW2luZGV4IC0gMV07DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlmICgo cHJldl9kY3ItPmJhc2UgKyBwcmV2X2Rjci0+ZGVjb2RlX2xlbikgPiBkY3ItPmJhc2UpIHsNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgZGV2X2VycihkZXYsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkRQQSBvcmRlcmluZyB2aW9sYXRpb24gZm9yIERDIHJlZ2lvbiAlZCBh bmQgJWRcbiIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggLSAxLCBp bmRleCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAg ICAgICAgICAgICAgfQ0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIC8qIENoZWNrIHRoZSBy ZWdpb24gaXMgMjU2IE1CIGFsaWduZWQgKi8NCj4gKyAgICAgICBpZiAoIUlTX0FMSUdORUQoZGNy LT5iYXNlLCBTWl8yNTZNKSkgew0KPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJEQyBy ZWdpb24gJWQgbm90IGFsaWduZWQgdG8gMjU2TUI6ICUjbGx4XG4iLA0KPiArICAgICAgICAgICAg ICAgICAgICAgICBpbmRleCwgZGNyLT5iYXNlKTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIC8qIENoZWNrIFJlZ2lvbiBiYXNl IGFuZCBsZW5ndGggYXJlIGFsaWduZWQgdG8gYmxvY2sgc2l6ZSAqLw0KPiArICAgICAgIGlmICgh SVNfQUxJR05FRChkY3ItPmJhc2UsIGRjci0+YmxrX3NpemUpIHx8DQo+ICsgICAgICAgICAgICFJ U19BTElHTkVEKGRjci0+bGVuLCBkY3ItPmJsa19zaXplKSkgew0KPiArICAgICAgICAgICAgICAg ZGV2X2VycihkZXYsICJEQyByZWdpb24gJWQgbm90IGFsaWduZWQgdG8gJSNsbHhcbiIsIGluZGV4 LA0KPiArICAgICAgICAgICAgICAgICAgICAgICBkY3ItPmJsa19zaXplKTsNCj4gKyAgICAgICAg ICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGRldl9k YmcoZGV2LA0KPiArICAgICAgICAgICAgICAgIkRDIHJlZ2lvbiAlcyBEUEE6ICUjbGx4IExFTjog JSNsbHggQkxLU1o6ICUjbGx4XG4iLA0KPiArICAgICAgICAgICAgICAgZGNyLT5uYW1lLCBkY3It PmJhc2UsIGRjci0+ZGVjb2RlX2xlbiwgZGNyLT5ibGtfc2l6ZSk7DQo+ICsNCj4gKyAgICAgICBy ZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlZ2lvbnMg aW4gZGNfcmVzcCBvciAtRVJSTk8gKi8NCj4gK3N0YXRpYyBpbnQgY3hsX2dldF9kY19pZChzdHJ1 Y3QgY3hsX21lbWRldl9zdGF0ZSAqbWRzLCB1OCBzdGFydF9yZWdpb24sDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY3hsX21ib3hfZHluYW1pY19jYXBhY2l0eSAqZGNfcmVzcCwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBkY19yZXNwX3NpemUpDQo+ICt7DQo+ ICsgICAgICAgc3RydWN0IGN4bF9tYm94X2dldF9kY19jb25maWcgZ2V0X2RjID0gKHN0cnVjdCBj eGxfbWJveF9nZXRfZGNfY29uZmlnKSB7DQo+ICsgICAgICAgICAgICAgICAucmVnaW9uX2NvdW50 ID0gQ1hMX01BWF9EQ19SRUdJT04sDQo+ICsgICAgICAgICAgICAgICAuc3RhcnRfcmVnaW9uX2lu ZGV4ID0gc3RhcnRfcmVnaW9uLA0KPiArICAgICAgIH07DQo+ICsgICAgICAgc3RydWN0IGN4bF9t Ym94X2NtZCBtYm94X2NtZCA9IChzdHJ1Y3QgY3hsX21ib3hfY21kKSB7DQo+ICsgICAgICAgICAg ICAgICAub3Bjb2RlID0gQ1hMX01CT1hfT1BfR0VUX0RDX0NPTkZJRywNCj4gKyAgICAgICAgICAg ICAgIC5wYXlsb2FkX2luID0gJmdldF9kYywNCj4gKyAgICAgICAgICAgICAgIC5zaXplX2luID0g c2l6ZW9mKGdldF9kYyksDQo+ICsgICAgICAgICAgICAgICAuc2l6ZV9vdXQgPSBkY19yZXNwX3Np emUsDQo+ICsgICAgICAgICAgICAgICAucGF5bG9hZF9vdXQgPSBkY19yZXNwLA0KPiArICAgICAg ICAgICAgICAgLm1pbl9vdXQgPSAxLA0KPiArICAgICAgIH07DQo+ICsgICAgICAgc3RydWN0IGRl dmljZSAqZGV2ID0gbWRzLT5jeGxkcy5kZXY7DQo+ICsgICAgICAgaW50IHJjOw0KPiArDQo+ICsg ICAgICAgcmMgPSBjeGxfaW50ZXJuYWxfc2VuZF9jbWQobWRzLCAmbWJveF9jbWQpOw0KPiArICAg ICAgIGlmIChyYyA8IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcmM7DQo+ICsNCj4gKyAg ICAgICByYyA9IGRjX3Jlc3AtPmF2YWlsX3JlZ2lvbl9jb3VudCAtIHN0YXJ0X3JlZ2lvbjsNCj4g Kw0KPiArICAgICAgIC8qDQo+ICsgICAgICAgICogVGhlIG51bWJlciBvZiByZWdpb25zIGluIHRo ZSBwYXlsb2FkIG1heSBoYXZlIGJlZW4gdHJ1bmNhdGVkIGR1ZSB0bw0KPiArICAgICAgICAqIHBh eWxvYWRfc2l6ZSBsaW1pdHM7IGlmIHNvIGFkanVzdCB0aGUgY291bnQgaW4gdGhpcyBxdWVyeS4N Cj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBpZiAobWJveF9jbWQuc2l6ZV9vdXQgPCBzaXplb2Yo KmRjX3Jlc3ApKQ0KPiArICAgICAgICAgICAgICAgcmMgPSBDWExfUkVHSU9OU19SRVRVUk5FRCht Ym94X2NtZC5zaXplX291dCk7DQo+ICsNCj4gKyAgICAgICBkZXZfZGJnKGRldiwgIlJlYWQgJWQv JWQgREMgcmVnaW9uc1xuIiwgcmMsIGRjX3Jlc3AtPmF2YWlsX3JlZ2lvbl9jb3VudCk7DQo+ICsN Cj4gKyAgICAgICByZXR1cm4gcmM7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogY3hsX2Rldl9k eW5hbWljX2NhcGFjaXR5X2lkZW50aWZ5KCkgLSBSZWFkcyB0aGUgZHluYW1pYyBjYXBhY2l0eQ0K PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uIGZy b20gdGhlIGRldmljZS4NCj4gKyAqIEBtZHM6IFRoZSBtZW1vcnkgZGV2aWNlIHN0YXRlDQo+ICsg Kg0KPiArICogVGhpcyB3aWxsIGRpc3BhdGNoIHRoZSBnZXRfZHluYW1pY19jYXBhY2l0eSBjb21t YW5kIHRvIHRoZSBkZXZpY2UNCj4gKyAqIGFuZCBvbiBzdWNjZXNzIHBvcHVsYXRlIHN0cnVjdHVy ZXMgdG8gYmUgZXhwb3J0ZWQgdG8gc3lzZnMuDQo+ICsgKg0KPiArICogUmV0dXJuOiAwIGlmIGlk ZW50aWZ5IHdhcyBleGVjdXRlZCBzdWNjZXNzZnVsbHksIC1FUlJOTyBvbiBlcnJvci4NCj4gKyAq Lw0KPiAraW50IGN4bF9kZXZfZHluYW1pY19jYXBhY2l0eV9pZGVudGlmeShzdHJ1Y3QgY3hsX21l bWRldl9zdGF0ZSAqbWRzKQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBjeGxfbWJveF9keW5hbWlj X2NhcGFjaXR5ICpkY19yZXNwOw0KPiArICAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9IG1kcy0+ Y3hsZHMuZGV2Ow0KPiArICAgICAgIHNpemVfdCBkY19yZXNwX3NpemUgPSBtZHMtPnBheWxvYWRf c2l6ZTsNCj4gKyAgICAgICB1OCBzdGFydF9yZWdpb247DQo+ICsgICAgICAgaW50IGksIHJjID0g MDsNCj4gKw0KPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBDWExfTUFYX0RDX1JFR0lPTjsgaSsr KQ0KPiArICAgICAgICAgICAgICAgc25wcmludGYobWRzLT5kY19yZWdpb25baV0ubmFtZSwgQ1hM X0RDX1JFR0lPTl9TVFJMRU4sICI8bmlsPiIpOw0KPiArDQo+ICsgICAgICAgLyogQ2hlY2sgR0VU X0RDX0NPTkZJRyBpcyBzdXBwb3J0ZWQgYnkgZGV2aWNlICovDQo+ICsgICAgICAgaWYgKCF0ZXN0 X2JpdChDWExfRENEX0VOQUJMRURfR0VUX0NPTkZJRywgbWRzLT5kY2RfY21kcykpIHsNCj4gKyAg ICAgICAgICAgICAgIGRldl9kYmcoZGV2LCAidW5zdXBwb3J0ZWQgY21kOiBnZXRfZHluYW1pY19j YXBhY2l0eV9jb25maWdcbiIpOw0KPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ICsgICAg ICAgfQ0KPiArDQo+ICsgICAgICAgZGNfcmVzcCA9IGt2bWFsbG9jKGRjX3Jlc3Bfc2l6ZSwgR0ZQ X0tFUk5FTCk7DQo+ICsgICAgICAgaWYgKCFkY19yZXNwKQ0KPiArICAgICAgICAgICAgICAgcmV0 dXJuIC1FTk9NRU07DQo+ICsNCj4gKyAgICAgICBzdGFydF9yZWdpb24gPSAwOw0KPiArICAgICAg IGRvIHsNCj4gKyAgICAgICAgICAgICAgIGludCBqOw0KPiArDQo+ICsgICAgICAgICAgICAgICBy YyA9IGN4bF9nZXRfZGNfaWQobWRzLCBzdGFydF9yZWdpb24sIGRjX3Jlc3AsIGRjX3Jlc3Bfc2l6 ZSk7DQo+ICsgICAgICAgICAgICAgICBpZiAocmMgPCAwKQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICBnb3RvIGZyZWVfcmVzcDsNCj4gKw0KPiArICAgICAgICAgICAgICAgbWRzLT5ucl9kY19y ZWdpb24gKz0gcmM7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlmIChtZHMtPm5yX2RjX3JlZ2lv biA8IDEgfHwgbWRzLT5ucl9kY19yZWdpb24gPiBDWExfTUFYX0RDX1JFR0lPTikgew0KPiArICAg ICAgICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgIkludmFsaWQgbnVtIG9mIGR5bmFtaWMg Y2FwYWNpdHkgcmVnaW9ucyAlZFxuIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZHMtPm5yX2RjX3JlZ2lvbik7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJjID0gLUVJ TlZBTDsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBmcmVlX3Jlc3A7DQo+ICsgICAg ICAgICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGZvciAoaSA9IHN0YXJ0X3JlZ2lv biwgaiA9IDA7IGkgPCBtZHMtPm5yX2RjX3JlZ2lvbjsgaSsrLCBqKyspIHsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmMgPSBjeGxfZGNfc2F2ZV9yZWdpb25faW5mbyhtZHMsIGksICZkY19y ZXNwLT5yZWdpb25bal0pOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocmMpDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmcmVlX3Jlc3A7DQo+ICsgICAgICAg ICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgICAgICAgIHN0YXJ0X3JlZ2lvbiA9IG1kcy0+bnJf ZGNfcmVnaW9uOw0KPiArDQo+ICsgICAgICAgfSB3aGlsZSAobWRzLT5ucl9kY19yZWdpb24gPCBk Y19yZXNwLT5hdmFpbF9yZWdpb25fY291bnQpOw0KPiArDQo+ICsgICAgICAgbWRzLT5keW5hbWlj X2NhcCA9DQo+ICsgICAgICAgICAgICAgICBtZHMtPmRjX3JlZ2lvblttZHMtPm5yX2RjX3JlZ2lv biAtIDFdLmJhc2UgKw0KPiArICAgICAgICAgICAgICAgbWRzLT5kY19yZWdpb25bbWRzLT5ucl9k Y19yZWdpb24gLSAxXS5kZWNvZGVfbGVuIC0NCj4gKyAgICAgICAgICAgICAgIG1kcy0+ZGNfcmVn aW9uWzBdLmJhc2U7DQo+ICsgICAgICAgZGV2X2RiZyhkZXYsICJUb3RhbCBkeW5hbWljIGNhcGFj aXR5OiAlI2xseFxuIiwgbWRzLT5keW5hbWljX2NhcCk7DQo+ICsNCj4gK2ZyZWVfcmVzcDoNCj4g KyAgICAgICBrZnJlZShkY19yZXNwKTsNCj4gKyAgICAgICBpZiAocmMpDQo+ICsgICAgICAgICAg ICAgICBkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgREMgaW5mbzogJWRcbiIsIHJjKTsNCj4g KyAgICAgICByZXR1cm4gcmM7DQo+ICt9DQo+ICtFWFBPUlRfU1lNQk9MX05TX0dQTChjeGxfZGV2 X2R5bmFtaWNfY2FwYWNpdHlfaWRlbnRpZnksIENYTCk7DQo+ICsNCj4gICBzdGF0aWMgaW50IGFk ZF9kcGFfcmVzKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlc291cmNlICpwYXJlbnQsDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVzLCByZXNvdXJjZV9z aXplX3Qgc3RhcnQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlX3NpemVfdCBz aXplLCBjb25zdCBjaGFyICp0eXBlKQ0KPiBAQCAtMTIwOCw4ICsxMzY5LDEyIEBAIGludCBjeGxf bWVtX2NyZWF0ZV9yYW5nZV9pbmZvKHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRlICptZHMpDQo+ICAg ew0KPiAgICAgICAgICBzdHJ1Y3QgY3hsX2Rldl9zdGF0ZSAqY3hsZHMgPSAmbWRzLT5jeGxkczsN Cj4gICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gY3hsZHMtPmRldjsNCj4gKyAgICAgICBz aXplX3QgdW50ZW5hbnRlZF9tZW07DQo+ICAgICAgICAgIGludCByYzsNCj4gDQo+ICsgICAgICAg dW50ZW5hbnRlZF9tZW0gPSBtZHMtPmRjX3JlZ2lvblswXS5iYXNlIC0gbWRzLT5zdGF0aWNfY2Fw Ow0KPiArICAgICAgIG1kcy0+dG90YWxfYnl0ZXMgPSBtZHMtPnN0YXRpY19jYXAgKyB1bnRlbmFu dGVkX21lbSArIG1kcy0+ZHluYW1pY19jYXA7DQo+ICsNCj4gICAgICAgICAgaWYgKCFjeGxkcy0+ bWVkaWFfcmVhZHkpIHsNCj4gICAgICAgICAgICAgICAgICBjeGxkcy0+ZHBhX3JlcyA9IERFRklO RV9SRVNfTUVNKDAsIDApOw0KPiAgICAgICAgICAgICAgICAgIGN4bGRzLT5yYW1fcmVzID0gREVG SU5FX1JFU19NRU0oMCwgMCk7DQo+IEBAIC0xMjE3LDggKzEzODIsMTYgQEAgaW50IGN4bF9tZW1f Y3JlYXRlX3JhbmdlX2luZm8oc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcykNCj4gICAgICAg ICAgICAgICAgICByZXR1cm4gMDsNCj4gICAgICAgICAgfQ0KPiANCj4gLSAgICAgICBjeGxkcy0+ ZHBhX3JlcyA9DQo+IC0gICAgICAgICAgICAgICAoc3RydWN0IHJlc291cmNlKURFRklORV9SRVNf TUVNKDAsIG1kcy0+dG90YWxfYnl0ZXMpOw0KPiArICAgICAgIGN4bGRzLT5kcGFfcmVzID0gKHN0 cnVjdCByZXNvdXJjZSlERUZJTkVfUkVTX01FTSgwLCBtZHMtPnRvdGFsX2J5dGVzKTsNCj4gKw0K PiArICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWRzLT5ucl9kY19yZWdpb247IGkrKykgew0K PiArICAgICAgICAgICAgICAgc3RydWN0IGN4bF9kY19yZWdpb25faW5mbyAqZGNyID0gJm1kcy0+ ZGNfcmVnaW9uW2ldOw0KPiArDQo+ICsgICAgICAgICAgICAgICByYyA9IGFkZF9kcGFfcmVzKGRl diwgJmN4bGRzLT5kcGFfcmVzLCAmY3hsZHMtPmRjX3Jlc1tpXSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGNyLT5iYXNlLCBkY3ItPmRlY29kZV9sZW4sIGRjci0+bmFtZSk7 DQo+ICsgICAgICAgICAgICAgICBpZiAocmMpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiByYzsNCj4gKyAgICAgICB9DQo+IA0KPiAgICAgICAgICBpZiAobWRzLT5wYXJ0aXRpb25f YWxpZ25fYnl0ZXMgPT0gMCkgew0KPiAgICAgICAgICAgICAgICAgIHJjID0gYWRkX2RwYV9yZXMo ZGV2LCAmY3hsZHMtPmRwYV9yZXMsICZjeGxkcy0+cmFtX3JlcywgMCwNCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvY3hsL2NvcmUvcmVnaW9uLmMgYi9kcml2ZXJzL2N4bC9jb3JlL3JlZ2lvbi5jDQo+ IGluZGV4IDI1MmJjOGUxZjEwMy4uNzUwNDE5MDNiNzJjIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L2N4bC9jb3JlL3JlZ2lvbi5jDQo+ICsrKyBiL2RyaXZlcnMvY3hsL2NvcmUvcmVnaW9uLmMNCj4g QEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIHNzaXplX3QgdXVpZF9zaG93KHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQo+ICAgICAgICAgIHJjID0gZG93 bl9yZWFkX2ludGVycnVwdGlibGUoJmN4bF9yZWdpb25fcndzZW0pOw0KPiAgICAgICAgICBpZiAo cmMpDQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJjOw0KPiAtICAgICAgIGlmIChjeGxyLT5t b2RlICE9IENYTF9ERUNPREVSX1BNRU0pDQo+ICsgICAgICAgaWYgKGN4bHItPm1vZGUgIT0gQ1hM X1JFR0lPTl9QTUVNKQ0KPiAgICAgICAgICAgICAgICAgIHJjID0gc3lzZnNfZW1pdChidWYsICJc biIpOw0KPiAgICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgICAgICAgcmMgPSBzeXNmc19lbWl0 KGJ1ZiwgIiVwVWJcbiIsICZwLT51dWlkKTsNCj4gQEAgLTM1OSw3ICszNTksNyBAQCBzdGF0aWMg dW1vZGVfdCBjeGxfcmVnaW9uX3Zpc2libGUoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBh dHRyaWJ1dGUgKmEsDQo+ICAgICAgICAgICAqIFN1cHBvcnQgdG9vbGluZyB0aGF0IGV4cGVjdHMg dG8gZmluZCBhICd1dWlkJyBhdHRyaWJ1dGUgZm9yIGFsbA0KPiAgICAgICAgICAgKiByZWdpb25z IHJlZ2FyZGxlc3Mgb2YgbW9kZS4NCj4gICAgICAgICAgICovDQo+IC0gICAgICAgaWYgKGEgPT0g JmRldl9hdHRyX3V1aWQuYXR0ciAmJiBjeGxyLT5tb2RlICE9IENYTF9ERUNPREVSX1BNRU0pDQo+ ICsgICAgICAgaWYgKGEgPT0gJmRldl9hdHRyX3V1aWQuYXR0ciAmJiBjeGxyLT5tb2RlICE9IENY TF9SRUdJT05fUE1FTSkNCj4gICAgICAgICAgICAgICAgICByZXR1cm4gMDQ0NDsNCj4gICAgICAg ICAgcmV0dXJuIGEtPm1vZGU7DQo+ICAgfQ0KPiBAQCAtNTM3LDcgKzUzNyw3IEBAIHN0YXRpYyBz c2l6ZV90IG1vZGVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlICphdHRyLA0KPiAgIHsNCj4gICAgICAgICAgc3RydWN0IGN4bF9yZWdpb24gKmN4bHIgPSB0 b19jeGxfcmVnaW9uKGRldik7DQo+IA0KPiAtICAgICAgIHJldHVybiBzeXNmc19lbWl0KGJ1Ziwg IiVzXG4iLCBjeGxfZGVjb2Rlcl9tb2RlX25hbWUoY3hsci0+bW9kZSkpOw0KPiArICAgICAgIHJl dHVybiBzeXNmc19lbWl0KGJ1ZiwgIiVzXG4iLCBjeGxfcmVnaW9uX21vZGVfbmFtZShjeGxyLT5t b2RlKSk7DQo+ICAgfQ0KPiAgIHN0YXRpYyBERVZJQ0VfQVRUUl9STyhtb2RlKTsNCj4gDQo+IEBA IC01NjMsNyArNTYzLDcgQEAgc3RhdGljIGludCBhbGxvY19ocGEoc3RydWN0IGN4bF9yZWdpb24g KmN4bHIsIHJlc291cmNlX3NpemVfdCBzaXplKQ0KPiANCj4gICAgICAgICAgLyogd2F5cywgZ3Jh bnVsYXJpdHkgYW5kIHV1aWQgKGlmIFBNRU0pIG5lZWQgdG8gYmUgc2V0IGJlZm9yZSBIUEEgKi8N Cj4gICAgICAgICAgaWYgKCFwLT5pbnRlcmxlYXZlX3dheXMgfHwgIXAtPmludGVybGVhdmVfZ3Jh bnVsYXJpdHkgfHwNCj4gLSAgICAgICAgICAgKGN4bHItPm1vZGUgPT0gQ1hMX0RFQ09ERVJfUE1F TSAmJiB1dWlkX2lzX251bGwoJnAtPnV1aWQpKSkNCj4gKyAgICAgICAgICAgKGN4bHItPm1vZGUg PT0gQ1hMX1JFR0lPTl9QTUVNICYmIHV1aWRfaXNfbnVsbCgmcC0+dXVpZCkpKQ0KPiAgICAgICAg ICAgICAgICAgIHJldHVybiAtRU5YSU87DQo+IA0KPiAgICAgICAgICBkaXZfdTY0X3JlbShzaXpl LCBTWl8yNTZNICogcC0+aW50ZXJsZWF2ZV93YXlzLCAmcmVtYWluZGVyKTsNCj4gQEAgLTE3NjUs NiArMTc2NSwxNyBAQCBzdGF0aWMgaW50IGN4bF9yZWdpb25fc29ydF90YXJnZXRzKHN0cnVjdCBj eGxfcmVnaW9uICpjeGxyKQ0KPiAgICAgICAgICByZXR1cm4gcmM7DQo+ICAgfQ0KPiANCj4gK3N0 YXRpYyBib29sIGN4bF9tb2Rlc19jb21wYXRpYmxlKGVudW0gY3hsX3JlZ2lvbl9tb2RlIHJtb2Rl LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGN4bF9kZWNvZGVyX21v ZGUgZG1vZGUpDQo+ICt7DQo+ICsgICAgICAgaWYgKHJtb2RlID09IENYTF9SRUdJT05fUkFNICYm IGRtb2RlID09IENYTF9ERUNPREVSX1JBTSkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiB0cnVl Ow0KPiArICAgICAgIGlmIChybW9kZSA9PSBDWExfUkVHSU9OX1BNRU0gJiYgZG1vZGUgPT0gQ1hM X0RFQ09ERVJfUE1FTSkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiB0cnVlOw0KPiArDQo+ICsg ICAgICAgcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+ICAgc3RhdGljIGludCBjeGxfcmVnaW9u X2F0dGFjaChzdHJ1Y3QgY3hsX3JlZ2lvbiAqY3hsciwNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGN4bF9lbmRwb2ludF9kZWNvZGVyICpjeGxlZCwgaW50IHBvcykNCj4g ICB7DQo+IEBAIC0xNzc4LDkgKzE3ODksMTEgQEAgc3RhdGljIGludCBjeGxfcmVnaW9uX2F0dGFj aChzdHJ1Y3QgY3hsX3JlZ2lvbiAqY3hsciwNCj4gICAgICAgICAgbG9ja2RlcF9hc3NlcnRfaGVs ZF93cml0ZSgmY3hsX3JlZ2lvbl9yd3NlbSk7DQo+ICAgICAgICAgIGxvY2tkZXBfYXNzZXJ0X2hl bGRfcmVhZCgmY3hsX2RwYV9yd3NlbSk7DQo+IA0KPiAtICAgICAgIGlmIChjeGxlZC0+bW9kZSAh PSBjeGxyLT5tb2RlKSB7DQo+IC0gICAgICAgICAgICAgICBkZXZfZGJnKCZjeGxyLT5kZXYsICIl cyByZWdpb24gbW9kZTogJWQgbWlzbWF0Y2g6ICVkXG4iLA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICBkZXZfbmFtZSgmY3hsZWQtPmN4bGQuZGV2KSwgY3hsci0+bW9kZSwgY3hsZWQtPm1vZGUp Ow0KPiArICAgICAgIGlmICghY3hsX21vZGVzX2NvbXBhdGlibGUoY3hsci0+bW9kZSwgY3hsZWQt Pm1vZGUpKSB7DQo+ICsgICAgICAgICAgICAgICBkZXZfZGJnKCZjeGxyLT5kZXYsICIlcyByZWdp b24gbW9kZTogJXMgbWlzbWF0Y2ggZGVjb2RlcjogJXNcbiIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIGRldl9uYW1lKCZjeGxlZC0+Y3hsZC5kZXYpLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICBjeGxfcmVnaW9uX21vZGVfbmFtZShjeGxyLT5tb2RlKSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgY3hsX2RlY29kZXJfbW9kZV9uYW1lKGN4bGVkLT5tb2RlKSk7DQo+ICAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICAgICAgICAgIH0NCj4gDQo+IEBAIC0yMjM0LDcg KzIyNDcsNyBAQCBzdGF0aWMgc3RydWN0IGN4bF9yZWdpb24gKmN4bF9yZWdpb25fYWxsb2Moc3Ry dWN0IGN4bF9yb290X2RlY29kZXIgKmN4bHJkLCBpbnQgaQ0KPiAgICAqIGRldm1fY3hsX2FkZF9y ZWdpb24gLSBBZGRzIGEgcmVnaW9uIHRvIGEgZGVjb2Rlcg0KPiAgICAqIEBjeGxyZDogcm9vdCBk ZWNvZGVyDQo+ICAgICogQGlkOiBtZW1yZWdpb24gaWQgdG8gY3JlYXRlLCBvciBtZW1yZWdpb25f ZnJlZSgpIG9uIGZhaWx1cmUNCj4gLSAqIEBtb2RlOiBtb2RlIGZvciB0aGUgZW5kcG9pbnQgZGVj b2RlcnMgb2YgdGhpcyByZWdpb24NCj4gKyAqIEBtb2RlOiBtb2RlIG9mIHRoaXMgcmVnaW9uDQo+ ICAgICogQHR5cGU6IHNlbGVjdCB3aGV0aGVyIHRoaXMgaXMgYW4gZXhwYW5kZXIgb3IgYWNjZWxl cmF0b3IgKHR5cGUtMiBvciB0eXBlLTMpDQo+ICAgICoNCj4gICAgKiBUaGlzIGlzIHRoZSBzZWNv bmQgc3RlcCBvZiByZWdpb24gaW5pdGlhbGl6YXRpb24uIFJlZ2lvbnMgZXhpc3Qgd2l0aGluIGFu DQo+IEBAIC0yMjQ1LDcgKzIyNTgsNyBAQCBzdGF0aWMgc3RydWN0IGN4bF9yZWdpb24gKmN4bF9y ZWdpb25fYWxsb2Moc3RydWN0IGN4bF9yb290X2RlY29kZXIgKmN4bHJkLCBpbnQgaQ0KPiAgICAq Lw0KPiAgIHN0YXRpYyBzdHJ1Y3QgY3hsX3JlZ2lvbiAqZGV2bV9jeGxfYWRkX3JlZ2lvbihzdHJ1 Y3QgY3hsX3Jvb3RfZGVjb2RlciAqY3hscmQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGlkLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZW51bSBjeGxfZGVjb2Rlcl9tb2RlIG1vZGUsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGN4bF9yZWdpb25f bW9kZSBtb2RlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gY3hsX2RlY29kZXJfdHlwZSB0eXBlKQ0KPiAgIHsNCj4gICAgICAgICAgc3RydWN0 IGN4bF9wb3J0ICpwb3J0ID0gdG9fY3hsX3BvcnQoY3hscmQtPmN4bHNkLmN4bGQuZGV2LnBhcmVu dCk7DQo+IEBAIC0yMjU0LDExICsyMjY3LDEyIEBAIHN0YXRpYyBzdHJ1Y3QgY3hsX3JlZ2lvbiAq ZGV2bV9jeGxfYWRkX3JlZ2lvbihzdHJ1Y3QgY3hsX3Jvb3RfZGVjb2RlciAqY3hscmQsDQo+ICAg ICAgICAgIGludCByYzsNCj4gDQo+ICAgICAgICAgIHN3aXRjaCAobW9kZSkgew0KPiAtICAgICAg IGNhc2UgQ1hMX0RFQ09ERVJfUkFNOg0KPiAtICAgICAgIGNhc2UgQ1hMX0RFQ09ERVJfUE1FTToN Cj4gKyAgICAgICBjYXNlIENYTF9SRUdJT05fUkFNOg0KPiArICAgICAgIGNhc2UgQ1hMX1JFR0lP Tl9QTUVNOg0KPiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgICBkZWZhdWx0Og0K PiAtICAgICAgICAgICAgICAgZGV2X2VycigmY3hscmQtPmN4bHNkLmN4bGQuZGV2LCAidW5zdXBw b3J0ZWQgbW9kZSAlZFxuIiwgbW9kZSk7DQo+ICsgICAgICAgICAgICAgICBkZXZfZXJyKCZjeGxy ZC0+Y3hsc2QuY3hsZC5kZXYsICJ1bnN1cHBvcnRlZCBtb2RlICVzXG4iLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICBjeGxfcmVnaW9uX21vZGVfbmFtZShtb2RlKSk7DQo+ICAgICAgICAgICAg ICAgICAgcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7DQo+ICAgICAgICAgIH0NCj4gDQo+IEBAIC0y MzA4LDcgKzIzMjIsNyBAQCBzdGF0aWMgc3NpemVfdCBjcmVhdGVfcmFtX3JlZ2lvbl9zaG93KHN0 cnVjdCBkZXZpY2UgKmRldiwNCj4gICB9DQo+IA0KPiAgIHN0YXRpYyBzdHJ1Y3QgY3hsX3JlZ2lv biAqX19jcmVhdGVfcmVnaW9uKHN0cnVjdCBjeGxfcm9vdF9kZWNvZGVyICpjeGxyZCwNCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlkLCBlbnVtIGN4bF9k ZWNvZGVyX21vZGUgbW9kZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGlkLCBlbnVtIGN4bF9yZWdpb25fbW9kZSBtb2RlLA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjeGxfZGVjb2Rlcl90eXBlIHR5cGUp DQo+ICAgew0KPiAgICAgICAgICBpbnQgcmM7DQo+IEBAIC0yMzM3LDcgKzIzNTEsNyBAQCBzdGF0 aWMgc3NpemVfdCBjcmVhdGVfcG1lbV9yZWdpb25fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LA0K PiAgICAgICAgICBpZiAocmMgIT0gMSkNCj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsNCj4gDQo+IC0gICAgICAgY3hsciA9IF9fY3JlYXRlX3JlZ2lvbihjeGxyZCwgaWQsIENYTF9E RUNPREVSX1BNRU0sDQo+ICsgICAgICAgY3hsciA9IF9fY3JlYXRlX3JlZ2lvbihjeGxyZCwgaWQs IENYTF9SRUdJT05fUE1FTSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDWExf REVDT0RFUl9IT1NUT05MWU1FTSk7DQo+ICAgICAgICAgIGlmIChJU19FUlIoY3hscikpDQo+ICAg ICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoY3hscik7DQo+IEBAIC0yMzU4LDcgKzIzNzIs NyBAQCBzdGF0aWMgc3NpemVfdCBjcmVhdGVfcmFtX3JlZ2lvbl9zdG9yZShzdHJ1Y3QgZGV2aWNl ICpkZXYsDQo+ICAgICAgICAgIGlmIChyYyAhPSAxKQ0KPiAgICAgICAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOw0KPiANCj4gLSAgICAgICBjeGxyID0gX19jcmVhdGVfcmVnaW9uKGN4bHJkLCBp ZCwgQ1hMX0RFQ09ERVJfUkFNLA0KPiArICAgICAgIGN4bHIgPSBfX2NyZWF0ZV9yZWdpb24oY3hs cmQsIGlkLCBDWExfUkVHSU9OX1JBTSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDWExfREVDT0RFUl9IT1NUT05MWU1FTSk7DQo+ICAgICAgICAgIGlmIChJU19FUlIoY3hscikp DQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoY3hscik7DQo+IEBAIC0yODg2LDEw ICsyOTAwLDMxIEBAIHN0YXRpYyB2b2lkIGNvbnN0cnVjdF9yZWdpb25fZW5kKHZvaWQpDQo+ICAg ICAgICAgIHVwX3dyaXRlKCZjeGxfcmVnaW9uX3J3c2VtKTsNCj4gICB9DQo+IA0KPiArc3RhdGlj IGVudW0gY3hsX3JlZ2lvbl9tb2RlDQo+ICtjeGxfZGVjb2Rlcl90b19yZWdpb25fbW9kZShlbnVt IGN4bF9kZWNvZGVyX21vZGUgbW9kZSkNCj4gK3sNCj4gKyAgICAgICBzd2l0Y2ggKG1vZGUpIHsN Cj4gKyAgICAgICBjYXNlIENYTF9ERUNPREVSX05PTkU6DQo+ICsgICAgICAgICAgICAgICByZXR1 cm4gQ1hMX1JFR0lPTl9OT05FOw0KPiArICAgICAgIGNhc2UgQ1hMX0RFQ09ERVJfUkFNOg0KPiAr ICAgICAgICAgICAgICAgcmV0dXJuIENYTF9SRUdJT05fUkFNOw0KPiArICAgICAgIGNhc2UgQ1hM X0RFQ09ERVJfUE1FTToNCj4gKyAgICAgICAgICAgICAgIHJldHVybiBDWExfUkVHSU9OX1BNRU07 DQo+ICsgICAgICAgY2FzZSBDWExfREVDT0RFUl9ERUFEOg0KPiArICAgICAgICAgICAgICAgcmV0 dXJuIENYTF9SRUdJT05fREVBRDsNCj4gKyAgICAgICBjYXNlIENYTF9ERUNPREVSX01JWEVEOg0K PiArICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgICAgICAgICByZXR1cm4gQ1hMX1JFR0lPTl9N SVhFRDsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICByZXR1cm4gQ1hMX1JFR0lPTl9NSVhF RDsNCj4gK30NCj4gKw0KPiAgIHN0YXRpYyBzdHJ1Y3QgY3hsX3JlZ2lvbiAqDQo+ICAgY29uc3Ry dWN0X3JlZ2lvbl9iZWdpbihzdHJ1Y3QgY3hsX3Jvb3RfZGVjb2RlciAqY3hscmQsDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjeGxfZW5kcG9pbnRfZGVjb2RlciAqY3hsZWQpDQo+ ICAgew0KPiArICAgICAgIGVudW0gY3hsX3JlZ2lvbl9tb2RlIG1vZGUgPSBjeGxfZGVjb2Rlcl90 b19yZWdpb25fbW9kZShjeGxlZC0+bW9kZSk7DQo+ICAgICAgICAgIHN0cnVjdCBjeGxfbWVtZGV2 ICpjeGxtZCA9IGN4bGVkX3RvX21lbWRldihjeGxlZCk7DQo+ICAgICAgICAgIHN0cnVjdCBjeGxf cmVnaW9uX3BhcmFtcyAqcDsNCj4gICAgICAgICAgc3RydWN0IGN4bF9yZWdpb24gKmN4bHI7DQo+ IEBAIC0yODk3LDcgKzI5MzIsNyBAQCBjb25zdHJ1Y3RfcmVnaW9uX2JlZ2luKHN0cnVjdCBjeGxf cm9vdF9kZWNvZGVyICpjeGxyZCwNCj4gDQo+ICAgICAgICAgIGRvIHsNCj4gICAgICAgICAgICAg ICAgICBjeGxyID0gX19jcmVhdGVfcmVnaW9uKGN4bHJkLCBhdG9taWNfcmVhZCgmY3hscmQtPnJl Z2lvbl9pZCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN4bGVk LT5tb2RlLCBjeGxlZC0+Y3hsZC50YXJnZXRfdHlwZSk7DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vZGUsIGN4bGVkLT5jeGxkLnRhcmdldF90eXBlKTsNCj4gICAg ICAgICAgfSB3aGlsZSAoSVNfRVJSKGN4bHIpICYmIFBUUl9FUlIoY3hscikgPT0gLUVCVVNZKTsN Cj4gDQo+ICAgICAgICAgIGlmIChJU19FUlIoY3hscikpIHsNCj4gQEAgLTMyMDAsOSArMzIzNSw5 IEBAIHN0YXRpYyBpbnQgY3hsX3JlZ2lvbl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAg ICAgICAgICAgICAgICAgcmV0dXJuIHJjOw0KPiANCj4gICAgICAgICAgc3dpdGNoIChjeGxyLT5t b2RlKSB7DQo+IC0gICAgICAgY2FzZSBDWExfREVDT0RFUl9QTUVNOg0KPiArICAgICAgIGNhc2Ug Q1hMX1JFR0lPTl9QTUVNOg0KPiAgICAgICAgICAgICAgICAgIHJldHVybiBkZXZtX2N4bF9hZGRf cG1lbV9yZWdpb24oY3hscik7DQo+IC0gICAgICAgY2FzZSBDWExfREVDT0RFUl9SQU06DQo+ICsg ICAgICAgY2FzZSBDWExfUkVHSU9OX1JBTToNCj4gICAgICAgICAgICAgICAgICAvKg0KPiAgICAg ICAgICAgICAgICAgICAqIFRoZSByZWdpb24gY2FuIG5vdCBiZSBtYW5nZWQgYnkgQ1hMIGlmIGFu eSBwb3J0aW9uIG9mDQo+ICAgICAgICAgICAgICAgICAgICogaXQgaXMgYWxyZWFkeSBvbmxpbmUg YXMgJ1N5c3RlbSBSQU0nDQo+IEBAIC0zMjIzLDggKzMyNTgsOCBAQCBzdGF0aWMgaW50IGN4bF9y ZWdpb25fcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQ0KPiAgICAgICAgICAgICAgICAgIC8qIEhE TS1IIHJvdXRlcyB0byBkZXZpY2UtZGF4ICovDQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIGRl dm1fY3hsX2FkZF9kYXhfcmVnaW9uKGN4bHIpOw0KPiAgICAgICAgICBkZWZhdWx0Og0KPiAtICAg ICAgICAgICAgICAgZGV2X2RiZygmY3hsci0+ZGV2LCAidW5zdXBwb3J0ZWQgcmVnaW9uIG1vZGU6 ICVkXG4iLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICBjeGxyLT5tb2RlKTsNCj4gKyAgICAg ICAgICAgICAgIGRldl9kYmcoJmN4bHItPmRldiwgInVuc3VwcG9ydGVkIHJlZ2lvbiBtb2RlOiAl c1xuIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgY3hsX3JlZ2lvbl9tb2RlX25hbWUoY3hs ci0+bW9kZSkpOw0KPiAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5YSU87DQo+ICAgICAgICAg IH0NCj4gICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2N4bC9jeGwuaCBiL2RyaXZlcnMvY3hs L2N4bC5oDQo+IGluZGV4IGNkNGE5ZmZkYWNjNy4uZWQyODJkY2Q1Y2Y1IDEwMDY0NA0KPiAtLS0g YS9kcml2ZXJzL2N4bC9jeGwuaA0KPiArKysgYi9kcml2ZXJzL2N4bC9jeGwuaA0KPiBAQCAtMzc0 LDYgKzM3NCwyOCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmN4bF9kZWNvZGVyX21vZGVf bmFtZShlbnVtIGN4bF9kZWNvZGVyX21vZGUgbW9kZSkNCj4gICAgICAgICAgcmV0dXJuICJtaXhl ZCI7DQo+ICAgfQ0KPiANCj4gK2VudW0gY3hsX3JlZ2lvbl9tb2RlIHsNCj4gKyAgICAgICBDWExf UkVHSU9OX05PTkUsDQo+ICsgICAgICAgQ1hMX1JFR0lPTl9SQU0sDQo+ICsgICAgICAgQ1hMX1JF R0lPTl9QTUVNLA0KPiArICAgICAgIENYTF9SRUdJT05fTUlYRUQsDQo+ICsgICAgICAgQ1hMX1JF R0lPTl9ERUFELA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGlubGluZSBjb25zdCBjaGFyICpjeGxf cmVnaW9uX21vZGVfbmFtZShlbnVtIGN4bF9yZWdpb25fbW9kZSBtb2RlKQ0KPiArew0KPiArICAg ICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbmFtZXNbXSA9IHsNCj4gKyAgICAgICAgICAg ICAgIFtDWExfUkVHSU9OX05PTkVdID0gIm5vbmUiLA0KPiArICAgICAgICAgICAgICAgW0NYTF9S RUdJT05fUkFNXSA9ICJyYW0iLA0KPiArICAgICAgICAgICAgICAgW0NYTF9SRUdJT05fUE1FTV0g PSAicG1lbSIsDQo+ICsgICAgICAgICAgICAgICBbQ1hMX1JFR0lPTl9NSVhFRF0gPSAibWl4ZWQi LA0KPiArICAgICAgIH07DQo+ICsNCj4gKyAgICAgICBpZiAobW9kZSA+PSBDWExfUkVHSU9OX05P TkUgJiYgbW9kZSA8PSBDWExfUkVHSU9OX01JWEVEKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJu IG5hbWVzW21vZGVdOw0KPiArICAgICAgIHJldHVybiAibWl4ZWQiOw0KPiArfQ0KPiArDQo+ICAg LyoNCj4gICAgKiBUcmFjayB3aGV0aGVyIHRoaXMgZGVjb2RlciBpcyByZXNlcnZlZCBmb3IgcmVn aW9uIGF1dG9kaXNjb3ZlcnksIG9yDQo+ICAgICogZnJlZSBmb3IgdXNlcnNwYWNlIHByb3Zpc2lv bmluZy4NCj4gQEAgLTUwMiw3ICs1MjQsOCBAQCBzdHJ1Y3QgY3hsX3JlZ2lvbl9wYXJhbXMgew0K PiAgICAqIHN0cnVjdCBjeGxfcmVnaW9uIC0gQ1hMIHJlZ2lvbg0KPiAgICAqIEBkZXY6IFRoaXMg cmVnaW9uJ3MgZGV2aWNlDQo+ICAgICogQGlkOiBUaGlzIHJlZ2lvbidzIGlkLiBJZCBpcyBnbG9i YWxseSB1bmlxdWUgYWNyb3NzIGFsbCByZWdpb25zDQo+IC0gKiBAbW9kZTogRW5kcG9pbnQgZGVj b2RlciBhbGxvY2F0aW9uIC8gYWNjZXNzIG1vZGUNCj4gKyAqIEBtb2RlOiBSZWdpb24gbW9kZSB3 aGljaCBkZWZpbmVzIHdoaWNoIGVuZHBvaW50IGRlY29kZXIgbW9kZSB0aGUgcmVnaW9uIGlzDQo+ ICsgKiAgICAgICAgY29tcGF0aWJsZSB3aXRoDQo+ICAgICogQHR5cGU6IEVuZHBvaW50IGRlY29k ZXIgdGFyZ2V0IHR5cGUNCj4gICAgKiBAY3hsX252YjogbnZkaW1tIGJyaWRnZSBmb3IgY29vcmRp bmF0aW5nIEBjeGxyX3BtZW0gc2V0dXAgLyBzaHV0ZG93bg0KPiAgICAqIEBjeGxyX3BtZW06IChm b3IgcG1lbSByZWdpb25zKSBjYWNoZWQgY29weSBvZiB0aGUgbnZkaW1tIGJyaWRnZQ0KPiBAQCAt NTEyLDcgKzUzNSw3IEBAIHN0cnVjdCBjeGxfcmVnaW9uX3BhcmFtcyB7DQo+ICAgc3RydWN0IGN4 bF9yZWdpb24gew0KPiAgICAgICAgICBzdHJ1Y3QgZGV2aWNlIGRldjsNCj4gICAgICAgICAgaW50 IGlkOw0KPiAtICAgICAgIGVudW0gY3hsX2RlY29kZXJfbW9kZSBtb2RlOw0KPiArICAgICAgIGVu dW0gY3hsX3JlZ2lvbl9tb2RlIG1vZGU7DQo+ICAgICAgICAgIGVudW0gY3hsX2RlY29kZXJfdHlw ZSB0eXBlOw0KPiAgICAgICAgICBzdHJ1Y3QgY3hsX252ZGltbV9icmlkZ2UgKmN4bF9udmI7DQo+ ICAgICAgICAgIHN0cnVjdCBjeGxfcG1lbV9yZWdpb24gKmN4bHJfcG1lbTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvY3hsL2N4bG1lbS5oIGIvZHJpdmVycy9jeGwvY3hsbWVtLmgNCj4gaW5kZXgg NWYyZTY1MjA0YmY5Li44YzhmNDdiMzk3YWIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY3hsL2N4 bG1lbS5oDQo+ICsrKyBiL2RyaXZlcnMvY3hsL2N4bG1lbS5oDQo+IEBAIC0zOTYsNiArMzk2LDcg QEAgZW51bSBjeGxfZGV2dHlwZSB7DQo+ICAgICAgICAgIENYTF9ERVZUWVBFX0NMQVNTTUVNLA0K PiAgIH07DQo+IA0KPiArI2RlZmluZSBDWExfTUFYX0RDX1JFR0lPTiA4DQo+ICAgLyoqDQo+ICAg ICogc3RydWN0IGN4bF9kZXZfc3RhdGUgLSBUaGUgZHJpdmVyIGRldmljZSBzdGF0ZQ0KPiAgICAq DQo+IEBAIC00MTIsNiArNDEzLDggQEAgZW51bSBjeGxfZGV2dHlwZSB7DQo+ICAgICogQGRwYV9y ZXM6IE92ZXJhbGwgRFBBIHJlc291cmNlIHRyZWUgZm9yIHRoZSBkZXZpY2UNCj4gICAgKiBAcG1l bV9yZXM6IEFjdGl2ZSBQZXJzaXN0ZW50IG1lbW9yeSBjYXBhY2l0eSBjb25maWd1cmF0aW9uDQo+ ICAgICogQHJhbV9yZXM6IEFjdGl2ZSBWb2xhdGlsZSBtZW1vcnkgY2FwYWNpdHkgY29uZmlndXJh dGlvbg0KPiArICogQGRjX3JlczogQWN0aXZlIER5bmFtaWMgQ2FwYWNpdHkgbWVtb3J5IGNvbmZp Z3VyYXRpb24gZm9yIGVhY2ggcG9zc2libGUNCj4gKyAqICAgICAgICAgIHJlZ2lvbg0KPiAgICAq IEBjb21wb25lbnRfcmVnX3BoeXM6IHJlZ2lzdGVyIGJhc2Ugb2YgY29tcG9uZW50IHJlZ2lzdGVy cw0KPiAgICAqIEBzZXJpYWw6IFBDSWUgRGV2aWNlIFNlcmlhbCBOdW1iZXINCj4gICAgKiBAdHlw ZTogR2VuZXJpYyBNZW1vcnkgQ2xhc3MgZGV2aWNlIG9yIFZlbmRvciBTcGVjaWZpYyBNZW1vcnkg ZGV2aWNlDQo+IEBAIC00MjYsMTEgKzQyOSwyMyBAQCBzdHJ1Y3QgY3hsX2Rldl9zdGF0ZSB7DQo+ ICAgICAgICAgIHN0cnVjdCByZXNvdXJjZSBkcGFfcmVzOw0KPiAgICAgICAgICBzdHJ1Y3QgcmVz b3VyY2UgcG1lbV9yZXM7DQo+ICAgICAgICAgIHN0cnVjdCByZXNvdXJjZSByYW1fcmVzOw0KPiAr ICAgICAgIHN0cnVjdCByZXNvdXJjZSBkY19yZXNbQ1hMX01BWF9EQ19SRUdJT05dOw0KPiAgICAg ICAgICByZXNvdXJjZV9zaXplX3QgY29tcG9uZW50X3JlZ19waHlzOw0KPiAgICAgICAgICB1NjQg c2VyaWFsOw0KPiAgICAgICAgICBlbnVtIGN4bF9kZXZ0eXBlIHR5cGU7DQo+ICAgfTsNCj4gDQo+ ICsjZGVmaW5lIENYTF9EQ19SRUdJT05fU1RSTEVOIDcNCj4gK3N0cnVjdCBjeGxfZGNfcmVnaW9u X2luZm8gew0KPiArICAgICAgIHU2NCBiYXNlOw0KPiArICAgICAgIHU2NCBkZWNvZGVfbGVuOw0K PiArICAgICAgIHU2NCBsZW47DQo+ICsgICAgICAgdTY0IGJsa19zaXplOw0KPiArICAgICAgIHUz MiBkc21hZF9oYW5kbGU7DQo+ICsgICAgICAgdTggZmxhZ3M7DQo+ICsgICAgICAgdTggbmFtZVtD WExfRENfUkVHSU9OX1NUUkxFTl07DQo+ICt9Ow0KPiArDQo+ICAgLyoqDQo+ICAgICogc3RydWN0 IGN4bF9tZW1kZXZfc3RhdGUgLSBHZW5lcmljIFR5cGUtMyBNZW1vcnkgRGV2aWNlIENsYXNzIGRy aXZlciBkYXRhDQo+ICAgICoNCj4gQEAgLTQ0OSw2ICs0NjQsOCBAQCBzdHJ1Y3QgY3hsX2Rldl9z dGF0ZSB7DQo+ICAgICogQGVuYWJsZWRfY21kczogSGFyZHdhcmUgY29tbWFuZHMgZm91bmQgZW5h YmxlZCBpbiBDRUwuDQo+ICAgICogQGV4Y2x1c2l2ZV9jbWRzOiBDb21tYW5kcyB0aGF0IGFyZSBr ZXJuZWwtaW50ZXJuYWwgb25seQ0KPiAgICAqIEB0b3RhbF9ieXRlczogc3VtIG9mIGFsbCBwb3Nz aWJsZSBjYXBhY2l0aWVzDQo+ICsgKiBAc3RhdGljX2NhcDogU3VtIG9mIFJBTSBhbmQgUE1FTSBj YXBhY2l0aWVzDQo+ICsgKiBAZHluYW1pY19jYXA6IENvbXBsZXRlIERQQSByYW5nZSBvY2N1cGll ZCBieSBEQyByZWdpb25zDQo+ICAgICogQHZvbGF0aWxlX29ubHlfYnl0ZXM6IGhhcmQgdm9sYXRp bGUgY2FwYWNpdHkNCj4gICAgKiBAcGVyc2lzdGVudF9vbmx5X2J5dGVzOiBoYXJkIHBlcnNpc3Rl bnQgY2FwYWNpdHkNCj4gICAgKiBAcGFydGl0aW9uX2FsaWduX2J5dGVzOiBhbGlnbm1lbnQgc2l6 ZSBmb3IgcGFydGl0aW9uLWFibGUgY2FwYWNpdHkNCj4gQEAgLTQ1Niw2ICs0NzMsMTAgQEAgc3Ry dWN0IGN4bF9kZXZfc3RhdGUgew0KPiAgICAqIEBhY3RpdmVfcGVyc2lzdGVudF9ieXRlczogc3Vt IG9mIGhhcmQgKyBzb2Z0IHBlcnNpc3RlbnQNCj4gICAgKiBAbmV4dF92b2xhdGlsZV9ieXRlczog dm9sYXRpbGUgY2FwYWNpdHkgY2hhbmdlIHBlbmRpbmcgZGV2aWNlIHJlc2V0DQo+ICAgICogQG5l eHRfcGVyc2lzdGVudF9ieXRlczogcGVyc2lzdGVudCBjYXBhY2l0eSBjaGFuZ2UgcGVuZGluZyBk ZXZpY2UgcmVzZXQNCj4gKyAqIEBucl9kY19yZWdpb246IG51bWJlciBvZiBEQyByZWdpb25zIGlt cGxlbWVudGVkIGluIHRoZSBtZW1vcnkgZGV2aWNlDQo+ICsgKiBAZGNfcmVnaW9uOiBhcnJheSBj b250YWluaW5nIGluZm8gYWJvdXQgdGhlIERDIHJlZ2lvbnMNCj4gKyAqIEBkY19ldmVudF9sb2df c2l6ZTogVGhlIG51bWJlciBvZiBldmVudHMgdGhlIGRldmljZSBjYW4gc3RvcmUgaW4gdGhlDQo+ ICsgKiBEeW5hbWljIENhcGFjaXR5IEV2ZW50IExvZyBiZWZvcmUgaXQgb3ZlcmZsb3dzDQo+ICAg ICogQGV2ZW50OiBldmVudCBsb2cgZHJpdmVyIHN0YXRlDQo+ICAgICogQHBvaXNvbjogcG9pc29u IGRyaXZlciBzdGF0ZSBpbmZvDQo+ICAgICogQGZ3OiBmaXJtd2FyZSB1cGxvYWQgLyBhY3RpdmF0 aW9uIHN0YXRlDQo+IEBAIC00NzMsNyArNDk0LDEwIEBAIHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRl IHsNCj4gICAgICAgICAgREVDTEFSRV9CSVRNQVAoZGNkX2NtZHMsIENYTF9EQ0RfRU5BQkxFRF9N QVgpOw0KPiAgICAgICAgICBERUNMQVJFX0JJVE1BUChlbmFibGVkX2NtZHMsIENYTF9NRU1fQ09N TUFORF9JRF9NQVgpOw0KPiAgICAgICAgICBERUNMQVJFX0JJVE1BUChleGNsdXNpdmVfY21kcywg Q1hMX01FTV9DT01NQU5EX0lEX01BWCk7DQo+ICsNCj4gICAgICAgICAgdTY0IHRvdGFsX2J5dGVz Ow0KPiArICAgICAgIHU2NCBzdGF0aWNfY2FwOw0KPiArICAgICAgIHU2NCBkeW5hbWljX2NhcDsN Cj4gICAgICAgICAgdTY0IHZvbGF0aWxlX29ubHlfYnl0ZXM7DQo+ICAgICAgICAgIHU2NCBwZXJz aXN0ZW50X29ubHlfYnl0ZXM7DQo+ICAgICAgICAgIHU2NCBwYXJ0aXRpb25fYWxpZ25fYnl0ZXM7 DQo+IEBAIC00ODEsNiArNTA1LDExIEBAIHN0cnVjdCBjeGxfbWVtZGV2X3N0YXRlIHsNCj4gICAg ICAgICAgdTY0IGFjdGl2ZV9wZXJzaXN0ZW50X2J5dGVzOw0KPiAgICAgICAgICB1NjQgbmV4dF92 b2xhdGlsZV9ieXRlczsNCj4gICAgICAgICAgdTY0IG5leHRfcGVyc2lzdGVudF9ieXRlczsNCj4g Kw0KPiArICAgICAgIHU4IG5yX2RjX3JlZ2lvbjsNCj4gKyAgICAgICBzdHJ1Y3QgY3hsX2RjX3Jl Z2lvbl9pbmZvIGRjX3JlZ2lvbltDWExfTUFYX0RDX1JFR0lPTl07DQo+ICsgICAgICAgc2l6ZV90 IGRjX2V2ZW50X2xvZ19zaXplOw0KPiArDQo+ICAgICAgICAgIHN0cnVjdCBjeGxfZXZlbnRfc3Rh dGUgZXZlbnQ7DQo+ICAgICAgICAgIHN0cnVjdCBjeGxfcG9pc29uX3N0YXRlIHBvaXNvbjsNCj4g ICAgICAgICAgc3RydWN0IGN4bF9zZWN1cml0eV9zdGF0ZSBzZWN1cml0eTsNCj4gQEAgLTU4Nyw2 ICs2MTYsNyBAQCBzdHJ1Y3QgY3hsX21ib3hfaWRlbnRpZnkgew0KPiAgICAgICAgICBfX2xlMTYg aW5qZWN0X3BvaXNvbl9saW1pdDsNCj4gICAgICAgICAgdTggcG9pc29uX2NhcHM7DQo+ICAgICAg ICAgIHU4IHFvc190ZWxlbWV0cnlfY2FwczsNCj4gKyAgICAgICBfX2xlMTYgZGNfZXZlbnRfbG9n X3NpemU7DQo+ICAgfSBfX3BhY2tlZDsNCg0KSGksDQoNClRvIGhhbmRsZSBiYWNrd2FyZHMgY29t cGF0aWJpbGl0eSB3aXRoIENYTCAyLjAgZGV2aWNlcywgDQpjeGxfZGV2X3N0YXRlX2lkZW50aWZ5 KCkgbmVlZHMgdG8gaGFuZGxlIGJvdGggdGhlIENYTCAyLjAgYW5kIDMuMCANCnZlcnNpb25zIG9m IHN0cnVjdCBjeGxfbWJveF9pZGVudGlmeS4gVGhlIHNwZWMgc2F5cyB0aGF0IG5ld2VyIGNvZGUg Y2FuIA0KdXNlIHRoZSBwYXlsb2FkIHNpemUgdG8gZGV0ZWN0IHRoZSBkaWZmZXJlbnQgdmVyc2lv bnMsIHNvIHNvbWV0aGluZyBsaWtlIA0KdGhlIGZvbGxvd2luZzoNCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY3hsL2NvcmUvbWJveC5jIGIvZHJpdmVycy9jeGwvY29yZS9tYm94LmMNCmluZGV4IDk0 NjJjMzRhYTFkYy4uMGE2ZjAzODk5NmFhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jeGwvY29yZS9t Ym94LmMNCisrKyBiL2RyaXZlcnMvY3hsL2NvcmUvbWJveC5jDQpAQCAtMTM1Niw2ICsxMzU2LDcg QEAgaW50IGN4bF9kZXZfc3RhdGVfaWRlbnRpZnkoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgDQoq bWRzKQ0KICAgICAgICAgICAgICAgICAub3Bjb2RlID0gQ1hMX01CT1hfT1BfSURFTlRJRlksDQog ICAgICAgICAgICAgICAgIC5zaXplX291dCA9IHNpemVvZihpZCksDQogICAgICAgICAgICAgICAg IC5wYXlsb2FkX291dCA9ICZpZCwNCisgICAgICAgICAgICAgICAubWluX291dCA9IENYTF9NQk9Y X0lERU5USUZZX01JTl9MRU5HVEgsDQogICAgICAgICB9Ow0KICAgICAgICAgcmMgPSBjeGxfaW50 ZXJuYWxfc2VuZF9jbWQobWRzLCAmbWJveF9jbWQpOw0KICAgICAgICAgaWYgKHJjIDwgMCkNCkBA IC0xMzc5LDcgKzEzODAsOCBAQCBpbnQgY3hsX2Rldl9zdGF0ZV9pZGVudGlmeShzdHJ1Y3QgY3hs X21lbWRldl9zdGF0ZSANCiptZHMpDQogICAgICAgICAgICAgICAgIG1kcy0+cG9pc29uLm1heF9l cnJvcnMgPSBtaW5fdCh1MzIsIHZhbCwgDQpDWExfUE9JU09OX0xJU1RfTUFYKTsNCiAgICAgICAg IH0NCg0KLSAgICAgICBtZHMtPmRjX2V2ZW50X2xvZ19zaXplID0gbGUxNl90b19jcHUoaWQuZGNf ZXZlbnRfbG9nX3NpemUpOw0KKyAgICAgICBpZiAobWJveF9jbWQuc2l6ZV9vdXQgPj0gQ1hMX01C T1hfSURFTlRJRllfQ1hMM19MRU5HVEgpDQorICAgICAgICAgICAgICAgbWRzLT5kY19ldmVudF9s b2dfc2l6ZSA9IGxlMTZfdG9fY3B1KGlkLmRjX2V2ZW50X2xvZ19zaXplKTsNCg0KICAgICAgICAg cmV0dXJuIDA7DQogIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2N4bC9jeGxtZW0uaCBiL2RyaXZl cnMvY3hsL2N4bG1lbS5oDQppbmRleCBhZTlkY2IyOTFjNzUuLjc1NmUzMGRiMTBkNiAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvY3hsL2N4bG1lbS5oDQorKysgYi9kcml2ZXJzL2N4bC9jeGxtZW0uaA0K QEAgLTYyOSw4ICs2MjksMTEgQEAgc3RydWN0IGN4bF9tYm94X2lkZW50aWZ5IHsNCiAgICAgICAg IF9fbGUxNiBpbmplY3RfcG9pc29uX2xpbWl0Ow0KICAgICAgICAgdTggcG9pc29uX2NhcHM7DQog ICAgICAgICB1OCBxb3NfdGVsZW1ldHJ5X2NhcHM7DQorICAgICAgIC8qIENYTCAzLjAgYWRkaXRp b25zICovDQogICAgICAgICBfX2xlMTYgZGNfZXZlbnRfbG9nX3NpemU7DQogIH0gX19wYWNrZWQ7 DQorI2RlZmluZSBDWExfTUJPWF9JREVOVElGWV9NSU5fTEVOR1RIICAgIDB4NDMNCisjZGVmaW5l IENYTF9NQk9YX0lERU5USUZZX0NYTDNfTEVOR1RIIHNpemVvZihzdHJ1Y3QgY3hsX21ib3hfaWRl bnRpZnkpDQoNCiAgLyoNCiAgICogQ29tbW9uIEV2ZW50IFJlY29yZCBGb3JtYXQNCg0KLS0tDQoN ClNvbWV0aGluZyBzaW1pbGFyIG5lZWRzIHRvIGJlIGhhbmRsZWQgZm9yIGN4bF9ldmVudF9nZXRf aW50X3BvbGljeSB3aXRoIA0KdGhlIGFkZGl0aW9uIG9mIGR5bmNhcF9zZXR0aW5ncyB0byBjeGxf ZXZlbnRfaW50ZXJydXB0X3BvbGljeSwgdGhhdCBGYW4gDQpOaSBtZW50aW9ucy4NCg0KVGhhbmtz LA0KSm9yZ2VuDQoNCj4gICAvKg0KPiBAQCAtNzQxLDkgKzc3MSwzMSBAQCBzdHJ1Y3QgY3hsX21i b3hfc2V0X3BhcnRpdGlvbl9pbmZvIHsNCj4gICAgICAgICAgX19sZTY0IHZvbGF0aWxlX2NhcGFj aXR5Ow0KPiAgICAgICAgICB1OCBmbGFnczsNCj4gICB9IF9fcGFja2VkOw0KPiAtDQo+ICAgI2Rl ZmluZSAgQ1hMX1NFVF9QQVJUSVRJT05fSU1NRURJQVRFX0ZMQUcgICAgICBCSVQoMCkNCj4gDQo+ ICtzdHJ1Y3QgY3hsX21ib3hfZ2V0X2RjX2NvbmZpZyB7DQo+ICsgICAgICAgdTggcmVnaW9uX2Nv dW50Ow0KPiArICAgICAgIHU4IHN0YXJ0X3JlZ2lvbl9pbmRleDsNCj4gK30gX19wYWNrZWQ7DQo+ ICsNCj4gKy8qIFNlZSBDWEwgMy4wIFRhYmxlIDEyNSBnZXQgZHluYW1pYyBjYXBhY2l0eSBjb25m aWcgT3V0cHV0IFBheWxvYWQgKi8NCj4gK3N0cnVjdCBjeGxfbWJveF9keW5hbWljX2NhcGFjaXR5 IHsNCj4gKyAgICAgICB1OCBhdmFpbF9yZWdpb25fY291bnQ7DQo+ICsgICAgICAgdTggcnN2ZFs3 XTsNCj4gKyAgICAgICBzdHJ1Y3QgY3hsX2RjX3JlZ2lvbl9jb25maWcgew0KPiArICAgICAgICAg ICAgICAgX19sZTY0IHJlZ2lvbl9iYXNlOw0KPiArICAgICAgICAgICAgICAgX19sZTY0IHJlZ2lv bl9kZWNvZGVfbGVuZ3RoOw0KPiArICAgICAgICAgICAgICAgX19sZTY0IHJlZ2lvbl9sZW5ndGg7 DQo+ICsgICAgICAgICAgICAgICBfX2xlNjQgcmVnaW9uX2Jsb2NrX3NpemU7DQo+ICsgICAgICAg ICAgICAgICBfX2xlMzIgcmVnaW9uX2RzbWFkX2hhbmRsZTsNCj4gKyAgICAgICAgICAgICAgIHU4 IGZsYWdzOw0KPiArICAgICAgICAgICAgICAgdTggcnN2ZFszXTsNCj4gKyAgICAgICB9IF9fcGFj a2VkIHJlZ2lvbltdOw0KPiArfSBfX3BhY2tlZDsNCj4gKyNkZWZpbmUgQ1hMX0RZTkFNSUNfQ0FQ QUNJVFlfU0FOSVRJWkVfT05fUkVMRUFTRV9GTEFHIEJJVCgwKQ0KPiArI2RlZmluZSBDWExfUkVH SU9OU19SRVRVUk5FRChzaXplX291dCkgXA0KPiArICAgICAgICgoc2l6ZV9vdXQgLSA4KSAvIHNp emVvZihzdHJ1Y3QgY3hsX2RjX3JlZ2lvbl9jb25maWcpKQ0KPiArDQo+ICAgLyogU2V0IFRpbWVz dGFtcCBDWEwgMy4wIFNwZWMgOC4yLjkuNC4yICovDQo+ICAgc3RydWN0IGN4bF9tYm94X3NldF90 aW1lc3RhbXBfaW4gew0KPiAgICAgICAgICBfX2xlNjQgdGltZXN0YW1wOw0KPiBAQCAtODY3LDYg KzkxOSw3IEBAIGVudW0gew0KPiAgIGludCBjeGxfaW50ZXJuYWxfc2VuZF9jbWQoc3RydWN0IGN4 bF9tZW1kZXZfc3RhdGUgKm1kcywNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGN4bF9tYm94X2NtZCAqY21kKTsNCj4gICBpbnQgY3hsX2Rldl9zdGF0ZV9pZGVudGlmeShzdHJ1 Y3QgY3hsX21lbWRldl9zdGF0ZSAqbWRzKTsNCj4gK2ludCBjeGxfZGV2X2R5bmFtaWNfY2FwYWNp dHlfaWRlbnRpZnkoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcyk7DQo+ICAgaW50IGN4bF9h d2FpdF9tZWRpYV9yZWFkeShzdHJ1Y3QgY3hsX2Rldl9zdGF0ZSAqY3hsZHMpOw0KPiAgIGludCBj eGxfZW51bWVyYXRlX2NtZHMoc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcyk7DQo+ICAgaW50 IGN4bF9tZW1fY3JlYXRlX3JhbmdlX2luZm8oc3RydWN0IGN4bF9tZW1kZXZfc3RhdGUgKm1kcyk7 DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2N4bC9wY2kuYyBiL2RyaXZlcnMvY3hsL3BjaS5jDQo+ IGluZGV4IDUyNDJkYmYwMDQ0ZC4uYTliMTEwZmYxMTc2IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L2N4bC9wY2kuYw0KPiArKysgYi9kcml2ZXJzL2N4bC9wY2kuYw0KPiBAQCAtODc5LDYgKzg3OSwx MCBAQCBzdGF0aWMgaW50IGN4bF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0 IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkNCj4gICAgICAgICAgaWYgKHJjKQ0KPiAgICAgICAg ICAgICAgICAgIHJldHVybiByYzsNCj4gDQo+ICsgICAgICAgcmMgPSBjeGxfZGV2X2R5bmFtaWNf Y2FwYWNpdHlfaWRlbnRpZnkobWRzKTsNCj4gKyAgICAgICBpZiAocmMpDQo+ICsgICAgICAgICAg ICAgICByZXR1cm4gcmM7DQo+ICsNCj4gICAgICAgICAgcmMgPSBjeGxfbWVtX2NyZWF0ZV9yYW5n ZV9pbmZvKG1kcyk7DQo+ICAgICAgICAgIGlmIChyYykNCj4gICAgICAgICAgICAgICAgICByZXR1 cm4gcmM7DQo+IA0KPiAtLQ0KPiAyLjQxLjANCj4gDQo=