From nobody Mon Jun 8 06:36:22 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010024.outbound.protection.outlook.com [40.93.198.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1A11C3CE483; Fri, 5 Jun 2026 08:32:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648340; cv=fail; b=pj0mMJVfhUyU4QCya8+7MbYfAZ5fGeDQNBcUYip8zs0M40hIZBgbIoBIuBBhKA5+eiWMywhuG3m2Be31M40og53+wn1+n4lYe6nEYpRP8+QPtjxPnJ7Lref32d7EMcpAsE8qx7sgB15kNbyg7xX3UUvUGiKb8j608HmzfqX5Y1Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648340; c=relaxed/simple; bh=nF7nrByj3qTAPVZUS05j9hKMvom3cuVj91I2BItOOKA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=awxxTYaqMkWDv8WLp4Sveslws7wmQpEWEl5mpF/Jgxw++oRFzydt9HcfoLV/bKLqvBga3a0DMtNo1f/JTLonkGzcac587TLCy0KuP5z3MEuCdVBqr/bYro5c9KZWWL5/elNlipqnvVtzkESD9rENdjmN2IwE5cxywr2FijGL9ro= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=bWIYes8q; arc=fail smtp.client-ip=40.93.198.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="bWIYes8q" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=txci0+sTh3uMZErEAUEX/bORxew9zuTH7+xlnELJHzDCpSnsYIi9m8ooZ72TkIPtToEkMj3ZEwj5pXg5NR3u+jG92avwir2p48ICbr2ZrlEHIMilYu3Y89E+zUISbkrFllsLZp4p4HjMo7bLRHQqoOVC4/PvJ1gyEjPmU7tWUJuLw4QJdf0jyiei5jLDtZMhh0vexnVqK9sScAhUjjaxsU4a4g+o02qEB7ALjvWZtbGce9rJv/hQuxtYRGADnIBEZYL2EUjM91845rInPykCYrNJ1sJOR0s/qOo/+7rUt0oalqukAGbgtEdWRQxOwG/LeiPukPMxkaW4Bl0XKtPstg== 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=BIn5VwGxGy09L/Xx3FjIGfKAe5WTC8u+uQT1rg5JEaQ=; b=VqmjMagIcDv58HyKlT0VG80XKNKBkXSgx6TX3/04X+QYIVadDVKbZC6wxIKeHuOrqimW7t/9QZ7zc6VC+rjzBefhHoUEs7jvSfEmRRxLPXU3kTRNgLAZd12/1teptpg/DJ3Ws+D07I49379ahKwSvs6UFWXqnw+A/Uqkc3r6yuAApyyQrMSJtF8S+IcEi6xyc5+VtKhNx9acS4D77E4lnBGMUxRE2pavJ8kHN2uwPK+KIZydkk5bSFvSXuwiVdfYF9Ow9x1Se5szzpWiUbR6sJzU558Wqp94W2jCRQU7v5s+pbHTNFYmHqT25kEPr887SbOi6RAsDoKGuLBnUnq/lg== 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=BIn5VwGxGy09L/Xx3FjIGfKAe5WTC8u+uQT1rg5JEaQ=; b=bWIYes8qWbCsX6SOqDn/EkKsIck0eZGWh0WAoMEPtS6Nu2xOkYgBAlY7fdfi8v4WL5vipinHCfI663ASp6NPaZkQ4nbwruXitXB42Enpq//aR4XC13k1Ut2hCglJZlK8vckQGuFEj0n6Fo/wuGljsmQl0ctxFgSGstzAZjB2fh0RPK1osbvymHfW/QLZJ/H8Dqq759kbFwMshAfibOI2sbpnoRurYlRWVi5a9jrrQhynkp8ZOVxVvImHjiTdEdA58WiJMLhBRUsHdxMmc0iyDJSJAcODxSVM/lIAVmhfdrIRV41g0fZYqmgve8zSrAEimvYWUXO8wQIBmjquUThuWQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB8911.namprd12.prod.outlook.com (2603:10b6:610:169::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Fri, 5 Jun 2026 08:32:11 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0092.007; Fri, 5 Jun 2026 08:32:11 +0000 From: Alexandre Courbot Date: Fri, 05 Jun 2026 17:31:51 +0900 Subject: [PATCH v4 1/6] rust: inline some init methods Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260605-nova-exports-v4-1-e948c287407c@nvidia.com> References: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> In-Reply-To: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> To: Miguel Ojeda , Nicolas Schier , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard Cc: John Hubbard , Alistair Popple , Timur Tabi , Zhi Wang , Eliot Courtney , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: TYCP286CA0193.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:382::6) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8911:EE_ X-MS-Office365-Filtering-Correlation-Id: a3785ff6-30ff-4eed-5f23-08dec2dcf04a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|366016|1800799024|376014|6133799003|921020|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: VnJ22tDSwfUI15poIcmv2GDMGa9QaJFwhngGSzgzQt2juZ4rQW3NSV7qV7jeoLy0jgQqJWWuxSV08PISD+XxYIG00y1IRDs0a4D82ax52MXssYKY1fO4TXV5rZl3N2OT1TIXkZHbNyuHTqTg6CXRunhKu54gc+KMb5QgNG1zNOm2l5KTtL/6XEdmJzK5K0R35qhdRhCnqRBVu0LLCB2r3EVsPPirFLFZDYZgFOLaVTyHUnolk/oAUtKRYtKQ3+LcvFgKK1/hy7225k3ID/2Dg/oWgjoBVAsqupr4lPU1tbJVZiOV0XFriG7dpzXuzn+jYMkyG5sZ2rOs2q4SYMnxlO6anPvQzeRzdfM4ekJLehM4FFMYTfHwHmmGOYZGEV2/9eWeN1Si2daVZNB4N9KASjfZ3TFKjmRciatvn49CyEVULTLqjR6luAss9QLS4DBvyxCMf5xoU1IsknuD5OPWhZ4ewz4Ezw4H0Qo+fK21x4Z5iQUO5Y8o+3YrJKDkfz6RMSQ94NKGd9kxIhrZocsOT44tERwbdYAJjeHA6cX1e9J2drel3YTFmhtMAsFNw/t0I9a5mSDiZl4Hu982qhFDCd8+wA3NffR+44aXH1ZM8qwnR5V2IMOJyywx8f0NNXuseJP61NF29Wtkzhij4z5ZnwQI77Tk/Uw+hzACyQufTlShrhvK1p4gMWuvC+RWQQ/VqvjGOLiV/WjZuyHV64BJ2oj+wJP0L3D7ll44sXhhCZg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(366016)(1800799024)(376014)(6133799003)(921020)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NU5MUEROUGhCc2g0b3QyVGtvN1ZoL3NLclgrMzJGaktZc24wbjJ2Z1ZhY0Mv?= =?utf-8?B?ZmJmeWV4R3ppOGtYR1h6TTBTYjRnMDZtRFcwNGFMQXVkN1NKZy9IV1pXYkpK?= =?utf-8?B?RXdaenlKUVB5RFZxUXZHVFJHaVVNUktpekk2dTJoanY1dkhyZTFaSHBJclR3?= =?utf-8?B?aGhmbTc2VERzbkVxMGNib2liV0ZHOTdkbmZBb3FuZWFzeWsrTkFkazRQTURK?= =?utf-8?B?ZmsvYnM3OXhmcU1TVTZGRWJuZjdjR3dDbXNlRXpFYWhuUEdDUXpRRVFBMHAx?= =?utf-8?B?ZnUzSm91T05yU2RsUXdzZzFUenRwMWw5RitWSXYzb2NOcVpvQ2dFV3ZObnht?= =?utf-8?B?elhpWWVnakJoMFJSci8yL1ZBd2dMMnJvdE92QmxKeCthVm8zVGlHMy9vaEpC?= =?utf-8?B?ME02V0FuOXdOcnVaZllmczNKalEwV2sxc1NaL0FVWTNLaW1XS2hEcTBLN1Fr?= =?utf-8?B?b01BRC8zSlcwUDlnOHZWZnlVVGJXSEFQWVdTei9FanM5MWpNRUxxZzc2TXgy?= =?utf-8?B?YWlhNDgrOEpkcnNrdDBTY3BESFVpY2Z3WTVKWlNMU3RGenA0UGFMS0poUEhL?= =?utf-8?B?MFMzUHZyVkg3SzV1SVpidVlhUzU3R3ozcjduWWZlck52VTEwT1BFNDVwVHFi?= =?utf-8?B?aG1jQTBNSEU3dWxad1hkSlptL3B2VkhJdGYrTisxSG9yMDREcHdaRUZWYWEz?= =?utf-8?B?bmY2L2hZSVJUWkxWL0ozNjh4Y2VTSlBSVFRZc2d1WXlVSHV2OXhmZ0FaZXJ0?= =?utf-8?B?em5KZlZDc2hleWRabDIzd1p2U3lXc1JpR1kvVzRlMG5KcFI2QzZjZkJLREhN?= =?utf-8?B?djlGQmg2bHgrb3pGeHlwcUhkanluM3l2am9vazdxQ0JWaUROaWloa0x4VUtx?= =?utf-8?B?UXF1RkIzS0dNNWhjY2NBQm9pOUV3ZmRRdGRlTEo4ZVZRTW04cWQzTXdwamQ1?= =?utf-8?B?UDJDQVcxSjlDMHBpVm1Rek1WcWU2UlRLendUMWRaeVNwOXVPeC94Z01wZnhF?= =?utf-8?B?Qm9sU2djYysrcnBFRThtNUJ6VlhNSVZ1SnZXajhraFJEN0k0SkUrVlZJQzlY?= =?utf-8?B?anNBWGM3aXp3TnN4Mk5xVTQ2MUcwZkN1VDhlb0wyWTc0TVVCY3JkU1F5dmFm?= =?utf-8?B?ZVpVTUJ6TzdRblg5TEc4YTdwdmlJUmtIWW5uaXZka2tVR2hHYUdwWWYrcUVn?= =?utf-8?B?TUVzZ3AvNzZIMGc3clNjaEd1TGZKQ21CSThkMm5UeFRjL003dVpQdXdManF2?= =?utf-8?B?OVVPSjA4MVJqTjdHQU4zNWlWZXlxeXAwaEcxeS9BR2ZnMzhFcURLWVorZmJz?= =?utf-8?B?SlBRbXcvQzd0NFBrK2R3Yi9OR3hMakVQdVJaOXZNK1E4TE85a0JobHRJQVcx?= =?utf-8?B?SXh2UGEveFhQSDlQRlhlN25hZ3B1aE04MzNOa3Q4WHAvZExORGExOUdJRHBE?= =?utf-8?B?VkQ5b3JDb1hSb2xOZ3ZXdkk4dlA2ZVpCYnlQRFpGZ0xRSDRCMFhEMENHK01N?= =?utf-8?B?REF0d3N2RHpnSVZCcFpzZUJjRXp6eTZKQVZLYUI0UGZpajlIRkVnV0xTTGJn?= =?utf-8?B?NlZXUVpvRVJNY0xVaEtlOERCTFdJQ0ZOZHFFWGRzSkRPZUF3blB0SzZWSElJ?= =?utf-8?B?SGkyRXJYQmRqRVlWejNOUmJvcXpRTVpBWW8vSXBSUFROZXVBOFNFZE0zMkhC?= =?utf-8?B?WGE3MTVYRUVjblhFNXhQWWFwSGhQN3I3YVBjcFlqdGh6aitZTXVMT29UOHdq?= =?utf-8?B?QTFwRTBoeEF2ZkpVeWlpRW5hRksvbU1LYmxlV21CcW9pUlliOG1jRHBOR0k4?= =?utf-8?B?Y256TVpLU201Y3czNjdKVnlMVzVkZmZheUV2ZzQ0T1FMOGdTak5vdHpEemZS?= =?utf-8?B?V0N3YmNiT2sweEJ3elZBNXJKMzFrZFgzV3UrRDBIWEtEdVVoMCtXOWNsV1lv?= =?utf-8?B?bTNPUGJ4YUdCeFFwWWpEQ3R0TUdUd1lzKzZoL09RZStjWGErU1RzRCtOUHFs?= =?utf-8?B?S0UzTzFRa0dkeStna2lveThXU2ZTSzYvOXMxVFh0bmJZMDFBTk10OEFqUzBV?= =?utf-8?B?WHVJOUtXYlN6d1ltYmtzc1IzWUkvVkVNcXhyR0V4bXV0ODRJTGVhUjdNQTZi?= =?utf-8?B?MVBzUlpVem5JbURTT2VFN0VnU0tlcmI3NnhmbUE1RTh0TXEvSU1CTDhrWFAw?= =?utf-8?B?OGtJdzVyWEFEU3ZRVXhNaHI4dEROaVE4MzNCVWVDVmRiYmpyZHcwaW85Kzcy?= =?utf-8?B?U1RuZmpLWmZ2NmZ3NDV3NURIQWcydmlHZytQdVcvNDNKYTJVM1UvVDJzTk9Y?= =?utf-8?B?Z2ErbXdVL2dmV2p4R2FzOG91OFZsRDUvdTRFQmZrTFUxU3hjWElUZEpoZnM2?= =?utf-8?Q?VItgaGc4gMh5KH+iljfK5ZivdBJMPqK0vL2sGjc89coEH?= X-MS-Exchange-AntiSpam-MessageData-1: z4ZXyRI0DMlxUg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3785ff6-30ff-4eed-5f23-08dec2dcf04a X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2026 08:32:11.4686 (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: 5dZ5i0aOouJQx2XT/EuHpMB46ZTY231jY4iikxAiojDjwjAtTN0bRqA5n2dn2r1v9iwAj4uFXfNNGbeCE6U/zw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8911 These methods should be inlined for optimization reasons. Failure to do so can also produce symbol names larger than what `modpost` or `objtool` can handle. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- rust/kernel/alloc/kbox.rs | 2 ++ rust/kernel/init.rs | 2 ++ rust/kernel/sync/arc.rs | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/rust/kernel/alloc/kbox.rs b/rust/kernel/alloc/kbox.rs index 2f8c16473c2c..1264a8118aca 100644 --- a/rust/kernel/alloc/kbox.rs +++ b/rust/kernel/alloc/kbox.rs @@ -433,6 +433,7 @@ impl InPlaceWrite for Box, A> { type Initialized =3D Box; =20 + #[inline] fn write_init(mut self, init: impl Init) -> Result { let slot =3D self.as_mut_ptr(); // SAFETY: When init errors/panics, slot will get deallocated but = not dropped, @@ -442,6 +443,7 @@ fn write_init(mut self, init: impl Init) -> Re= sult(mut self, init: impl PinInit) -> Result, E> { let slot =3D self.as_mut_ptr(); // SAFETY: When init errors/panics, slot will get deallocated but = not dropped, diff --git a/rust/kernel/init.rs b/rust/kernel/init.rs index 7a0d4559d7b5..05a12e869a57 100644 --- a/rust/kernel/init.rs +++ b/rust/kernel/init.rs @@ -151,6 +151,7 @@ fn try_pin_init(init: impl PinInit, flags: Fla= gs) -> Result(init: impl PinInit, flags: Flags) -> error::Resul= t where Error: From, @@ -168,6 +169,7 @@ fn try_init(init: impl Init, flags: Flags) -> = Result E: From; =20 /// Use the given initializer to in-place initialize a `T`. + #[inline] fn init(init: impl Init, flags: Flags) -> error::Result where Error: From, diff --git a/rust/kernel/sync/arc.rs b/rust/kernel/sync/arc.rs index 18d6c0d62ce0..feca07e8d13d 100644 --- a/rust/kernel/sync/arc.rs +++ b/rust/kernel/sync/arc.rs @@ -712,6 +712,7 @@ fn try_init(init: impl Init, flags: Flags) -> = Result impl InPlaceWrite for UniqueArc> { type Initialized =3D UniqueArc; =20 + #[inline] fn write_init(mut self, init: impl Init) -> Result { let slot =3D self.as_mut_ptr(); // SAFETY: When init errors/panics, slot will get deallocated but = not dropped, @@ -721,6 +722,7 @@ fn write_init(mut self, init: impl Init) -> Re= sult(mut self, init: impl PinInit) -> Result, E> { let slot =3D self.as_mut_ptr(); // SAFETY: When init errors/panics, slot will get deallocated but = not dropped, @@ -782,6 +784,7 @@ pub unsafe fn assume_init(self) -> UniqueArc { } =20 /// Initialize `self` using the given initializer. + #[inline] pub fn init_with(mut self, init: impl Init) -> core::result::= Result, E> { // SAFETY: The supplied pointer is valid for initialization. match unsafe { init.__init(self.as_mut_ptr()) } { @@ -792,6 +795,7 @@ pub fn init_with(mut self, init: impl Init) ->= core::result::Result( mut self, init: impl PinInit, --=20 2.54.0 From nobody Mon Jun 8 06:36:22 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010024.outbound.protection.outlook.com [40.93.198.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 91EC83CFF69; Fri, 5 Jun 2026 08:32:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648341; cv=fail; b=lksRcI6iMAcE6dsiDDt7lzOuHr4zRja2xhbrIHhrpvLXqBZtmeoe7P3W3PUg+zA9vVtahyWokwXkcYMQvR1jd9c1ew2EXZqJQITL3KOBysRn6q5kUqZiB9fPyRDFMZ1b32TzBKC3SmHa8IUtRBamRe9dOQJausa/a1mPtTZlrGE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648341; c=relaxed/simple; bh=tec8M94NptsN7JLV6YHc8vNxk76v+c3t8Kqql2XTDoQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=WKgiQik9CedPDixHpgINSUK+hguwHBxgdAa/mN/rZK/OYPE3ZBvTwJL4+MNHs0BDd89ADfydQOr/ExLbRwRX1PwbV9w4js0RVZ1PDQbTGIlThiPOFo0ci5z+Bqq5KeUL2MTAscgq5XUFqnavkhcbra/S4AFgDKtwigzrWpbFLRU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=MBvdhC8U; arc=fail smtp.client-ip=40.93.198.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="MBvdhC8U" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k49ITvnuw6hhuGVMObHy/06bcJI+wAGMr8RMqE+u1Kiho9l6AWLT4JTDgBdTp5v9iDG+9Kyy7jhWwqhg2mASxjLP+9GA28mIla0nuBmpVUY0DrT8YgJ9RPWI/zoWZ0mnDHtdwzc3wq3kqVFuj6n/JU07x+5PwN5lM20utSny06ZhdRL0J5NTbqCp2Eqdn/3x5IWTjCEbgHFayCYAwgMiUY0w2iuYr3TEuPJtVm+4wCXQRyvohY0aeXEwoOVCxChfZPN+PmrJDjQlalZM5LHJFCs+Qppghvr5ZpPzSX3TIHjKHzo+ixDoP15NZ3T82TZh6+VEdI5GHn0PdJ+EuNOshg== 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=aTgL3s2k4HcV02O0BOGTYGIhF6isKW1AGP+UQ9A3JEY=; b=FekLHA606vgHYiSHdus6k/mtt3S4K8SAGgHO93vF7uMS9ADbszTmsOsTZk5bVa4yowzrbLwRZLeJ+PgFUAC5ZQOXNY199xbQsvcUmv7pxyKrF24f/KcT3akIMqb+M0Eu/iwNvq9dMY7EQ5dW88YeT8Do+lK0SgWtr7pD7NYP5kpjNGS3WrmwKEDakvpULmwAIdw5mRqChU3Ukro3ZjYPFQBf8ItWXC30joTC9GVQ61QKUfGFIL+YTt57+pbX2nNtittSn+LV6z8FoJexafsHlE2IrLPJZOZm7lJOIqRMmz3wWqa6yviXLTAcPcGqyTzTxHPS9hQ0vsCy7vpzyPj6GQ== 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=aTgL3s2k4HcV02O0BOGTYGIhF6isKW1AGP+UQ9A3JEY=; b=MBvdhC8UZ8lowRDtqBB3kijTq2vV3TENY63TWG+FVQ0t3x++wNIUjjzlrrQ6cPWR2/C3WNIfSE7lfh/7YZRWBkdg7z2eNySDs3GboKoPR3uq/7SVvq3pRMQfNtCWuQf9I+cm5L1svPBLvlfdkvlFoXbgR+L/QLpeOLYh6wzukGgYTAkMSYCBkQLVJNqy0usnLx9MJyfCumvOueVlGfkzGxqAsq17dtCTT+YHW0JO9WM5JVDfQl3YhVwFHsbijjm4lQYJ95WwcTOyR5XyLdqDwgs3CI4g8xEsEJmqO1IppsThX2DHPW19uTcXvM8J+pBn1LT9ekS3jeXO7H2WeXY05A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB8911.namprd12.prod.outlook.com (2603:10b6:610:169::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Fri, 5 Jun 2026 08:32:15 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0092.007; Fri, 5 Jun 2026 08:32:15 +0000 From: Alexandre Courbot Date: Fri, 05 Jun 2026 17:31:52 +0900 Subject: [PATCH v4 2/6] gpu: build nova-core and nova-drm from drivers/gpu/Makefile Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260605-nova-exports-v4-2-e948c287407c@nvidia.com> References: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> In-Reply-To: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> To: Miguel Ojeda , Nicolas Schier , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard Cc: John Hubbard , Alistair Popple , Timur Tabi , Zhi Wang , Eliot Courtney , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: TYWPR01CA0048.jpnprd01.prod.outlook.com (2603:1096:400:17f::18) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8911:EE_ X-MS-Office365-Filtering-Correlation-Id: 53f17529-dfaa-4eb6-75b7-08dec2dcf2c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|366016|1800799024|376014|921020|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: k12Xcza2EwRjyRZ6L2Cp5lQ3wd7zVyUt9y7A+kYbV8udv8GnvNXhuwizwhVNc6IJzR9JaNrwfegzqyeS2c+y6dyrNOCcn9NRWEmG9jGEqr0wf6kjUiyODyTl4Z6Hl/FS4GgDusH7yAhTyG7oP69tj9ohwEKPa/VJ+H4AT+HJaInIlAyHaVnBo5eVt05utfE8hVuRc3sGleYqUxOxn+mNoemEghw6nuhCXrNBwdm4XaorORmEDDbEOdBwz+TxdMfPQwn11OuoueIPzd+x6bZ5IiVofWAcN37rVqfVjmSCMZkuK1L1W1Uwi1ZQeAIe6SoSQrizerjzr9ydtcvv/Vg59ViFqOMrIGKW+1n5cCe3e/adRxpZ9oZ+kL6CJqq7ABDn+ZYB81qgftv/IWRaxLcr0U2OnVKl5AnQXJwzKUFU9MRU/0tg4KE1i0SUGpZn2BTxYYjN7cvTu+FpAU8iKyi3e3DM4J/cwKrEXbKl+uTZrbyExi3+2opvvObIR2NGCrtw6q7C7/8fjK3RPcRRLOPKyuNq1SGjSSKM7Sp1OzoQK9hHceUXoa7QgxgAp6QiJ0yA2M8p3TSgYuN1+bzuuOiKMLymrXmG3jfx3X0G76CLjte9DmZmvofhg9DU69Rtc2DVVwXyepdlanmdck1EjLbmCIURv4hkzm/F45HsHhe4Q+IhKetwBtmM58/1wDyzinRvz/PlTvtN+K0nqGNG4ynlm/Y2URB1XW3Hl6IcvPf9E0Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(366016)(1800799024)(376014)(921020)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RDZMdjR5YlJqaU85UUZqY3RJRzc2NUl1UmxoL01lQktFK28rSCtlTDdnTVBK?= =?utf-8?B?MGIrNXZ1cUJBWStxMW44UWMvdmlhYnVQT3NPdjlUS256UC9qS21Bc2FVQUdZ?= =?utf-8?B?bCtFVFdjcjhLZWpUT1l3cEo0UHpXcDUzaTBvRHM1M3lJR0tCRDgvRlFmbEJZ?= =?utf-8?B?TkFhZTdWaWFjMVBMOEViZ1JISGEwWHYxazhpVDZKdDdjSktjTDBQNVRDZ1I5?= =?utf-8?B?S3lhZE1xcnRPTXp3Ly9YUmdVbzJ2b25HdFIvUFphc1JrNlAwcUMwOVBPS3pX?= =?utf-8?B?R0VFaS96Q3B5aTMyM0o3Umd2WThDWFo5ajcxZHN4ck5VZm56TDdSUjQwN1NG?= =?utf-8?B?ZU9ldXZGMW5vZ3psVUdTQ2Y3ekpEK0Y5TXUrZVpOR3ZxVTVBMkE4SFRqenYv?= =?utf-8?B?dThyVHRDdURzSEM1SnZ2aVZoQkJDTTVEWlNCbURFQ0ZzNEFxME9iancxNFNR?= =?utf-8?B?WnRXL0M5OE4xcUVvMlkyazFWV0tYbllyZHFocUxuMFF4ZWh5Mjk4L21XVFBB?= =?utf-8?B?M1A0dUNGVnBETVh4RENud2pQcG94L1kxT1haUlBpMlcwT0lXYnB2SEpITU1q?= =?utf-8?B?cUlzRXI3ZlFweDJKY0NENHVzSUJVcVhaZm8xanpPRlB0OTVEblVZTHRvdThL?= =?utf-8?B?a21pYVdrK2FjVWdRb3EyWGc0TEhmOTB0ZEtDTWIwaTYzZHpWL2JWUlBEd2ZO?= =?utf-8?B?K3lzYlJpeitDWnAzakh4amE1UzZFTDR3UnhkUE1hNktuVDNGdGlWczFNbWMy?= =?utf-8?B?R1dUS1p4ZzBWQ3VnelorWFF1LzJvejRoRkl2anYyWUtQVEp4TEV0OGhRWEhw?= =?utf-8?B?bE45aFRYTVhtbk5qMVY5dlBIYUxkdDRRZFRKMis2V0NsQko2anlSdEdpbEJD?= =?utf-8?B?dlBFd2dveXJnZlI2VlEzVGNCSk95LzhJUkdncHc1eHZpWlpxbmhRRkc0cy80?= =?utf-8?B?dGhFQUNTRGM5aGx5NVplVGdFVFZQWEpuUW9vYTBuM2NTdkQyVzF1VU9xc1hr?= =?utf-8?B?bnZGMEcvSzFwaG1WRTRFcGlPdXdyU3dJMEhCaWoreEk2Ulp1T3ZlK2tGNVBG?= =?utf-8?B?L1JTejRUMTJhcG9XbEd4Z1YzMHh1emhMbjVXN1U4WlAvNFd1TkJmUGdjc3Ro?= =?utf-8?B?dWlLbHhPM1RVdzVPbzlqSzBvaWZTejgyUzV6ZlcwZ09kSTZBbHlaN3dLdUN5?= =?utf-8?B?SGs2cnByV3BPQTA4STE3cmF5ZWhHWWJXeDYvTm44WFBqTzcxMFBmQWRINlJk?= =?utf-8?B?cXBMYlJwWGZqdDFFSnZjUEFrYm5RbnpjaEwrVHBEdzFPSVpiVm5kK2hLV1kx?= =?utf-8?B?SnBrRCtGdVh0NkFaSW9BTEZFNVVHeHlyMG1VUk1uWWoyZi9Yc0djVUhJT3JO?= =?utf-8?B?TzBRWFAzbldXLzVJOWJ3QWp2cm1WU3IvZjJodWIxaXZPVUl1QlVGc3hieDht?= =?utf-8?B?azQrWURFSGdHcS8zbzIrZ2tFWXg4eDNnZDU0c3ZHcTBlSi92UHliMCtoamlE?= =?utf-8?B?Z1JyeXhuako0M1p2SjRtNWtwLzR2N1FmWlpQUmtsTkE5eVRER01hbUZFQm1D?= =?utf-8?B?SDI1WnNmUjIzN0w5RDd6SUN3WVdnd21UVW5WYkN2dzhEaktRenVzN3hGMVZK?= =?utf-8?B?cVE3MThFaVRlRWx3eldURHlFSmpQa0RaOFdLSlUwZFJQTmNIRTZSWGhFemZz?= =?utf-8?B?REFqcEpTMkllY2lDcVdLa2dDUDYyem9CU01NNHRCSDhzQmErYUxEQm92Zlp4?= =?utf-8?B?LzlLZWRiNVpKYmxJQ3BEWXhoY0MyemZGS083Y2NYaGNDNWN6U2dicTV5eUsw?= =?utf-8?B?TzVvamhvRmcwZlFuTm04VXV5OVBoazQ5dnhsTnd1dVRPNUZHbTljRjlneWts?= =?utf-8?B?QzYwdEp0eE5lMmlDTk5RWGpDankxWnB1WUFDYjkxSnAySTkrQklGWGhzM3NM?= =?utf-8?B?ZmFNZ3lzSlduMG5LcTVtUGJNejJQTmNFSzFHUno3TWJ5aWxhTVpIaEpSSnE5?= =?utf-8?B?MTJjWmN0a2ZIOGtld2dCSWF4NWhsNUR1a3pJSzU2WEI2cmZXbmRrVDA3Vytz?= =?utf-8?B?aDB4T3RVSGZNK2Q4dUFhVUU3dlZWMWwyakFPMEtHd05FOEtJL3ljYXN0MFFK?= =?utf-8?B?S0FjWGxreUl2L0xCQ2o0WkRUWnVaQU4xN0RTY2tWZjRkSzkyUlJDQ1pEbVo1?= =?utf-8?B?dWFFUXMxaTRId08rZnBidGpRWUpERFNPVjZicXFJaTJZWmFwNk81TWRrRzZL?= =?utf-8?B?T0xNb1RyRXM4aVpzN2tFcEc4SW54VUNZdkcrcGRNM1hlUWhjWDJVbmtQcFE2?= =?utf-8?B?elBDL3NxUDZseGd4VGo4aVdMK2JteXFqcGx2RWMzNEJ2SnBHUHRwaTd1TGVw?= =?utf-8?Q?n9VliY1ipUMHUxtLgvpBn8J8qXbq4bxKodeaDv++CcFjr?= X-MS-Exchange-AntiSpam-MessageData-1: qwEnoJNIF4C6XQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53f17529-dfaa-4eb6-75b7-08dec2dcf2c3 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2026 08:32:15.5947 (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: uWbeKkz0jp8MAgAW6LI79LN/ocW6xQPvSrT0pSeQUj+TsPJZLs6/V9EGRv/F6QHe6OlurYfHWUWYxvjD9rbm3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8911 A dependency between nova-core and nova-drm is about to be introduced, which requires nova-core to be built first. As this is not easily doable from separate directories, move both build targets to the first common parent, `drivers/gpu/Makefile`. Suggested-by: Miguel Ojeda Signed-off-by: Alexandre Courbot --- drivers/gpu/Makefile | 12 +++++++++++- drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/nova/Makefile | 4 +--- drivers/gpu/nova-core/Makefile | 4 +--- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile index b4e5e338efa2..45e0941324fb 100644 --- a/drivers/gpu/Makefile +++ b/drivers/gpu/Makefile @@ -7,4 +7,14 @@ obj-$(CONFIG_GPU_BUDDY) +=3D buddy.o obj-y +=3D host1x/ drm/ vga/ tests/ obj-$(CONFIG_IMX_IPUV3_CORE) +=3D ipu-v3/ obj-$(CONFIG_TRACE_GPU_MEM) +=3D trace/ -obj-$(CONFIG_NOVA_CORE) +=3D nova-core/ + +# nova-core and nova-drm are built from this Makefile so nova-drm's depend= ency +# on nova-core can be expressed as a plain Make prerequisite rather than a +# recursive sub-make. This is a temporary workaround until the Rust build +# system supports cross-crate dependencies natively. + +obj-$(CONFIG_NOVA_CORE) +=3D nova-core.o +nova-core-y :=3D nova-core/nova_core.o + +obj-$(CONFIG_DRM_NOVA) +=3D nova-drm.o +nova-drm-y :=3D drm/nova/nova.o diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile index e97faabcd783..e635fcffd379 100644 --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@ -186,7 +186,7 @@ obj-$(CONFIG_DRM_VMWGFX)+=3D vmwgfx/ obj-$(CONFIG_DRM_VGEM) +=3D vgem/ obj-$(CONFIG_DRM_VKMS) +=3D vkms/ obj-$(CONFIG_DRM_NOUVEAU) +=3Dnouveau/ -obj-$(CONFIG_DRM_NOVA) +=3D nova/ +# nova-drm is built from drivers/gpu/Makefile together with nova-core. obj-$(CONFIG_DRM_EXYNOS) +=3Dexynos/ obj-$(CONFIG_DRM_ROCKCHIP) +=3Drockchip/ obj-$(CONFIG_DRM_GMA500) +=3D gma500/ diff --git a/drivers/gpu/drm/nova/Makefile b/drivers/gpu/drm/nova/Makefile index f8527b2b7b4a..b9fad3956358 100644 --- a/drivers/gpu/drm/nova/Makefile +++ b/drivers/gpu/drm/nova/Makefile @@ -1,4 +1,2 @@ # SPDX-License-Identifier: GPL-2.0 - -obj-$(CONFIG_DRM_NOVA) +=3D nova-drm.o -nova-drm-y :=3D nova.o +# nova-drm is built from drivers/gpu/Makefile. diff --git a/drivers/gpu/nova-core/Makefile b/drivers/gpu/nova-core/Makefile index 4ae544f808f4..4c15729704a1 100644 --- a/drivers/gpu/nova-core/Makefile +++ b/drivers/gpu/nova-core/Makefile @@ -1,4 +1,2 @@ # SPDX-License-Identifier: GPL-2.0 - -obj-$(CONFIG_NOVA_CORE) +=3D nova-core.o -nova-core-y :=3D nova_core.o +# nova-core is built from drivers/gpu/Makefile. --=20 2.54.0 From nobody Mon Jun 8 06:36:22 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012049.outbound.protection.outlook.com [40.107.200.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2972A3D890F; Fri, 5 Jun 2026 08:32:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648348; cv=fail; b=sXfddwVo9v2DebKd5836uU74XzIMErvEMAGRUhTHZB5Ro7x5BNH0yXDx2vueoFb1/Xu70V6heDmSUdRlJwttly/HKueSRdX6V5vbmIuTkoD8qTGsJxqn1Ejcv4yejqG/8KCGcu0xlglITJ4H2JHNm0lkVoRqdLpwTgLlIWeEaic= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648348; c=relaxed/simple; bh=V94CDXtTl05ayQywWeTVC6DT5AzlT1XWknkJ4kMXAz4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jZ5Ci1ph/3qvxCAZtMJFxECE/5kuY9bYhtXAveHdpI7kcgOJTu8LhWYY6fwAxhR7EAQfM8vJ3zCOHos/bBCKSBKHLnF48fUQVN8weoGxnZUf5Tdg7xb1r7bMa42uwn26E+QD49Sas7RFH6dVBNy6Cm2wLeA8YxbeU03d1QoGIdY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=MridzUhz; arc=fail smtp.client-ip=40.107.200.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="MridzUhz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f5i6bXomDppfGzQMDJl/mfN3+5boztpKa042oyPbrp3T9zDRtTPmxG3cBfQec/b4wBeOJ3j4AlGnm7UXVZKlVgn0Vb/OF2EGkf72fAFHT3cIJME1jsnCJgvqsNC/st7YarYB5Jz6ErwN3Z+x4yeNj/FX/2WbOkM5eRA3bFT/IL2Wq4VQPISGlQJ3EmAl6UA+KP9vRKuiKaxH6DCs6SoVOL/31WwdNQMvLngwHVt+Aw3dh6jzefsYakpEcx9BHdUB0tx82vNVoDGfyk1jgdJRZ0XBk98+cYaPJkrzPcusQT5I2Pilib4h59UJPNurWnM3t6VMl1mfL+jfeHd9Rmq8Sg== 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=KgtsKxJti6A0bssqY6P1oPjVsfvI4ulpdzbKVoiHLQU=; b=Y56N3m3L4XO+PcBKbleEPmgG5Cvc6Lr4UZbIU8QrUMCG6zwGh6KzTc3+xJu5naYVdeFdG1M+YU77m7SJAdm6oapGY18ZdTZ3oL5MEblPtsy9ZDbV/ij7KKYF6ORAtOYsv/xehif1qbLFJfdwi6Cgw7r8L7+LBmHsMtxkaFRtawegR6GDRRDRfjJb/bb+b7EZVF6Q6czJesmg0oHE783XuJUyijpA79+vtWV7JrcKIbffRZSg+yBLoDAl4h5r395dFGEmCJDPjFf8sRPrstT03ddwJ2w8w5JlTXyl74ThFxPiX+KENWXVpeWzsIUEPHYArae8+t+/BEcyhV70hlcpFQ== 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=KgtsKxJti6A0bssqY6P1oPjVsfvI4ulpdzbKVoiHLQU=; b=MridzUhz+tlnHvkcGJ/5zZZw7Lm8xVUkEfPiLvBJAWQewsgDYjDHphbHSwb1ct2NzVVNMfogHZQzuj0THTyrTjOT8hIybLGQblfXB5+cTgwUE7UEeudqOZtDjPfnGkvR0k2WG3NbeQFqq1KUnfFFQAEOvYigxoDKCZNufEtkwXNtR+va4xD5rVY2tQKv/07ToqQ1kXmmBtI/mC+Mda1ADHCTNTPidzQaGkZ4KQQU5vTeYf3+zSNfnBr5FE1CLTcuHkt+TtGLtyAzZai3NG6H3NzWCvcFqDpQWspGZ/ywl/LycezVrhUKnBOiRLqYR5CYGxtFY2tD4Ttdcv2mlTvDkw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB8911.namprd12.prod.outlook.com (2603:10b6:610:169::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Fri, 5 Jun 2026 08:32:19 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0092.007; Fri, 5 Jun 2026 08:32:19 +0000 From: Alexandre Courbot Date: Fri, 05 Jun 2026 17:31:53 +0900 Subject: [PATCH v4 3/6] gpu: nova-core: export Rust symbols for nova-drm Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260605-nova-exports-v4-3-e948c287407c@nvidia.com> References: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> In-Reply-To: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> To: Miguel Ojeda , Nicolas Schier , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard Cc: John Hubbard , Alistair Popple , Timur Tabi , Zhi Wang , Eliot Courtney , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: TY6PR01CA0026.jpnprd01.prod.outlook.com (2603:1096:405:3bb::19) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8911:EE_ X-MS-Office365-Filtering-Correlation-Id: f433eb83-6d38-42c5-2fdf-08dec2dcf4fb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|366016|1800799024|376014|921020|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: C/T/p+DO5OeiLigp0LXnQPvKsWU3uHNXgoVjUKrCoAsJaorQdWfu6wl/gJuO9SXRiSeDD0iKaryCoQJppd6vtNu4e/VvKt2PMKkfywZV8GFTx/dTupHl6zyBryfbbPX1Sqv8bSkpXopbb/7Xt00SuGAz6kt96eXPxPOuiEMWCiWXtdm3g7RcNjXgt5y9amuMwtugYNGXcGEZmjmFmU/2W3y+Vcq2apDuDpce0W42doNOvn7RRhwSqD2jV02NdjtkpPDf9IhRX7V2tPQ9E3ysno6C6yS+0YpFuYLFMI2rEI2SxvNeGGGej9qUqJS5h+4y2c5nI+8VSLGbmmMQaRWBT/WMeBR7qcVWcoXVXalvQ9FOZV8j9c9CJqPQaKDYP9ozbsAtNS5thuKSRZL9haznMvLvwsDo8mTX7eIeYhkVJ/LRdztBlzi3d2hS7HZ2IijY4RT8f31l4AF9wPvD/RimLz5OrhstJYOzM6kjdH4RK3hT3YDPY+iyblxyILUD/gF3eX1QjUF07nXReM+9x5ZpyVzSqK5Hw9t66jjoyXspPrqyr0WopNDvC2+aGewXBRRbc24p212c5nwxLY3RG5nQdQWS5DlmWI92dERpRqiKXTM/uIrvvbOPoWs7og+CPIBTyGFWv5PhDpz9dihBo3Z7hwiPkVS7yektIJnTlS7a7hJHgU9AyN3U6BJjEfe05h04o8kMfLGaTlV0lyLWeMPd5sTqA5tgF6jVZ5FTd/U4Oug= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(366016)(1800799024)(376014)(921020)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UXJSYk5vM1h5UG4xNXg5VTFxNUQwVkt3Q2xJcEtjWXAwQTFHeUlIbXlrSFRW?= =?utf-8?B?aXZHRWVaU29uZzZiVUFNcWkyeEo3ZXZOMXFDditGZXpPQWFXNDNTNmZrb0Iw?= =?utf-8?B?aFJmbXNubU0rTytrVk9ZUUFWK3U1V2dERDU1Tk1iWGdZUVduOUUrbDlSSzZH?= =?utf-8?B?cysrN0EvaStKVEtoNmhyUER0bFpLV3lJb08zZ1RlY29LVWpzL3F6L0tPa1FF?= =?utf-8?B?REVjOUwxOGRQN05sbG4ySjBJMUVaeFJlOEVPQmdnamFXdzYrOHZrUThySEg5?= =?utf-8?B?Qnhaakgxdi80WWVuTWpuaW9OMWFrdXl2czJNZmlZdmxUQkJoSXEwelJGNWN6?= =?utf-8?B?bTMzMzdsQk9sZThqbGwzS0FkQ2dNNk94bUVpVzR6WGRsVFZHK2krU0d2MGM0?= =?utf-8?B?UHR2MmhkSnB0b21BWjh3dloxWmxDTE5wdGsvOUlGTzVwc2ZzeUdiRU5EOTBo?= =?utf-8?B?ajh2ZHlOQUVLVXVLSFQwSFJEa0RqeFNVR1ltZFBhNnVNVnVzZmdlZ2M1OHVm?= =?utf-8?B?ZzAwb2JrOTM4WE8yeGdTekdvSHh3b3BxOWp1M0N6SDh0ZDVFeEFBbTlkWW5v?= =?utf-8?B?eGE3UzMzODRhS1pGS0t6d2UzZi9iV1pSbmJLVENVT1krUEZheHp2OU9TWEtL?= =?utf-8?B?LzE0bEU0WHBjUy9yUklSUHpsVUU1T24rVjRJRkpkR2JvRlpaaXZGV1pMYjZK?= =?utf-8?B?WDVCNnFjbDQyUnRQbVNCSjcrMXhPTXNZN0hHRXJST3graENueXpWQUp3UmN4?= =?utf-8?B?eVB1aENUVXZKdnVGV25ZMU9aemVHYzdPWFhpSG1GcFBUczlxM25DUDAybVI0?= =?utf-8?B?SUpEbkxwVEM2MVNDNE1xdWZYei9ETGMrUVdCMWpqTDB2RmN3RVJYbXVBVzZi?= =?utf-8?B?UzJBQVhOWlhlNkJVV2pjV3h0RmJSRHplcmVoY050bzNWbGdYK0EvdDl1czVx?= =?utf-8?B?NERQV2xpWmhzSlNQSmNsTFdtVTlhWWFpZVZlK1RneHNjWkZaK2ZvNXdMd0xM?= =?utf-8?B?cFMwZ0M2QzB1WVkrWjJnWlZwRHlUbi9qdTZGbFVYM3puNWZGVTZYYmVSbk5Y?= =?utf-8?B?NmZ1ZmRZT1Fpcno3ZU1KNGFyMHhiLzByZEdDNnlDQmpKZHdacC9yN2t2RUUr?= =?utf-8?B?TmtUVU5oRXUwdGpOckZlUlRTdFVkQWpHT0Z4eU42N1puS2p3RXI3c0N5M043?= =?utf-8?B?eUJoaFpzWUVNMHBWMEJHMDhiNEE1Tmk5bHRnenRVdXloRExWY0VRSjMvcHYv?= =?utf-8?B?eWsrZzMwSlNYU0tCcENQdk5LdW5ORE9HeXI1L3FXbG8xdTZPKzJ2TDhRMmtP?= =?utf-8?B?TmxBSHo1TzZYVTZkWEgxUVFsT2t4VGUzMGhOV0prcGxpL2JaYUxBOURTVDdF?= =?utf-8?B?U0JUNER1L1pieXhvZTZWY1JVVGp0aFhuS0FBdjZqWWRReVcxam03Zk5TY1pp?= =?utf-8?B?S091TEZhUjVWbHFUR0xyY1V0RFhpdERBRkhQRlg3OU03dGRueUtmVzRxaHRs?= =?utf-8?B?KzNTV1FmK2w4Zk4vdmpiNXNyWjN4Si9PakVINkxpY0pwMitueDVxN1dNNkEr?= =?utf-8?B?Sm9Bc0dtSlk2aFhGNWFDUFJ3VmhVVG10Ly9EeXFabEoxaDI4R1hhU1dpRmJZ?= =?utf-8?B?LzZuSlUrVjkyWVBRdlpzdEU4U2RYYzIvV0lWWUdrclRGSmdOUDNQNitSNDZK?= =?utf-8?B?M01TWkxiVUN0SDN6S2ovWFphd2lMVUFjM2oyNGYzSlNTUURIUSt2eTM2Mjlm?= =?utf-8?B?d1JkQ056c2FLYTNSOWVSOU9JcGdlNUNBSkowdkxvUTUyS2I0cmZSWGVoQkdP?= =?utf-8?B?WHB0ZStGM3J3QXhMQ2o4YTFhVjgzSkNZWWgvbjRCZmM4RjRZclo5SDRyRnBR?= =?utf-8?B?WUo0bUZjQkZsejYrRTRBKzFSM3pEdzh2bHNJRWRXVVJFWjh0QzF4T3Bvbnhj?= =?utf-8?B?KzRBd25lRHpwY3BZcFZVaXQ0VUpLaUVsa2hwejJ5a1lzaUhTazUzTkg3aW8z?= =?utf-8?B?U0wxMFMvS2xJdFZIaUxtdGdOd2NBTmdTKys5VE1BVkh0WEs5S2srd2VNend4?= =?utf-8?B?Y21sdWErNlBCalpPQXVXb3VpcFZYSW1QMVQ0aDh1bjB6bVEzL3hCSkJjQm1J?= =?utf-8?B?cSswL0ZUeGRtb29VSUZzRUhNZ0FoRERUNVRFdGdGbG1OMjJIVVpMVGZnTU9t?= =?utf-8?B?em1udTQxckpKR1ZLd2dqTVhmeUVkUWIrWmhEMGJUMzlzMFlUcER2N3BUV0k3?= =?utf-8?B?SEhOalBxOG95SUYyRThiN0lEUGtiUVBTUjUyYXFwVjZPK0ZYSjEwOU5NcXdP?= =?utf-8?B?RWhHL2lUV0JTSW1UcXIzbStKczJkbmcvL2xRVG9kUk1WWFZsK1R4QzNLdXh1?= =?utf-8?Q?+ttjZQSO0bWpBfAEtXiFV+0Zug+b5J4+03+pud5oV31l9?= X-MS-Exchange-AntiSpam-MessageData-1: 0ujBhN/XqUPdcA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f433eb83-6d38-42c5-2fdf-08dec2dcf4fb X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2026 08:32:19.3219 (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: j1TOiQXWINVKUmwcmiJ7q4D/x95c98ZoEgssawsHcLSAJGoms3ZgMXRMirDxuY0n+O/2Gqz0X5ojKKmdAayMkw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8911 Export nova-core's Rust symbols so nova-drm can resolve references to it when loaded as a module. This is done by generating declarations and EXPORT_SYMBOL_RUST_GPL() calls for Rust global symbols using nm and compiling them into the module as nova_core_exports.o. This is intended to be a workaround until the build system supports Rust cross-crate dependencies natively. Signed-off-by: Alexandre Courbot --- drivers/gpu/Makefile | 18 +++++++++++++++++- drivers/gpu/nova-core/.gitignore | 1 + drivers/gpu/nova-core/nova_core_exports.c | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile index 45e0941324fb..2f9c6101e21c 100644 --- a/drivers/gpu/Makefile +++ b/drivers/gpu/Makefile @@ -14,7 +14,23 @@ obj-$(CONFIG_TRACE_GPU_MEM) +=3D trace/ # system supports cross-crate dependencies natively. =20 obj-$(CONFIG_NOVA_CORE) +=3D nova-core.o -nova-core-y :=3D nova-core/nova_core.o +nova-core-y :=3D nova-core/nova_core.o nova-core/nova_core_exports.o =20 obj-$(CONFIG_DRM_NOVA) +=3D nova-drm.o nova-drm-y :=3D drm/nova/nova.o + +# Slightly adapted from rust/Makefile's rust_exports, restricted to Rust v0 +# mangled symbols. +rust_exports =3D $(NM) -p --defined-only $(1) | awk '$$2~/(T|R|D|B)/ && $$= 3~/^_R/ && $$3!~/_(init|cleanup)_module$$/ && $$3!~/__(pfx|cfi|odr_asan)/ {= printf $(2),$$3 }' + +quiet_cmd_exports =3D EXPORTS $@ + cmd_exports =3D \ + $(call rust_exports,$<,"EXPORT_SYMBOL_RUST_GPL(%s);\n") > $@ + +$(obj)/nova-core/exports_nova_core_generated.h: $(obj)/nova-core/nova_core= .o FORCE + $(call if_changed,exports) + +targets +=3D nova-core/exports_nova_core_generated.h + +$(obj)/nova-core/nova_core_exports.o: $(obj)/nova-core/exports_nova_core_g= enerated.h +CFLAGS_nova-core/nova_core_exports.o :=3D -I $(objtree)/$(obj)/nova-core diff --git a/drivers/gpu/nova-core/.gitignore b/drivers/gpu/nova-core/.giti= gnore new file mode 100644 index 000000000000..7cc8318c76b1 --- /dev/null +++ b/drivers/gpu/nova-core/.gitignore @@ -0,0 +1 @@ +exports_nova_core_generated.h diff --git a/drivers/gpu/nova-core/nova_core_exports.c b/drivers/gpu/nova-c= ore/nova_core_exports.c new file mode 100644 index 000000000000..6e80ca9792ee --- /dev/null +++ b/drivers/gpu/nova-core/nova_core_exports.c @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: GPL-2.0 +// SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIA= TES. All rights reserved. + +/* + * Exports Rust symbols from the `nova_core` crate for use by dependent mo= dules. + * + * This is a workaround until the build system supports Rust cross-module + * dependencies natively. + */ + +#include + +#define EXPORT_SYMBOL_RUST_GPL(sym) extern int sym; EXPORT_SYMBOL_GPL(sym) + +#include "exports_nova_core_generated.h" --=20 2.54.0 From nobody Mon Jun 8 06:36:22 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012049.outbound.protection.outlook.com [40.107.200.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3240F3D8903; Fri, 5 Jun 2026 08:32:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648351; cv=fail; b=oDZPjxF7Ri779OvzbVpF71T1/ZzOKvNJ5+GnbrKS6NQO26AVwkytqJEOu/YHk1oMKz3G4KfErjnhKMeCr2A+PpRz+LIGsWLaGSBZ/K4ihLnzZauF0jgLT+TwVmj8d0A2splwxGgbUx1AqnZFLSA5lYAtdnzI7xTs3ok95I264k0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648351; c=relaxed/simple; bh=A6P6kJ1ZNF0/VUvxVz2E/irVQ9vfVFPY8f0WwhldEqU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=si+17GjJce9ePz/3X8+BYB1cnkuFDoZbO0BCnMpswYSC5JHQW2/eur4iTHHtmkQcCv/WNagkOBuI8W8bixPrJpilt6ne7KCNCEyfDYxvUymtZsTGC/fbWqdOo41J7pMJuMCsEr0XOv7Q5M6SswKcDSJqTwxHJLtJy4rh+dkJ/9Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=b1CKK9MG; arc=fail smtp.client-ip=40.107.200.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="b1CKK9MG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xCRdvz2ZNHPp5QwDhmrbR6XbIPgVpk2ty2+p0ggAaJcVyw5VKQRvCR4TmjJwNS3YicMb5pkRUdJ6Q8ikRuXpD0dxbEU6+DiRziRonrNvsDJNJcfVlz1xLvH6F28HT2dKvlX4TNvvl5ILt1aKgWkVy6rBI3YlXeGyrcGjdS3sr/W7buFtotzZozQGRE/2J2XGjD/k30uXysjihWZ95j7q2LXw+gkidK4MpSMHl7wp8wUhYn+XxL4oRIL4yBmIE/nzqZOV16N2KM9KXCIG4SZ8DsU2SYE5b4/fCH8txmTg/27FSprPMXQWzNi2qzurshHSAhNdY3GtkR6x1R1dkYrlQA== 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=qOLw2mSBFG/9FNQrtlKMwGrNQnQBaNpRHcPgWUxQsj0=; b=nI3gcWh9gUymz8FZAa89KFFuuAiIkVwZM9J1XWlCF8evyUv5oyF6bQ0tXM4WKB7juZfA7YziwrCCoUUDnFmCGIkphJwu1AtR5WaNdeKNQNpWZShBh9qrQxRrZGD+EmBQYL/mcccfFfrnISrz/HmUq7rs3AMxJ/cGFS6JXQfrTdv+D9f1J87wjuMQLlxTmqqdVKHolS4HEPYgc4zJp5tZpFVchKABvuTUrOrzKIc5nOeo0J4UbzyTxYCfZwiFxVqQkhM4DtftlIhyS/BxzM5EbldDqGGGukKARZWZT3Mfmnp451gug70QcMXjKalh5bW1eTppr0AV17m1mp1NOAH4IA== 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=qOLw2mSBFG/9FNQrtlKMwGrNQnQBaNpRHcPgWUxQsj0=; b=b1CKK9MGngjJMHU9KzKsJNx8vvgK/IBFQ6Z93pTuyi/088ikzF0BbITpeJZ8QYhu/ye030X0vB/GfRd7zgelG3r5cmlVsZwGP3eNjeDkAnMHxmjKx6+vVcDb666ZiSz47ugHdvyCmJH2TkuBnqZ/nILvAAFr56/YI+51rLLJIVGI+79w4dO74yZTRJh9NeKeIWiVVfsOziUoLpzW3WkTRG/of+qdhUIJmFNepoiXkGCKLuDqPCSwpZStN67Cx/lWDsrOnjs+F5PlhvrAVv5JJcxkhBsI6H1PkfQgNwKeF1w2eNk+sOZUdB+izWvgmGlJnvgLn58P3Sgi5+uJnoVlow== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB8911.namprd12.prod.outlook.com (2603:10b6:610:169::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Fri, 5 Jun 2026 08:32:23 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0092.007; Fri, 5 Jun 2026 08:32:23 +0000 From: Alexandre Courbot Date: Fri, 05 Jun 2026 17:31:54 +0900 Subject: [PATCH v4 4/6] gpu: nova-core: emit Rust metadata for nova-drm Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260605-nova-exports-v4-4-e948c287407c@nvidia.com> References: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> In-Reply-To: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> To: Miguel Ojeda , Nicolas Schier , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard Cc: John Hubbard , Alistair Popple , Timur Tabi , Zhi Wang , Eliot Courtney , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: OS3P286CA0049.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:200::6) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8911:EE_ X-MS-Office365-Filtering-Correlation-Id: 8996b7a2-c673-4de9-c165-08dec2dcf797 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|366016|1800799024|376014|6133799003|921020|3023799007|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: E3FOYBfZdPGxYgkkHBTI/8GEgiqEfIXFAROLAZhxVLT2TSjSqR8YKSw6JJw6u9kBrsDJAxqS9UzNmeFbmp3C0OMhJnMCHYKhQMevjju+4cFgfWCM1gQzsf4zcmFSy0T5IyJA6tSLswp3tuZwmSOgNaqUOH2JQtifoZhh5h4NrarfnPqkccsD7X0SucsRHVh/jfxN68+MbuGVUc/FvvuwqNFj/DZFFLcPVelzVJnVsiCwkiRW9O5gp7ps4IDP1bm73IhpVxoUT3CjyfH1r7yNBb+Lh4lohzpaiLaLUuR9flgn1JlMgbs7BdLLMPTGRUgCWIVgpGOeiquAwfReu6j6D7D5NBZ8ogrQZLgLzCGMndHcMmRd6XCmfYsk/+PF2dM4Petv8KCDGBwt7O8RD7XQtVdkJ8xgKMdS/wiE5rJ84ArXxsl4hNBMuc/W8ClirDlxmILF1/hSlAx8lfnjPpPNfG15OHF54Iom7V1fmggDedgEzw+CDkWctginPKSJY/+9Whvy9V81PHbgGj+76o6i4IwYv8rdZA/agIvnTqWJ26oiWFQVVH7eK69E0S2k3zVBnFwr/moAf3iE7pjuciBMhzP8fhLH8AledeTyurQy6zDJWnrEX3uFJch4R+NxuOdwmBJm4JWvwupSy6icsh1uTVqaWWA/ApkfdafYC2vfiRx0j0PVkPdCmVihwuWWyIRnDvMbaqlz4CjNa1aVqwckfgPj2Xe9WrLfn5BE6E8qzRw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(366016)(1800799024)(376014)(6133799003)(921020)(3023799007)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cnVIWGFBWFlxZ0g5Yk4xYUV0OUJFdGowemhjdGNpVkpyaGJELzJycHJoSlRT?= =?utf-8?B?MTYrS215NnpzK2d3OFRyelU4d0pwNWNPb0E1NDFRM3FmT1FSRFJQcFdkR3Bp?= =?utf-8?B?cGM0VS9Wb2hPVW1aenNsU3lrNnBQSjloS1huUXhPRDkyTDhpQU82QzB5VDBP?= =?utf-8?B?Nzd3TlpTa3locHNqMlJDRGpIUEFubWllbXlVc3phMDk1UHZhSFh3NERJdE5Y?= =?utf-8?B?clNuaFJmYmI5V1hXUFRVeDBjbmlncHZKUlgzWitoY3RpcGZsMnMvZ1orZGhl?= =?utf-8?B?cU4rTTVVT3ZENm01bjJJdjVVbVRWbHpmZnlIcGJVOEpoRVltdkN5a2J6WnJv?= =?utf-8?B?NGxsQzRYeXJXczFYVG9oM2hlbEtxRE5XUTNxMmU0VnRUd21RZmx3Q2RRMnlX?= =?utf-8?B?VXY3c2FzMm5sTU5mTUdGWWN2elhqRXJoQUU1QnJGSHhwRm1tQ1ZJUloyN3dM?= =?utf-8?B?RnFReThmY3NQZ05kZXpqVllMNmhPdWlmL0dGdHlHTFVFdkd2TmcwU28wbzNi?= =?utf-8?B?RUFlWFZodWtJVmY4QmlXWmp3YTBPUHlyNTJsWlhCMmxUVFAvVmgwNG5ETytZ?= =?utf-8?B?N0I4OVRRaGMwaTZpWG11MEVxbjJsb2Z1WWUrZHQ4aVRLaisvbmtMVFh2cFdR?= =?utf-8?B?dzZFYm9wWVpaeUxQd3ZySHJrQmNxTVNQTVhucE5iNEdkbnhMaEt3cDVHUGxh?= =?utf-8?B?VUJxTWVQVXRrS29ZTDlDbVh1dXo3ZFVTSjlhbnpXRDFkbzFVS0hrdnhRVUFD?= =?utf-8?B?VDdvUGNqMVhENXdxOU82YVZNTmJwNG4vYlpFQy9pR0lQQmJmNkdKM0NMekhQ?= =?utf-8?B?eVRGTThCNW96RHIxcEc5cGZMTHVRKzRVZXNaL3dEdngraUdFUlplcEhSYVB4?= =?utf-8?B?UDhmWWZIaDRRL1A0ellqNGx4L2hCVGRlVEw1bGxuanB1M2JTM1ZvRzhiOWFz?= =?utf-8?B?eU9sRk5Fa21QbFRDOG9JNDB4S3ZMYWU0TjlkN3NlYWNSYm1weVV6eCtlczFs?= =?utf-8?B?cU5QS2hnN2RsOFJSeHZWVGlvV1Vya010VGx1K25HQzBRRk8rN2NKUDNVYk5E?= =?utf-8?B?eWQ5Z1ZTYkkrVW5hR1k1S2ppMWtKVTFzV24xMDByVUdCblg0MXRocDBPT3Ey?= =?utf-8?B?aitERmpVT21ibEptMGpBUGxXUEpVZVlOcFpnUlBiUHlkNjg2bXZTUzNDTmxn?= =?utf-8?B?elpMbFRGWXF0ZXRkeFdpSGpEWFlkeHV3dW5LVG9mdW1qRWg1cHlYNkt3NUQ1?= =?utf-8?B?SWhZNTlmRWgyMzRnYXZxOEtIQTdSUmRkdFFKT3NIVHRGVVJYWjl0NkU0alo2?= =?utf-8?B?OW40Z3pUcGdQdmlMTE1zN2pHWENpOCtXYytnSFFMQTgyOEthc0pwQWVRYXlx?= =?utf-8?B?ZXFGa2dPM3pmcVZaak9ac1lBWkcvTkVrY0RQTlpoSEp3K2tESFpSK3JwUExp?= =?utf-8?B?b1lLYm53UHdvVTBDRzFtdFE3ZE1FaURkeFhIMHNSQWdBQmpQbzZNNU1qVGs1?= =?utf-8?B?eDBCSFg4U04xMUdrV3hBMmdxYWM4VWY3cWUxSEhxWXFjQkRGMkswMXpJaUhp?= =?utf-8?B?WlNtOFRoRGVwajM1cERTTHMwQjFKVWI1VnowczBDMDBJelNUNktaSXFyalZj?= =?utf-8?B?b29PWDNWQXYzbnMzWFNicFdVRjdWU3UzQUlJekZJd1JRb08zZGVESStrTnBv?= =?utf-8?B?eTdCa1M2R2VLaW9ZZGsvLzJmQ3RrR2FoYW4rY3hiTGNJUURaamk0Z2YveDlY?= =?utf-8?B?RjVnVnVLVTQ0YnpoTmRxT1E3S05qNzhRWUIwcldTVGYzNU1iM0hOeUxzdGta?= =?utf-8?B?NGdKMG01bHhxeE1FOGgxUHpzRFZ6U2crcUZkc1hXOUlja2QyK0ZvdUMyZmtT?= =?utf-8?B?RTJtVzZXSnAySlJSRUtHSlV6R3ZRN1YyK1dHTmZxOWpwaU92QjIrNTRnZE9P?= =?utf-8?B?b09TbEI5SlA1NlJuK2dhRWk2S0pkVkNyUUNZNXF6UWpmYWk3QUxma2dFMVlq?= =?utf-8?B?ZVBuVFpTeHZIYUFOOTlZbWZOcW01NXhWc1pvU0RnY0lyRWxscFk4V1FQNGZ3?= =?utf-8?B?TkdGTDRtdGZuN3JNcmNHU25Fek9MMFhKczhrbTZ2WlNPK2o4RFp5bGtFcFRn?= =?utf-8?B?RDNDZzVmMFM0eEVFVi8zYm9SOTUvREJ2N0NsV1JnL1BRQ2dnQlBBRHdPVWlW?= =?utf-8?B?R3k4ZHZjODZqNFVGa3ZpTzIwbTZGZmFpSkFnSUd1V3kxSDFQWlVNckxIMkky?= =?utf-8?B?NFRIaVNLQkVvNkpyNEZyL0k2clMwSHRWQjhDWURjQjAyNkVka3YzV1lxQkxa?= =?utf-8?B?QlNKVjNtUXpuMUoyZnZvOXZ1UWQ1U0pyYVdFRGpyRXVxNmNMQSt6b1hIMldJ?= =?utf-8?Q?EP6wFp+gCEvQPrkgH6hv2nGWW2q5Y8BRHItnn+jPEp+rU?= X-MS-Exchange-AntiSpam-MessageData-1: 0Ab0uRAk/LZfQg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8996b7a2-c673-4de9-c165-08dec2dcf797 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2026 08:32:23.7198 (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: DndzZxpGLk7DVsQFn2jX08zEJSgJA7bHFK0uor4m/KTqMdkE4p1ofIewTjwN/ZNyMHyjAQKovVl6xs7K2rdiqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8911 Emit nova-core's crate metadata (libnova_core.rmeta) so that nova-drm can import nova-core's types and functions at compile time. This is intended to be a workaround until the build system supports Rust cross-crate dependencies natively. Signed-off-by: Alexandre Courbot --- drivers/gpu/Makefile | 4 ++++ drivers/gpu/nova-core/.gitignore | 1 + 2 files changed, 5 insertions(+) diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile index 2f9c6101e21c..164e704bc741 100644 --- a/drivers/gpu/Makefile +++ b/drivers/gpu/Makefile @@ -34,3 +34,7 @@ targets +=3D nova-core/exports_nova_core_generated.h =20 $(obj)/nova-core/nova_core_exports.o: $(obj)/nova-core/exports_nova_core_g= enerated.h CFLAGS_nova-core/nova_core_exports.o :=3D -I $(objtree)/$(obj)/nova-core + +# Output nova-core's crate metadata for use by nova-drm at compile time. +RUSTFLAGS_nova-core/nova_core.o +=3D \ + --emit=3Dmetadata=3D$(objtree)/$(obj)/nova-core/libnova_core.rmeta diff --git a/drivers/gpu/nova-core/.gitignore b/drivers/gpu/nova-core/.giti= gnore index 7cc8318c76b1..bac774beba3b 100644 --- a/drivers/gpu/nova-core/.gitignore +++ b/drivers/gpu/nova-core/.gitignore @@ -1 +1,2 @@ exports_nova_core_generated.h +libnova_core.rmeta --=20 2.54.0 From nobody Mon Jun 8 06:36:22 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011042.outbound.protection.outlook.com [40.93.194.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 201C23D8909; Fri, 5 Jun 2026 08:32:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648355; cv=fail; b=j4YQEYk5N5VE5VlLhxaYLqgP/cKRA0yqtiGpbROjszHV2o35wpnUsTKlpVjeD1yKrsrX1PbAJiOntXaVabdrJV50uQcLsoHjnCZmK7fPUNJjT70cxfZLGVDgvsUQ4QDswdbXwyOYPdha58dDTKlAeytz8RfPd0k8Y3B88jV2gq0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648355; c=relaxed/simple; bh=Vkybt6f5XBHt1rE4VVEttpHwinBczTSkuX8AYbGNvpY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=bZnWYkBXoxRyWdodX65NylwZmJWtUQ9RJ739r+zhbnsdC7heEM3uUNtlKRRzrgO+gisMeSCVS0SCjvRSWl8ckhN/ScUNkXYKWLXG0v6SC+gxrBxT2/CxuJ8IoBrdunXFW49CgRqsXqerjE2ZPQeVZU5t1ZTUu4/vXEOSAEi1ynw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Xomg1oEn; arc=fail smtp.client-ip=40.93.194.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Xomg1oEn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SzcAEPAJgv5XDYIQcOx6nqxBo1vYYYvuT0rLmwwNUieTVyEHyjooODYSP1IEp9XWNIJ1hoFNJcs2nwd9L8V4P8R/TlZzp1LIwbzpVkcoe7YJJiamThsuIHZJ3hVU5GvGJjpJzRe41OxEw5zjE/f0oA5vWETTp19pxJaP5BLeeNY0T97NBK5CDh5Kk8gFPYaQsn0SB/9/oG/vDM/JQycdOJDspML+5KOWdOzQfDstfnMwljALBIl92PmtWPNtng1AIux8GijwYp1mDW+Th3R60tg/6CpxU/p0QQA2iXSX+tOyr3L9i6h6+/eqxA7IAxpnk8Q8/HB7ZedTlloAciNQyA== 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=KGXPDaZZDkJgkJFubr5PT+GLXdr9xBLB6v4MeKTmpkc=; b=cHBWuqmkFJFmVTTnHeFlaKSwH6Kdmzs0gVmzV2P2PThL1UXTxldR/WFBj7wlVJchTNVN9lep4I5CNRGm50BOe+GHs2BI7yEd5a+LNewULdIlLCvW3rdfaBXVdsMbWkE4YB++3OKTJ+szTHooWPJ2FCATyW+wWF5uPvOWNBJiy4+RnUZg194Jl8BHBiHoTju9Q7cK0FvybEA0HWUPb0urH7YsaqNP4CUF6nkjC3yz+Ur5BCb4ICLngeIZJTXfaJ+aN0ycZbBubQkHarxbMaB554otsybzgDO3ZEDMFjaMBTWd0fnv2AVAtJzX18lwZIoCvPCUXkTQi54zxWOYvIW12Q== 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=KGXPDaZZDkJgkJFubr5PT+GLXdr9xBLB6v4MeKTmpkc=; b=Xomg1oEnC44oRYLTfHD1Q9JsbBvDBA72gibg4G0paZQNe+9VrnadCIgM/IwsQitk9TiAHXhyrZzD/OtYR0+AqJqXZLBRDblDyPoUWwbxC3Bj1kaIr1WUkTG+KRgLFiHz4LiKzRltyic82NxMKjabRbG43DrR9El72AzAnkW/PoVoEazig/idym3hjcYRu0wVU9U3C4cLkN5xiO14EBTaQbr4KIHyfzUH1upw5552ZdOzBbUyfEwWAX5QXhhWvomyWn7PIFdRPKhwpeoV49ZJLogqzMqE6gcJm/usDZ/39mXCZ5ROWDsh9sD22MS2VY6TvFerT20AHvmiKYS+v6gcwg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB8911.namprd12.prod.outlook.com (2603:10b6:610:169::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Fri, 5 Jun 2026 08:32:28 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0092.007; Fri, 5 Jun 2026 08:32:28 +0000 From: Alexandre Courbot Date: Fri, 05 Jun 2026 17:31:55 +0900 Subject: [PATCH v4 5/6] gpu: drm: nova: build after nova-core and use its symbols Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260605-nova-exports-v4-5-e948c287407c@nvidia.com> References: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> In-Reply-To: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> To: Miguel Ojeda , Nicolas Schier , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard Cc: John Hubbard , Alistair Popple , Timur Tabi , Zhi Wang , Eliot Courtney , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: OSAPR01CA0281.jpnprd01.prod.outlook.com (2603:1096:604:2b::29) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8911:EE_ X-MS-Office365-Filtering-Correlation-Id: 88cc65cb-66c2-4306-c217-08dec2dcfa2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|366016|1800799024|376014|6133799003|921020|3023799007|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: S8+Tc9UlgY1nfuTH/bgtYkEHR4YHhFsLtpa/3T7GT8JKZdK1qQG6VFTJs/RhnurZFzV6wi4xppV/xIlSzQP8RYqwSufJrRxhdi52VH9OEqDAnbgVfk10qFwiFWhoL9xMkqLE/1ltr4V2YAUQ9oYXkTsl3DP2OcJ+uemmr4zoE02+Pk7EPutIaX8Xt1nQXptiRDNF3jTg02qiGGyQ7PkB538dQEtFhYJmF3f2tpwRvDTf54twilTI7+Tyy6Bv0lbjsdUNmfuFJhjoshfJ6rpKSG6J/0NLzHjHHSp3nnSUMwMZHaNc1GBWZn7QwEIf7cMjHf9HZYtCMpotHdGqe6jwtnmaecKxu7JTj3SAb/X0tY9UIx5nCS1tK0RN7F3F6xqccxAb8jDDykgP6oLwKnl4g73MAZPahFr7cTEkjE7OXtCzAKVVDYHj0t5oSyThi+fiUsY1ADQtebsvnPiYAO54FH3Sr/EkXz7kejdh8bx6IJqiyLeQGeVxOXi18lRQjp6+WmUkCoNm0LPulgSTTfrPzP3IYxYOQOBqmweuY44ko8RLsbxeVyhNRU+yaWEWynnuCQQm/zP2TKS4EbpdXXAirR1UYiXaFw/pOszCsKIBhh/QJAqr5M9BmC6RhD9SrLJeT2+DXd0uwlcMGTwXwOJGzp6g6quKLX1LhpKwNyYr8LhPrn6ZbH+sY5VD8TnSNLcPPkeUfJ8Nx6r5BSF612JVwt2DAQVxmThn9Rzt3Lxo40M= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(366016)(1800799024)(376014)(6133799003)(921020)(3023799007)(22082099003)(18002099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VzFHRk1PUHJsbjkxSkVSa1J2Nk9mNklObnJTNFk0akhDT01RN0d1bUF3R0hQ?= =?utf-8?B?UDVrL2hWTmdTS3lWUjQxc0JyQTVMSXQvMUdDV1dqdklmWmFxRHc5SnJlc2V3?= =?utf-8?B?aGc2VlBOWEZTV3VtMDdVYW5YOUFxUGVjR2V1VVd0RjkyOTR6d1RpNlpsMlpO?= =?utf-8?B?a2EvQW1QOW81cE0yMmxTSFZaM1cxM2hwM3JENVNIMEN4dzl6WXp4Z29HcldP?= =?utf-8?B?cmtHMmtibnZKV250WGNXYW9kV1NHb0xiYzFQb0lQdUYwaWpYUXdKdDJiREZQ?= =?utf-8?B?LzhIb09HWTB3TXV6cTE1UDRxbEJqejdYMFZqUUIwaHdFbDRsWjZ3NDc0QWp2?= =?utf-8?B?cCttK1JselNXbTNOSFlZMkJxM3B6VVBwKzlFMHhxS0t0eUh3NjJzSGMxelRt?= =?utf-8?B?S0hKV2JKc0drSk1GMUpjenVMUmE2OVY4elhHdnBTTllReGl5UDNPSXhOWWdm?= =?utf-8?B?ZW50ZVJkRktmOW9HZjJqcnJZbFJoc2FlTEpHTmRvWHlReDU3TEozZkxIMHdI?= =?utf-8?B?aDZaUTd0Mlp5Qjgrand5RDRPK1ZDRm4yb2hjWFJvUFh2NW5FU1kwNXZCZmFR?= =?utf-8?B?TE1mVXphTTdtaW8vWGF0MUlQS2RpM1ZTcHppdkpHeU51UExPWTBrb2F1dUU0?= =?utf-8?B?b1RERVJ0S2ZjYmFOamV5OUFVT2s1bnBSRnlMa1M0VzJTRGh3Vytnc0VTTjg0?= =?utf-8?B?YTU0Y3o0OS9QOXNPaVlhcmRTN3NlWnlReXdJam02ckxIenJ0a1hUeW10UUU0?= =?utf-8?B?R1hjL2ZSTGdweDZBWWdaWkMzbDAxZWxCb002eWF1dlh3OXM0dXVEbExNYlVr?= =?utf-8?B?aFZzVUhoME9Obkhkbm5XeFdlN0VoZis0TUtzbTNnL1M4djlOSDFrRXJpaFJp?= =?utf-8?B?QW8xNXFXTmV2OWZIdXhwN09DTGRwQlE0Umd0ejJVOGpqckVBbUVIN2psOWxW?= =?utf-8?B?M1dNZVhPTHZZUUtVTmROV1ZTS3VIZElQakJFOUhLeWI0MXV1L2RlSEtLbjFK?= =?utf-8?B?VnJ1cEVSQ3ptUElwWEQyZmVSMUgzNjhYck55ZjZITTVTbjJ1RUJUVGkyb3Nu?= =?utf-8?B?NnkvcDJvM1lRYUxTYWt0VEdkdG0vM21RRlpzcHVEZVFzUlM0ak9BdnR3NHJx?= =?utf-8?B?TkovZklyeXl3anlOTENPTlZZQ1JoQTFEN1RvWmZ0cSsvM1J1LzJOL0hYUFJ5?= =?utf-8?B?bGpoM1pNREdYRUFaTkVTUnROZXBseWx2aU4za3daeTh0bStqYlVKdUpucWxn?= =?utf-8?B?RG15TnRNb1FPVVczdG5sWFE0WEh5K2oxL3EyMEREeFljSmVEUmJkUy94Z3ds?= =?utf-8?B?TXczTE9uNk95WDd0cFdOMDh1WVArU3llNnR5SlExMW9Zc0NkNi9za3RlYkF3?= =?utf-8?B?SmlJQnN6djRpeDVuNkxCTG1rdkxkMkhES0ZMUzlCcXRHQ0xQeGZuUmNNWHY5?= =?utf-8?B?Snh5d3BlSzVkcEh5eHExMnRjOG5XTW9ia2xKakJmYSt0RTYrSWNkWm1MMWIy?= =?utf-8?B?K2crY0M3RlhzTVJSQkFPYmxXMmwyYkVSbVZuK2d6Y1ppQ3VsbXFXQ2ZGM3pB?= =?utf-8?B?NlpyZHdhbVpqK0crZmoxb0ErWUZaMS9FcDBGMVZvL2lEMWFaY0JPcExRTDJo?= =?utf-8?B?eEdnZStkTCtpZnJEb0FtLytUZGdubVdsMEtzR2crbW9mNnpWLzl4UmpjbTl5?= =?utf-8?B?cHVlMWZXYW9GSnk0a3BXWlYyMDJlQkZ5ZFdmN0JVb2RYMGZLaGcraGlqbTM4?= =?utf-8?B?Q0M2Z0hSeXR2T1dhcmx2ZDlqTjc3dmNrYVE4K0RYaW82VUFCOGhTVUdRR0J6?= =?utf-8?B?VzdpbmJaN2QvVkVEVW5wYyt4dWpvMGVWRFNHYXY0Q2Iyckp3Y3dPRDB2cFJS?= =?utf-8?B?U056dzNtd0lINmZyanUwUVR2by9jbkpxcUc4NUthWUJsMW5TUk43c3IwdGpv?= =?utf-8?B?TkN2Y1JZRHdyVE1hcG9ERUZ4bzdPWUE0a25sVzJDd25tVENjblVxQ3pqTlF0?= =?utf-8?B?bCtReTRpRU01R2tweVAzaWVZY2dQMGVTWVlNcDUyaFZXelRVZlVORHloNXI3?= =?utf-8?B?bmxhWkZRNE9oWkNwNll6d1dtS25neGQ4dXlZYjhWQ290U05WcXJuUlFjV1dP?= =?utf-8?B?YTltSk1lbTNvem1JazUvN1Z1Z0g0a1ZOYlA1MUlraHBjd0p3OENOZEdRUHJG?= =?utf-8?B?ZGc1emNaeFF4ckx5dk5vTmlNSjVqbFhMKzJCOTlERHlvVEgxUkFTZWNidmZ1?= =?utf-8?B?UUMyZGhuYi9sWEgraXkrRzcyNm9INVMyYWVXdEZrUXlsWTlqbUFUREJ0WTkz?= =?utf-8?B?NFZ0cFM4U2ozTjNVdS81bWV4Vy9hUVd0MEx1cDlQUVJKRi9aUmp1c1lhMkZ6?= =?utf-8?Q?ESI2UWm7tCtiAVJYQ2P00j0cmGwlXAOMT/Cgc0kUrajs8?= X-MS-Exchange-AntiSpam-MessageData-1: UgFK+BKfe8csyA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88cc65cb-66c2-4306-c217-08dec2dcfa2f X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2026 08:32:28.0580 (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: +IsrIUl0KK8jADdcTjl0NhzcxAOC+KGNK8AIz8gV7XjbNN3AaH1YrGvnBWb4q+MQZz380q0xJEtaZ3qUz4077A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8911 Make nova-core a build dependency of nova-drm, so its crate metadata is available and up-to-date when the latter is built. This is intended to be a workaround until the build system supports Rust cross-crate dependencies natively. Signed-off-by: Alexandre Courbot --- drivers/gpu/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile index 164e704bc741..a996047be69a 100644 --- a/drivers/gpu/Makefile +++ b/drivers/gpu/Makefile @@ -38,3 +38,7 @@ CFLAGS_nova-core/nova_core_exports.o :=3D -I $(objtree)/$= (obj)/nova-core # Output nova-core's crate metadata for use by nova-drm at compile time. RUSTFLAGS_nova-core/nova_core.o +=3D \ --emit=3Dmetadata=3D$(objtree)/$(obj)/nova-core/libnova_core.rmeta + +# Allow nova-drm to import nova-core's types. +$(obj)/drm/nova/nova.o: $(obj)/nova-core/nova_core.o +RUSTFLAGS_drm/nova/nova.o :=3D -L $(objtree)/$(obj)/nova-core --extern nov= a_core --=20 2.54.0 From nobody Mon Jun 8 06:36:22 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012006.outbound.protection.outlook.com [52.101.48.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B91F03DC4D0; Fri, 5 Jun 2026 08:32:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648362; cv=fail; b=s3czefFYK9lqJL39qTHZcdUKhV52LqDCPXC0qP4rhuDJIFcIoMeYarsX7CDXO+Xmh0AKfTQ+OQ+q2UiRCnbbrJsgUKXvQnTeUCz9OM/xEv+mxUeJnVQCDOktzawhC4+mtkzx2IGg91yxeLpGE7Zt7rpaLkylNCKjijUafQMa/U4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780648362; c=relaxed/simple; bh=oHBwiyeVUGFu2US2hIuH8MZXihtUqtk+xm3uzEKtHx0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Z4x2FM9FYETJd/0WmC4muRpK6855WoSiT/a7Gzv0qKcVjIA78wFtRno0+OUwt+ddkvd6jdHo4SzQywqJ/Ri6GuVfPfn51Ppb3FyyqKlxrmUCy2ZlEwLszqQV63Ops0URT3sNjQT90LHzePuJdmUb6tEgDA5M/SB+zCyYEfqARSA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=UGbI3ljx; arc=fail smtp.client-ip=52.101.48.6 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="UGbI3ljx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=j1s3ZCiViTVN3PMnqTX/u6I64XsPZiztiIXKWqMRmZ5mOFblrRxY+oSZUxHxyrNplU/gDs3bpIULIWunm3M+Vh6LExzTgGcRRAaLwgwQditOHvMuTKlPkLZO3TdKgb1Q2QI/JfgTr9GrlzWVEofRTzzZtfZSokxNpLskIdHVwv4u1MrZSPctvbkR+MXypXrNXFKjULXTYYwsVxFg2FvsjeQv5vFUEZxyS2tC1biIqtfGKA34184tHZf5hgDENrpMLWzqW0SPLL+aGCbvB4EhqK3a9oODosxwGT8sbtgMVCbPffpW/9LO0j4ug+CCRZEUDbv1TP53T+ZNAoWrjn1LWA== 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=POPRmwTTYShW9K+/tm4KiIs9dqHbm+0eRTsGJdjzY3o=; b=kVKWnEgNuFyZSaADyIT7lSj9y3sHgiQQx54Mb73ria1BP+5vl7u+1Jq6enSWOLGbAmTlMksC7K7LuNoRDnuNwRxASn77jU87X0FvyCI2Qe04PSnXTYxn2X3l1QtGqoeblHExXJWVFiVJWbqbDa15BltZuSzA+4Ndo3bEDjDe2IEilEiEFekSn0GwCv5AdVtqMu0gp8wG0tuHiOmKExoXR3SlgXaPQr925eGeqY9ARUc8Oi1SAO2m0BD1umNQ9BZZkrYrwcouDYTToNESm29hDSBk/383zqUcruQ8I7XNvrQpslj+n74uXNzVPsHUB60JK+HKtmkJ8UgqdlSmzQf95Q== 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=POPRmwTTYShW9K+/tm4KiIs9dqHbm+0eRTsGJdjzY3o=; b=UGbI3ljxe34eJyBbhex7gDMQDaNmvuisZdiLXz99cwe+9R0B1xez+Dx4JDCQRAaDjcMo1weIFdf31D3nBj6/aK18XZPgp3V20fvSYXHyQETdDWkBkNs8npLhLZwIDVolGBTXQaQuSKs6Dx9vWGAiqAcgxn7eIdm0zLrlWnaRJC0eFfxuVMDFYqoTHz7U2g9y9NUZrCzyLk4dxg0XnZppizo+FivxIW7NU3D4Y7Zrfea98dA9ajdv1WR8dgIyx2XflbjlXs+i9167HqYKxks6Hh6X4us+sOekjIqD3jzneitciPH2Qq56ZX/seFOkDyevNxHAB87oySUb+edCJa0qvw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB8911.namprd12.prod.outlook.com (2603:10b6:610:169::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Fri, 5 Jun 2026 08:32:31 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0092.007; Fri, 5 Jun 2026 08:32:31 +0000 From: Alexandre Courbot Date: Fri, 05 Jun 2026 17:31:56 +0900 Subject: [PATCH POC v4 6/6] gpu: drm: nova: demonstrate interaction with nova-core Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260605-nova-exports-v4-6-e948c287407c@nvidia.com> References: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> In-Reply-To: <20260605-nova-exports-v4-0-e948c287407c@nvidia.com> To: Miguel Ojeda , Nicolas Schier , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard Cc: John Hubbard , Alistair Popple , Timur Tabi , Zhi Wang , Eliot Courtney , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: TYCP286CA0104.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::20) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8911:EE_ X-MS-Office365-Filtering-Correlation-Id: 27099550-226b-4796-1d8d-08dec2dcfc49 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|10070799003|366016|1800799024|376014|6133799003|921020|22082099003|11062099010|18002099003|11063799006|56012099006|7136999003; X-Microsoft-Antispam-Message-Info: qGCeYI8Tn05C2zXJWfv7JybuF5S6rjZeNs80p5+DlN/e/jZw7u/xGkfqNcqKxgypAuwKuYVQkvg4wNabZe4Nj9tAbIc83B5OOBF0yDWZDt5EZuKtt/R12cqlYZ2jhumvhEWg03uThyJdwG9zPbHJgKzBNzyjU1M7lWb4fu8zBnx1qAd3M5mys+WtpAhcJTWGWRzTIPoaBQf/uxGfIeHZ/AHowkeRwocF51B+07w9eCc4mD8F5WA0HsSpo+QI34HGZfdXoM956mjtHFrZkHkPmAh2mN+6BYdCNzeNnrO6W43ZdDTUz+P15zpY5EOM7qsIdCd/V07NbGixaZfDminmjwhsYxmPYpup+jU5uE2mmwre8e4TSlG/HS3f3Q9ZLx6Mz1ABx1CYrOkBE+0jPtXgTnxkSA2kUZmwFnzUWY/uq4ugGMHqELcDBqDnn3nE0457I16zM1o4FDxRLAwkOIKNGvxKaDThdy7mKFkQXcZTE45z7ANB7cG0SHe0ewuSXWpzywF1faslgTE8qgveyIDa3MHrwKy/RncPIwa2KDPo4sjAUFuUqMaIu9xd2ckrSb2YL0oe1eVglxuTs8d8r5TLtshVggVDbnCXAcdMUT1ILSWGUU+QWTpM5Rjpi9FtyqCJlcyJsPHrSbuar0LBRRyyft5lgXGfr+VNyjTCSvxlBdsaj1r0FWuYOg2K227bNEL62Vw++R16W8BlOMfPXbDXmDNQjvS2PeFULfwoGTKuROQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(10070799003)(366016)(1800799024)(376014)(6133799003)(921020)(22082099003)(11062099010)(18002099003)(11063799006)(56012099006)(7136999003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q3l4V093aUEzOFRkMlVCcExLc2p1bmVrRC9DZFZnUDROTEhaSGRtM3g0Q0E3?= =?utf-8?B?QTE2T0xnay9DWDBxeGgxVGZsV0M0RkpvcHA5YU5QRjUwZmVrMFBLLzIzR3lk?= =?utf-8?B?L0Zubm5jRkZmLy9VYU9xbFF6cVhoTVE1ajV6ZVF0UXdURmx3Z09aalRHTEZT?= =?utf-8?B?RHh6RFpGUzBnTG1ndkVNeCtYYXVjK2JXTmZ5QTZuVUx5UlViZjlvSjZJajZn?= =?utf-8?B?N2RBd3NiM2lFWU1yck91Q2kwejJBckdVVUpEYWJLaEFjdnY5a09NQ3Y1dFAv?= =?utf-8?B?eVV2NmFvSlgyTFcvL2dVb2c3VStiMmwwdmx5Smd4TkxtSHd5bGxBcDVQcHB6?= =?utf-8?B?TTdPR0I4Qk1vRjhMbmh5UzZrempOQ0Q3T2ZGUmJqV2YvbHQ0ZWV3MFQzdHgz?= =?utf-8?B?Y2tqM0xXYkVZeWlmWG50dndiczVQVXZvYUc1T0VNYVltc0RHTUF2c2prWmk4?= =?utf-8?B?WFgvV3I3dFJQN1ZnM0Z0WWM4OUFvc3RZSGlXUjc2UFVWeTJQZCs4WGJETldr?= =?utf-8?B?UDRiay84emlrNWVZcFA5OGtKQ0VIbEhTRllkbUVoVDV5TnBNVHJvMHUraXpX?= =?utf-8?B?Y2JsaC9IUFRpSE85UjFsRS9hZmdyY3N5WmxxVkZGcGg1aE5mVFNxVGpSakpu?= =?utf-8?B?TnJFaFFMNzZaRzBiWVhic0VnSzVPdXZiN1hFelp5d3ZVMks4eUV1VzIxKy8y?= =?utf-8?B?S21Ib1JmWlY0TkpiTXMvTTI3c3VNYUgzZENHUGFIbWdaV3k1dktWeE1WclZN?= =?utf-8?B?KysvRno5dmc2S0ZMd0hnRTBLOHZuR0tNaG1PRnZub3dWRVdRYnhVVTdMb2ts?= =?utf-8?B?TWJzcGs4RW1xUlFzSlBIaFJ6MUNxMkNCQTJIemRYc3NmNlhKSXp1MGpXcUJi?= =?utf-8?B?OWhrazdYRWJIVHRIOXdnTzE4aTdUU0Q5L01iZUl4ZXQ4NlpkSWMrVUZsc2Fu?= =?utf-8?B?TTdnc1VtYVZZVmp3UEZ5NEVkVmtUZGxqanhWSXpRTytESU5TVWl5L3FQbU55?= =?utf-8?B?bzNUYmJRaUoxc3ZESTAwRlNuQVgxdmNaS2VTb29qLzV5eEJVdVNMaEZLa0Vr?= =?utf-8?B?TXhDWHcxWWpsZXhCVzZ4emNEclpnejVRQS93N0pPa1BzMDdEdlNydEFFeGFz?= =?utf-8?B?TXBWOVRmRjNVQ01sRkV3SGFYWUVrQklFTG9LU015bmRoaDFIU2x3Y0REMWhC?= =?utf-8?B?OXdLWGxrYXdvbmQwZzY0NXVpWCtQbDgvOEYvcWwrWXFIQ3YzZThBVk1Sd0k1?= =?utf-8?B?UkpYUyttcy84MjlkYVZBK2dSOWxHejFCcDUzM0FKMDJTWXZHK0dKcUlucktl?= =?utf-8?B?eGpVYUtXWmJBVzUydkdxd1VpK0Y5ZWlnRG4wS3NPZGN3b2NWOXVmd2o5MlFl?= =?utf-8?B?K2tsT2piakIxbUVhMFVtVVZQN2lOS3crcW4ydDh2R1hhU0hYVExrMmQ1UEha?= =?utf-8?B?MUxrZExhdTg4WXRjZmRscmJqUVRDWC8zSkFOaUpqZENocVVGVmpZcVpsNUky?= =?utf-8?B?YkZMcXRBRzFuaDBueTlPTFlSQnhzc0pvbTNDNEpYWGJzWHlzMWxDZDlSWjFa?= =?utf-8?B?Z3djS3c4elJqTGtBL0Nlb245YldBYW03WmpUa0dUdG0zeVhlWWtueEtSUXF4?= =?utf-8?B?YkNISjlrcHNQVWFVQWRMVVFIN1NWT0RUYlpUajhOZWtjcDVUTHQyak4rdnhO?= =?utf-8?B?TjRKcWlYcS8yUGc0OVR6Q1FsQ1ZudnVBUHYrODkwRFVONjhuTGJJS3FaTFAx?= =?utf-8?B?N1JyajRDSmorWFZRRVZGRUg2WmlGMkZSSmc1WWM5SHlVeWlZYkUvVzZOakIx?= =?utf-8?B?bnB3c25KbWRFWENoVWRxNnhSMStkVFo4RVJ4b3Q3NkROb1haNXNpcU1uZUEz?= =?utf-8?B?TFR3eldjeXg5NkhSdi80Y2U0MnhCQytFbFVJeTVzUVRFU05ITnBkaW5wYVVJ?= =?utf-8?B?UG5VZ200RUlMdkV3L1pUZ1dENmhrSmZvWkxENUhSSy92elFHNGd5ZXFGc2NW?= =?utf-8?B?N2FSM3hoMm9Ra2VIWjcrc0gxOHdmckg4eXByUFBmY0cvbXRHNW1PRUVWTkov?= =?utf-8?B?YXRENXY2Q1dMc0U4VE81MDZFZTJuTjJxRFVrU0dteUFScDRZRnBBZ2diYzFR?= =?utf-8?B?VFJwS0Vkdmo4WS9FK2Y4WjllRWluOUVDdnROcGx6Q3Z0MHhmN1cxYzlySm95?= =?utf-8?B?OGhTS2hPNXZBNmc3cFAwdGxkRXYvMldNeHczSjVnU0tYeGVkcFBZa3crRDIw?= =?utf-8?B?b0wvaWpWTDBvOHFvVmVwTXJmb0xadFUwRTlwKys5aXNiVkFOcVFjVzlhTUI2?= =?utf-8?B?Q250ajF4VlZvVy9oVUJKZTBmaEF5bVQ1Q0FraWt4SWNFa0N0TnRvSS9zZkZY?= =?utf-8?Q?9BooSqcPYtUnXxGfRe/D4CW+OGvwxPwc2D04knJ4haKqz?= X-MS-Exchange-AntiSpam-MessageData-1: VHjUZcRp2exE0w== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27099550-226b-4796-1d8d-08dec2dcfc49 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2026 08:32:31.5833 (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: cszuPWt/ZJEb7/tpLLaAeh3MizcDZXjhdTQc3rr+2sltci59sUJM3GZ0+64HHFJU6nUiY+bDuqZFWXxUR2x9EA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8911 Export a few items from nova-core and use them from nova-drm in order to print the chipset of the GPU being probed. Some documentation items are added to make Clippy happy. This is only meant for demonstration purposes, and won't be merged. Signed-off-by: Alexandre Courbot --- drivers/gpu/drm/nova/driver.rs | 9 +++++- drivers/gpu/nova-core/driver.rs | 59 +++++++++++++++++++++++++++++-----= ---- drivers/gpu/nova-core/gpu.rs | 9 ++++-- drivers/gpu/nova-core/gsp/hal.rs | 2 +- drivers/gpu/nova-core/nova_core.rs | 4 +-- 5 files changed, 62 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/nova/driver.rs b/drivers/gpu/drm/nova/driver.rs index 48933d86ddda..de1ad7032b6c 100644 --- a/drivers/gpu/drm/nova/driver.rs +++ b/drivers/gpu/drm/nova/driver.rs @@ -9,12 +9,15 @@ ioctl, // }, prelude::*, - sync::aref::ARef, // + sync::aref::ARef, + types::ForLt, // }; =20 use crate::file::File; use crate::gem::NovaObject; =20 +use nova_core::driver::AuxData; + pub(crate) struct NovaDriver; =20 pub(crate) struct Nova { @@ -60,6 +63,10 @@ fn probe<'bound>( adev: &'bound auxiliary::Device>, _info: &'bound Self::IdInfo, ) -> impl PinInit, Error> + 'bound { + let aux_data =3D adev.registration_data::)>()?; + + pr_info!("Chipset from nova-core: {}\n", aux_data.chipset()); + let data =3D try_pin_init!(NovaData { adev: adev.into() }); =20 let drm =3D drm::UnregisteredDevice::::new(adev.as_ref(), da= ta)?; diff --git a/drivers/gpu/nova-core/driver.rs b/drivers/gpu/nova-core/driver= .rs index 5738d4ac521b..a214860f20de 100644 --- a/drivers/gpu/nova-core/driver.rs +++ b/drivers/gpu/nova-core/driver.rs @@ -1,5 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 =20 +//! Main driver module. + use kernel::{ auxiliary, device::Core, @@ -18,18 +20,36 @@ types::ForLt, }; =20 -use crate::gpu::Gpu; +use crate::gpu::{ + Chipset, + Gpu, // +}; =20 /// Counter for generating unique auxiliary device IDs. static AUXILIARY_ID_COUNTER: Atomic =3D Atomic::new(0); =20 +/// Data passed to the auxiliary device registration, for the sibling driv= er to use. +pub struct AuxData<'bound> { + gpu: &'bound Gpu<'bound>, +} + +impl AuxData<'_> { + /// Returns the chipset of this GPU. + pub fn chipset(&self) -> Chipset { + self.gpu.spec.chipset + } +} + +/// Driver-associated data. #[pin_data] -pub(crate) struct NovaCore<'bound> { +pub struct NovaCore<'bound> { + // Fields are dropped in declaration order: unregister the auxiliary d= evice before dropping + // `gpu`, and drop `gpu` before `bar` because `AuxData` borrows `gpu` = and `Gpu` borrows `bar`. + #[allow(clippy::type_complexity)] + _reg: auxiliary::Registration<'bound, ForLt!(AuxData<'_>)>, #[pin] pub(crate) gpu: Gpu<'bound>, bar: pci::Bar<'bound, BAR0_SIZE>, - #[allow(clippy::type_complexity)] - _reg: auxiliary::Registration<'bound, ForLt!(())>, } =20 pub(crate) struct NovaCoreDriver; @@ -78,7 +98,7 @@ fn probe<'bound>( pdev.enable_device_mem()?; pdev.set_master(); =20 - Ok(try_pin_init!(NovaCore { + Ok(try_pin_init!(&this in NovaCore { bar: pdev.iomap_region_sized::(0, c"nova-core/b= ar0")?, // TODO: Use `&bar` self-referential pin-init syntax once = available. // @@ -86,15 +106,26 @@ fn probe<'bound>( // (`try_pin_init!()` initializes fields in declaration or= der), lives at a pinned // stable address, and is dropped after `gpu` (struct fiel= d drop order). gpu <- Gpu::new(pdev, unsafe { &*core::ptr::from_ref(bar) = }), - _reg: auxiliary::Registration::new( - pdev.as_ref(), - c"nova-drm", - // TODO[XARR]: Use XArray or perhaps IDA for proper ID= allocation/recycling. For - // now, use a simple atomic counter that never recycle= s IDs. - AUXILIARY_ID_COUNTER.fetch_add(1, Relaxed), - crate::MODULE_NAME, - (), - )?, + // SAFETY: `NovaCore` is dropped when the device is unboun= d; i.e. `mem::forget()` is + // never called on it. + _reg: unsafe { + auxiliary::Registration::new_with_lt( + pdev.as_ref(), + c"nova-drm", + // TODO[XARR]: Use XArray or perhaps IDA for prope= r ID allocation/recycling. + // For now, use a simple atomic counter that never= recycles IDs. + AUXILIARY_ID_COUNTER.fetch_add(1, Relaxed), + crate::MODULE_NAME, + AuxData { + // TODO: Use `&gpu` self-referential pin-init = syntax once available. + // + // SAFETY: `this.gpu` is initialized before th= is expression is + // evaluated, lives at a pinned stable address= , and is dropped after + // `_reg` (struct field drop order). + gpu: &(*this.as_ptr()).gpu, + }, + )? + }, })) }) } diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index b3c91731db45..bceed4652508 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -1,5 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 =20 +//! Core types for the driver. + use core::ops::Range; =20 use kernel::{ @@ -35,7 +37,8 @@ macro_rules! define_chipset { { /// Enum representation of the GPU chipset. #[derive(fmt::Debug, Copy, Clone, PartialOrd, Ord, PartialEq, Eq)] - pub(crate) enum Chipset { + #[allow(missing_docs)] + pub enum Chipset { $($variant =3D $value),*, } =20 @@ -203,7 +206,7 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Resul= t { /// Structure holding a basic description of the GPU: `Chipset` and `Revis= ion`. #[derive(Clone, Copy)] pub(crate) struct Spec { - chipset: Chipset, + pub(crate) chipset: Chipset, revision: Revision, } =20 @@ -267,7 +270,7 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Resul= t { pub(crate) struct Gpu<'gpu> { /// Device owning the GPU. device: &'gpu device::Device, - spec: Spec, + pub(crate) spec: Spec, /// MMIO mapping of PCI BAR 0. bar: Bar0<'gpu>, /// System memory page required for flushing all pending GPU-side memo= ry writes done through diff --git a/drivers/gpu/nova-core/gsp/hal.rs b/drivers/gpu/nova-core/gsp/h= al.rs index 04f004856c60..5f2d4a0c25cc 100644 --- a/drivers/gpu/nova-core/gsp/hal.rs +++ b/drivers/gpu/nova-core/gsp/hal.rs @@ -36,7 +36,7 @@ /// The GSP unload code might run in a situation where we cannot load firm= ware dynamically (e.g. /// because we are in shutdown and the file system is not accessible anymo= re). Thus, the firmware /// required for unloading is prepared at load time, and stored here until= it needs to be run. -pub(super) trait UnloadBundle: Send { +pub(super) trait UnloadBundle: Send + Sync { /// Performs the steps required to properly reset the GSP after it has= been stopped. fn run( &self, diff --git a/drivers/gpu/nova-core/nova_core.rs b/drivers/gpu/nova-core/nov= a_core.rs index 9f0199f7b38c..77f647b8862a 100644 --- a/drivers/gpu/nova-core/nova_core.rs +++ b/drivers/gpu/nova-core/nova_core.rs @@ -13,12 +13,12 @@ #[macro_use] mod bitfield; =20 -mod driver; +pub mod driver; mod falcon; mod fb; mod firmware; mod fsp; -mod gpu; +pub mod gpu; mod gsp; mod mctp; #[macro_use] --=20 2.54.0