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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 92FA8EFB816 for ; Tue, 24 Feb 2026 08:52:45 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EBB6310E514; Tue, 24 Feb 2026 08:52:44 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="fdOawzJX"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9313910E514 for ; Tue, 24 Feb 2026 08:52:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1771923163; x=1803459163; h=date:from:to:cc:subject:message-id:references: content-transfer-encoding:in-reply-to:mime-version; bh=NYxTKUzVZ8LPRP1dKXorMhzLR8qhVS8zsqvdvHnjdtg=; b=fdOawzJX/Q8ORm3h7BnRYrnaOmiKichUlvl9HBqUXexO1quLqlUt9ZQm Dv8L7DDxrKv7LpEds+qQoFF682zNRGzef5iNDRvWMD59nuyna8HtCrB/w tB0o6hi19bLczLcoG7LR+OgRMVDEm+R8Kz1r37uE+pfCZh49JyE/yZKM3 wp1k0U4nhSn3j7M0q6ocmOQHButZ4+JZYQSTFfXJTqM4aUK7POncnHZZQ RyAss3N5ygGwoDNTWS6hQW6Ms7WEHZH7c8AM7dK4Ne84fBAK0q4bQpqqv 6NhzVeDB/MLBOlalxQcXqWtsBQZ3kMqqTFvI2DLCj0jSDz+Xz7K+NHeK+ Q==; X-CSE-ConnectionGUID: AGMcOe9IRxmKUUfJ3Xo2Pg== X-CSE-MsgGUID: WVcPJVQQS1Sb0pYxn5Q/rQ== X-IronPort-AV: E=McAfee;i="6800,10657,11710"; a="83554316" X-IronPort-AV: E=Sophos;i="6.21,308,1763452800"; d="scan'208";a="83554316" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2026 00:52:43 -0800 X-CSE-ConnectionGUID: lnh5jzPJTjOfO5ihLDwU4Q== X-CSE-MsgGUID: o+Q4TVZuRzmLMY1orrRsBw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,308,1763452800"; d="scan'208";a="246419257" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by orviesa002.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2026 00:52:42 -0800 Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Tue, 24 Feb 2026 00:52:42 -0800 Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35 via Frontend Transport; Tue, 24 Feb 2026 00:52:42 -0800 Received: from SN4PR0501CU005.outbound.protection.outlook.com (40.93.194.10) by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.35; Tue, 24 Feb 2026 00:52:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eXdUqzyDNb8gDyODwVTOM2WWug/wpvNQgZyYRGKdt5n7xIFcE8YjAew9cu4ILUDqKn2i6vKfODc0c0Be+vvJYfVi/KgLiQAKws7qKFH/DxSlEFdWDbGA/+AK0ZJfHaBUt/CFvXYdarAEEU4WF5h50dZZH30V1hBX+PxN53w7zQbe1a8oW/VqGQfsN3sTIiqN9Ea8Zr2W73N6QEgV2+PviL3uqx3ACjjli9uyOFfbDCtXsVUrFFywQIlzlurR46b9FnV9MAIV2kzwDix6otrSwTxs5VDWQypiTPqY6ObuJKyE16J4Q3qZdfd6Hx+SMbo2RgnewG5GRoIetrNeKXwYIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=sRMrWmK8FhZNeYYi10Wz22FlKUeCwkuAtmjLq4CMJMM=; b=hSyiAr8i32X9bxExx3TOpmPoTdOz/tSzAcx/79NFRhDFCT4GYkJ6SCuDLawubr8daJ9l6SRpk2XDGKPJi+6O9uMuYUPc8RCMJF1ACLinLFS5nCdFyQ4xqqjjQGeCRRFMUiQMEB4TWZtbOqxBdiP2b1as+OoZXFfmmBllFp/r2jwRtoopi50u480ql7aw5MH5U08oZx5Y0hzoMxRkR7xxxrElgxav62pNpKNq8mS3/38fjzWwE1rOqTzxLRwn3nkXm6zGND7B8k/P5sBe7zKsdF998xFfk0cusIEsr7lSeqnqPNuxoVL2a4BLTNS6pKW+2kpua9sfLcJlY3Mfs7v98A== 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 Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from PH7PR11MB6522.namprd11.prod.outlook.com (2603:10b6:510:212::12) by PH3PPF2B89F77E0.namprd11.prod.outlook.com (2603:10b6:518:1::d11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Tue, 24 Feb 2026 08:52:39 +0000 Received: from PH7PR11MB6522.namprd11.prod.outlook.com ([fe80::e0c5:6cd8:6e67:dc0c]) by PH7PR11MB6522.namprd11.prod.outlook.com ([fe80::e0c5:6cd8:6e67:dc0c%6]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 08:52:39 +0000 Date: Tue, 24 Feb 2026 00:52:35 -0800 From: Matthew Brost To: Ekansh Gupta CC: Oded Gabbay , Jonathan Corbet , "Shuah Khan" , Joerg Roedel , Will Deacon , Robin Murphy , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sumit Semwal , Christian =?iso-8859-1?Q?K=F6nig?= , , , , , , , , Srinivas Kandagatla , Dmitry Baryshkov , Bharath Kumar , Chenna Kesava Raju Subject: Re: [PATCH RFC 12/18] accel/qda: Add PRIME dma-buf import support Message-ID: References: <20260224-qda-firstpost-v1-0-fe46a9c1a046@oss.qualcomm.com> <20260224-qda-firstpost-v1-12-fe46a9c1a046@oss.qualcomm.com> Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: base64 In-Reply-To: <20260224-qda-firstpost-v1-12-fe46a9c1a046@oss.qualcomm.com> X-ClientProxiedBy: MW4PR04CA0334.namprd04.prod.outlook.com (2603:10b6:303:8a::9) To PH7PR11MB6522.namprd11.prod.outlook.com (2603:10b6:510:212::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR11MB6522:EE_|PH3PPF2B89F77E0:EE_ X-MS-Office365-Filtering-Correlation-Id: ef746286-481b-441d-3729-08de73821058 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|7416014|366016|1800799024|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Zk1nRzRYTHZvdlo3OGkydXlUMWRLOUxLYm80a0JwQWJiV0FVMXFWd08zbHNW?= =?utf-8?B?VjdJMTNGWDNWQkwwWHVNeFVUUFJUbVo0NDVwQzdwQXdlWi9vYXc0UGhHNito?= =?utf-8?B?UFlMdTB6bVRTQ2RBZy9YSExwNytvNy95SER0Zzd5V0xxRnZ4VEhKN1RXRmhW?= =?utf-8?B?SGxsL1NhZGVSenhoNkR2QktDN3cxOUN3WFpuZUFuZ3hNd00veUNhVzZCME1S?= =?utf-8?B?ejluWHZUVnorUEo4SzFLM1lJZkNzS0VYZkczK0NXZUF1aTZ2T0d2QkdlMC9H?= =?utf-8?B?QjFQb0l4MTZHNHFSenVqRyt2SVZDZWVuN3hBWkRuR213a0Rvcjk5QW9YaXpV?= =?utf-8?B?Q1MwWFdYeGg0UTYySUtvbUZqQXJISHpWMmxSaFp5OVkwQzhlNzYxOVZhdTRG?= =?utf-8?B?MXJIYkMvVUdmQmc3UytTNTRnYUNwVjQ5QUhxN21jUUJ4MlRheStYT3pKc3hj?= =?utf-8?B?MGd1dGRmLzM4bXFTV1JINForTXh1eWxlbzNUL3JYaTlaNVdYSWV0K25POStt?= =?utf-8?B?TDNtSDUvUkQ3dWdraHQ2dHM1UU9qTkhKS0RTbVJYMHQ2eUZNQ05UYjk5aHM4?= =?utf-8?B?RXplam5icUZpaVBNMW1nSGs2NWFLSndkK3pVSWhBYkVlc0Z2dVdSSlkzNGI0?= =?utf-8?B?Y2x3clN6aUZFWWdVSlY1a1BrOWd3akl3QmM4OHNvRjBRcmF3TklhdXZHbFo3?= =?utf-8?B?Z2tVMmJjdWI0NVMwRXRZa1FmSmJiL0hmWWNVN09UeU4zRFZYZ3lQVERubnJD?= =?utf-8?B?WUJTMXBPNlBZelluK0pYYTB1bVE3cktiNmxGVnA1RUVuTUZzdCtoWXpIZ0FV?= =?utf-8?B?c2ZadlNFQjY5VFI0NEVZTWtUMExTckg4MCtPZnZ0d0xKOUdUNU1aeWlCRGNT?= =?utf-8?B?eWJxVFlvSFVyRnN3OU45SldWVUNyV2ZCTVl1dkhtV1JkQldZQ1JBT1kzTCt2?= =?utf-8?B?bGZEU2xHQWNkeEtud2Z1ZWZKL1VvYnRxTzl0c2U0ck1wZ1h6aVBId3FYVi9r?= =?utf-8?B?YThJRkxWdlpNb0lTRzRRZDJyUitEUXJlMXdUcG1rWDhyNVUxcURxMjF3anl3?= =?utf-8?B?Z2VoUlZJSHN2bHhxUEw1dmtldGUwNEtkbHVyNEZsK2ZqazZaME90MGZCVWI0?= =?utf-8?B?NyszUE1lRlN0dEtIcjZjT24xWGlrOTFCY0R3UkZoeGN3UHJZbDJoL3R6dVBR?= =?utf-8?B?bTd2SFkwR2E0ODRpaHc1ZXZCdlRMSHFpTjBocURKampLVGRrWVdYa1hLOVBF?= =?utf-8?B?bTZCelJwV2tuVExlMDZpTnlqVEF0Z1ByUVF0Vm1lSTBJYkxkaFJGTlI4ZEp1?= =?utf-8?B?dk1hajhORFR2VWdXd1BRVWljZUlVOWN3S3NDTXg3eEpRT041U0hPdTVrOGFp?= =?utf-8?B?VFkzZGRueDE2RFM4OUVyZm8yanNqbmhtWjBIMms1cUh4ZUNjMHNYenYvTHhx?= =?utf-8?B?VGMwd2dCQ3hTaWhrdUFlSmNGNkhzM1UvbldHUXFZS20xZXNxOEVWQjhGZ2ZS?= =?utf-8?B?MDdBcXJ6TUY2MVd0WVgwZDlKZ0x1cEc0SFpHTzRyUGpkYTRJUGVhTVBmaU84?= =?utf-8?B?K0FVWmNlVEZvczRDcFJ0ZndvOFhqZGdHckRpSXNPa0pvbGg5NnV3a1ZkVW91?= =?utf-8?B?b3dpNE5Tb3QvUTJxd0hldE9DN3F2NjUxV1NXNHVoMTFNVm5ESTJYcGJUV0hC?= =?utf-8?B?THZQYU5SOEU2TWtTSHdRV1o0cjB0djVXN1h2R0RPNGRpbjZIeXIvTSsyN29S?= =?utf-8?B?eXBhTnkzN1JNNDZpR3QzcEMvbTF4bTZ6ZUNSVWNDR0FWcnBoRWNLVzBGcVhu?= =?utf-8?B?VCsrc3ZtVTdmVVJBTHZNNWczaHE0MnFUT2NsTmpGdHVwbFZ0S2tLYzUzeHAw?= =?utf-8?B?K0N6bVJEOEMwdy8waWQ0bFlzUjNXSEtjTi82QlIrSUxialZlak04VEdHdU92?= =?utf-8?B?Rk05RUtzQU1HS1JuMVBuUmR1S3BKYk5ET1RheGp1TVByOU9ZTXNzeW0wQzJ6?= =?utf-8?B?aE1vZHhiOEsxSlNPbERpQWVERGQ2Q0NXeXpBYnI1NHkvanlCb1pUaWtoM0V3?= =?utf-8?B?clF3OC8rTzdsYlJUQS9UL3gxdGE4NTVabUs0Y3FFZlR1NUQzQmtLdnZFRHA1?= =?utf-8?Q?tnso=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR11MB6522.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(7416014)(366016)(1800799024)(376014)(7053199007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MEdmTG1XSzRYM1g4RVA3cDR4L2xCSW55UEx3SURwOHlSV2xYSTFuZkk0MjdS?= =?utf-8?B?RU1nL0NHb093amF1NUJMMnRzUExrRTVNRDVnaHozN1I0VGxLL1hNV1ExZCs2?= =?utf-8?B?QXh2a2pSY2hxZ0YxenJtTUdEYzlnZ1p2NUpGczR3SHAwR2tQR010eVpWUjc5?= =?utf-8?B?QW5SYnpaOGZCT1pKcGpUNXZvbE1qd2ZSeUJnYlhza0NqTkhxSWlRek1EVmR2?= =?utf-8?B?V29EUmlmVSt6NGdoTzBnVmZ2T0N0QlliMURPMmpHbVJTNksvUDFXWnhnVlFT?= =?utf-8?B?VURNNFBFSVBmajJTWStOdVVzaTZ6aVNIYitIdGRTajlidlVJZEtuRmZZY0lJ?= =?utf-8?B?ZnZGVFVLNzJ6ZG94bjVOY0NRTktLclFORjFiRVB0TDB2d3dESkoxZzRNSjF0?= =?utf-8?B?ZWtIY3FucTZYZjhBMDdVYmFZeWZZNDhyRUUyRlcxcXgyTG5JeHQwRUdLRkFi?= =?utf-8?B?ODl5RkZOMnpxWVZXZFVNeTNDMVVIbFpaeDZjNXAxeVV0Sy9MS0NYTkpDSk1u?= =?utf-8?B?OTQrNWMwMjB3L0RyL1MxMGlDVzRKVUk4TGNWc1lwRllHMWV5SnFrVmhqUHhn?= =?utf-8?B?c3dXdWlHOFJUaThqT1pQSzB0dXRUY0dDb0ZyVHE4d3BwQVpFUlhBL0FxeTRW?= =?utf-8?B?T0UvRjBUaU9yb2FlaTczUnlGZnNRblhzWUMwSEE5LzA3NlJiWVJWdkl0Tm1x?= =?utf-8?B?cTZDeGRDU0FmN0RMSDhCU0I1bG50SldwNmh0TytodENENWljY1pHQ3N3L2xC?= =?utf-8?B?am5LWTNRRm05a2FheHJOYzBob003NS9qQzlWaDQrQTVBblZUVlJyak4rLzV2?= =?utf-8?B?b1NFMzl6anVRWVhlWXJQRWtEM0N5KzZoVGVWeHkzNlBtZ1R4bkFFU0cvYlFt?= =?utf-8?B?YVdLMkIvMlpZMEpUdG9uaHpLUmsyUEs4dlZJUzVQUXpmVFRYcVBTaHQ1dktF?= =?utf-8?B?QlFidmdydkVsNHM3SGVMNnp4SS9LTTcwQ3hzODJBTkN3NDNlRU1tVHFKMmtk?= =?utf-8?B?VUNJTkRZZ2dEdENTbWRjTDljQ2IzYlBGOWxnYWFpRk84NVZuZ2JKaytydHBj?= =?utf-8?B?Zm85V0Vma3RnRnYydkdqeDR0TWxXYS9YZHcxVmx6K2paTDM5eTQ5RFBDaXFQ?= =?utf-8?B?WjBzYTJqdnNEVmcvcENyOGNQN2NwUWRScnBzcWo2Zm9seWN0R2FiNEZ5bGNk?= =?utf-8?B?dGVqZ2FMdXRJeUI4Y2xvVmFadEo2WlhMMVBlZ2V6OEc5U013MW5PWmFYVmhn?= =?utf-8?B?Vy9QcjYveVFicUVHaSthZERUOFROazg4WTEyVzJKL3pGdUxZamNRU0J4ZkpB?= =?utf-8?B?R0toNzB6SDIvWm9Iekx1YjhUaHYzVUo3MnNvRHVNWXo5S3F0eTRPRlFzK3Bv?= =?utf-8?B?b1EybjNrRytlbFgzZnZTVHViYWNjYjFlT0ppV20wbWJkTXVtb3FJLzd2Z2Q0?= =?utf-8?B?K2IyVTBwaHptMHY5dGhyeFdvMmdWQ3I4VlJoWjBleUFVbVAvOEhCY0VNUGlo?= =?utf-8?B?T2N0SzFVSFEyQU5QNzVhWWQrY1NtVllJeXFwOEh4RE5aWHBaUG9nUjJhc3M2?= =?utf-8?B?bFdidm85ZVBOWWw4NHQxVlFrK05xbUIxcWV2cTZVRC8yL0RqblE4VDV2dmd5?= =?utf-8?B?M0ZmRENCejUrTjh4R1l2NGprN0h3b1N5cXIzUTgrV0VkK3JjWkcvb3FQeS9v?= =?utf-8?B?R2g3V3U2WHErK25EMTNLOXkxVnBJTTJnekZZS1JpZGNZZVBmaWU5TkVQNWc3?= =?utf-8?B?QkZZWDRlM0ZVZWJQV1lGUFV3MFArd0cvOWtKQnBpN3RuSUFRNFhPNitzOTNw?= =?utf-8?B?TEJwd21jWndqd1RCUk1JUXh2VWRmdW56bHZNSHovaG1CWW1GYitoZnpoeE1H?= =?utf-8?B?cHhtbkpTMTVFV0Z0RXdsMkFQdm5OZEFkZTIzMmtleW41WlV6V0YvcmNoSkl6?= =?utf-8?B?QS9tQUMxTU9ZVHRIcXhHUHU2bTFidEpjM1YwVENpbS9tUkxEVWw1R2dNUmZT?= =?utf-8?B?SVd2SnE4T1Urb2lyL1NOUXY3bGxvamQrK0Nlb1dYWURPMWorVVlGOXBKQnAr?= =?utf-8?B?VUdpT3pET0VzNWRkYTkvbUw0aExjL2VLZnRySWVjM1V3d0gxMFBqdElBeXJa?= =?utf-8?B?NzFlZUdMenlVWktlcTVhS2NrTXJxdnJ0akJnUUFFZHZaRXFtYW5CdzFYKy9M?= =?utf-8?B?U0xVdTgyZTh0bzV5anpQZGVqMitJTkIyOHFrRjNXa2ZHNVMxQTlSbjRjWS9H?= =?utf-8?B?QksxcEt1ZUhKc0p6MWNKV1NqK0x4cFh2NGVDK2tjWndaOTdka1U5bFRxazRk?= =?utf-8?B?L2l1TktwMDZndW5sTy9lVlpyYmdlU1dFLzJ2ckJVY0xHM050YWVlREpPRzFi?= =?utf-8?Q?RAmbYCM/Bd54jXfg=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: ef746286-481b-441d-3729-08de73821058 X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB6522.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 08:52:39.1976 (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: FLGot6+AyZ33Oc69GX1vAr5NOETz8m2MXI19vfpLEN7GHzEHLSB1DanKE6LBNo3geJarOVxb55E+0gyUKCoTnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH3PPF2B89F77E0 X-OriginatorOrg: intel.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gVHVlLCBGZWIgMjQsIDIwMjYgYXQgMTI6Mzk6MDZBTSArMDUzMCwgRWthbnNoIEd1cHRhIHdy b3RlOgo+IEFkZCBQUklNRSBkbWEtYnVmIGltcG9ydCBzdXBwb3J0IGZvciBRREEgR0VNIGJ1ZmZl ciBvYmplY3RzIGFuZCBpbnRlZ3JhdGUKPiBpdCB3aXRoIHRoZSBleGlzdGluZyBwZXItcHJvY2Vz cyBtZW1vcnkgbWFuYWdlciBhbmQgSU9NTVUgZGV2aWNlIG1vZGVsLgo+IAo+IFRoZSBpbXBsZW1l bnRhdGlvbiBleHRlbmRzIHFkYV9nZW1fb2JqIHRvIHJlcHJlc2VudCBpbXBvcnRlZCBkbWEtYnVm cywKPiBpbmNsdWRpbmcgZG1hX2J1ZiByZWZlcmVuY2VzLCBhdHRhY2htZW50IHN0YXRlLCBzY2F0 dGVyLWdhdGhlciB0YWJsZXMKPiBhbmQgYW4gaW1wb3J0ZWQgRE1BIGFkZHJlc3MgdXNlZCBmb3Ig RFNQLWZhY2luZyBib29rLWtlZXBpbmcuIFRoZQo+IHFkYV9nZW1fcHJpbWVfaW1wb3J0KCkgcGF0 aCBoYW5kbGVzIHJlaW1wb3J0cyBvZiBidWZmZXJzIG9yaWdpbmFsbHkKPiBleHBvcnRlZCBieSBR REEgYXMgd2VsbCBhcyBpbXBvcnRzIG9mIGV4dGVybmFsIGRtYS1idWZzLCBhdHRhY2hpbmcgdGhl bQo+IHRvIHRoZSBhc3NpZ25lZCBJT01NVSBkZXZpY2UgYW5kIG1hcHBpbmcgdGhlbSB0aHJvdWdo IHRoZSBtZW1vcnkgbWFuYWdlcgo+IGZvciBEU1AgYWNjZXNzLiBUaGUgR0VNIGZyZWUgcGF0aCBp cyB1cGRhdGVkIHRvIHVubWFwIGFuZCBkZXRhY2gKPiBpbXBvcnRlZCBidWZmZXJzIHdoaWxlIHBy ZXNlcnZpbmcgdGhlIGV4aXN0aW5nIGJlaGF2aW91ciBmb3IgbG9jYWxseQo+IGFsbG9jYXRlZCBt ZW1vcnkuCj4gCj4gVGhlIFBSSU1FIGZkLXRvLWhhbmRsZSBwYXRoIGlzIGltcGxlbWVudGVkIGlu IHFkYV9wcmltZV9mZF90b19oYW5kbGUoKSwKPiB3aGljaCByZWNvcmRzIHRoZSBjYWxsaW5nIGRy bV9maWxlIGluIGEgZHJpdmVyLXByaXZhdGUgaW1wb3J0IGNvbnRleHQKPiBiZWZvcmUgaW52b2tp bmcgdGhlIGNvcmUgRFJNIGhlbHBlcnMuIFRoZSBHRU0gaW1wb3J0IGNhbGxiYWNrIHJldHJpZXZl cwo+IHRoaXMgY29udGV4dCB0byBlbnN1cmUgdGhhdCBhbiBJT01NVSBkZXZpY2UgaXMgYXNzaWdu ZWQgdG8gdGhlIHByb2Nlc3MKPiBhbmQgdGhhdCBpbXBvcnRlZCBidWZmZXJzIGZvbGxvdyB0aGUg c2FtZSBwZXItcHJvY2VzcyBJT01NVSBzZWxlY3Rpb24KPiBydWxlcyBhcyBuYXRpdmVseSBhbGxv Y2F0ZWQgR0VNIG9iamVjdHMuCj4gCj4gVGhpcyBwYXRjaCBwcmVwYXJlcyB0aGUgZHJpdmVyIGZv ciBpbnRlcm9wZXJhYmxlIGJ1ZmZlciBzaGFyaW5nIGJldHdlZW4KPiBRREEgYW5kIG90aGVyIGRt YS1idWYgY2FwYWJsZSBzdWJzeXN0ZW1zIHdoaWxlIGtlZXBpbmcgSU9NTVUgbWFwcGluZyBhbmQK PiBsaWZldGltZSBoYW5kbGluZyBjb25zaXN0ZW50IHdpdGggdGhlIGV4aXN0aW5nIEdFTSBhbGxv Y2F0aW9uIGZsb3cuCj4gCj4gU2lnbmVkLW9mZi1ieTogRWthbnNoIEd1cHRhIDxla2Fuc2guZ3Vw dGFAb3NzLnF1YWxjb21tLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9hY2NlbC9xZGEvTWFrZWZpbGUg ICAgICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2FjY2VsL3FkYS9xZGFfZHJ2LmMgICAgICAg ICAgICB8ICAgOCArKwo+ICBkcml2ZXJzL2FjY2VsL3FkYS9xZGFfZHJ2LmggICAgICAgICAgICB8 ICAgNCArCj4gIGRyaXZlcnMvYWNjZWwvcWRhL3FkYV9nZW0uYyAgICAgICAgICAgIHwgIDYwICsr KysrKystLS0KPiAgZHJpdmVycy9hY2NlbC9xZGEvcWRhX2dlbS5oICAgICAgICAgICAgfCAgMTAg KysKPiAgZHJpdmVycy9hY2NlbC9xZGEvcWRhX2lvY3RsLmMgICAgICAgICAgfCAgIDcgKysKPiAg ZHJpdmVycy9hY2NlbC9xZGEvcWRhX2lvY3RsLmggICAgICAgICAgfCAgMTUgKysrCj4gIGRyaXZl cnMvYWNjZWwvcWRhL3FkYV9tZW1vcnlfbWFuYWdlci5jIHwgIDQyICsrKysrKy0KPiAgZHJpdmVy cy9hY2NlbC9xZGEvcWRhX21lbW9yeV9tYW5hZ2VyLmggfCAgMTQgKysrCj4gIGRyaXZlcnMvYWNj ZWwvcWRhL3FkYV9wcmltZS5jICAgICAgICAgIHwgMTk0ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+ICBkcml2ZXJzL2FjY2VsL3FkYS9xZGFfcHJpbWUuaCAgICAgICAgICB8ICA0 MyArKysrKysrKwo+ICAxMSBmaWxlcyBjaGFuZ2VkLCAzNzcgaW5zZXJ0aW9ucygrKSwgMjEgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNjZWwvcWRhL01ha2VmaWxlIGIv ZHJpdmVycy9hY2NlbC9xZGEvTWFrZWZpbGUKPiBpbmRleCA4OGMzMjRmYTM4MmMuLjgyODZmNTI3 OTc0OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjY2VsL3FkYS9NYWtlZmlsZQo+ICsrKyBiL2Ry aXZlcnMvYWNjZWwvcWRhL01ha2VmaWxlCj4gQEAgLTEzLDUgKzEzLDYgQEAgcWRhLXkgOj0gXAo+ ICAJcWRhX2lvY3RsLm8gXAo+ICAJcWRhX2dlbS5vIFwKPiAgCXFkYV9tZW1vcnlfZG1hLm8gXAo+ ICsJcWRhX3ByaW1lLm8gXAo+ICAKPiAgb2JqLSQoQ09ORklHX0RSTV9BQ0NFTF9RREFfQ09NUFVU RV9CVVMpICs9IHFkYV9jb21wdXRlX2J1cy5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNjZWwv cWRhL3FkYV9kcnYuYyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9kcnYuYwo+IGluZGV4IDBkZDBl MmJiMmMwZi4uNGFkZWUwMGIxZjJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvYWNjZWwvcWRhL3Fk YV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9kcnYuYwo+IEBAIC0xMCw5ICsx MCwxMSBAQAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1f aW9jdGwuaD4KPiAgI2luY2x1ZGUgPGRybS9xZGFfYWNjZWwuaD4KPiArI2luY2x1ZGUgPGRybS9k cm1fcHJpbWUuaD4KPiAgCj4gICNpbmNsdWRlICJxZGFfZHJ2LmgiCj4gICNpbmNsdWRlICJxZGFf Z2VtLmgiCj4gKyNpbmNsdWRlICJxZGFfcHJpbWUuaCIKPiAgI2luY2x1ZGUgInFkYV9pb2N0bC5o Igo+ICAjaW5jbHVkZSAicWRhX3JwbXNnLmgiCj4gIAo+IEBAIC0xNjYsNiArMTY4LDggQEAgc3Rh dGljIHN0cnVjdCBkcm1fZHJpdmVyIHFkYV9kcm1fZHJpdmVyID0gewo+ICAJLnBvc3RjbG9zZQkJ PSBxZGFfcG9zdGNsb3NlLAo+ICAJLmlvY3RscyA9IHFkYV9pb2N0bHMsCj4gIAkubnVtX2lvY3Rs cyA9IEFSUkFZX1NJWkUocWRhX2lvY3RscyksCj4gKwkuZ2VtX3ByaW1lX2ltcG9ydCA9IHFkYV9n ZW1fcHJpbWVfaW1wb3J0LAo+ICsJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IHFkYV9pb2N0bF9wcmlt ZV9mZF90b19oYW5kbGUsCj4gIAkubmFtZSA9IERSSVZFUl9OQU1FLAo+ICAJLmRlc2MgPSAiUXVh bGNvbW0gRFNQIEFjY2VsZXJhdG9yIERyaXZlciIsCj4gIH07Cj4gQEAgLTE3NCw2ICsxNzgsNyBA QCBzdGF0aWMgdm9pZCBjbGVhbnVwX2RybV9wcml2YXRlKHN0cnVjdCBxZGFfZGV2ICpxZGV2KQo+ ICB7Cj4gIAlpZiAocWRldi0+ZHJtX3ByaXYpIHsKPiAgCQlxZGFfZGJnKHFkZXYsICJDbGVhbmlu ZyB1cCBEUk0gcHJpdmF0ZSBkYXRhXG4iKTsKPiArCQltdXRleF9kZXN0cm95KCZxZGV2LT5kcm1f cHJpdi0+aW1wb3J0X2xvY2spOwo+ICAJCWtmcmVlKHFkZXYtPmRybV9wcml2KTsKPiAgCX0KPiAg fQo+IEBAIC0yNDAsNiArMjQ1LDkgQEAgc3RhdGljIGludCBpbml0X2RybV9wcml2YXRlKHN0cnVj dCBxZGFfZGV2ICpxZGV2KQo+ICAJaWYgKCFxZGV2LT5kcm1fcHJpdikKPiAgCQlyZXR1cm4gLUVO T01FTTsKPiAgCj4gKwltdXRleF9pbml0KCZxZGV2LT5kcm1fcHJpdi0+aW1wb3J0X2xvY2spOwo+ ICsJcWRldi0+ZHJtX3ByaXYtPmN1cnJlbnRfaW1wb3J0X2ZpbGVfcHJpdiA9IE5VTEw7Cj4gKwo+ ICAJcWRhX2RiZyhxZGV2LCAiRFJNIHByaXZhdGUgZGF0YSBpbml0aWFsaXplZCBzdWNjZXNzZnVs bHlcbiIpOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY2NlbC9x ZGEvcWRhX2Rydi5oIGIvZHJpdmVycy9hY2NlbC9xZGEvcWRhX2Rydi5oCj4gaW5kZXggOGEyY2Q0 NzQ5NThiLi5iYjBkZDdlMjg0YzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9hY2NlbC9xZGEvcWRh X2Rydi5oCj4gKysrIGIvZHJpdmVycy9hY2NlbC9xZGEvcWRhX2Rydi5oCj4gQEAgLTY0LDYgKzY0 LDEwIEBAIHN0cnVjdCBxZGFfZHJtX3ByaXYgewo+ICAJc3RydWN0IHFkYV9tZW1vcnlfbWFuYWdl ciAqaW9tbXVfbWdyOwo+ICAJLyogQmFjay1wb2ludGVyIHRvIHFkYV9kZXYgKi8KPiAgCXN0cnVj dCBxZGFfZGV2ICpxZGV2Owo+ICsJLyogTG9jayBwcm90ZWN0aW5nIGltcG9ydCBjb250ZXh0ICov Cj4gKwlzdHJ1Y3QgbXV0ZXggaW1wb3J0X2xvY2s7Cj4gKwkvKiBDdXJyZW50IGZpbGVfcHJpdiBk dXJpbmcgcHJpbWUgaW1wb3J0ICovCj4gKwlzdHJ1Y3QgZHJtX2ZpbGUgKmN1cnJlbnRfaW1wb3J0 X2ZpbGVfcHJpdjsKPiAgfTsKPiAgCj4gIC8qIHN0cnVjdCBxZGFfZGV2IC0gTWFpbiBkZXZpY2Ug c3RydWN0dXJlIGZvciBRREEgZHJpdmVyICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNjZWwv cWRhL3FkYV9nZW0uYyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9nZW0uYwo+IGluZGV4IGJiZDU0 ZTI1MDJkMy4uMzcyNzllOGI0NmZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvYWNjZWwvcWRhL3Fk YV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9nZW0uYwo+IEBAIC04LDYgKzgs NyBAQAo+ICAjaW5jbHVkZSAicWRhX2dlbS5oIgo+ICAjaW5jbHVkZSAicWRhX21lbW9yeV9tYW5h Z2VyLmgiCj4gICNpbmNsdWRlICJxZGFfbWVtb3J5X2RtYS5oIgo+ICsjaW5jbHVkZSAicWRhX3By aW1lLmgiCj4gIAo+ICBzdGF0aWMgaW50IHZhbGlkYXRlX2dlbV9vYmpfZm9yX21tYXAoc3RydWN0 IHFkYV9nZW1fb2JqICpxZGFfZ2VtX29iaikKPiAgewo+IEBAIC0xNSwyMyArMTYsMjkgQEAgc3Rh dGljIGludCB2YWxpZGF0ZV9nZW1fb2JqX2Zvcl9tbWFwKHN0cnVjdCBxZGFfZ2VtX29iaiAqcWRh X2dlbV9vYmopCj4gIAkJcWRhX2VycihOVUxMLCAiSW52YWxpZCBHRU0gb2JqZWN0IHNpemVcbiIp Owo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+IC0JaWYgKCFxZGFfZ2VtX29iai0+aW9tbXVf ZGV2IHx8ICFxZGFfZ2VtX29iai0+aW9tbXVfZGV2LT5kZXYpIHsKPiAtCQlxZGFfZXJyKE5VTEws ICJBbGxvY2F0ZWQgYnVmZmVyIG1pc3NpbmcgSU9NTVUgZGV2aWNlXG4iKTsKPiAtCQlyZXR1cm4g LUVJTlZBTDsKPiAtCX0KPiAtCWlmICghcWRhX2dlbV9vYmotPmlvbW11X2Rldi0+ZGV2KSB7Cj4g LQkJcWRhX2VycihOVUxMLCAiQWxsb2NhdGVkIGJ1ZmZlciBtaXNzaW5nIElPTU1VIGRldmljZVxu Iik7Cj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQl9Cj4gLQlpZiAoIXFkYV9nZW1fb2JqLT52aXJ0 KSB7Cj4gLQkJcWRhX2VycihOVUxMLCAiQWxsb2NhdGVkIGJ1ZmZlciBtaXNzaW5nIHZpcnR1YWwg YWRkcmVzc1xuIik7Cj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQl9Cj4gLQlpZiAocWRhX2dlbV9v YmotPmRtYV9hZGRyID09IDApIHsKPiAtCQlxZGFfZXJyKE5VTEwsICJBbGxvY2F0ZWQgYnVmZmVy IG1pc3NpbmcgRE1BIGFkZHJlc3NcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+ICsJaWYgKHFk YV9nZW1fb2JqLT5pc19pbXBvcnRlZCkgewo+ICsJCWlmICghcWRhX2dlbV9vYmotPnNndCkgewo+ ICsJCQlxZGFfZXJyKE5VTEwsICJJbXBvcnRlZCBidWZmZXIgbWlzc2luZyBzZ3RcbiIpOwo+ICsJ CQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9Cj4gKwkJaWYgKCFxZGFfZ2VtX29iai0+aW9tbXVfZGV2 IHx8ICFxZGFfZ2VtX29iai0+aW9tbXVfZGV2LT5kZXYpIHsKPiArCQkJcWRhX2VycihOVUxMLCAi SW1wb3J0ZWQgYnVmZmVyIG1pc3NpbmcgSU9NTVUgZGV2aWNlXG4iKTsKPiArCQkJcmV0dXJuIC1F SU5WQUw7Cj4gKwkJfQo+ICsJfSBlbHNlIHsKPiArCQlpZiAoIXFkYV9nZW1fb2JqLT5pb21tdV9k ZXYgfHwgIXFkYV9nZW1fb2JqLT5pb21tdV9kZXYtPmRldikgewo+ICsJCQlxZGFfZXJyKE5VTEws ICJBbGxvY2F0ZWQgYnVmZmVyIG1pc3NpbmcgSU9NTVUgZGV2aWNlXG4iKTsKPiArCQkJcmV0dXJu IC1FSU5WQUw7Cj4gKwkJfQo+ICsJCWlmICghcWRhX2dlbV9vYmotPnZpcnQpIHsKPiArCQkJcWRh X2VycihOVUxMLCAiQWxsb2NhdGVkIGJ1ZmZlciBtaXNzaW5nIHZpcnR1YWwgYWRkcmVzc1xuIik7 Cj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCQlpZiAocWRhX2dlbV9vYmotPmRtYV9h ZGRyID09IDApIHsKPiArCQkJcWRhX2VycihOVUxMLCAiQWxsb2NhdGVkIGJ1ZmZlciBtaXNzaW5n IERNQSBhZGRyZXNzXG4iKTsKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICAJfQo+IC0K PiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC02MCw5ICs2NywyMSBAQCB2b2lkIHFkYV9nZW1f ZnJlZV9vYmplY3Qoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqKQo+ICAJc3RydWN0IHFk YV9nZW1fb2JqICpxZGFfZ2VtX29iaiA9IHRvX3FkYV9nZW1fb2JqKGdlbV9vYmopOwo+ICAJc3Ry dWN0IHFkYV9kcm1fcHJpdiAqZHJtX3ByaXYgPSBnZXRfZHJtX3ByaXZfZnJvbV9kZXZpY2UoZ2Vt X29iai0+ZGV2KTsKPiAgCj4gLQlpZiAocWRhX2dlbV9vYmotPnZpcnQpIHsKPiAtCQlpZiAoZHJt X3ByaXYgJiYgZHJtX3ByaXYtPmlvbW11X21ncikKPiArCWlmIChxZGFfZ2VtX29iai0+aXNfaW1w b3J0ZWQpIHsKPiArCQlpZiAocWRhX2dlbV9vYmotPmF0dGFjaG1lbnQgJiYgcWRhX2dlbV9vYmot PnNndCkKPiArCQkJZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50X3VubG9ja2VkKHFkYV9nZW1fb2Jq LT5hdHRhY2htZW50LAo+ICsJCQkJCQkJICBxZGFfZ2VtX29iai0+c2d0LCBETUFfQklESVJFQ1RJ T05BTCk7Cj4gKwkJaWYgKHFkYV9nZW1fb2JqLT5hdHRhY2htZW50KQo+ICsJCQlkbWFfYnVmX2Rl dGFjaChxZGFfZ2VtX29iai0+ZG1hX2J1ZiwgcWRhX2dlbV9vYmotPmF0dGFjaG1lbnQpOwo+ICsJ CWlmIChxZGFfZ2VtX29iai0+ZG1hX2J1ZikKPiArCQkJZG1hX2J1Zl9wdXQocWRhX2dlbV9vYmot PmRtYV9idWYpOwo+ICsJCWlmIChxZGFfZ2VtX29iai0+aW9tbXVfZGV2ICYmIGRybV9wcml2ICYm IGRybV9wcml2LT5pb21tdV9tZ3IpCj4gIAkJCXFkYV9tZW1vcnlfbWFuYWdlcl9mcmVlKGRybV9w cml2LT5pb21tdV9tZ3IsIHFkYV9nZW1fb2JqKTsKPiArCX0gZWxzZSB7Cj4gKwkJaWYgKHFkYV9n ZW1fb2JqLT52aXJ0KSB7Cj4gKwkJCWlmIChkcm1fcHJpdiAmJiBkcm1fcHJpdi0+aW9tbXVfbWdy KQo+ICsJCQkJcWRhX21lbW9yeV9tYW5hZ2VyX2ZyZWUoZHJtX3ByaXYtPmlvbW11X21nciwgcWRh X2dlbV9vYmopOwo+ICsJCX0KPiAgCX0KPiAgCj4gIAlkcm1fZ2VtX29iamVjdF9yZWxlYXNlKGdl bV9vYmopOwo+IEBAIC0xNzQsNiArMTkzLDExIEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqcWRh X2dlbV9jcmVhdGVfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAo+ICAJcWRhX2dl bV9vYmogPSBxZGFfZ2VtX2FsbG9jX29iamVjdChkcm1fZGV2LCBhbGlnbmVkX3NpemUpOwo+ICAJ aWYgKElTX0VSUihxZGFfZ2VtX29iaikpCj4gIAkJcmV0dXJuIChzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKilxZGFfZ2VtX29iajsKPiArCXFkYV9nZW1fb2JqLT5pc19pbXBvcnRlZCA9IGZhbHNlOwo+ ICsJcWRhX2dlbV9vYmotPmRtYV9idWYgPSBOVUxMOwo+ICsJcWRhX2dlbV9vYmotPmF0dGFjaG1l bnQgPSBOVUxMOwo+ICsJcWRhX2dlbV9vYmotPnNndCA9IE5VTEw7Cj4gKwlxZGFfZ2VtX29iai0+ aW1wb3J0ZWRfZG1hX2FkZHIgPSAwOwo+ICAKPiAgCXJldCA9IHFkYV9tZW1vcnlfbWFuYWdlcl9h bGxvYyhpb21tdV9tZ3IsIHFkYV9nZW1fb2JqLCBmaWxlX3ByaXYpOwo+ICAJaWYgKHJldCkgewo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjY2VsL3FkYS9xZGFfZ2VtLmggYi9kcml2ZXJzL2FjY2Vs L3FkYS9xZGFfZ2VtLmgKPiBpbmRleCBjYmQ1ZDBhNThmYTQuLjM1NjZjNWIyYWQ4OCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2FjY2VsL3FkYS9xZGFfZ2VtLmgKPiArKysgYi9kcml2ZXJzL2FjY2Vs L3FkYS9xZGFfZ2VtLmgKPiBAQCAtMzEsNiArMzEsMTYgQEAgc3RydWN0IHFkYV9nZW1fb2JqIHsK PiAgCXNpemVfdCBzaXplOwo+ICAJLyogSU9NTVUgZGV2aWNlIHRoYXQgcGVyZm9ybWVkIHRoZSBh bGxvY2F0aW9uICovCj4gIAlzdHJ1Y3QgcWRhX2lvbW11X2RldmljZSAqaW9tbXVfZGV2Owo+ICsJ LyogVHJ1ZSBpZiBidWZmZXIgaXMgaW1wb3J0ZWQsIGZhbHNlIGlmIGFsbG9jYXRlZCAqLwo+ICsJ Ym9vbCBpc19pbXBvcnRlZDsKPiArCS8qIFJlZmVyZW5jZSB0byBpbXBvcnRlZCBkbWFfYnVmICov Cj4gKwlzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZjsKPiArCS8qIERNQSBidWYgYXR0YWNobWVudCAq Lwo+ICsJc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNobWVudDsKPiArCS8qIFNjYXR0 ZXItZ2F0aGVyIHRhYmxlICovCj4gKwlzdHJ1Y3Qgc2dfdGFibGUgKnNndDsKPiArCS8qIERNQSBh ZGRyZXNzIG9mIGltcG9ydGVkIGJ1ZmZlciAqLwo+ICsJZG1hX2FkZHJfdCBpbXBvcnRlZF9kbWFf YWRkcjsKPiAgfTsKPiAgCj4gIC8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNjZWwvcWRhL3Fk YV9pb2N0bC5jIGIvZHJpdmVycy9hY2NlbC9xZGEvcWRhX2lvY3RsLmMKPiBpbmRleCBlZjNjOWM2 OTFjYjcuLmQ5MTk4MzA0OGQ2YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjY2VsL3FkYS9xZGFf aW9jdGwuYwo+ICsrKyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9pb2N0bC5jCj4gQEAgLTUsNiAr NSw3IEBACj4gICNpbmNsdWRlIDxkcm0vcWRhX2FjY2VsLmg+Cj4gICNpbmNsdWRlICJxZGFfZHJ2 LmgiCj4gICNpbmNsdWRlICJxZGFfaW9jdGwuaCIKPiArI2luY2x1ZGUgInFkYV9wcmltZS5oIgo+ ICAKPiAgc3RhdGljIGludCBxZGFfdmFsaWRhdGVfYW5kX2dldF9jb250ZXh0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+ICAJCQkJCXN0cnVjdCBx ZGFfZGV2ICoqcWRldiwgc3RydWN0IHFkYV91c2VyICoqcWRhX3VzZXIpCj4gQEAgLTc4LDMgKzc5 LDkgQEAgaW50IHFkYV9pb2N0bF9nZW1fbW1hcF9vZmZzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWwKPiAgCWRybV9nZW1fb2JqZWN0X3B1dChnZW1f b2JqKTsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiArCj4gK2ludCBxZGFfaW9jdGxfcHJpbWVfZmRf dG9faGFuZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2LCBpbnQgcHJpbWVfZmQsCj4gKwkJCQkgdTMyICpoYW5kbGUpCj4gK3sKPiArCXJldHVybiBx ZGFfcHJpbWVfZmRfdG9faGFuZGxlKGRldiwgZmlsZV9wcml2LCBwcmltZV9mZCwgaGFuZGxlKTsK PiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjY2VsL3FkYS9xZGFfaW9jdGwuaCBiL2RyaXZl cnMvYWNjZWwvcWRhL3FkYV9pb2N0bC5oCj4gaW5kZXggNmJmM2JjZDI4YzBlLi5kNDU0MjU2ZjVm YzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9hY2NlbC9xZGEvcWRhX2lvY3RsLmgKPiArKysgYi9k cml2ZXJzL2FjY2VsL3FkYS9xZGFfaW9jdGwuaAo+IEBAIC0yMyw0ICsyMywxOSBAQAo+ICAgKi8K PiAgaW50IHFkYV9pb2N0bF9xdWVyeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4gIAo+ICsvKioKPiArICogcWRhX2lvY3Rs X3ByaW1lX2ZkX3RvX2hhbmRsZSAtIElPQ1RMIGhhbmRsZXIgZm9yIFBSSU1FIEZEIHRvIGhhbmRs ZSBjb252ZXJzaW9uCj4gKyAqIEBkZXY6IERSTSBkZXZpY2Ugc3RydWN0dXJlCj4gKyAqIEBmaWxl X3ByaXY6IERSTSBmaWxlIHByaXZhdGUgZGF0YQo+ICsgKiBAcHJpbWVfZmQ6IEZpbGUgZGVzY3Jp cHRvciBvZiB0aGUgUFJJTUUgYnVmZmVyCj4gKyAqIEBoYW5kbGU6IE91dHB1dCBwYXJhbWV0ZXIg Zm9yIHRoZSBHRU0gaGFuZGxlCj4gKyAqCj4gKyAqIFRoaXMgSU9DVEwgaGFuZGxlciBjb252ZXJ0 cyBhIFBSSU1FIGZpbGUgZGVzY3JpcHRvciB0byBhIEdFTSBoYW5kbGUuCj4gKyAqIEl0IHNlcnZl cyBhcyBib3RoIHRoZSBEUk0gZHJpdmVyIGNhbGxiYWNrIGFuZCBjYW4gYmUgdXNlZCBkaXJlY3Rs eS4KPiArICoKPiArICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUg b24gZmFpbHVyZQo+ICsgKi8KPiAraW50IHFkYV9pb2N0bF9wcmltZV9mZF90b19oYW5kbGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gKwkJCQkg aW50IHByaW1lX2ZkLCB1MzIgKmhhbmRsZSk7Cj4gKwo+ICAjZW5kaWYgLyogX1FEQV9JT0NUTF9I ICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9tZW1vcnlfbWFuYWdlci5j IGIvZHJpdmVycy9hY2NlbC9xZGEvcWRhX21lbW9yeV9tYW5hZ2VyLmMKPiBpbmRleCBlMjI1NjY3 NTU3ZWUuLjNmZDIwZjE3YzU3YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjY2VsL3FkYS9xZGFf bWVtb3J5X21hbmFnZXIuYwo+ICsrKyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9tZW1vcnlfbWFu YWdlci5jCj4gQEAgLTE1NCw4ICsxNTQsOCBAQCBzdGF0aWMgc3RydWN0IHFkYV9pb21tdV9kZXZp Y2UgKmdldF9wcm9jZXNzX2lvbW11X2RldmljZShzdHJ1Y3QgcWRhX21lbW9yeV9tYW5hZwo+ICAJ cmV0dXJuIHFkYV9wcml2LT5hc3NpZ25lZF9pb21tdV9kZXY7Cj4gIH0KPiAgCj4gLXN0YXRpYyBp bnQgcWRhX21lbW9yeV9tYW5hZ2VyX2Fzc2lnbl9kZXZpY2Uoc3RydWN0IHFkYV9tZW1vcnlfbWFu YWdlciAqbWVtX21nciwKPiAtCQkJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4g K2ludCBxZGFfbWVtb3J5X21hbmFnZXJfYXNzaWduX2RldmljZShzdHJ1Y3QgcWRhX21lbW9yeV9t YW5hZ2VyICptZW1fbWdyLAo+ICsJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikK PiAgewo+ICAJc3RydWN0IHFkYV9maWxlX3ByaXYgKnFkYV9wcml2Owo+ICAJc3RydWN0IHFkYV9p b21tdV9kZXZpY2UgKnNlbGVjdGVkX2RldiA9IE5VTEw7Cj4gQEAgLTIyMyw2ICsyMjMsMzUgQEAg c3RhdGljIHN0cnVjdCBxZGFfaW9tbXVfZGV2aWNlICpnZXRfb3JfYXNzaWduX2lvbW11X2Rldmlj ZShzdHJ1Y3QgcWRhX21lbW9yeV9tYW4KPiAgCXJldHVybiBOVUxMOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgaW50IHFkYV9tZW1vcnlfbWFuYWdlcl9tYXBfaW1wb3J0ZWQoc3RydWN0IHFkYV9tZW1vcnlf bWFuYWdlciAqbWVtX21nciwKPiArCQkJCQkgICBzdHJ1Y3QgcWRhX2dlbV9vYmogKmdlbV9vYmos Cj4gKwkJCQkJICAgc3RydWN0IHFkYV9pb21tdV9kZXZpY2UgKmlvbW11X2RldikKPiArewo+ICsJ c3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKPiArCWRtYV9hZGRyX3QgZG1hX2FkZHI7Cj4gKwlpbnQg cmV0ID0gMDsKPiArCj4gKwlpZiAoIWdlbV9vYmotPmlzX2ltcG9ydGVkIHx8ICFnZW1fb2JqLT5z Z3QgfHwgIWlvbW11X2Rldikgewo+ICsJCXFkYV9lcnIoTlVMTCwgIkludmFsaWQgcGFyYW1ldGVy cyBmb3IgaW1wb3J0ZWQgYnVmZmVyIG1hcHBpbmdcbiIpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ ICsJfQo+ICsKPiArCWdlbV9vYmotPmlvbW11X2RldiA9IGlvbW11X2RldjsKPiArCj4gKwlzZyA9 IGdlbV9vYmotPnNndC0+c2dsOwo+ICsJaWYgKHNnKSB7Cj4gKwkJZG1hX2FkZHIgPSBzZ19kbWFf YWRkcmVzcyhzZyk7Cj4gKwkJZG1hX2FkZHIgKz0gKCh1NjQpaW9tbXVfZGV2LT5zaWQgPDwgMzIp Owo+ICsKPiArCQlnZW1fb2JqLT5pbXBvcnRlZF9kbWFfYWRkciA9IGRtYV9hZGRyOwo+ICsJfSBl bHNlIHsKPiArCQlxZGFfZXJyKE5VTEwsICJJbnZhbGlkIHNjYXR0ZXItZ2F0aGVyIGxpc3QgZm9y IGltcG9ydGVkIGJ1ZmZlclxuIik7Cj4gKwkJcmV0ID0gLUVJTlZBTDsKPiArCX0KPiArCj4gKwly ZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICBpbnQgcWRhX21lbW9yeV9tYW5hZ2VyX2FsbG9jKHN0cnVj dCBxZGFfbWVtb3J5X21hbmFnZXIgKm1lbV9tZ3IsIHN0cnVjdCBxZGFfZ2VtX29iaiAqZ2VtX29i aiwKPiAgCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+IEBAIC0yNDgs NyArMjc3LDEwIEBAIGludCBxZGFfbWVtb3J5X21hbmFnZXJfYWxsb2Moc3RydWN0IHFkYV9tZW1v cnlfbWFuYWdlciAqbWVtX21nciwgc3RydWN0IHFkYV9nZW1fCj4gIAkJcmV0dXJuIC1FTk9NRU07 Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gcWRhX2RtYV9hbGxvYyhzZWxlY3RlZF9kZXYsIGdlbV9vYmos IHNpemUpOwo+ICsJaWYgKGdlbV9vYmotPmlzX2ltcG9ydGVkKQo+ICsJCXJldCA9IHFkYV9tZW1v cnlfbWFuYWdlcl9tYXBfaW1wb3J0ZWQobWVtX21nciwgZ2VtX29iaiwgc2VsZWN0ZWRfZGV2KTsK PiArCWVsc2UKPiArCQlyZXQgPSBxZGFfZG1hX2FsbG9jKHNlbGVjdGVkX2RldiwgZ2VtX29iaiwg c2l6ZSk7Cj4gIAo+ICAJaWYgKHJldCkgewo+ICAJCXFkYV9lcnIoTlVMTCwgIkFsbG9jYXRpb24g ZmFpbGVkOiBzaXplPSV6dSwgZGV2aWNlX2lkPSV1LCByZXQ9JWRcbiIsCj4gQEAgLTI2OCw2ICsz MDAsMTAgQEAgdm9pZCBxZGFfbWVtb3J5X21hbmFnZXJfZnJlZShzdHJ1Y3QgcWRhX21lbW9yeV9t YW5hZ2VyICptZW1fbWdyLCBzdHJ1Y3QgcWRhX2dlbV8KPiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+ ICsJaWYgKGdlbV9vYmotPmlzX2ltcG9ydGVkKSB7Cj4gKwkJcWRhX2RiZyhOVUxMLCAiRnJlZWQg aW1wb3J0ZWQgYnVmZmVyIHRyYWNraW5nIChubyBETUEgZnJlZSBuZWVkZWQpXG4iKTsKPiArCQly ZXR1cm47Cj4gKwl9Cj4gIAlxZGFfZG1hX2ZyZWUoZ2VtX29iaik7Cj4gIH0KPiAgCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9tZW1vcnlfbWFuYWdlci5oIGIvZHJpdmVycy9h Y2NlbC9xZGEvcWRhX21lbW9yeV9tYW5hZ2VyLmgKPiBpbmRleCBiYWM0NDI4NGVmOTguLmY2Yzc5 NjNjZWM0MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2FjY2VsL3FkYS9xZGFfbWVtb3J5X21hbmFn ZXIuaAo+ICsrKyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9tZW1vcnlfbWFuYWdlci5oCj4gQEAg LTEwNiw2ICsxMDYsMjAgQEAgaW50IHFkYV9tZW1vcnlfbWFuYWdlcl9yZWdpc3Rlcl9kZXZpY2Uo c3RydWN0IHFkYV9tZW1vcnlfbWFuYWdlciAqbWVtX21nciwKPiAgdm9pZCBxZGFfbWVtb3J5X21h bmFnZXJfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IHFkYV9tZW1vcnlfbWFuYWdlciAqbWVtX21n ciwKPiAgCQkJCQkgIHN0cnVjdCBxZGFfaW9tbXVfZGV2aWNlICppb21tdV9kZXYpOwo+ICAKPiAr LyoqCj4gKyAqIHFkYV9tZW1vcnlfbWFuYWdlcl9hc3NpZ25fZGV2aWNlKCkgLSBBc3NpZ24gYW4g SU9NTVUgZGV2aWNlIHRvIGEgcHJvY2Vzcwo+ICsgKiBAbWVtX21ncjogUG9pbnRlciB0byBtZW1v cnkgbWFuYWdlcgo+ICsgKiBAZmlsZV9wcml2OiBEUk0gZmlsZSBwcml2YXRlIGRhdGEgZm9yIHBy b2Nlc3MgYXNzb2NpYXRpb24KPiArICoKPiArICogQXNzaWducyBhbiBJT01NVSBkZXZpY2UgdG8g dGhlIGNhbGxpbmcgcHJvY2Vzcy4gSWYgdGhlIHByb2Nlc3MgYWxyZWFkeSBoYXMKPiArICogYSBk ZXZpY2UgYXNzaWduZWQsIHJldHVybnMgc3VjY2Vzcy4gSWYgYW5vdGhlciBmaWxlIGRlc2NyaXB0 b3IgZnJvbSB0aGUgc2FtZQo+ICsgKiBQSUQgaGFzIGEgZGV2aWNlLCByZXVzZXMgaXQuIE90aGVy d2lzZSwgZmluZHMgYW4gYXZhaWxhYmxlIGRldmljZSBhbmQgYXNzaWducyBpdC4KPiArICoKPiAr ICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZQo+ ICsgKi8KPiAraW50IHFkYV9tZW1vcnlfbWFuYWdlcl9hc3NpZ25fZGV2aWNlKHN0cnVjdCBxZGFf bWVtb3J5X21hbmFnZXIgKm1lbV9tZ3IsCj4gKwkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2KTsKPiArCj4gIC8qKgo+ICAgKiBxZGFfbWVtb3J5X21hbmFnZXJfYWxsb2MoKSAtIEFs bG9jYXRlIG1lbW9yeSBmb3IgYSBHRU0gb2JqZWN0Cj4gICAqIEBtZW1fbWdyOiBQb2ludGVyIHRv IG1lbW9yeSBtYW5hZ2VyCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9wcmlt ZS5jIGIvZHJpdmVycy9hY2NlbC9xZGEvcWRhX3ByaW1lLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uM2QyMzg0MmU0OGJiCj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL2RyaXZlcnMvYWNjZWwvcWRhL3FkYV9wcmltZS5jCj4gQEAgLTAsMCArMSwxOTQgQEAKPiAr Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQo+ICsvLyBDb3B5cmlnaHQg KGMpIFF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy4K PiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW1lLmg+ Cj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGlu Zy5oPgo+ICsjaW5jbHVkZSAicWRhX2Rydi5oIgo+ICsjaW5jbHVkZSAicWRhX2dlbS5oIgo+ICsj aW5jbHVkZSAicWRhX3ByaW1lLmgiCj4gKyNpbmNsdWRlICJxZGFfbWVtb3J5X21hbmFnZXIuaCIK PiArCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmNoZWNrX293bl9idWZmZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCj4gK3sKPiArCWlm IChkbWFfYnVmLT5wcml2KSB7Cj4gKwkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpleGlzdGluZ19n ZW0gPSBkbWFfYnVmLT5wcml2OwoKUmFuZG9tbHkgbG9va2luZyBhdCB5b3VyIGRyaXZlciDigJQg eW914oCZdmUgYnJva2VuIHRoZSBkbWEtYnVmIGNyb3NzLWRyaXZlcgpjb250cmFjdCBoZXJlLiBI b3cgZG8geW91IGtub3cgZG1hX2J1Zi0+cHJpdiBpcyBhIHN0cnVjdCBkcm1fZ2VtX29iamVjdD8K WW91IGRvbuKAmXQsIGJlY2F1c2UgdGhhdCBpcyBhc3NpZ25lZCBieSB0aGUgZXhwb3J0ZXIsIGFu ZCB1c2Vyc3BhY2UgY291bGQKcGFzcyBpbiBhIGRtYS1idWYgZnJvbSBhbm90aGVyIGRldmljZSBh bmQgYmxvdyB1cCB5b3VyIGRyaXZlci4KCkkgdGhpbmsgeW91IGp1c3Qgd2FudCB0byBjYWxsIGRy bV9nZW1faXNfcHJpbWVfZXhwb3J0ZWRfZG1hX2J1ZigpIGhlcmUKYmVmb3JlIGRvaW5nIGFueXRo aW5nLgoKVGhlIHJlc3Qgb2YgdGhpcyBkbWEtYnVmIGNvZGUgYWxzbyBsb29rcyBoaWdobHkgcXVl c3Rpb25hYmxlLiBJ4oCZZCBzdHVkeQpob3cgb3RoZXIgZHJpdmVycyBpbXBsZW1lbnQgdGhlaXIg ZG1hLWJ1ZiBwYXRocyBhbmQgdXNlIHRob3NlIGFzIGEKcmVmZXJlbmNlIHRvIGltcHJvdmUgeW91 cnMuCgpNYXR0Cgo+ICsKPiArCQlpZiAoZXhpc3RpbmdfZ2VtLT5kZXYgPT0gZGV2KSB7Cj4gKwkJ CXN0cnVjdCBxZGFfZ2VtX29iaiAqZXhpc3RpbmdfcWRhX2dlbSA9IHRvX3FkYV9nZW1fb2JqKGV4 aXN0aW5nX2dlbSk7Cj4gKwo+ICsJCQlpZiAoIWV4aXN0aW5nX3FkYV9nZW0tPmlzX2ltcG9ydGVk KSB7Cj4gKwkJCQlkcm1fZ2VtX29iamVjdF9nZXQoZXhpc3RpbmdfZ2VtKTsKPiArCQkJCXJldHVy biBleGlzdGluZ19nZW07Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKwlyZXR1cm4gTlVMTDsKPiAr fQo+ICsKPiArc3RhdGljIHN0cnVjdCBxZGFfaW9tbXVfZGV2aWNlICpnZXRfaW9tbXVfZGV2aWNl X2Zvcl9pbXBvcnQoc3RydWN0IHFkYV9kcm1fcHJpdiAqZHJtX3ByaXYsCj4gKwkJCQkJCQkgICAg c3RydWN0IGRybV9maWxlICoqZmlsZV9wcml2X291dCwKPiArCQkJCQkJCSAgICBzdHJ1Y3QgcWRh X2RldiAqcWRldikKPiArewo+ICsJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXY7Cj4gKwlzdHJ1 Y3QgcWRhX2ZpbGVfcHJpdiAqcWRhX2ZpbGVfcHJpdjsKPiArCXN0cnVjdCBxZGFfaW9tbXVfZGV2 aWNlICppb21tdV9kZXYgPSBOVUxMOwo+ICsJaW50IHJldDsKPiArCj4gKwlmaWxlX3ByaXYgPSBk cm1fcHJpdi0+Y3VycmVudF9pbXBvcnRfZmlsZV9wcml2Owo+ICsJKmZpbGVfcHJpdl9vdXQgPSBm aWxlX3ByaXY7Cj4gKwo+ICsJaWYgKCFmaWxlX3ByaXYgfHwgIWZpbGVfcHJpdi0+ZHJpdmVyX3By aXYpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJcWRhX2ZpbGVfcHJpdiA9IChzdHJ1Y3QgcWRh X2ZpbGVfcHJpdiAqKWZpbGVfcHJpdi0+ZHJpdmVyX3ByaXY7Cj4gKwlpb21tdV9kZXYgPSBxZGFf ZmlsZV9wcml2LT5hc3NpZ25lZF9pb21tdV9kZXY7Cj4gKwo+ICsJaWYgKCFpb21tdV9kZXYpIHsK PiArCQlyZXQgPSBxZGFfbWVtb3J5X21hbmFnZXJfYXNzaWduX2RldmljZShkcm1fcHJpdi0+aW9t bXVfbWdyLCBmaWxlX3ByaXYpOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJcWRhX2VycihxZGV2LCAi RmFpbGVkIHRvIGFzc2lnbiBJT01NVSBkZXZpY2U6ICVkXG4iLCByZXQpOwo+ICsJCQlyZXR1cm4g TlVMTDsKPiArCQl9Cj4gKwo+ICsJCWlvbW11X2RldiA9IHFkYV9maWxlX3ByaXYtPmFzc2lnbmVk X2lvbW11X2RldjsKPiArCX0KPiArCj4gKwlyZXR1cm4gaW9tbXVfZGV2Owo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50IHNldHVwX2RtYV9idWZfbWFwcGluZyhzdHJ1Y3QgcWRhX2dlbV9vYmogKnFkYV9n ZW1fb2JqLCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPiArCQkJCSBzdHJ1Y3QgZGV2aWNlICph dHRhY2hfZGV2LCBzdHJ1Y3QgcWRhX2RldiAqcWRldikKPiArewo+ICsJc3RydWN0IGRtYV9idWZf YXR0YWNobWVudCAqYXR0YWNobWVudDsKPiArCXN0cnVjdCBzZ190YWJsZSAqc2d0Owo+ICsJaW50 IHJldDsKPiArCj4gKwlhdHRhY2htZW50ID0gZG1hX2J1Zl9hdHRhY2goZG1hX2J1ZiwgYXR0YWNo X2Rldik7Cj4gKwlpZiAoSVNfRVJSKGF0dGFjaG1lbnQpKSB7Cj4gKwkJcmV0ID0gUFRSX0VSUihh dHRhY2htZW50KTsKPiArCQlxZGFfZXJyKHFkZXYsICJGYWlsZWQgdG8gYXR0YWNoIGRtYV9idWY6 ICVkXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwlxZGFfZ2VtX29iai0+YXR0 YWNobWVudCA9IGF0dGFjaG1lbnQ7Cj4gKwo+ICsJc2d0ID0gZG1hX2J1Zl9tYXBfYXR0YWNobWVu dF91bmxvY2tlZChhdHRhY2htZW50LCBETUFfQklESVJFQ1RJT05BTCk7Cj4gKwlpZiAoSVNfRVJS KHNndCkpIHsKPiArCQlyZXQgPSBQVFJfRVJSKHNndCk7Cj4gKwkJcWRhX2VycihxZGV2LCAiRmFp bGVkIHRvIG1hcCBkbWFfYnVmIGF0dGFjaG1lbnQ6ICVkXG4iLCByZXQpOwo+ICsJCWRtYV9idWZf ZGV0YWNoKGRtYV9idWYsIGF0dGFjaG1lbnQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwlx ZGFfZ2VtX29iai0+c2d0ID0gc2d0Owo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKnFkYV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQo+ICt7Cj4gKwlzdHJ1Y3QgcWRhX2RybV9w cml2ICpkcm1fcHJpdjsKPiArCXN0cnVjdCBxZGFfZ2VtX29iaiAqcWRhX2dlbV9vYmo7Cj4gKwlz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsKPiArCXN0cnVjdCBxZGFfaW9tbXVfZGV2aWNlICpp b21tdV9kZXY7Cj4gKwlzdHJ1Y3QgcWRhX2RldiAqcWRldjsKPiArCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqZXhpc3RpbmdfZ2VtOwo+ICsJc2l6ZV90IGFsaWduZWRfc2l6ZTsKPiArCWludCByZXQ7 Cj4gKwo+ICsJZHJtX3ByaXYgPSBnZXRfZHJtX3ByaXZfZnJvbV9kZXZpY2UoZGV2KTsKPiArCWlm ICghZHJtX3ByaXYgfHwgIWRybV9wcml2LT5pb21tdV9tZ3IpIHsKPiArCQlxZGFfZXJyKE5VTEws ICJJbnZhbGlkIGRybV9wcml2IG9yIGlvbW11X21nclxuIik7Cj4gKwkJcmV0dXJuIEVSUl9QVFIo LUVJTlZBTCk7Cj4gKwl9Cj4gKwo+ICsJcWRldiA9IGRybV9wcml2LT5xZGV2Owo+ICsKPiArCWV4 aXN0aW5nX2dlbSA9IGNoZWNrX293bl9idWZmZXIoZGV2LCBkbWFfYnVmKTsKPiArCWlmIChleGlz dGluZ19nZW0pCj4gKwkJcmV0dXJuIGV4aXN0aW5nX2dlbTsKPiArCj4gKwlpb21tdV9kZXYgPSBn ZXRfaW9tbXVfZGV2aWNlX2Zvcl9pbXBvcnQoZHJtX3ByaXYsICZmaWxlX3ByaXYsIHFkZXYpOwo+ ICsJaWYgKCFpb21tdV9kZXYgfHwgIWlvbW11X2Rldi0+ZGV2KSB7Cj4gKwkJcWRhX2VycihxZGV2 LCAiTm8gSU9NTVUgZGV2aWNlIGFzc2lnbmVkIGZvciBwcmltZSBpbXBvcnRcbiIpOwo+ICsJCXJl dHVybiBFUlJfUFRSKC1FTk9ERVYpOwo+ICsJfQo+ICsKPiArCXFkYV9kYmcocWRldiwgIlVzaW5n IElPTU1VIGRldmljZSAldSBmb3IgcHJpbWUgaW1wb3J0XG4iLCBpb21tdV9kZXYtPmlkKTsKPiAr Cj4gKwlhbGlnbmVkX3NpemUgPSBQQUdFX0FMSUdOKGRtYV9idWYtPnNpemUpOwo+ICsJcWRhX2dl bV9vYmogPSBxZGFfZ2VtX2FsbG9jX29iamVjdChkZXYsIGFsaWduZWRfc2l6ZSk7Cj4gKwlpZiAo SVNfRVJSKHFkYV9nZW1fb2JqKSkKPiArCQlyZXR1cm4gKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq KXFkYV9nZW1fb2JqOwo+ICsKPiArCXFkYV9nZW1fb2JqLT5pc19pbXBvcnRlZCA9IHRydWU7Cj4g KwlxZGFfZ2VtX29iai0+ZG1hX2J1ZiA9IGRtYV9idWY7Cj4gKwlxZGFfZ2VtX29iai0+dmlydCA9 IE5VTEw7Cj4gKwlxZGFfZ2VtX29iai0+ZG1hX2FkZHIgPSAwOwo+ICsJcWRhX2dlbV9vYmotPmlt cG9ydGVkX2RtYV9hZGRyID0gMDsKPiArCXFkYV9nZW1fb2JqLT5pb21tdV9kZXYgPSBpb21tdV9k ZXY7Cj4gKwo+ICsJZ2V0X2RtYV9idWYoZG1hX2J1Zik7Cj4gKwo+ICsJcmV0ID0gc2V0dXBfZG1h X2J1Zl9tYXBwaW5nKHFkYV9nZW1fb2JqLCBkbWFfYnVmLCBpb21tdV9kZXYtPmRldiwgcWRldik7 Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX3B1dF9kbWFfYnVmOwo+ICsKPiArCXJldCA9IHFk YV9tZW1vcnlfbWFuYWdlcl9hbGxvYyhkcm1fcHJpdi0+aW9tbXVfbWdyLCBxZGFfZ2VtX29iaiwg ZmlsZV9wcml2KTsKPiArCWlmIChyZXQpIHsKPiArCQlxZGFfZXJyKHFkZXYsICJGYWlsZWQgdG8g YWxsb2NhdGUgSU9NTVUgbWFwcGluZzogJWRcbiIsIHJldCk7Cj4gKwkJZ290byBlcnJfdW5tYXA7 Cj4gKwl9Cj4gKwo+ICsJcWRhX2RiZyhxZGV2LCAiUHJpbWUgaW1wb3J0IGNvbXBsZXRlZCBzdWNj ZXNzZnVsbHkgc2l6ZT0lenVcbiIsIGFsaWduZWRfc2l6ZSk7Cj4gKwlyZXR1cm4gJnFkYV9nZW1f b2JqLT5iYXNlOwo+ICsKPiArZXJyX3VubWFwOgo+ICsJZG1hX2J1Zl91bm1hcF9hdHRhY2htZW50 X3VubG9ja2VkKHFkYV9nZW1fb2JqLT5hdHRhY2htZW50LAo+ICsJCQkJCSAgcWRhX2dlbV9vYmot PnNndCwgRE1BX0JJRElSRUNUSU9OQUwpOwo+ICsJZG1hX2J1Zl9kZXRhY2goZG1hX2J1ZiwgcWRh X2dlbV9vYmotPmF0dGFjaG1lbnQpOwo+ICtlcnJfcHV0X2RtYV9idWY6Cj4gKwlkbWFfYnVmX3B1 dChkbWFfYnVmKTsKPiArCXFkYV9nZW1fY2xlYW51cF9vYmplY3QocWRhX2dlbV9vYmopOwo+ICsJ cmV0dXJuIEVSUl9QVFIocmV0KTsKPiArfQo+ICsKPiAraW50IHFkYV9wcmltZV9mZF90b19oYW5k bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4g KwkJCSAgIGludCBwcmltZV9mZCwgdTMyICpoYW5kbGUpCj4gK3sKPiArCXN0cnVjdCBxZGFfZHJt X3ByaXYgKmRybV9wcml2Owo+ICsJc3RydWN0IHFkYV9kZXYgKnFkZXY7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCWRybV9wcml2ID0gZ2V0X2RybV9wcml2X2Zyb21fZGV2aWNlKGRldik7Cj4gKwlpZiAo IWRybV9wcml2KSB7Cj4gKwkJcWRhX2RiZyhOVUxMLCAiRmFpbGVkIHRvIGdldCBkcm1fcHJpdiBm cm9tIGRldmljZVxuIik7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJcWRldiA9 IGRybV9wcml2LT5xZGV2Owo+ICsKPiArCWlmIChmaWxlX3ByaXYgJiYgZmlsZV9wcml2LT5kcml2 ZXJfcHJpdikgewo+ICsJCXN0cnVjdCBxZGFfZmlsZV9wcml2ICpxZGFfZmlsZV9wcml2Owo+ICsK PiArCQlxZGFfZmlsZV9wcml2ID0gKHN0cnVjdCBxZGFfZmlsZV9wcml2ICopZmlsZV9wcml2LT5k cml2ZXJfcHJpdjsKPiArCX0gZWxzZSB7Cj4gKwkJcWRhX2RiZyhxZGV2LCAiQ2FsbGVkIHdpdGgg TlVMTCBmaWxlX3ByaXYgb3IgZHJpdmVyX3ByaXZcbiIpOwo+ICsJfQo+ICsKPiArCW11dGV4X2xv Y2soJmRybV9wcml2LT5pbXBvcnRfbG9jayk7Cj4gKwlkcm1fcHJpdi0+Y3VycmVudF9pbXBvcnRf ZmlsZV9wcml2ID0gZmlsZV9wcml2Owo+ICsKPiArCXJldCA9IGRybV9nZW1fcHJpbWVfZmRfdG9f aGFuZGxlKGRldiwgZmlsZV9wcml2LCBwcmltZV9mZCwgaGFuZGxlKTsKPiArCj4gKwlkcm1fcHJp di0+Y3VycmVudF9pbXBvcnRfZmlsZV9wcml2ID0gTlVMTDsKPiArCW11dGV4X3VubG9jaygmZHJt X3ByaXYtPmltcG9ydF9sb2NrKTsKPiArCj4gKwlpZiAoIXJldCkKPiArCQlxZGFfZGJnKHFkZXYs ICJDb21wbGV0ZWQgd2l0aCByZXQ9JWQsIGhhbmRsZT0ldVxuIiwgcmV0LCAqaGFuZGxlKTsKPiAr CWVsc2UKPiArCQlxZGFfZGJnKHFkZXYsICJDb21wbGV0ZWQgd2l0aCByZXQ9JWRcbiIsIHJldCk7 Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArTU9EVUxFX0lNUE9SVF9OUygiRE1BX0JV RiIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjY2VsL3FkYS9xZGFfcHJpbWUuaCBiL2RyaXZl cnMvYWNjZWwvcWRhL3FkYV9wcmltZS5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwMDAwMDAuLjkzOTkwMjQ1NGRjZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJz L2FjY2VsL3FkYS9xZGFfcHJpbWUuaAo+IEBAIC0wLDAgKzEsNDMgQEAKPiArLyogU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKGMp IFF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBhbmQvb3IgaXRzIHN1YnNpZGlhcmllcy4KPiAr ICovCj4gKwo+ICsjaWZuZGVmIF9RREFfUFJJTUVfSAo+ICsjZGVmaW5lIF9RREFfUFJJTUVfSAo+ ICsKPiArI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2Zp bGUuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kbWEt YnVmLmg+Cj4gKwo+ICsvKioKPiArICogcWRhX2dlbV9wcmltZV9pbXBvcnQgLSBJbXBvcnQgYSBE TUEtQlVGIGFzIGEgR0VNIG9iamVjdAo+ICsgKiBAZGV2OiBEUk0gZGV2aWNlIHN0cnVjdHVyZQo+ ICsgKiBAZG1hX2J1ZjogRE1BLUJVRiB0byBpbXBvcnQKPiArICoKPiArICogVGhpcyBmdW5jdGlv biBpbXBvcnRzIGFuIGV4dGVybmFsIERNQS1CVUYgaW50byB0aGUgUURBIGRyaXZlciBhcyBhIEdF TQo+ICsgKiBvYmplY3QuIEl0IGhhbmRsZXMgYm90aCByZS1pbXBvcnRzIG9mIGJ1ZmZlcnMgb3Jp Z2luYWxseSBmcm9tIHRoaXMgZHJpdmVyCj4gKyAqIGFuZCBpbXBvcnRzIG9mIGV4dGVybmFsIGJ1 ZmZlcnMgZnJvbSBvdGhlciBkcml2ZXJzLgo+ICsgKgo+ICsgKiBSZXR1cm46IFBvaW50ZXIgdG8g dGhlIGltcG9ydGVkIEdFTSBvYmplY3Qgb24gc3VjY2VzcywgRVJSX1BUUiBvbiBmYWlsdXJlCj4g KyAqLwo+ICtzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnFkYV9nZW1fcHJpbWVfaW1wb3J0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKTsKPiArCj4gKy8qKgo+ ICsgKiBxZGFfcHJpbWVfZmRfdG9faGFuZGxlIC0gQ29yZSBpbXBsZW1lbnRhdGlvbiBmb3IgUFJJ TUUgRkQgdG8gR0VNIGhhbmRsZSBjb252ZXJzaW9uCj4gKyAqIEBkZXY6IERSTSBkZXZpY2Ugc3Ry dWN0dXJlCj4gKyAqIEBmaWxlX3ByaXY6IERSTSBmaWxlIHByaXZhdGUgZGF0YQo+ICsgKiBAcHJp bWVfZmQ6IEZpbGUgZGVzY3JpcHRvciBvZiB0aGUgUFJJTUUgYnVmZmVyCj4gKyAqIEBoYW5kbGU6 IE91dHB1dCBwYXJhbWV0ZXIgZm9yIHRoZSBHRU0gaGFuZGxlCj4gKyAqCj4gKyAqIFRoaXMgY29y ZSBmdW5jdGlvbiBzZXRzIHVwIHRoZSBuZWNlc3NhcnkgY29udGV4dCBiZWZvcmUgY2FsbGluZyB0 aGUKPiArICogRFJNIGZyYW1ld29yaydzIHByaW1lIEZEIHRvIGhhbmRsZSBjb252ZXJzaW9uLiBJ dCBlbnN1cmVzIHByb3BlciBJT01NVQo+ICsgKiBkZXZpY2UgYXNzaWdubWVudCBhbmQgdHJhY2tp bmcgZm9yIHRoZSBpbXBvcnQgb3BlcmF0aW9uLgo+ICsgKgo+ICsgKiBSZXR1cm46IDAgb24gc3Vj Y2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlCj4gKyAqLwo+ICtpbnQgcWRhX3By aW1lX2ZkX3RvX2hhbmRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdiwKPiArCQkJICAgaW50IHByaW1lX2ZkLCB1MzIgKmhhbmRsZSk7Cj4gKwo+ICsj ZW5kaWYgLyogX1FEQV9QUklNRV9IICovCj4gCj4gLS0gCj4gMi4zNC4xCj4gCg==