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 90C75FF885C for ; Sat, 25 Apr 2026 21:15:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8C54C10E48A; Sat, 25 Apr 2026 21:15:31 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.b="AVjYKLZs"; dkim-atps=neutral Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012070.outbound.protection.outlook.com [40.107.200.70]) by gabe.freedesktop.org (Postfix) with ESMTPS id A8D4510E489 for ; Sat, 25 Apr 2026 21:15:25 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f4eJuqlL4yR961WAQRSDnNipmb/cplTI9q84oFw97q3EmG9xpDv0OQoImiaQeNuNx7FtuokKTWb4fnVNjFEW8Q4mqWoaAwGhmmwpRo8d9NYeS0wnT8WATST3xv5Dvd+0XZWDhxlHF+WwZP+XnJmBxar25zvcLU90HlpTbU1TLTbN++lSAMMncRkDXlUNsRIRyPTjiGwt13fB4xapKKTJvDSMX4joo+kVbmenHK5p1eidEEhOVMjIESjp0H8ipYIWsuYcXalJesnbo0/a3w1fJz/Hozd3e9iXiMH5EhqGYoZivhQjf238vNafbKXfIN3K94I1cL82Opftz0eqaTcH0g== 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=LYQ20uu3lVGRMK1ef93FbMwOsjyP9gT56IvlFdaoOcA=; b=OaKgedvUeIl4K8KeZbVv9OH90mgRRKEtRTMLXoGw0O4lQLyQElYQEg8shz1/Pz1iFyZOIFHiYzcFKk6zemg95y7ZO8ppopJNsgxeDPAh641ihtlcLPSJCqNGqm8XXsEagL3xEInRWBtN1wa9TKyNaEywSq6euLCQS9L2LyvAKwyfSmWg2XFRQMO7RN9dvUcbYki3A3CBPWEiDKb5inPQFniCkfwp+zim/t1h8tIiZb4qbhZUBAYoF+ALtFM4UJabsDgbFfPHycW4QnhZTa/GCjpHz9lBAgP4d4sIELCVvpNr8yC62jYmnVWVbv19GaEsCIIY8TjJPu7mjS0bl7kJnQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LYQ20uu3lVGRMK1ef93FbMwOsjyP9gT56IvlFdaoOcA=; b=AVjYKLZsfCtN/pbj01Y5LsvtGTLTNssPqdvWCg05sIKEQBCqxcZ3uqFFYK97LEo8xRy3Wqv5je4n/6bSzUUQsu2oPMZ7VcCjWbXI+7nLTDhwkIvIcUYv46QSSnWbYDG/wvR3tY9QKEGk6Df0Qk41g4C2Fy4NGP2AduyM227sRP/Y8KDynupI3cGzsPfAhpWJWtFwL4IdLNE1YDa6TI59enkFhAcnZlKeWj1IROdJaVOQ/TbT0b2a7QvdtJBbod6iE3zcNatAfcUyyyGi96X8uKEQeBaRuwcvtQtSJJFb2MqWIslZMMgUgbwBvU17zx0OPP4qkNJLrHvrA/MXCW5i8Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by IA1PR12MB8358.namprd12.prod.outlook.com (2603:10b6:208:3fa::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.13; Sat, 25 Apr 2026 21:15:23 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%4]) with mapi id 15.20.9870.012; Sat, 25 Apr 2026 21:15:22 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: Miguel Ojeda , Boqun Feng , Gary Guo , Bjorn Roy Baron , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Dave Airlie , Daniel Almeida , dri-devel@lists.freedesktop.org, rust-for-linux@vger.kernel.org, nova-gpu@lists.linux.dev, Nikola Djukic , David Airlie , Boqun Feng , John Hubbard , Alistair Popple , Timur Tabi , Edwin Peer , Alexandre Courbot , Andrea Righi , Andy Ritger , Zhi Wang , Balbir Singh , Philipp Stanner , alexeyi@nvidia.com, Eliot Courtney , joel@joelfernandes.org, linux-doc@vger.kernel.org, Joel Fernandes Subject: [PATCH v12 07/22] gpu: nova-core: mm: Add TLB flush support Date: Sat, 25 Apr 2026 17:14:39 -0400 Message-Id: <20260425211454.174696-8-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260425211454.174696-1-joelagnelf@nvidia.com> References: <20260425211454.174696-1-joelagnelf@nvidia.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: CYXPR02CA0047.namprd02.prod.outlook.com (2603:10b6:930:cc::14) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR12MB6486:EE_|IA1PR12MB8358:EE_ X-MS-Office365-Filtering-Correlation-Id: 6162bb68-67dc-4e69-72f2-08dea30fc324 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|7416014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: aB7HzKQJWczcUTEcuXQFhiBDmrIdiRG9PzmiYYRxMA2dKLv4LgF8O5yJXw9Dok5t7Rq9WopZDF8tTvqMbULoqfMNB70VHUnuu36Lu4XMVjc7YigXxY+53+YzwV7Z+/wU+8dmogjKqacFVQetoyP1xHZGzWL+db4exSU8R2xzMAC1GDCiYxruNiyJ0v4ujprKhhE1U+8g17uox+jXN5lSJ8KFEPRKcNPjiyoXsMbVrWnKNOnWZrfFjTvCadOIvOAkEj8EWKKdrrwb2zlOdfPQAouZ9CdJftRpwVhqKZDytFRRSN0ns5d0Wva72KeeO8WJeqMmBQLXNa2c78dmUoqB9/9hNPmzX4Mgil+bo85dPozeP9qxc/kqh3FN32TbrriGKmQhS5kY4sKqY9piHwOakioUN0thWAoFr5R45hMREjlQyWdsh8A5XMYffY0n3hmHUtzGuCY01hVbk4Q3VJID0dh//AYMxsaa4LvVhqymPmOV4g8Z5SQ3ZjT6TMncGup4/0Z/oa+Xu1B9eK0f4f4JCw7unNUzcaZ2S5IkFpqM8qHwh8dl1pidOs7qIahqFCeTnFuV37tmTgBHmv19A45lWPK0YwO32Zlk7dRlVjIW601mWjtfUrPHTHONeGNjBQ49fkan0b7rMi6c3+atvilhcvBW/HCc4R7r5shKQwILSKXYDEo8sokjA1GWKRZR3AIDXRfvpE4v3iTrgsirbvQQLtrYdXuBIW91O2bcGNWgY0Q= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR12MB6486.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(7416014)(366016)(56012099003)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T1NUaWdGdll0MVpIK1ErMmlIVTZna3g3QVIybXNjK3FvRUtscmtvTytCU1Uz?= =?utf-8?B?ckZVM0lsWlMzS0toZGdCa3RyM3FpeVJLby9oRC9DUDBHK1lmRmFVNC84dnFj?= =?utf-8?B?REkvUXhwbmJmc3R5bkZySTlEZWd6R2dIL2g4VjBKV0RhTWpPQlRvSzlDZ1l4?= =?utf-8?B?b3NGdHRtbkhibjd6ZXloS3Z3S0QrNWlCQldubDkyTWREUmRoQk5rTVBUMWZN?= =?utf-8?B?VytXSmlUZitycWhsaEE2M2F1SllIUEtDUXJJMU9lclRoeVZGemtyTVFMS3A2?= =?utf-8?B?Qi84clMycnljMXVFZTRDUUJ1aUhDMzNmMHRhZzBQbHcrOGlYUjZieDkvRjl3?= =?utf-8?B?eDQrY3RMd0o3QVVmOHR5cHIxOElHTGY5REFybmxZQXNnNmVtNkluaVNPZWNv?= =?utf-8?B?Ny9ZSGkwSTF6SExSTFJIYVE3VkZOc3gwMFZlM3l4ZjRTb1BLc3cydDJLSXdD?= =?utf-8?B?TWdGKzkycjZnelNyZjNVa09wd0lVSUVTL3BXOXYwWmM5VHIxV0xxTW9CSGUz?= =?utf-8?B?bEpUVmwyNkpjdEJhMTNBR0J6QytXZ2NLbXE5NEU3QVBSWXVMYVlUWFpDVXdZ?= =?utf-8?B?VFhvRkNWeXFIVG9pUEZmS0V2RUt4RHdaQ1JhekR4ZDcwVi93N251S1huQnNy?= =?utf-8?B?a0dwZFVvK1dEb09OMm1XVWN6bDMrR2dLbXdpellwU3JZUFpBMmZzWENUeGYw?= =?utf-8?B?MEduNUdKdFh0WjdFL1oxQ1cybVBVdjZiMHZMNEFmUksyVk9uNzExSFcrR0VZ?= =?utf-8?B?M21RKzNpcHAxYTJ0d1dOY0hXZEFBaXg5cVMvNUxBUWI3N1kzV25na01uVEpP?= =?utf-8?B?dks4K0NucDBnMVNoNlFrVTBlWHZVWmxxbTcrTXVBSjI0RjRTcW82dmpHRjhL?= =?utf-8?B?VVE4Ukd5VERZVEl2UkxDeVlKZkdheVZwb1NGZklWSTBWOTdUdWM0UFJicWFT?= =?utf-8?B?M2hyTFcwSnVNOTVhaE0waVpVVzN5VWcvY29FVFB6Yy9EblRadzJwVjB6NHNS?= =?utf-8?B?R0dYTnMrbVJTRnQwcG13WHRkdnNpRjM3TWdDYnhkcmlqQkYweVpKMHhIVUdU?= =?utf-8?B?QzUrNWtQemxVcUs3YzVhaTBUKzBIZ05kS2k1c1R6QWd0aGIyc0laRUlzWkRG?= =?utf-8?B?c2hIOVpKOHEzbmtSaGRtd2p3U00yc3JBaXpMeVh4OXQ1dEZQRVBoVUdWQVcw?= =?utf-8?B?dk5vZGxvTHo2OTlYdUMxUFYxazJMK2Q5djRyZ3dJSSs1VGpjZWpzLzVTS2JK?= =?utf-8?B?b1p1Y0x3RDlFUjI5blMyalh4bXc0aGdub0o2ZkRVZytUeWM0dDRVcnZCTXdk?= =?utf-8?B?T29jZjJnQnJuUENRU1VCWjlUVXNWL1c0VndVYVFBRm5hcHlvTGN1ODVmTzg5?= =?utf-8?B?UlNKdndKS3VvVFVscEdRMGVhcm5wL0EzSjJEOUVHZ2lVRzNkNWwvcG9CVlh2?= =?utf-8?B?ZmFkOUYweGhCUzkvb0ZKY0ZnUWJuOGpQa3ZUU1VWcUNuOEVMVHZCa0c4aG9L?= =?utf-8?B?cnpKN1JEY25Bd0FMSjVabHRPMVI4QlBVeU5lYkNaQXFlOTJuNDJmeUZkVEFq?= =?utf-8?B?bklmQTAzK0NKbkI4MFpPejZKaVptNnE0UUIybmFHT0dCbFRvUEk4WThBa25q?= =?utf-8?B?NGgyalF2Q2pUakgrcldWRGxNa053STJZMlRJZnBPNnpwUmQ3alQrK2pHRXZz?= =?utf-8?B?ZUtaVXFkNUNhTCsreTFtNSs3K1FLVDA1cDN6MDNsY3h3QXlhMXpRem52RVFj?= =?utf-8?B?WG9mMi9zS3R0c21pRStmTWhZTDB2VmZvMk9YUE1rbGxleGlRSEpkNGNnQ1JE?= =?utf-8?B?VjlvU0N4Y1cyajZXYzA4TVNJY0RTMkZuYXpzNi8xNkVQYTNydWg3SFl6UStj?= =?utf-8?B?QVcyWmNxcXdOUFFrNlBNMXFTYmhNT3lHeWRFaUZkVVlJVXBZUE55T0orTU44?= =?utf-8?B?QW84OGpSczFLZGVtMmdjUUtOclA1bTZURkhUSmptQVNJeTkvWk9iSy9kdW1U?= =?utf-8?B?K0NxYWhIOXVaQThFSHo0ZE1ZTnY3N2x0VTB5ZStiVmdza0pxcHBNc3JYWFl6?= =?utf-8?B?dmZVQk9ZSGNMOU9DTWloOWR2bnowNWJwVExiL1NIUWRCclh3cFB5TnlnUndu?= =?utf-8?B?RkQyZytLNjcrTEVVRFE1ZDVFRExKTTcwUmZFbHhhTEVqUURCeEs4eXRtamJE?= =?utf-8?B?T0tXV1lnOGFZRnc2T3h0NTZBMmg3d0M3ZzNIejV1S05VcGgrMCtsTDRtd2JE?= =?utf-8?B?cUdidUVzdllDQkhFaTVBOFphZ1ordVJzOUJTMkYxSEtZYTFjcGllaFN0K2hy?= =?utf-8?B?WU5Ta1o2YkdHSzZJNTFrcXJ5Q05QblNxWFh4Ynh6SWpSdE84M01Gdz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6162bb68-67dc-4e69-72f2-08dea30fc324 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2026 21:15:22.8199 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HoykwAGzQAyrfJKC2NVNEv+BoSqqvL2+RtBKNnq9Fk09HNSnvKwJ4AuF2t+pS5QJBTrvdSMcHqYpSaMHZeFcUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8358 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" QWRkIFRMQiAoVHJhbnNsYXRpb24gTG9va2FzaWRlIEJ1ZmZlcikgZmx1c2ggc3VwcG9ydCBmb3Ig R1BVIE1NVS4KCkFmdGVyIG1vZGlmeWluZyBwYWdlIHRhYmxlIGVudHJpZXMsIHRoZSBHUFUncyBU TEIgbXVzdCBiZSBpbnZhbGlkYXRlZAp0byBlbnN1cmUgdGhlIG5ldyBtYXBwaW5ncyB0YWtlIGVm ZmVjdC4gVGhlIFRsYiBzdHJ1Y3QgcHJvdmlkZXMgZmx1c2gKZnVuY3Rpb25hbGl0eSB0aHJvdWdo IEJBUjAgcmVnaXN0ZXJzLgoKVGhlIGZsdXNoIG9wZXJhdGlvbiB3cml0ZXMgdGhlIHBhZ2UgZGly ZWN0b3J5IGJhc2UgYWRkcmVzcyBhbmQgdHJpZ2dlcnMKYW4gaW52YWxpZGF0aW9uLCBwb2xsaW5n IGZvciBjb21wbGV0aW9uIHdpdGggYSAyIHNlY29uZCB0aW1lb3V0LgoKQ2M6IE5pa29sYSBEanVr aWMgPG5kanVraWNAbnZpZGlhLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9lbCBGZXJuYW5kZXMgPGpv ZWxhZ25lbGZAbnZpZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9ub3ZhLWNvcmUvbW0ucnMgICAg IHwgICAxICsKIGRyaXZlcnMvZ3B1L25vdmEtY29yZS9tbS90bGIucnMgfCAxMzAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L25vdmEtY29yZS9yZWdzLnJzICAg fCAgNjkgKysrKysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTk5IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9ub3ZhLWNv cmUvbW0vdGxiLnJzCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvbm92YS1jb3JlL21tLnJzIGIv ZHJpdmVycy9ncHUvbm92YS1jb3JlL21tLnJzCmluZGV4IDIzZTczMWJkN2QyMi4uMmE4YjIyOGIx OTE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9ub3ZhLWNvcmUvbW0ucnMKKysrIGIvZHJpdmVy cy9ncHUvbm92YS1jb3JlL21tLnJzCkBAIC0zMyw2ICszMyw3IEBAIG1hY3JvX3J1bGVzISBpbXBs X3Bmbl9ib3VuZGVkIHsKIH0KIAogcHViKGNyYXRlKSBtb2QgcHJhbWluOworcHViKHN1cGVyKSBt b2QgdGxiOwogCiB1c2Uga2VybmVsOjp7CiAgICAgYml0ZmllbGQsCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9ub3ZhLWNvcmUvbW0vdGxiLnJzIGIvZHJpdmVycy9ncHUvbm92YS1jb3JlL21tL3Rs Yi5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUzYzZmZTYwODRi OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L25vdmEtY29yZS9tbS90bGIucnMKQEAg LTAsMCArMSwxMzAgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisKKy8v ISBUTEIgKFRyYW5zbGF0aW9uIExvb2thc2lkZSBCdWZmZXIpIGZsdXNoIHN1cHBvcnQgZm9yIEdQ VSBNTVUuCisvLyEKKy8vISBBZnRlciBtb2RpZnlpbmcgcGFnZSB0YWJsZSBlbnRyaWVzLCB0aGUg R1BVJ3MgVExCIG11c3QgYmUgZmx1c2hlZCB0bworLy8hIGVuc3VyZSB0aGUgbmV3IG1hcHBpbmdz IHRha2UgZWZmZWN0LiBUaGlzIG1vZHVsZSBwcm92aWRlcyBUTEIgZmx1c2gKKy8vISBmdW5jdGlv bmFsaXR5IGZvciB2aXJ0dWFsIG1lbW9yeSBtYW5hZ2Vycy4KKy8vIQorLy8hICMgRXhhbXBsZXMK Ky8vIQorLy8hIGBgYGlnbm9yZQorLy8hIHVzZSBjcmF0ZTo6bW06OnRsYjo6VGxiOworLy8hCisv LyEgZm4gcGFnZV90YWJsZV91cGRhdGUoCisvLyEgICAgIGRldjogJmRldmljZTo6RGV2aWNlPGRl dmljZTo6Qm91bmQ+LAorLy8hICAgICB0bGI6ICZUbGIsCisvLyEgICAgIHBkYl9hZGRyOiBWcmFt QWRkcmVzcywKKy8vISApIC0+IFJlc3VsdDwoKT4geworLy8hICAgICAvLyAuLi4gbW9kaWZ5IHBh Z2UgdGFibGVzIC4uLgorLy8hCisvLyEgICAgIC8vIEZsdXNoIFRMQiB0byBtYWtlIGNoYW5nZXMg dmlzaWJsZSAocG9sbHMgZm9yIGNvbXBsZXRpb24pLgorLy8hICAgICB0bGIuZmx1c2goZGV2LCBw ZGJfYWRkcik/OworLy8hCisvLyEgICAgIE9rKCgpKQorLy8hIH0KKy8vISBgYGAKKwordXNlIGtl cm5lbDo6eworICAgIGRldmljZSwKKyAgICBkZXZyZXM6OkRldnJlcywKKyAgICBpbzo6cG9sbDo6 cmVhZF9wb2xsX3RpbWVvdXQsCisgICAgaW86OklvLAorICAgIG5ld19tdXRleCwKKyAgICBwcmVs dWRlOjoqLAorICAgIHN5bmM6OnsKKyAgICAgICAgQXJjLAorICAgICAgICBNdXRleCwgLy8KKyAg ICB9LAorICAgIHRpbWU6OkRlbHRhLCAvLworfTsKKwordXNlIGNyYXRlOjp7CisgICAgYm91bmRl ZF9lbnVtLAorICAgIGRyaXZlcjo6QmFyMCwKKyAgICBtbTo6VnJhbUFkZHJlc3MsCisgICAgcmVn cywgLy8KK307CisKK2JvdW5kZWRfZW51bSEgeworICAgIC8vLyBUTEIgaW52YWxpZGF0aW9uIGFj a25vd2xlZGdtZW50IHNjb3BlLgorICAgIC8vLworICAgIC8vLyBDb250cm9scyBob3cgZmFyIHRo ZSBoYXJkd2FyZSB3YWl0cyBmb3IgdGhlIGludmFsaWRhdGlvbiB0byBwcm9wYWdhdGUKKyAgICAv Ly8gYmVmb3JlIGNsZWFyaW5nIHRoZSBgdHJpZ2dlcmAgYml0IG9mIGBOVl9UTEJfRkxVU0hfQ1RS TGAuCisgICAgI1tkZXJpdmUoRGVidWcsIENvcHksIENsb25lLCBQYXJ0aWFsRXEsIEVxKV0KKyAg ICBwdWIoY3JhdGUpIGVudW0gVGxiQWNrTW9kZSB3aXRoIFRyeUZyb208Qm91bmRlZDx1MzIsIDI+ PiB7CisgICAgICAgIC8vLyBGaXJlLWFuZC1mb3JnZXQ6IG5vIGFja25vd2xlZGdtZW50IHJlcXVp cmVkLgorICAgICAgICBOb25lID0gMCwKKyAgICAgICAgLy8vIFdhaXQgZm9yIGFja25vd2xlZGdt ZW50IGZyb20gYWxsIGNvbnN1bWVycywgaW5jbHVkaW5nIHJlbW90ZSBHUFVzCisgICAgICAgIC8v LyByZWFjaGFibGUgb3ZlciBOVkxpbmsuCisgICAgICAgIC8vLworICAgICAgICAvLy8gR2xvYmFs bHkgaXMgc3RyaWN0bHkgcmVxdWlyZWQgb25seSBkdXJpbmcgdW5tYXAgb3IgcGVybWlzc2lvbgor ICAgICAgICAvLy8gdGlnaHRlbmluZywgYmVjYXVzZSB0aGUgYmFja2luZyBtZW1vcnkgbWF5IGJl IHJlYXNzaWduZWQgYWZ0ZXIgdGhlCisgICAgICAgIC8vLyBmbHVzaCByZXR1cm5zIGFuZCBhIHN0 YWxlIFRMQiBlbnRyeSBjb3VsZCBsZXQgdGhlIEdQVSBhY2Nlc3MgZnJlZWQKKyAgICAgICAgLy8v IG1lbW9yeS4gRm9yIG5ldyBtYXBwaW5nIG9yIHJlbGF4aW5nIHBlcm1pc3Npb25zLCBhIHN0YWxl IGVudHJ5IHdvdWxkCisgICAgICAgIC8vLyBtZXJlbHkgY2F1c2UgYSByZWR1bmRhbnQgZmF1bHQg YW5kIHJldHJ5LCBzbyBbYFRsYkFja01vZGU6Ok5vbmVgXQorICAgICAgICAvLy8gd291bGQgc3Vm ZmljZS4KKyAgICAgICAgR2xvYmFsbHkgPSAxLAorICAgICAgICAvLy8gV2FpdCBmb3IgYWNrbm93 bGVkZ21lbnQgZnJvbSBjb25zdW1lcnMgd2l0aGluIHRoZSBsb2NhbCBOVkxpbmsKKyAgICAgICAg Ly8vIGZhYnJpYyBub2RlIG9ubHk7IHNraXAgY3Jvc3Mtbm9kZSBhY2suCisgICAgICAgIEludHJh bm9kZSA9IDIsCisgICAgfQorfQorCisvLy8gVExCIG1hbmFnZXIgZm9yIEdQVSB0cmFuc2xhdGlv biBidWZmZXIgb3BlcmF0aW9ucy4KKyNbcGluX2RhdGFdCitwdWIoY3JhdGUpIHN0cnVjdCBUbGIg eworICAgIGJhcjogQXJjPERldnJlczxCYXIwPj4sCisgICAgLy8vIFRMQiBmbHVzaCBzZXJpYWxp emF0aW9uIGxvY2s6IFRoaXMgbG9jayBpcyBkZXNpZ25lZCB0byBiZSBhY3F1aXJlZCBkdXJpbmcK KyAgICAvLy8gdGhlIERNQSBmZW5jZSBzaWduYWxsaW5nIGNyaXRpY2FsIHBhdGguIEl0IHNob3Vs ZCBORVZFUiBiZSBoZWxkIGFjcm9zcyBhbnkKKyAgICAvLy8gcmVjbGFpbWFibGUgQ1BVIG1lbW9y eSBhbGxvY2F0aW9ucyBiZWNhdXNlIHRoZSBtZW1vcnkgcmVjbGFpbSBwYXRoIGNhbgorICAgIC8v LyBjYWxsIGBkbWFfZmVuY2Vfd2FpdCgpYCAod2hlbiBpbXBsZW1lbnRlZCksIHdoaWNoIHdvdWxk IGRlYWRsb2NrIGlmIGxvY2sgaGVsZC4KKyAgICAjW3Bpbl0KKyAgICBsb2NrOiBNdXRleDwoKT4s Cit9CisKK2ltcGwgVGxiIHsKKyAgICAvLy8gQ3JlYXRlIGEgbmV3IFRMQiBtYW5hZ2VyLgorICAg IHB1YihzdXBlcikgZm4gbmV3KGJhcjogQXJjPERldnJlczxCYXIwPj4pIC0+IGltcGwgUGluSW5p dDxTZWxmPiB7CisgICAgICAgIHBpbl9pbml0IShTZWxmIHsKKyAgICAgICAgICAgIGJhciwKKyAg ICAgICAgICAgIGxvY2sgPC0gbmV3X211dGV4ISgoKSwgInRsYl9mbHVzaCIpLAorICAgICAgICB9 KQorICAgIH0KKworICAgIC8vLyBGbHVzaCB0aGUgR1BVIFRMQiBmb3IgYSBzcGVjaWZpYyBwYWdl IGRpcmVjdG9yeSBiYXNlLgorICAgIC8vLworICAgIC8vLyBUaGlzIGludmFsaWRhdGVzIGFsbCBU TEIgZW50cmllcyBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIFBEQiBhZGRyZXNzLgorICAgIC8v LyBNdXN0IGJlIGNhbGxlZCBhZnRlciBtb2RpZnlpbmcgcGFnZSB0YWJsZSBlbnRyaWVzIHRvIGVu c3VyZSB0aGUgR1BVIHNlZXMKKyAgICAvLy8gdGhlIHVwZGF0ZWQgbWFwcGluZ3MuCisgICAgcHVi KHN1cGVyKSBmbiBmbHVzaCgKKyAgICAgICAgJnNlbGYsCisgICAgICAgIGRldjogJmRldmljZTo6 RGV2aWNlPGRldmljZTo6Qm91bmQ+LAorICAgICAgICBwZGJfYWRkcjogVnJhbUFkZHJlc3MsCisg ICAgKSAtPiBSZXN1bHQgeworICAgICAgICBsZXQgX2d1YXJkID0gc2VsZi5sb2NrLmxvY2soKTsK KyAgICAgICAgbGV0IGJhciA9IHNlbGYuYmFyLmFjY2VzcyhkZXYpPzsKKworICAgICAgICAvLyBX cml0ZSBQREIgYWRkcmVzcy4KKyAgICAgICAgYmFyLndyaXRlX3JlZyhyZWdzOjpOVl9UTEJfRkxV U0hfUERCX0xPOjpmcm9tX3BkYl9hZGRyKHBkYl9hZGRyLnJhd191NjQoKSkpOworICAgICAgICBi YXIud3JpdGVfcmVnKHJlZ3M6Ok5WX1RMQl9GTFVTSF9QREJfSEk6OmZyb21fcGRiX2FkZHIocGRi X2FkZHIucmF3X3U2NCgpKSk7CisKKyAgICAgICAgLy8gVHJpZ2dlciBmbHVzaC4KKyAgICAgICAg YmFyLndyaXRlX3JlZygKKyAgICAgICAgICAgIHJlZ3M6Ok5WX1RMQl9GTFVTSF9DVFJMOjp6ZXJv ZWQoKQorICAgICAgICAgICAgICAgIC53aXRoX2FsbF92YSh0cnVlKQorICAgICAgICAgICAgICAg IC53aXRoX2FjayhUbGJBY2tNb2RlOjpOb25lKQorICAgICAgICAgICAgICAgIC53aXRoX3RyaWdn ZXIodHJ1ZSksCisgICAgICAgICk7CisKKyAgICAgICAgLy8gUG9sbCBmb3IgY29tcGxldGlvbi4K KyAgICAgICAgcmVhZF9wb2xsX3RpbWVvdXQoCisgICAgICAgICAgICB8fCBPayhiYXIucmVhZChy ZWdzOjpOVl9UTEJfRkxVU0hfQ1RSTCkpLAorICAgICAgICAgICAgfGN0cmw6ICZyZWdzOjpOVl9U TEJfRkxVU0hfQ1RSTHwgIWN0cmwudHJpZ2dlcigpLAorICAgICAgICAgICAgRGVsdGE6OlpFUk8s CisgICAgICAgICAgICBEZWx0YTo6ZnJvbV9zZWNzKDIpLAorICAgICAgICApPzsKKworICAgICAg ICBPaygoKSkKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9ub3ZhLWNvcmUvcmVn cy5ycyBiL2RyaXZlcnMvZ3B1L25vdmEtY29yZS9yZWdzLnJzCmluZGV4IGEzY2EwMjM0NWUyMC4u ZmNiZDQwN2ZjNDk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9ub3ZhLWNvcmUvcmVncy5ycwor KysgYi9kcml2ZXJzL2dwdS9ub3ZhLWNvcmUvcmVncy5ycwpAQCAtMzAsNyArMzAsMTAgQEAKICAg ICAgICAgQXJjaGl0ZWN0dXJlLAogICAgICAgICBDaGlwc2V0LCAvLwogICAgIH0sCi0gICAgbW06 OnByYW1pbjo6QmFyMFdpbmRvd1RhcmdldCwKKyAgICBtbTo6eworICAgICAgICBwcmFtaW46OkJh cjBXaW5kb3dUYXJnZXQsCisgICAgICAgIHRsYjo6VGxiQWNrTW9kZSwgLy8KKyAgICB9LAogICAg IG51bTo6RnJvbVNhZmVDYXN0LAogfTsKIApAQCAtNTQ4LDMgKzU1MSw2NyBAQCBwdWIoY3JhdGUp IG1vZCBnYTEwMCB7CiAgICAgICAgIH0KICAgICB9CiB9CisKKy8vIE1NVSBUTEIKKworcmVnaXN0 ZXIhIHsKKyAgICAvLy8gVExCIGZsdXNoIHJlZ2lzdGVyOiBQREIgYWRkcmVzcyBiaXRzIGxvd2Vy IGJpdHMuCisgICAgcHViKGNyYXRlKSBOVl9UTEJfRkxVU0hfUERCX0xPKHUzMikgQCAweDAwYjgz MGEwIHsKKyAgICAgICAgLy8vIFBEQiBhZGRyZXNzIGJpdHMgWzM5OjhdLgorICAgICAgICAzMTow ICAgIHBkYl9sbyA9PiB1MzI7CisgICAgfQorCisgICAgLy8vIFRMQiBmbHVzaCByZWdpc3Rlcjog UERCIGFkZHJlc3MgaGlnaGVyIGJpdHMuCisgICAgcHViKGNyYXRlKSBOVl9UTEJfRkxVU0hfUERC X0hJKHUzMikgQCAweDAwYjgzMGE0IHsKKyAgICAgICAgLy8vIFBEQiBhZGRyZXNzIGJpdHMgWzQ3 OjQwXS4KKyAgICAgICAgNzowICAgICBwZGJfaGkgPT4gdTg7CisgICAgfQorCisgICAgLy8vIFRM QiBmbHVzaCBjb250cm9sIHJlZ2lzdGVyLgorICAgIHB1YihjcmF0ZSkgTlZfVExCX0ZMVVNIX0NU UkwodTMyKSBAIDB4MDBiODMwYjAgeworICAgICAgICAvLy8gSW52YWxpZGF0ZSBldmVyeSBWQSBp biB0aGUgUERCIHNlbGVjdGVkIGJ5IGBOVl9UTEJfRkxVU0hfUERCX0xPL0hJYC4KKyAgICAgICAg MDowICAgICBhbGxfdmEgPT4gYm9vbDsKKyAgICAgICAgLy8vIEludmFsaWRhdGUgVExCcyBmb3Ig YWxsIFBEQnMgKGlnbm9yZXMgYE5WX1RMQl9GTFVTSF9QREJfTE8vSElgKS4KKyAgICAgICAgMTox ICAgICBhbGxfcGRiID0+IGJvb2w7CisgICAgICAgIC8vLyBSZXN0cmljdCB0aGUgZmx1c2ggdG8g dGhlIEhVQiBNTVUncyBUTEJzOyBza2lwIGJyb2FkY2FzdGluZyB0byB0aGUKKyAgICAgICAgLy8v IHBlci1HUEMgTDIgVExCcy4KKyAgICAgICAgLy8vCisgICAgICAgIC8vLyBUaGUgR1BVIE1NVSBo YXMgYSB0d28tbGV2ZWwgVExCIGhpZXJhcmNoeToKKyAgICAgICAgLy8vIDEuIFRoZSAqSFVCIE1N VSogc2l0cyBhdCB0aGUgdG9wIGFuZCBzZXJ2ZXMgbWVtb3J5IHJlcXVlc3RzIGZyb20KKyAgICAg ICAgLy8vICAgICJob3N0LXNpZGUiIGVuZ2luZXM6IHRoZSBob3N0L2NoYW5uZWwgaW50ZXJmYWNl LCBjb3B5IGVuZ2luZXMsCisgICAgICAgIC8vLyAgICBkaXNwbGF5LCBhbmQgQkFSMS9CQVIyIGFj Y2Vzc2VzLgorICAgICAgICAvLy8gMi4gRWFjaCBHUEMgKEdyYXBoaWNzIFByb2Nlc3NpbmcgQ2x1 c3RlciDigJQgdGhlIGJsb2NrIHRoYXQgaG91c2VzCisgICAgICAgIC8vLyAgICBzaGFkZXIgY29y ZXMgLyBTTXMpIGhhcyBpdHMgb3duIEwyIFRMQiB0aGF0IHNlcnZlcyByZXF1ZXN0cyBmcm9tCisg ICAgICAgIC8vLyAgICB0aGUgY29tcHV0ZSBhbmQgZ3JhcGhpY3MgZW5naW5lcyBpbnNpZGUgdGhl IGNsdXN0ZXIuCisgICAgICAgIC8vLworICAgICAgICAvLy8gV2hlbiBzZXQsIG9ubHkgdGhlIEhV QiBUTEJzIGFyZSBpbnZhbGlkYXRlZC4gVGhpcyBpcyBhIHBlcmZvcm1hbmNlCisgICAgICAgIC8v LyBvcHRpbWl6YXRpb24gZm9yIGZsdXNoZXMgdGhhdCBvbmx5IGFmZmVjdCBIVUItc2lkZSBtYXBw aW5ncyAoZS5nLgorICAgICAgICAvLy8gQkFSMS9CQVIyIHdpbmRvd3MpLCB3aGVyZSBmYW5uaW5n IHRoZSBpbnZhbGlkYXRpb24gb3V0IHRvIGV2ZXJ5CisgICAgICAgIC8vLyBHUEMncyBMMiBUTEIg d291bGQgYmUgd2FzdGVkIHdvcmsuIE11c3QgYmUgZmFsc2Ugd2hlbiBmbHVzaGluZworICAgICAg ICAvLy8gbWFwcGluZ3MgdGhhdCBtYXkgYmUgY2FjaGVkIGJ5IGNvbXB1dGUvZ3JhcGhpY3MgZW5n aW5lcy4KKyAgICAgICAgMjoyICAgICBodWJ0bGJfb25seSA9PiBib29sOworICAgICAgICAvLy8g SW52YWxpZGF0aW9uIGFja25vd2xlZGdtZW50IHNjb3BlLiBTZWUgW2BUbGJBY2tNb2RlYF0gZm9y IGRldGFpbHMuCisgICAgICAgIDg6NyAgICAgYWNrID89PiBUbGJBY2tNb2RlOworICAgICAgICAv Ly8gV3JpdGUgMSB0byBraWNrIG9mZiB0aGUgZmx1c2guIEhhcmR3YXJlIGNsZWFycyB0aGlzIGJp dCB3aGVuIHRoZQorICAgICAgICAvLy8gZmx1c2ggY29tcGxldGVzOyByZWFkcyBhcyAxIHdoaWxl IHRoZSBmbHVzaCBpcyBpbiBwcm9ncmVzcy4KKyAgICAgICAgMzE6MzEgICB0cmlnZ2VyID0+IGJv b2w7CisgICAgfQorfQorCitpbXBsIE5WX1RMQl9GTFVTSF9QREJfTE8geworICAgIC8vLyBDcmVh dGUgYSByZWdpc3RlciB2YWx1ZSBmcm9tIGEgUERCIGFkZHJlc3MuCisgICAgLy8vCisgICAgLy8v IEV4dHJhY3RzIGJpdHMgWzM5OjhdIG9mIHRoZSBhZGRyZXNzIGFuZCBzaGlmdHMgaXQgcmlnaHQg YnkgOCBiaXRzLgorICAgIHB1YihjcmF0ZSkgZm4gZnJvbV9wZGJfYWRkcihhZGRyOiB1NjQpIC0+ IFNlbGYgeworICAgICAgICBTZWxmOjp6ZXJvZWQoKS53aXRoX3BkYl9sbygoKGFkZHIgPj4gOCkg JiAweEZGRkZfRkZGRikgYXMgdTMyKQorICAgIH0KK30KKworaW1wbCBOVl9UTEJfRkxVU0hfUERC X0hJIHsKKyAgICAvLy8gQ3JlYXRlIGEgcmVnaXN0ZXIgdmFsdWUgZnJvbSBhIFBEQiBhZGRyZXNz LgorICAgIC8vLworICAgIC8vLyBFeHRyYWN0cyBiaXRzIFs0Nzo0MF0gb2YgdGhlIGFkZHJlc3Mg YW5kIHNoaWZ0cyBpdCByaWdodCBieSA0MCBiaXRzLgorICAgIHB1YihjcmF0ZSkgZm4gZnJvbV9w ZGJfYWRkcihhZGRyOiB1NjQpIC0+IFNlbGYgeworICAgICAgICBTZWxmOjp6ZXJvZWQoKS53aXRo X3BkYl9oaSgoKGFkZHIgPj4gNDApICYgMHhGRikgYXMgdTgpCisgICAgfQorfQotLSAKMi4zNC4x Cgo=