From nobody Mon Jun 8 18:56:31 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012007.outbound.protection.outlook.com [52.101.48.7]) (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 4156E401494; Wed, 27 May 2026 11:52:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882762; cv=fail; b=n9Bn3ukwe2gLUQCECTt7nBEwaqtNvIz1n5gIy3RUmKYW6j9uD2zyitAtKszk8Epil/MILkm1Qt1FrCd65EQuzpdzT2+TMleXWCZNVEiNDWhopXjiXqXyjSIMv4H80/y24Yf/1m9mqw1HtqW9XPlYubE2b4czKJy6Ha3TsoMaG6I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882762; c=relaxed/simple; bh=/F3XD7JIqHs4JXo4LvEVwofozEDmWiOQ1KZ4Kz1Wk6I=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=uXEt+rTfsvpjDPig6Gr15bfW0V/j2onJ25lwR1WZoAV3MYT93D4yOPT3+zVt4k/HpKLktQl6q4seznQ8iPcyxeWOgETHQxTwv/Z6O1UyoGr0Y4n8Hj9vlpPZIAGPhIl93Gew5JOERgAVSI1oDM1kyxfwoyihFYJU7bRb0Rtfd+s= 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=WyIOu6Iq; arc=fail smtp.client-ip=52.101.48.7 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="WyIOu6Iq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fM5bxXca3l3JQ3rbctAZI88IW0pyBj48xFk2dnImKyhojO1CX30GRgNNTs2qHExZ3wyRxfF8U+wQS42evGR5jmHTjdLLcTOK2WBxAY1NlJ5cpstlntY4kn8eiYxUVz44Erk4PnwkV49oMXztV3faGO9Qi70LrfbDQ+0eJhpjZtjpHfhwCHDpxiPIt2y3APDVFMu5m5CNmzOvxNpEPNYs4d3u8O2z5012i2koJjULPuI4HlhpNRgtM2+RuHLJlUtLFiYYeqfY/alTlwGTiHsWo+AxBdEyOW5iZwAQF4zDNmjFZrITrk3gsCCNNJ/tGk7/XOMPH+Ynmnrx5eACDkcErA== 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=FRHAu5mL4yzTajgjmGg0XduUuTrS4h+vYIstHqVyYIw=; b=O7+7rf66MV0Pfcr247ysNiOQFjuHeKpTqn6m71ANbBjIDh7paPNS1a0Cf7dlT/IF5KU1e9/lxENQSGq8jopTy+wKxQv/2ewY4530qFJWDp8DeM42JqyQkSrhyNlLNVtHyj1mcsTV4Z34ohJeCPLPt+aUENUhn8K9SzReAmLNXt0LRLi4erSstIxexi3GhdSdSi87sDaiZr7cqsEj1iHOgZ3Qg6kxsRu/U+AwJMVqYNax7Z/dkxdvvK6XxaPD6M0D8/xJNtS6z3CfxDeKTWWTDOVCVxqvKZzuSgyKAjV7t9wfXE55Drjkutq94YL219GBBMEB6xts8nD3cIxN7ek7Xg== 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=FRHAu5mL4yzTajgjmGg0XduUuTrS4h+vYIstHqVyYIw=; b=WyIOu6IqlLCkU7qZgjOmZiD61ZCCAlsuR5UzoZdPvh88b1aLhlbbRyX8chLsUvUbLyibQCJLx3mLcue+UeQswFZtbbg3ggmQhOZK1HhloWV6c9bMB+pzBXapUAFXQIYIAezTdVz8u2GmV4SbHB9sEqG0hy6OwvY0tSepFH05DKNjd6TKGoAyW5vfEdofWJTYPc1hyjyWv1A0l8/L4mV5d8qf4vE037L0PKKKV2YaoWEZu4PWOo/Bf44PY16wLqfsztWL86F1nhmGAANGsU8AmoXvQ7eB9K2JMq3E0yX5UotsFfAqd9VNqDG9rQ1y5YCRJtO0j809KxovNxW3JW2Irg== 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 BL1PR12MB5755.namprd12.prod.outlook.com (2603:10b6:208:392::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Wed, 27 May 2026 11:52:33 +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.0071.010; Wed, 27 May 2026 11:52:33 +0000 From: Alexandre Courbot Date: Wed, 27 May 2026 20:52:17 +0900 Subject: [PATCH v2 1/7] scripts: modpost: detect and report truncated buf_printf() output Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-nova-exports-v2-1-06de4c556d55@nvidia.com> References: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> In-Reply-To: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> To: Miguel Ojeda , Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 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: TYCPR01CA0190.jpnprd01.prod.outlook.com (2603:1096:400:2b0::7) 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_|BL1PR12MB5755:EE_ X-MS-Office365-Filtering-Correlation-Id: 2cbd173e-f11b-4471-2b8e-08debbe67053 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|10070799003|18002099003|22082099003|921020|56012099006|3023799007|11063799006; X-Microsoft-Antispam-Message-Info: 3+M/vy11mD8WRKbuZAeC4LHnyuUZgQffGrSWEGMxDm09cUEuje96FhmCmS4+NfeT6QLHsbrFkxjKyWxIW3ygjSi208AgameDK7GbsjNAtLnH4Kx62TDLBpPY/gQKlQ5Jj4+tJk4bH/FbnJqqSjdaKp+ZLRWgwtYrBhwYzPJQDO9sW1J7ND4K4Z2K28pHof8N/J3LFhiIaeLp3+z/d+tvte5aECix6XCqSgCqLCcvCrXYHQI05iVs/o5Og1bKCggxSBjm5W8/lK03ATCYVDP8GkZooVnCoLN6Ks4cx7dZYfF/x7T/yB5lQFs3CvR0/qi5wFYd1E5FuG0ztK3hU8fDk7NhMT5A3X5Wme+fs1bPckNYgs9+qg29JFOSzrvkeVdsU8MsO4iNQ2jgOgOstq00AYwCn28TqRDr0cYcdcbONnB9QliF2UoPagP6AdAH2FWo0sEnCxib/QQWk+GIaN4iS0O0fYVkuDrEWfQJ1cRBVibMA2CVsxAVlyccDAZ7iff54EHbzFCRsk0ya7xIs0qpjt7KfjbRY8gNObqZ+9jUFMoJXs1nFHjnIfleZMdtokz+afH6uhRf4S82jeTpUhtx6HjYCvNcCAEyhjXFcWQqF8NLwyXORfojiB4jcAerPoFFoyD49ih9TzY+XIJqZNVtYY+zW7EHdl7adIBAa8IAzLxHL+tCnT6uWp+8XnorekDphrHCZF8qy+fCBXtg9TKuULXn8I8P6b4INFEFH8ncAyE= 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)(366016)(7416014)(376014)(1800799024)(10070799003)(18002099003)(22082099003)(921020)(56012099006)(3023799007)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bi9kb1RadGxSb1VSRS9IRHowUCthZHROZTd6TTI0MkkvalU3VkU1S2JCdEhU?= =?utf-8?B?R3c3T3EyZTRtak1oZ3VOeklVQXkyQzZFU2hmQmc4ZFhIYUVsNklNL0xVcDg5?= =?utf-8?B?aUtRc0p5N3hJbnlaU1FQVU9MMjkvdENubHNjQjFFOVNiRFFPV21QSzFCeDc2?= =?utf-8?B?aUdPMC94MUZaNnM3d1JwUzBKelgvdk1Uc2dHK0ZvbGt4eTI5d1EvOUlaUW5x?= =?utf-8?B?L296WWdmelJ4RUxFMWtScGZjWTZheUNlR3RXbnN6NklkTXNIeVpQOVBVVmk2?= =?utf-8?B?TUxzUm9nWTNvRDRuM3RuZUxjRVJHbm1xakQ4aEIySVNjSHJaRklTeHl4bUJ4?= =?utf-8?B?SW80UFYrdUEzMlBMOGp2YW10WVExSnA1WFJZR1MzTHJGRnB1UkVJNExHQURU?= =?utf-8?B?QTErYkpQZzY4LzBLOCt3aUVwRFN1WGExYTJGaStYZmJoemdUUU5hdnprMTR6?= =?utf-8?B?VGZ3d2tBOS9wRG9qODVONDlMV1NhZTZ0R2hsNUpRbU5ZTm5UalBuQ3pqeklQ?= =?utf-8?B?b2djeTllYXQ0UEpUQXhhcjJMN2dvV1RlQytiUnpneDQ0ZTNhN2pJRkhJcFNJ?= =?utf-8?B?d3paQzFJL3VEVndPOXE0VlFjSW5uT1NEWTltMzQ2MW5YNVpEWnVmZVZSd0JJ?= =?utf-8?B?azRsOCs0UkhGM09Kbmt3VnZRekZ4Wm44ZnlvSFQwWDVTWXdpU2ZTMmZFWWVT?= =?utf-8?B?QmVteE9vb1I0ZHZxSUhuUTZ3dlYySEtja0pBSTRLb2M2WkdtK2tFTHZhTXZH?= =?utf-8?B?VVgwRFI2MXlTaEhiVkN4Z1JyZU0yakZxK2RuWlNLdHB2OHAyL2M0QWliSGlG?= =?utf-8?B?YVQrSWZHREI3TWZhR3JuakVVeDNHVElqNDUzVEFVZnZua3dzVk1ySnFJTm9L?= =?utf-8?B?dXhUcjBUM1VvSGwyUmZBcmNMcjhUanRQSFNybFhvR3NkdDVSUm5nT1hBR3Zs?= =?utf-8?B?STNqdFpNYUVrMTd1Tk1rQklGQ0RKNkc1NTdnSjJBS0xicTJlZUtzRTNQRmN2?= =?utf-8?B?WDFHcS9RL3JIUEdadEYvMkp4MTFOZ2x6TTAzNlJDQkw4djgyMmJHWWZ2VzBR?= =?utf-8?B?cXEydFNjK2pQRmJtMmFpRlBLZS9hbUlyNXVXeldTUVFKM0o0UVBubURoQkhG?= =?utf-8?B?N1RpbTExUmZzd2wrSGRYRFMvamREZkd0dGovLzJJeTBSUHo0SXhkQW96ZGQ2?= =?utf-8?B?QkJtMlpnczRuS1NHQVNDOHBWRGFDM1pYWTA1bllIaFhaQ0szclcrRnZmQUZp?= =?utf-8?B?NGM3cjZXbjVmclEzSzRoR2lBRVZFQzJMRlY2TGltZDZ1dy9tMjlVb1UxTE94?= =?utf-8?B?NnR3Y2YxeUYvNVNZWmIyL24yQUVkTnVjMXdMREM4dnduM0xNUWpxZ1FKRlkz?= =?utf-8?B?NW8zbUd4Q0dYVGZCM2l1MW5YeWtRWkZ2L1F5R2hQdm5wT28vUnhJdTFRM1hl?= =?utf-8?B?bHlvRWZFS29UMG01Wk5VWEtkSWg4L3luTjNEMTQzTEd0NEN3Ulo2eFYxZHBm?= =?utf-8?B?MUR1SG5vMzYvbGxYeFJZdE55d0xEZU9HOC9mM09nRFdnTVZNeWlQcmd0Z2Fi?= =?utf-8?B?dGRRMXFDTjFIRGFwM0M1NVZuTy8vdUxoOW4ySHBkREJRQ0lwZHduaGQ1NEV5?= =?utf-8?B?Mkc3R0NlSUhaYUdZMndSTTI5OEVGc3VleFNseVNSTnkwREVqa3MzSWZoZElP?= =?utf-8?B?NkdGQmtiQ0VET2h4Z3U2d2lnc0g2YjJjN1JUUkZXc3dHTEhhVHpmZWRLdFF3?= =?utf-8?B?K2hjWjBEcERFcGsvQzZNUEFRUVRDbENRM0pSRE9hVmV4eUJPblJlSzNtekF1?= =?utf-8?B?UHpCcTdRL3N2MGgvWGUwc2tSeE5HQzNSVUdRUHBJWlQrYVV4WEExaWZhSFBL?= =?utf-8?B?ckxHZDdQVWZTVEpkYjQ0end5SUExdDNxclc2SDBidXEvY2VmUG1mSDZZRXVr?= =?utf-8?B?Sml3Q1JjeVV6U2ErKzlyTzZXSVRmekdFd0hHMnlKVG5iR0d0bnRJUVR4VXBR?= =?utf-8?B?Z25oQUY2czFPZ3lzOC9vd2pXNElZNElnR1VLZnZvTzErUEcxaG9kL05la3kr?= =?utf-8?B?bjZxR25DR1kvcEZWcURyV041UWlGMEtDT1F1a2V2ckt6dWRPbUQ2bHJWMTlm?= =?utf-8?B?OFQwY1p6UlNjemVESjZJTTFtbkV2aEE2bmNJb2N2ell1WEJtRysva3dOemxt?= =?utf-8?B?dHhNL0hieG9YbzlkQjBCZldiVHBDd0xzTUxHeTJKMHFWRmpUbGx0bXZ5VHdk?= =?utf-8?B?T3FoN3Z2bWJBSEtMeTZNYUYzRnk5d0kzbkdMeG1Hbk94enBLS1N2eU03VjZo?= =?utf-8?B?OE5LN2ZEcUpEdnZlenBDUHRReGNYMmhsZmw1QW1xdVNiNWI2TnQ0ZHBoVmU0?= =?utf-8?Q?CqJU8R4A9XyAwzKBXZaITsfZiGuXg0HafmrZApRwh6Z3t?= X-MS-Exchange-AntiSpam-MessageData-1: wGqsqmH7K3ULMQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2cbd173e-f11b-4471-2b8e-08debbe67053 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 11:52:33.6101 (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: VqjdzdB08zN0Hh268EZePlwfxUr/8mrIk67e9zFWH1/UecAxM1MQIzpHMTzVvp3y/fRHdC4nsvvjbVk402eQtw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5755 buf_printf() uses a fixed-size stack buffer. vsnprintf() returns the number of bytes that *would* have been written to that buffer, which can be larger than the size of said buffer if the formatted string is too long. The problem is that whenever this happens buf_printf() currently passes this length, unchecked, to buf_write(), which silently reads past the stack buffer and copies invalid data into the output buffer. Fix this by detecting vsnprintf() failures and truncations before appending to the output buffer, and report a fatal error instead of producing corrupt symbol names. Signed-off-by: Alexandre Courbot Acked-by: Nathan Chancellor --- scripts/mod/modpost.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index abbcd3fc1394..0d2f1f09019b 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1689,8 +1689,17 @@ void __attribute__((format(printf, 2, 3))) buf_print= f(struct buffer *buf, =20 va_start(ap, fmt); len =3D vsnprintf(tmp, SZ, fmt, ap); - buf_write(buf, tmp, len); va_end(ap); + + if (len < 0) { + perror("vsnprintf failed"); + exit(1); + } + if (len >=3D SZ) + fatal("buf_printf output truncated for string %s: %d bytes needed, %d av= ailable\n", + tmp, len + 1, SZ); + + buf_write(buf, tmp, len); } =20 void buf_write(struct buffer *buf, const char *s, int len) --=20 2.54.0 From nobody Mon Jun 8 18:56:31 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012007.outbound.protection.outlook.com [52.101.48.7]) (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 4E76A401A3A; Wed, 27 May 2026 11:52:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882766; cv=fail; b=fBklQg2ehW89Z1XDhMBb7VEuugWmYBAtog2lVoaRqN1xOrg6KhFox19KNhrB1j2xlhYnJpbCs1WhLmaeTt0GdhGvTmAgWNq+4yECHOa/1h1XFb+JtYfNiHZdWXkozB5C2iNj0Lz+3aQyokqt3M0qrDdjNJDPGAEHateGbGeQBLc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882766; c=relaxed/simple; bh=DE+78wzdiBmB3ZZlFlvSumxuj6VnlXxqwHGJKacXpeo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=nERafYvj0Hbz2e3vUEJ3Z3CXHVTRCf8w2WZUX80ffdBSYkMtrvTCF9b5fKbly+mxZM+s/pkxkiTlfv8vpKRR93fwchIhv7yHyy3fJDfuNuxbiTWeGkS8L4Es2RIKpdBGG1JS1LrvPFEGHk8i2OGgDP42QGZxcReLUM66BQrTRFM= 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=i1W2d7uV; arc=fail smtp.client-ip=52.101.48.7 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="i1W2d7uV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TxjiAXtkEY3B+8fIyrHoFYURi7b5816v6++FCrRi16kQ8NdA0ENN+vRag5YUTsMMhXDIQdcuwnH/eSsxzrTPKp8Ny/CGTIVqcsE6KGeTi0qJmFHgvRO/lgqDdZPkhFNQ+A6Tlz1qkB4C6PjVOt5luv4fyQQpid5qn0+k+o0htc5H4y+j+TH/dGvBlt3gk1MsgNNTpQ0q4geI4gKlZT1etW93nK9NfDEkoXG/O2svIqAmMIHw5MEuJHvoHwfnATzQHDZgu61qsc5dNmHrqr51PDsQQumutnnPU2mUDF9maYKqgHEgtl/UnvV3RvFJdBQWCdOsOezmaecNdnDTMlZHDw== 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=WiFBu+F8DpcIIS0JVcfQJoNkkzj1i9UtzcpHABzUpCA=; b=wpmv3YT/4CWbIBdwDsOrFfXbHphN4F7KMj3UiLNLC3iiHlR7NlmM/MyBgCL8LWyaGCy+UWfHJ9kRGPAl+yCGrOop7VMZv2j9iyK1y8S6lPzWiGcPuBZBZYv5wD0jk24HlbYBnqh/W1E1PHvmZKDgcUBlP8aKHwAUyT6PYN2MY7DGMGdFXfykJ6cXn6Ao3TfzHc47Oq3RT3O0iJpwtiGDAhZplHp+rRQjSKYx8E9mVadcpq5Uy70g2+i4kjVKen2dOs8FqRV1Kzy6rctnBhD3Zn0aRjGXHFgJHcfmB4+xmdfuaYUGsPE6qnmNzyO68UwRjZEwuHalvgaegEVDUNgXnw== 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=WiFBu+F8DpcIIS0JVcfQJoNkkzj1i9UtzcpHABzUpCA=; b=i1W2d7uV8WbuoXWplHvBmDNyNOiwkjueQN+4tBihD5r/vHxRF8FtVal0m8Qpiz7K9siZl/T9VTbpJvNeARa2cU9kmmzcRE1C2eKy/Rr5oN0lUhQXgY0+vr63v9OLN6oso7hM+uoOIgZm6GWgnkstFw23b2UeAZwX0gc/NQOBZtTSe7aPiCAHKqO1W+YyiqrPzo0/gG8igGlGpKrk5sZMuvZlTtsbCp8e1oGqhWETMic6MFfySIGdel+ALhinP2iG1xONq+ftBlaPBKb1KEssr43lJLmDbzRI/LUtmKfb16olnbt1buT0MM66dFgqerH6K4cylQHFfYpYoQvdTFaseQ== 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 BL1PR12MB5755.namprd12.prod.outlook.com (2603:10b6:208:392::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Wed, 27 May 2026 11:52:37 +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.0071.010; Wed, 27 May 2026 11:52:37 +0000 From: Alexandre Courbot Date: Wed, 27 May 2026 20:52:18 +0900 Subject: [PATCH v2 2/7] pin_init: always inline the #ident and #project_ident methods Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-nova-exports-v2-2-06de4c556d55@nvidia.com> References: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> In-Reply-To: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> To: Miguel Ojeda , Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 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: TYCP286CA0100.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::7) 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_|BL1PR12MB5755:EE_ X-MS-Office365-Filtering-Correlation-Id: 45ff05ad-7fb8-4000-e9d8-08debbe6727f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|10070799003|18002099003|22082099003|921020|56012099006|6133799003|11063799006; X-Microsoft-Antispam-Message-Info: zYGzHfpk63nIioo60ZQZVYRnT/z3RD0afSs0FpOnwghemXfm/tdGyd/S1I8k7rQYeFqXxmlvJ9UnCO9vyruYT857UEwxx7vOKwmFtV9XOD6PO1AEzdimfmNgrAo0UA8sRvNlPApCb2vC121hD/6uU+ChshqWpow7B0kLFu5dIW0BFmbBeX/3evsYONr74Yp6xNqCF5QwEhFeRAz0VORidprx4wJpf5MSNBTVWs5d784PQ2/5iDzyaHXh0hRG1mdWQMXPTE3KcxMqzG68KAp4ZOQeRFbMfqTh+c5KDkBJin4L0gKnY5hkpZ/Kp2K0YVGzJfWBz13MC1eX7s4d/alorij7+YNrPUxpk5kCYUVMr6Q+ChvU9rF/TA7jeBtChODBCGzn1PTodNch3fgyIsqqS9u+ApGULNbIiJnNmXESKhxcYP09uAEuHicFi5VFgRcgb27PsXHo/SWefhZMgrUZ9Q2FBhZxYz6+Pei+bRQX9nCQcJmS2iaO1+bkBs83Di/ZbMIvE63cBBs3zYJXrZXk59fHNsA/nKdXhaw7sGgAPQUcx0+xSRKgET+x93dZnx40Y8ie2O8DZ+9dPaltRKIVKSbG733mk6fi7+IjUTEObgZqVlszYS8u7H5JwchclDPyaRbAec4OMKBkD91vNMJZAdHXSLGEiOJZqvDyyF38asvqrLiz7GC3oK5X9enPutADiMatGsYXuGTjJK/NTr5ozvkPxUF7HSP5bhIO9SOI3vw= 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)(366016)(7416014)(376014)(1800799024)(10070799003)(18002099003)(22082099003)(921020)(56012099006)(6133799003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WTJORksyaDJrQkJrNUthdnFaRFdSTmswQ1lSYXdFT3p6dUN5SmlTalJOZy9h?= =?utf-8?B?andUbVBNWjJYYWQ2L0JycVNYMXRGRENhNXRvanQrOTMwbGw2Um4rSGdkMDdl?= =?utf-8?B?a0d3VTZ4NlRjTHRyOEVveVBIVE1mYzA3Zy9uelFkNHpJQWszalRzNWE3RGlx?= =?utf-8?B?Q2Q2Ym9LVzdWNnM0SVlmTDlIZ0VJbVduZmxRWTlobDZNRG9kUDFOeWhKdWlo?= =?utf-8?B?aDdsRTNmZDNSbXZtUmQvR2tZbjh4K1NHZEFCWXpkUTdpTkRhYVJzbUNjYmZz?= =?utf-8?B?ZGowNXlxbkhZV1hnZFFUTHJLaHBGdEdSSTd3VXU5WWRwU0IwQU9pSTd3K0F6?= =?utf-8?B?ZVJPUW9kR3l2TjVXczVFZnpPQ2dNdzh6aXBHeTR0dVVpZUllU0JROXM0QTZR?= =?utf-8?B?SHExSm5hNHE2MWxCKy9uTVZtQmYya1FpNGE5cXo1TnpQMzdsY0ZrZElIaGFK?= =?utf-8?B?cldrTElMNWtackRHZVJHZjNubTV0K3JWZHpRam5SWEtOYkV5ZnVZSHpWN1h1?= =?utf-8?B?a0ZaSXh0TjBaZ1U0SlNsV1hyUGwvcWc4aWdCSDFhZ2crZWRSNUFsV1hSYkkr?= =?utf-8?B?ajg2dDk5bXlncmRVTWVqWHRobEJtelVMUVhoQU4rRytBZUlYN2FDOFR3azB2?= =?utf-8?B?MWtqTFVKeU9RbFZKR1dhRXA0VFUxU2lKaHZQNEVyQUpuOEw2aWJiQWl4cTc2?= =?utf-8?B?L1g4MlFVU2JpOXNvNlJVU1kyVG5uQkZnSk9ONkVjRXFtditSRU1odGRmTGdk?= =?utf-8?B?YVgzRXkwdkVRYzB2T3E0S09mbUE4STU2NW9WaFc5NWpsMnBoS1cyemZPb1Jx?= =?utf-8?B?S1UrTU9yTzN1TW5xWnJIN2Zabm4vZlVEZWZndWxLRmhGODErQkNVZVIvUCs5?= =?utf-8?B?V2p6VUhDWnhUcjN3dmJsRkxFUjZBMXFEdGZUZTBFQm1ieUFrUDFoeWxac212?= =?utf-8?B?a2xJSVBtQzREZGExRHdJNFREMVc0cjJQKzY5SjJlTFlCcVZZNnpObmFaaEFQ?= =?utf-8?B?dWNySzJQQnB0b1ZDUkFkUUU2V0VtOHhyendRVC9aSmd0dlBib3AzejQvd2JL?= =?utf-8?B?cUVsWHYrUFRnN29oZ29Jc25qMVoyMFUvVjBhVVp1R014ODY1UWZvOEd4S0hC?= =?utf-8?B?WmJtUXZNOEZUWFg2djZBb1JxWmRkMXRkblcxSU4wREZyRDRHWjc5S3ZlK1Bt?= =?utf-8?B?Mk9mUjVlTmV6K3lCQjB1MlhGZXBFQVhKRFNrVjNxbHVWU1BHc1pxY2ZRRVNm?= =?utf-8?B?NDFiVEVBaDBpbGZudlRDVDhZT1FOVzVDQnpsSTJBek9RVFlUN3FiTGVJV1Er?= =?utf-8?B?VS84elFwQ3pkRUkrZmtzV0dWOXJlbnYxamcvUXJUTGZpclJPL1daL2lITHpO?= =?utf-8?B?bU5qTGN5c0M4YUd3cTlVN01hU0NVMndkcDZ0M1k3d1ErWlZtN1pVaUxXWGxy?= =?utf-8?B?bVRjUDZnd3J5LzNYTWdDWFBNRTdUb2Q2cUVTVVRjQ2xNcmRYMVFRMlhjUXN4?= =?utf-8?B?NGVOVVl5RWdLeE5KL3lMZHh3NUpDeVBPSS91b05URVJ2MkFDRGU4T1RYQ25q?= =?utf-8?B?NVdOZW5tTTNpRjFOV0VwVUROYzFuWVBRSXlKRXdFL0t2WHZJc0tVaTBBWjYy?= =?utf-8?B?aEFaV2NBRC9icHBQeFRLTDIwenVhMmUxZmUvN0VSaEpzMksraGZQMWw3RWhX?= =?utf-8?B?RDJlRlBGYno0cERKTGM0Q3RqSFlyaTI5NGFLT2Npdng1WXNaekQxZ1RMZlRB?= =?utf-8?B?WEd4N3NaaVkveDlvdlh2R3BXaC8vbThLQmFCOTFiSlBoWmpDWmo2djNrVnND?= =?utf-8?B?Y2NWVENlSm5zZnAwdUlMeDVyeWNBOEdRWFlYR21FVi9hZU9MamhQSjZLZVpY?= =?utf-8?B?T0F2U24zblMvczRCb2J5TzB5b2RjVSsxN3hETFRLMkRXbTRBbGtCaDhVYmVN?= =?utf-8?B?ZU1yU1lMeC9TNXJvY295bTkxWW5lZ2FNZU5zZU9JWDdIUFp5QVk2bXltSlNI?= =?utf-8?B?Z3p5SU8zb0ViMW5vNUU4S3Q3WXMySklka1l4TmFEMWJ5aHBkb05xd3BERk43?= =?utf-8?B?QTF5d2xkM1VPSzAyWmJzVWVWOERvMmQwUVRPMDVXYjczUHVWdFpyam1RUVdm?= =?utf-8?B?b0VxQ1NxTDVxVmJSaTFNbXBxNnRyaG9SZEhub0p5bTFVNnNhclA0QnZ4elNz?= =?utf-8?B?ZGptcTNialN6ajFCcm5IbkZhK1lFU0VhTzQreG1MQWhJYWxHNEZaZWJtVTZ0?= =?utf-8?B?ZncvZUxWL1I3bHJGMzRtOVVzd202NVE5cnZ2a0p1c2VCb3FlaWNlVnRwUWpU?= =?utf-8?B?VXJMb1RwOEppeEdkWFFOQmpobHp4ckRKL1pRN3A1aTZWV0xTSGtYRXlkdERF?= =?utf-8?Q?0CKXYkYHd6TkQiPwnm8DPOFUY6vZEYKuczNUud5lNeGsW?= X-MS-Exchange-AntiSpam-MessageData-1: BCPvH1NZrHJU6g== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45ff05ad-7fb8-4000-e9d8-08debbe6727f X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 11:52:37.2716 (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: IdpjrOGHcAlMSnkQune43rVcbM6ohRalLrW2eq+ibVAKIl9XwZ4LIeUJiWkeIEAV8c9uR/oDUwek2aYMxhTcww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5755 These methods should always be inlined for optimization reasons. Failure to do so can also produce symbol names larger than what `modpost` supports. Signed-off-by: Alexandre Courbot --- rust/pin-init/internal/src/pin_data.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust/pin-init/internal/src/pin_data.rs b/rust/pin-init/interna= l/src/pin_data.rs index 7d871236b49c..945254740f61 100644 --- a/rust/pin-init/internal/src/pin_data.rs +++ b/rust/pin-init/internal/src/pin_data.rs @@ -395,6 +395,7 @@ fn handle_field( /// to deallocate. #pin_safety #(#attrs)* + #[inline(always)] #vis unsafe fn #ident( self, slot: *mut #ty, @@ -409,6 +410,7 @@ fn handle_field( /// #[doc =3D #slot_safety] #(#attrs)* + #[inline(always)] #vis unsafe fn #project_ident<'__slot>( self, slot: &'__slot mut #ty, --=20 2.54.0 From nobody Mon Jun 8 18:56:31 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012007.outbound.protection.outlook.com [52.101.48.7]) (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 279F93FDC00; Wed, 27 May 2026 11:52:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882771; cv=fail; b=iyPA3UBHAv3388pR460SFFd+82H2xHErANL8FNccx+V3tXn8NT8o8vHrir7boWpo3iJeCfQKnPEZYNFAArx+wilG4ui+qhvY1yRc9W1SqDDOaiLsTa8QKWwce62alWP7X/BtBjp4U3GiQBAB/l/wmmpQ0RiHLaeF+QQSXueUGhY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882771; c=relaxed/simple; bh=garOLx9cbyJI7I87bkuMb/ZIO4arUIokU4VLpPje6g4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=bhZEhtTmG/UqhcwgsmeaC53wW8ykd7ZDflGBjPpYZ/STJI8ib2UkWFCbt8KS1+WanF8wFHsi9mFNRmUntG7osIz5DIjhrTu6DsVx8InosnwJamZxVlau0ZKAQQxzZ1wl+o4x9rf3Q7gCQZdhevLnNlQ6Sf30ofkjLVtOvqjED3U= 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=J52QuhzE; arc=fail smtp.client-ip=52.101.48.7 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="J52QuhzE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=o4l8TZH9dscKkmiy5QoXFA9Z1JyFqEbTqA13d3l0jRBsFcDIUNmuScgeQ/0Qq5S5jZZ5Rxaz8W+sB5VPsNrCeD4MyJuukc0/YEpXdiSWqFCbBJ9tQthnOF3c5pyC8C88szxlnnAftUkY99xYL7zIDHBxDz6ORBbHHzrCI6B7GprH9b0viCwlPve9vRNjRStHPTy0TW5eqPJXt34K57osXXbkzlP7dHSObLaymM6I/TGszoGSk+VH/TOYRequF95fQc5MGUdv1A5Fh+a+8NQ6ZrPARy9261njwA43bUZqb6W67yUo5d7z5qbrk/9cULORmjyLy9yLWTb2K3Jc6LWUhw== 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=oeZwT6aI/YbwOhUAOpNgcyIhF25j+ueFXGBUO6C5sfE=; b=fZEhgtn3xgCQwebiLiJ8RFtiR0emudM+zFkSuWO9LWk18LtZBBY6tS/FdbXdEn4kMSN6Bnw7et09wyN8y0tif8Wrn4/NbH5f8iHDdS6rVA8p+44eoxKcpiUkf1k71E+Rl/xeBJKkVwEYuDCIQIULOdj3IfL7u96Ra8T/Yi1uQyoPBcRMZikgN9XPE5f4xRKHdlvEgDbOIIJzvON3/GP6LSTLIIUmNPoRpU300iLQOTeGqiM2sel5yScvccN6Xp3NIcIqO3oaJCCPsQc71FQHBXm1dhX14dtv0CgZDWHQ2d/t7D+qTo1AKOOwQm1YZN0UjTLefbQd5u93tbA+Rq2uUw== 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=oeZwT6aI/YbwOhUAOpNgcyIhF25j+ueFXGBUO6C5sfE=; b=J52QuhzElr2PonzbpOugIbgMSV0i+P87E1vkSs0ICKKxkHGC93iG/SCHq9Sr2z2sh4wwQ9MFui2UzOIIpMWAWkaXMljH3dN1JLz8IMmUiK4A5il1zdn3j2ED9HCwlgUCFaqzEELMYBMmvBRPOM6htIzQNard1Q6G0Cx9oo1hCK/TnU/1sTLITZYum+zwsnQLBsfhuUaBjE7AoZ5oMpUl/CZ9yTJZblmsJugoxa8CjIrMoHsB+K8ZWAlGkpNRQlfg6VqnxeNFefF3qLzine1/6+Q3ixt7XBJY7N16Jw1/45PsVYl2un2YaoS9BiJG0xj8EBkhuGrzAXIx1cBkGdUQdg== 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 BL1PR12MB5755.namprd12.prod.outlook.com (2603:10b6:208:392::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Wed, 27 May 2026 11:52:41 +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.0071.010; Wed, 27 May 2026 11:52:41 +0000 From: Alexandre Courbot Date: Wed, 27 May 2026 20:52:19 +0900 Subject: [PATCH v2 3/7] rust: always inline some init methods Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-nova-exports-v2-3-06de4c556d55@nvidia.com> References: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> In-Reply-To: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> To: Miguel Ojeda , Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 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: TYCP286CA0023.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:263::10) 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_|BL1PR12MB5755:EE_ X-MS-Office365-Filtering-Correlation-Id: 64564c2e-ab56-409b-5aee-08debbe674b1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|10070799003|18002099003|22082099003|921020|56012099006|6133799003|11063799006; X-Microsoft-Antispam-Message-Info: UmZam9zRMia7LoRpGebAmM8gSr/JIlKFLtTVLhpPiqIbiZUq9wUOjoYGBKt1yYAmFNB4IHb8pJ66wqK+EjxJ8MAi8ms3dgbdS0Nz1m1uSWVWYFvqwLK+mNMPSkrMykVAV4eliAeGJaQVmEotOu5I+IYmTgOqR14l2ySatJ8w6WzizSAjn1vGDLbkTgQ7EQ2IMKweH6UzGYWmxQRWd9lUAU8sBF3RDI3/gWcsc+aGWRCCCiXnZGnFgKSAGButTXkgUW4EnjfI2XXvcDcy/7xT2clWzDw4QWllJQCAjqj8729KXlQ00tN6Ud0T3031OuNNezj/pvoucvp9z0pwdIolliTd3n2SVg01KJ2EF/iTYdUrY4vF5n+YVeHeNvGCrf/b9kAphAkYsgsGLKYTOq+o+omI6gcRj3YcD9QyOK/br5W6B5ZXFGxsROTZVyDXy0R9Q3O8oLXoj7qDDrDIND/CZJ1OOJ8Joo4wNeHMdv4hK5FjZQEnyx4NoSF84r7GD6CQcMiifi82ZHpKLGm6QVehrsSeDueK/txF+GG1yAdBr8EK4LMcQs0yG/3licYzu0iv71FaYUrjwrt2yQzsEQkudhu8FirO9+ltMdsV0Ad3qerZEh7fy1CZhFKvpPyIXLIikxUx8WFs7tZglOTupeq8QgMC2C1gzBwzcWYD4eZDXO87jcPDYP4H3wys3nx7EMkBgVsMM9K1r5Jzi+zaMhDWJkDUKsKt4c6kRTDupO7BgoA= 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)(366016)(7416014)(376014)(1800799024)(10070799003)(18002099003)(22082099003)(921020)(56012099006)(6133799003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?czdYOXFjblBKSWM3amZEcGI0ZWJidU5rZDhqcWZ6dnl5cG5hSUsvM29tUysz?= =?utf-8?B?Y014RytlcURmVWRCcHVwdnlsU3pFanNWdHFOTkk5TTUzNXVReFdPRW4wVzEz?= =?utf-8?B?MHFHanpqOW5nOUlDVi9BcGNSL3NJZ3I5VzcwQzV1ZXBQR1paTjZUV1BOMERx?= =?utf-8?B?NWtJcWNBTk81OW50RW9SQUp2L2xHUDZmQW9LVjUya1FENUNFbjFmcWJNcHIr?= =?utf-8?B?NWtqa2ZSSndvbjNpUWJYSHpBU2Q0TEd6QTVzejZaNXdMRUpwK3M4ZTlDNzhC?= =?utf-8?B?d0J3b3Rpek1NMUYyWVQ1VFdyN3NMMThhc1JpNlZjT2hOaHlRV24yVGV3N1BE?= =?utf-8?B?Y3BWMEVOVk9adm9hbkNYclBiY3BHdXZjZ1pkaVFyS01HS1c3eFgrOEEyUHI1?= =?utf-8?B?VURmWmFSU3JqRGlrb294U2IwSGNtVThvc1NuK1dPUnVJTEpSQXpiQlJLM1Qr?= =?utf-8?B?QXhOMm5GU2tOd09UUE1tZi9vL0QyMHVVVFo2VTJ3TS9KMjRURktEV0xuMHo4?= =?utf-8?B?VjlzZmdORkhFTUFZYjkxS0J5YU8vU1d4WEVtYVpBQjN3VTFtSW5pVVFLVHB5?= =?utf-8?B?UDNjT2dhTE54ZmMzNll1TkRtSGl2ZmFkVkxDNXAxalVpZXZISHhHOE5Ub2h4?= =?utf-8?B?c3Yxc3gxTi9mTTlObHRQaHVQbUpsQzBsTkVjZlVOY0dZVUVqbXlsNEdqWCtB?= =?utf-8?B?bTZUWHZRczJoMElOZWwxWEp1V1AwSWEvT3BuRGZqR0NoekNnOFlrMzJBeXpt?= =?utf-8?B?RkJWWUxicjhmZFhQSk84RmJsRDZwVE1kUHNyUHBNZUhWaDhQL2piTWw3T3V0?= =?utf-8?B?TDFHcndRLzg1a1dTZDlsRGN4b3BvcW9iK3FxVEtNOWNBOHliNmhLQW1qYnZm?= =?utf-8?B?S2VWb3R3MVYzT2JXYjhDQm54VHlja0ZQcTB6cFhxbnBoTDlYQ3F5ajJISHpy?= =?utf-8?B?VzRkcUN1Vnp2NitiN0t6UjBMaE9rV3k3VjZrOExpK0M5VHA4SVRnYnRSdHJU?= =?utf-8?B?Zm44VUJlNFZGandTenJwT3FNY1pTYUloa0dxYXJHN2Rwd0RYeEFhSUt2ekdN?= =?utf-8?B?YjN6ZTAxbUovUnZ1SEI4THpZYWZaZHFqVVZhTUZLUk82V3JGaFlpbVhhTkgz?= =?utf-8?B?S2FJZVM4VGg0Zzl2NXBUbEVWK0JJUU5XQ0lVbzRvSitKSURXekVJOFpVSExH?= =?utf-8?B?RmRMcDYzL1BYR2ljZjVBb0luVGphdVhMb1lMVmVDQ0xDUzNqaEZ3S1RhZ3h0?= =?utf-8?B?M3N1cHNOVU9EamRmNHFtMjhrYTU4eTVvbDZacjE5bEptbmE2SllqQnBrdUUw?= =?utf-8?B?ZXdsMDVGcUlDQnhhMVhwVUlFbTYxeDBWTzZCU3d4Y05oYU5IMnRZYzBrVFA0?= =?utf-8?B?TUQ5MXpSVVJkSDZDYldEbjlHZWdQekYzWkNWT2pwMGFBMDlCWHBNdXE5REpX?= =?utf-8?B?L0RiWFp5L05Oa09FaXk0eGs4aWY1M0FxeXJpaTQweVlSb2wzRnZVNkZaRTBp?= =?utf-8?B?dFZiYnRwUGQ3eDhHdkxlSStKSENMSDluTVhpa2YyYUdyQVZLdVp2cjBxK2lN?= =?utf-8?B?TlhaYU9yNXllQ2JaS09USzgveEFGdHZHZkpWMkIyTmVCUXR1eXgvNnZYN3JM?= =?utf-8?B?OExwQUUyM3hMSHkzNm5DWjdkYzU4RzU4cmtzZjdKaW5pSEs3MnVNUWl0N3Nn?= =?utf-8?B?ZUx1NE5uMVlPU3d0eEV5Sk9NblgzMGhPZGhYYko3b3NJSjZMQWJXcVJ2dEMx?= =?utf-8?B?YkJrRC9HUGRnSjFiNmNaRkIvSDFYOXlqZ3Zmc0tsc2R0eHoyZVRBTEZrWTY5?= =?utf-8?B?TndxM3pVOTRaWEJiaEU1WWFUcUp5VHdCdllLRU1ieEx4NDIyUTNrQVhKeVZL?= =?utf-8?B?akxzT3dVeTJ5bE5yQTl3TEdMV3oyUEpIYU1DRzRHdm9CYkRmaWRiYVgyRE9q?= =?utf-8?B?RFNTbXRtdlNZSU54N1BpTmFRdnlydUQxcnJNQTZZdEJSZklRbkplNS9veXZq?= =?utf-8?B?NTNtbko1emVOcnJZa3E1cDc0MzlvZVNPY1FTckRBdnNnc2RnbFE2U0dsa0xS?= =?utf-8?B?cmdXUVVqd2liSEROSm9HdDVFNWh5dXlmaFVrbWtxd1M2QjRvTTl4d2NQZjhE?= =?utf-8?B?OUFSMTdGalBBdDJucjhIRmxIQ3o3QVhmNHRTMkU2YytjVzFkc3Y4NXB4eTBO?= =?utf-8?B?amt0NmZZUkdQNEZXS1VrdlE2T3ZGRUNrZmZXeHVsWGhiRjQrK3lUdCt0V2Nl?= =?utf-8?B?Qk83cWlOd2ZlVHN4UVN1SzZhOUt4RkQzaU9MSVFxbW5vS1dIZFd4MFZON1BT?= =?utf-8?B?NzFjdk9kek1vRHNjY1N0R0N3a0d5NEhaTktNclZxa0M0S0VNUzk1bVQ5Zmk3?= =?utf-8?Q?t8qb6zIu0HsIt4IRujMgOq7B0y1MvRkPQBJQ+4bKEjdZ1?= X-MS-Exchange-AntiSpam-MessageData-1: I5CVvW76hOQjCg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64564c2e-ab56-409b-5aee-08debbe674b1 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 11:52:40.9188 (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: eYxt1Ypj36fR8GF+yFSUbfq3TOsSy8TSQ5ly5K1hPerkR1DyVSM7N89d+eLxML5IK0xkFvqOrhMn/SsvZ2EMcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5755 These methods should always be inlined for optimization reasons. Failure to do so can also produce symbol names larger than what `modpost` supports. Signed-off-by: Alexandre Courbot --- rust/kernel/alloc/kbox.rs | 2 ++ rust/kernel/init.rs | 1 + rust/kernel/sync/arc.rs | 2 ++ rust/kernel/types.rs | 3 +++ 4 files changed, 8 insertions(+) diff --git a/rust/kernel/alloc/kbox.rs b/rust/kernel/alloc/kbox.rs index 2f8c16473c2c..592fffc72e52 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(always)] 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..36d4bf1959fb 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, diff --git a/rust/kernel/sync/arc.rs b/rust/kernel/sync/arc.rs index 18d6c0d62ce0..973f15165606 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(always)] 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, diff --git a/rust/kernel/types.rs b/rust/kernel/types.rs index ac316fd7b538..381a06ee0d59 100644 --- a/rust/kernel/types.rs +++ b/rust/kernel/types.rs @@ -367,6 +367,7 @@ pub const fn zeroed() -> Self { /// This function is safe, because the `T` inside of an `Opaque` is al= lowed to be /// uninitialized. Additionally, access to the inner `T` requires `uns= afe`, so the caller needs /// to verify at that point that the inner value is valid. + #[inline(always)] pub fn ffi_init(init_func: impl FnOnce(*mut T)) -> impl PinInit { // SAFETY: We contain a `MaybeUninit`, so it is OK for the `init_f= unc` to not fully // initialize the `T`. @@ -386,6 +387,7 @@ pub fn ffi_init(init_func: impl FnOnce(*mut T)) -> impl= PinInit { /// This function is safe, because the `T` inside of an `Opaque` is al= lowed to be /// uninitialized. Additionally, access to the inner `T` requires `uns= afe`, so the caller needs /// to verify at that point that the inner value is valid. + #[inline(always)] pub fn try_ffi_init( init_func: impl FnOnce(*mut T) -> Result<(), E>, ) -> impl PinInit { @@ -417,6 +419,7 @@ pub const fn cast_from(this: *const T) -> *const Self { =20 impl Wrapper for Opaque { /// Create an opaque pin-initializer from the given pin-initializer. + #[inline(always)] fn pin_init(slot: impl PinInit) -> impl PinInit { Self::try_ffi_init(|ptr: *mut T| { // SAFETY: --=20 2.54.0 From nobody Mon Jun 8 18:56:31 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012007.outbound.protection.outlook.com [52.101.48.7]) (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 B2AEB402B8A; Wed, 27 May 2026 11:52:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882774; cv=fail; b=sbBA9dU8uTCzv3bZ2WZMuSOi+B7p5aG8UBe+5s0hDZJkKi086Lq0Fvw3DpuV7Rr2tvK8CCN7WAzfMy3nxyULbmLrKFuN9jsLmg9l0oG22joloKwLwOf1a/T3kfj+DSAVPst15BQZTOfRT9aTomhx/91S7+nnLyDZY1QJsOwk5uE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882774; c=relaxed/simple; bh=WFarSOnSR+JqTEO0IIx60MENZRcbxPUe04wOB2Ykji8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=uRE82aCVLFxFaZULdoDN2aCwmHX7jamheyyP9CrzY7zNucwa588kg4MUZjitF+2E6XJGwltgjud86Dsclthr0gKS7hcM7OSW2zdWSSJRAoQ3CmT5BKM3hYLX87dGbOY8ZkY+h3hg+DBTH8OrkcSggXVf9pAHtBWxSYId6oMViNI= 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=f8VELkZQ; arc=fail smtp.client-ip=52.101.48.7 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="f8VELkZQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q/eIhY7gOVwmemRlTLxOPnucLJf9Mrs3GKjMv9lv8V5cBykwQ6X+8NM7HzoRYqyfPuam+HlUCzG06Pp3dbUHbH5hEtPyzdQFAwMfibiX83CWhfPaprP9UVtiag+dQNVAOHJsfqG7uj5VSNFP5zVfUbs+Uc68C1zJ/CCz29qBcZD0+7fBL259iZcifhXkNLfQUYHT/6COzkouUW0BkoPtFy6x71Ti/fB+qW4AjveFZjwa47ggLH7pDZc8X+9v6I9lG0fYL7qNiUKsXjkrz4rrcpG9tBMch/b5XJRr2TJzNJWLM4OKgMl0uHfTYsQk87FvnJj/N1fegW0oAGuU2+c0+g== 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=fJ2CWCThHpPxL7WeDLbxSHNCLtB0bJLxs0RRSob60po=; b=Y9XWYafPcq/c2XPRNZQXHeqM7w80puRbGCh65oe4B25vuFPhFC0pKZG199OxOP8/TdZKDnEZWmUpZSix7xBZGplqdp9AUccPluqHxqYUAnnsb3KdRCmAMTFSVomyqu0rJ3gqLY9IxYNBQTz6ELegc+7ca9GpHF7XctA8hSat3soRNRHu4xPA0Qxz1iHQ4oJzGCSuLPfL4LQHHeFhqaQav03x8pLGpXSuS5mdXVnkX5kP8GWPdSicFa2VT1HY3gRWKiRr38Iv0uDgLTMMlaSQReTdLY/hq15cH10o1aGSBSO7ECQCaY+DPYMkRQnIwQDUhMRVbmDvSv2eFrFU30a+Uw== 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=fJ2CWCThHpPxL7WeDLbxSHNCLtB0bJLxs0RRSob60po=; b=f8VELkZQ2fKslt9p8hh9+6Au9fXJ1tWOEupeUswiPWsGSbMDG3QzdSLzai7Sb8ryBEuNLeELToHSX6yj2DLwZNNfjT0sLK6UDPldG0ZoqsXQiLqO8sdOFsfwz1DcOfdvlgAVKbVgEyumRTUn2aqs9za279Vw5+ScyBddFAEQ0BSPwSZ7S0fv8u58fA6sK42rLrPw9sQzr7KsbOMOTgFyIFpsRphx4WtiriTv/MlbnhQH5B4IEbTmBx/DZ2dUkFxujcly4c9jEUzqU+evjATPSRHt9kTZrWsIZfbkG04U1v/IxPtxjKXj8sN2Vjdv4hN/y5hF0PPtGRmbY4GXzm2h4Q== 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 BL1PR12MB5755.namprd12.prod.outlook.com (2603:10b6:208:392::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Wed, 27 May 2026 11:52:45 +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.0071.010; Wed, 27 May 2026 11:52:44 +0000 From: Alexandre Courbot Date: Wed, 27 May 2026 20:52:20 +0900 Subject: [PATCH v2 4/7] gpu: nova-core: export Rust symbols for dependent modules Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-nova-exports-v2-4-06de4c556d55@nvidia.com> References: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> In-Reply-To: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> To: Miguel Ojeda , Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 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 , Joel Fernandes X-Mailer: b4 0.15.2 X-ClientProxiedBy: TYCP286CA0093.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::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_|BL1PR12MB5755:EE_ X-MS-Office365-Filtering-Correlation-Id: be1aacaf-6e1e-4c04-bce2-08debbe676f5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|10070799003|18002099003|22082099003|921020|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: 65974KuIp+28qNW/efu/en19Ng9aFb9qLXMiemLW7JmaRu9XS5vL0xkyh5gPJh/fgIdWxkxLun3RMJUZbkfDLzkBCgL8KE5QYKZJ22YpaHKRvgqvmrngugSqBZfURZqQ1m7B7Lvxx6kKu+Pz8or0XN5l4aE+gj0+HOL3yJAyZFqjE7xqOyWqU5d46AjWkBLYjMD4cYSbgeovJ8IvEFeN3lnUEhHJWxPrP8GGb2vkzsja2Ac6LHT0omVG0yAwFyGoKFrFRVuJGSKEf8qNi6czv06B7dTbsMSbKzbTmvnuGR3GoyXMKuzaFaW65QIaUD4joqdDaBBulXvfFdC/u+yYkI6GCM9vN3+ewpsB4Rs2G3IbEPLXc9fZ2rbWK+d6mTP3r/Kn4LAjVEWSHzfWp5tjAtYP971edBEz1tvNJJTAJtG8ZA3JLK+Ucbb6UbD3b/N2one7saGYSNquPz+3Bm1c1wPbrFogYQG+FRXzOXN4y6IisEr6jcZ3hyCltWH6g7t862CzpR+KJg2pKOZkaDjCO9nynW4WYhJ+4gmu5ADDAuE6fDkWmFgyO9JBuIuf+GL09fg5NVbQgucyEvXd8gs4JDXHVkIHc2ORJ8BzHJ4xDkVIzJwW7uPSRySQlceW34AWrKftWKiSucWwbJWeBblTZ0h5BSTqLx9ZuSZ09QnoMwMacIUa8xY0OaQ7IPEECAcbC/pi5tln4+h8dGxRo+v7vc0ywMNVoloAr12MlLaWgj4= 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)(366016)(7416014)(376014)(1800799024)(10070799003)(18002099003)(22082099003)(921020)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?azAvQWl1NGlCd1NDZjJDTFp5K0R5Nnd6MHBQenJuaThCVEZJVm5pa0xFU1E1?= =?utf-8?B?UkNkQlpHWEY0WWpOeWRYUk9VQXEwZi9LbGw2Uzd1ZFNjU2dJdmFma3lMU1BJ?= =?utf-8?B?dVY3STZ4Nm16QndNTkw1QWJQWVVHVGR5dnVCQXZ4dWpYdS9UOU1RelZsQnFM?= =?utf-8?B?SmJxbmVlZnVVcWp1dXh4TXhvanBqVnp2L2pOUkZiQXJCZFRmTHNkSlBkSjY5?= =?utf-8?B?Zkl5VlJ4RnVkbmlZZ3Y2S0VXUFBVaHhPeG5qM0daNlJORG40bitlTUJPalRK?= =?utf-8?B?Y3lsY2k3OHE3cG9RZitLeXF0ejE0TGhGSGZKVE1UVGZoSVhkclpWYnRBYkg4?= =?utf-8?B?aGJQOXZOSi9TRlpTVEVhYXgxK3RyV00vbWVjR1pqaGhXNm5PVVlQOFhhZWw0?= =?utf-8?B?andvM3lXcnVrUTRXNDY1cVMzNE9teVAwT3AyOHpaUkFPdEw3SkgreFh1SEhr?= =?utf-8?B?RDYvM0d3WllCaUFJSVF6dkZIWTVwS3Ayd09OV1pIZ1pBY1ViTG54NG5ocE1E?= =?utf-8?B?K2dobURlSk9MS3VLTHBrR1lNLzdsMktGbUF3TlNoSHl1WmZpZ1hnMllrRWNI?= =?utf-8?B?ZmdEU05NSXlLV21HZEtFWmhQYi9PU2M0WWlXY0lmUisxNzVlUkpGdEJXN0pY?= =?utf-8?B?OEs2UFhJRk1sZ1NpK2xvak5XY1hXRGx1dklLb0lyY3ZiYnVxZEprSzBLckFD?= =?utf-8?B?N3dROFlnOE9POFB1ZVJlTTJ0dE4yY0VHS3p6YXNydWhsYXk3dDJ5TFhiOUtI?= =?utf-8?B?Z3JsQk1vYURBZnNEbzIvU3NEU1E3MGREMDh5dkM5QXkwdnBMWlRVR295aTQr?= =?utf-8?B?ckMvcnFMbGlJb3E0cjNSR0ZJOG01K3hFUUw4RTQwZU5MWGxzQzN5V1orVG1m?= =?utf-8?B?eS9XejZVVDlBeCs0NE5XM2t1NitaZ0dYdDl5ZDdkVjEvS1NzSmVWL2hxWmhj?= =?utf-8?B?bmhpWE1xTEE5Rkx6TElFSmhCaDYwZ0tLNk1ka3ZKTnVSVE13YVpNKzNLSE9M?= =?utf-8?B?VzZZcXpRZUtZZXRVUC9qVTVURFZrYk0xMHlDZE5SU3YxZXV3OUtyWXlaVGtt?= =?utf-8?B?cytpdTlVT2RqQ2JCT2NLTVBsL1lma0UwNDFIUHRsS3laa3o3WVhONGl6WEFI?= =?utf-8?B?dWtEbmNqMHdNMnNHTlcvOVdGekVXOUJkVjV2SThrQVUxbCtOcmpPdGFxUUlM?= =?utf-8?B?b2YvTDhyZjZpS3NvMTVwZ2hPN2R1Y1FxMFREMzI0bDJ6dGFZY253VVowZTdT?= =?utf-8?B?dkVHQ2JNcE9XdUgxcStJOVpPVXBsaUtrZzJXSExqZzVUU1NlcUp5SVJBQmln?= =?utf-8?B?N1VuaU1QNEhuRzdoR09VbVZNeTlxbTBFa2E4N3VwUmN5aXUvRkpEandlT09l?= =?utf-8?B?T0psK3ZzSHg3U2c1UjZFSkZSNkxnaFJkcjBRMDlBVUhRa2duMS9KeCtTY3Jk?= =?utf-8?B?SnA5S1Zpdi84TGxldEt1azJRdnI4aWVJRG4xLzdGVXM3VzJMRkx3MEJMbjZH?= =?utf-8?B?elRYWjhjbS96bVZoWStZLy95T1M0OEV2TzIrR2hNYVFHM3duR1FuS1hxZmVz?= =?utf-8?B?YXh1WGN4aGYxR3B4UUN0WHNzK09yTDRRdkxzTlA4eXByeHJNUUpLTnFBUWxv?= =?utf-8?B?Nzh6K1gybUE3eS9tbDB5RnYvRGNuYUhsdThFT01xd3ZUT3pZN3ZRWnQreU5V?= =?utf-8?B?QSthSXQ4VzBjcmlqcVh2QjcvbHZaQ0xrbGV6TDdjdk10TmMvczc1MGZka2xO?= =?utf-8?B?NVpieGZtUnFJV1RuY1pDZVM4WjIyQkl1WUhsVGRXWWFza2JCRWRsc2xMWWEr?= =?utf-8?B?c3NFbXBsd0hSQ1ZSc2t5dGNKQ1FoWFI1cVJjYzZpQ0drQVBlYyttaFVpTzlY?= =?utf-8?B?M254eHlOakRvdjI2aFp1Q1MxTXRUTS9pR3NJaDV6dzlOVVZVZEJROEJZVjBD?= =?utf-8?B?UXJuK1NNZ0RTZ1MrSzY1TE1La1hqNVJXMFJxeGJuNXA5M051c3dCQ2pEcmZG?= =?utf-8?B?S0xhcWFyYzJWMW5wUWF0cnZjUk5mOUx5MlVMcmltQTJVWElsR0RPbVdKWW1K?= =?utf-8?B?Z3Y1ejU0OE14Y2dFZHRKdnN2VGNHV0hydFFiYU9NQ0pQVy83THlFUTBXQ3lo?= =?utf-8?B?TmZQRlEyU3IxY1lROEJVRHFaQzdoSzQwK1pHNitEZFJhNTlSYkFoZ1I3aUR6?= =?utf-8?B?UDJQa3Q2aVpLc0EwYVBrM1UxL3ZiVmtXMCszYng2OVBrWC96UFNBdlBtaHo4?= =?utf-8?B?S0cwVE1OYXlIbU10VmtDTFo5THBMbnVjQmNWa1lHTFREcDVDbVhuMUYyV2ZN?= =?utf-8?B?Z3VzQTZiTjFvVHovOTF4RG5kSlpDM3dvWWlkYVJNQ2Z4RDErNjBKdlRlRFpI?= =?utf-8?Q?dkmNyKNDHZr8hl1VEs/T+KGDvGatERsJ2DFcINtifGC2z?= X-MS-Exchange-AntiSpam-MessageData-1: ydJHEQPFkvJy8Q== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: be1aacaf-6e1e-4c04-bce2-08debbe676f5 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 11:52:44.8926 (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: 7XWwSHvS7dCc7xEmZTve5L/VqiXX4YYG5fcJoQehyq55Fd5GXyc4xbWyHQhpROaKNJmPIzX4pr27BQlT6C7+lQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5755 Export `nova-core`'s Rust symbols so that other loadable modules, particularly `nova-drm`, can resolve references to `nova-core` at runtime. This is done by generating declarations and `EXPORT_SYMBOL_GPL()` calls for Rust global text symbols using `nm` and compiling them into the module as `nova_core_exports.o`. This is a workaround until the build system supports Rust cross-crate dependencies natively. Signed-off-by: Alexandre Courbot Reviewed-by: Joel Fernandes --- drivers/gpu/nova-core/Makefile | 22 +++++++++++++++++++++- drivers/gpu/nova-core/nova_core_exports.c | 13 +++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/nova-core/Makefile b/drivers/gpu/nova-core/Makefile index 4ae544f808f4..d31bfb04921f 100644 --- a/drivers/gpu/nova-core/Makefile +++ b/drivers/gpu/nova-core/Makefile @@ -1,4 +1,24 @@ # SPDX-License-Identifier: GPL-2.0 =20 obj-$(CONFIG_NOVA_CORE) +=3D nova-core.o -nova-core-y :=3D nova_core.o +nova-core-y :=3D nova_core.o nova_core_exports.o + +# Export Rust symbols so dependent modules can use them at runtime. +# +# This is a workaround until the build system supports Rust cross-module +# dependencies natively. +# Kbuild uses Rust v0 mangling, whose symbols start with "_R". +rust_exports =3D \ + $(NM) -p --defined-only $(1) | \ + awk '$$2 =3D=3D "T" && $$3 ~ /^_R/ { \ + printf "extern void %s(void); EXPORT_SYMBOL_GPL(%s);\n", $$3, $$3 \ + }' + +define filechk_nova_core_exports + $(call rust_exports,$(obj)/nova_core.o) +endef + +$(obj)/exports_nova_core_generated.h: $(obj)/nova_core.o FORCE + $(call filechk,nova_core_exports) + +$(obj)/nova_core_exports.o: $(obj)/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..480472b039db --- /dev/null +++ b/drivers/gpu/nova-core/nova_core_exports.c @@ -0,0 +1,13 @@ +// 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 + +#include "exports_nova_core_generated.h" --=20 2.54.0 From nobody Mon Jun 8 18:56:31 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012007.outbound.protection.outlook.com [52.101.48.7]) (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 BCE6F402436; Wed, 27 May 2026 11:52:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882777; cv=fail; b=u0/kJNAAwYjv5XYzGkXA+PVl/lIdhmb8Sf6WXqC5GmZEJnhS5GpViw/htmm/b8ip92mXoo6Y3aBgY83cAbsjWTRVBGWn/Pz6DlN8h1F9dCwUIwZde3M80FkcUP5l2A99T5odzvBhq+pIlFHnXPlDEQkiIKrwSBM3S+nV5z1th3k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882777; c=relaxed/simple; bh=YxNpMS9ACxWEmRMviIfoirIL2KCbcbV8yslTJ9nlln4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ocacnPMwXAXp7l9Z/lkNtm4AXQ1YpSi3ECIfydLUQjUoUL8sj5/N9ERbwXKQGjIQiUnPk6KBoV9aadXm3tnqbAa7vIwQH6n3nMyTL/QUSOpY1z4yVJ2uQsFQWrF2ulcFpm5xAYdt1l2A09AIoen7xlDUy2EOlaHD5G3OJL1uIlg= 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=h7AQkMb+; arc=fail smtp.client-ip=52.101.48.7 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="h7AQkMb+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L0G3htlITiGy7kzzXfjYv9PVzVizVLmYorhQRkNnhN+jY4cDpHu74B1eIsgmrQq+BRCPi8D5SzwlfX4RsblE7+MkeJPRifjARvvbUnQKe4YJgy+uloujOABWIYULbvKz480Xddzt9W+8PNCR5W2HkCCz9DnTBT1Q1ELsgg0KWRAt82nIh2XDMvkmcrBQdeyGl020aJgkKWvpp8M4tyJlJ/5pncmARiPINvHKBZ9U3d2GgT+MCQd/fGTUnl1GV32H5tTuDPAH4D+X5ecdlHJvGGRX9W0ktCRkvpaAe6SVsxKCTVbIYCOENVXzmlApLNiVxiteoiWCvnoTWZu/BpziqQ== 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=kfcjVlsy3JmZsBOLxwZhMvFqzF3KT3WA7LQA6+/p8sc=; b=pSZ1YT7gSchseQUxdcMsrhWfcrFieub1w6rTbuiiP3oAIQfLarPeHSnh23R1o1+H7hrpkGewMXG9cjOFsPlgIxQN9tiExh2ebJldqllf3uJLUH47XtsFa1wB8OZ9AJEZGaFiFZR9Ao0F6cCvN8OvrFmO9KP5Yy7PpS9HwgBQaCF0e9jvEmG/Ss8pysm6HA0yvWiJ3tFQktn8zcMtcZMFj1dv0DXdCXIscakR/KaSUZ9CIYCkDZ6PLiXdVXyZ8UD9ysasGRbwNNKHifabJVWz0p5IGHjMsMkQ1cPcucF0ZedeGhI2DYxV2Z9oOlpshUgBXZLQ1saTaKQt/fewxbOodA== 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=kfcjVlsy3JmZsBOLxwZhMvFqzF3KT3WA7LQA6+/p8sc=; b=h7AQkMb+INTO1zAJOarjVgrvAjjsUsFIzZx1sQRO0VcQOt7uYbNhV5BcAx189M8geJ74I0o4tcvfddeq24PQLLeAhEQnPTHgi4ejv30YeT0l9tnRgmI17bUTNF2GKqSGHSNnLA08XUeqwInfUjCmcExQpM7ex8P1TY9h6YfphvKlnANVF18Jhjf7eT9Uv99wyWBtFd26JXsuFSBRA5uRkYMMn+P3cW0+8gKfPWX8sHBu1CEMAivjYJxJ9Dg/EvbDmMCn0ANawwW19au/M9ywUFWTKzBaH9saaYMcdZHzN6DeTB6qSHZ5jquMz9XWz8a1HIPh9TpGasNdulDFWG4+7Q== 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 BL1PR12MB5755.namprd12.prod.outlook.com (2603:10b6:208:392::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Wed, 27 May 2026 11:52:48 +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.0071.010; Wed, 27 May 2026 11:52:48 +0000 From: Alexandre Courbot Date: Wed, 27 May 2026 20:52:21 +0900 Subject: [PATCH v2 5/7] gpu: nova-core: emit Rust metadata for dependent modules Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-nova-exports-v2-5-06de4c556d55@nvidia.com> References: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> In-Reply-To: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> To: Miguel Ojeda , Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 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: TY4P301CA0049.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36b::7) 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_|BL1PR12MB5755:EE_ X-MS-Office365-Filtering-Correlation-Id: a71dedc3-aac2-4dca-dfda-08debbe67960 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|10070799003|18002099003|22082099003|921020|56012099006|6133799003|11063799006; X-Microsoft-Antispam-Message-Info: e+QV6nq3I3HqJ2vO+IXkarrNby7JcUZoRE/x0ms1iZY/tyd/u0YlSfEBk6QqmJ/I0q3VzR75WVQoNodxRHQ2/5vZO/C+qsZ0CQOfFUwliMipA2WOBt3VfhB4l2cgsXt+zV6gs4h+P1bLcQFsAVaSi6dfTMm0ailhIs33HB4m0zRoxd/RVIuASKKqkru/YHuuAgwEY4MkWv6d0fviEKJc6wXEI4JKn/BetwdfhPqkFub1bwssKXt9H93P6Unz54r4GX+VeibAUmbgdDAZFvd9TkOJdh+7zwCMoZU+h3qoP+YDt+V6LpLml7aZOZw/JPF69J7JP3PKv9F6PVpVIhz1hls/043j+3ycHhyHQSoSsGfwBjHNvYeJdvOhMthumhkSCiLFM76rMoNeFI3xODohdcFIOLaKHXOxkK+cOJ7W71rkxtuNORu+yVaB5/YYYb6IW0RFItHuCfssrWeePLNXEC7XwNIgR2hJ7xUYguiMeGPCqBFwq3BC7UTtVpZ/gumjNJAXyTPQXzZFyngVMPiRqzTmzKZiAuNTs+cXO11r36lbyxr6wUAcIqAi3CFBc7GCmzlOYolbqMFO7G8xJcnwKqurFmqazw12JziNxLrYK2KSV3UJw2WyC1WdYxvhZL7WKYcfz4bjbMUDvVdHvrtmyz6SuZCyYQ8E0rKunhlZMLMaHsyfj7TA81IV5U9l7bOEz3bZ8FMm7AaP4eS6Gud7Xjjr72LHD8fRFwe1RGgzuJ8= 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)(366016)(7416014)(376014)(1800799024)(10070799003)(18002099003)(22082099003)(921020)(56012099006)(6133799003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QlBIWEF4WExkejFjOEthUitjdk1zRFczM0JEQ2tHdm5jejJZWWRBL0IxaG1P?= =?utf-8?B?ZFZ1eTJHSXNXUlBxMVArWXFiS3ZGZUxsVXdmRkdrR3FmYWtkd3FCYmszWmVR?= =?utf-8?B?QXJvRUhLa3BKeTB4dmp3TVh2MEgxM1BvSkpvZkJLVHlvM2pDSFR0SXhhM0o4?= =?utf-8?B?ZUVCN0hicWxzUXREbHhDYnRucmlNK2VzRVR3S2NOZW1HWFZpSGZ4em5XVGt0?= =?utf-8?B?QS84R0thaWxqOEpEb2dqZEdqU2xPc1lNZ1FFdUZHYU5vU2JJWnQvaHV1Z0po?= =?utf-8?B?SndxSFlwSlVoWnEvS3Zjb2ZZRklaeXRTanJZWjNhbDVTUHhxM1FubW5jLzVW?= =?utf-8?B?NjgzUWxYUjI3cDNkTmZ6NnpJa0hCeFZDNDNlRGoyZVNPNGJVaHVYMm9PN1Qy?= =?utf-8?B?cU5uTXVtdW4wcWxnblNTL1lEbzkyLzJIdXQ5ZTV3aUkvem9DNFV4SWlHdk1i?= =?utf-8?B?YTRrR2d5WW44bzZUaXNDZGdYR0h3ZkRTTm9rc29XODdZMEpyVzJ0bE1DNHVk?= =?utf-8?B?dnJJcXY4SWJibEVOWjRYYU95N0FFTG1aYVdqM1BCb1ZlR0RXL1orV2ZrRDhP?= =?utf-8?B?RXRtaSt5SVFGSi80WjVjSXl5UkpLTEc5V1dVeklNTG9nS0lpTXZ1YnBwUm0y?= =?utf-8?B?Q2VTZEZPdjR4WnV2UHlWSy9hUlhCN0xYemdBUHo4bDhnUXhwdTM1eWoyZ0Fk?= =?utf-8?B?ajJNcDlXWWdaaXZXTlNpVTBrclRNQURZU1NMNTRmTU1MRGIyK01jRWRTd0F3?= =?utf-8?B?eGE0aTBqdnBKSUNyN2lsTTFselgxcGJhUHpvYVNETC8xNTZhN1kwd3JrUkVG?= =?utf-8?B?T3lheFowamg0SHlJYjNyTG1YSkt2VmpkNVVaVm5PQzlaVk9xcUdxbG1BWmZY?= =?utf-8?B?VUthc2d1R1g2MWVVWTNRU0I2RmtaZlErSHFIWGYwNGs3dkJMQ2RrYUFWVW1Q?= =?utf-8?B?L25YbGJncm9ZUU9TdkFDY0IxL041N2pNVm5KZjcyY1lIVk91R04rZm9Fc0o0?= =?utf-8?B?SzFIbURCc0pqenBmay9Id3l6RzkvQ3NBaXMwRkFGdmZ6NWFkVTMwU25sc0No?= =?utf-8?B?TjE1c1JMMnRQT1NNT3k5bmV2ZzNkS1JRMjlBdzA0WXhRelVoZWRNTUtBMnBz?= =?utf-8?B?MUNQd2pIMmpzUEs1ZmlqbnpncFE4SzNQUjl4RG0wdzJ5YWcwVEJydnNPZXR1?= =?utf-8?B?dHFvNTB2MEdMQ1JnVEduV2crK3puWlBHbHROejJqRTNZRUNheUxNNHRkUGtl?= =?utf-8?B?Yk5YN3J1UlV6Wi9rQktZRks1YmhHTW8yOXZQWTVjNzRYUWp1THNQdkp6MVdy?= =?utf-8?B?SFAyelJGeUV6cHNaV3RjcVlZQnA5dW8wa2ZLL1ZMOTd5Yy9TUU9sZmNkTzZa?= =?utf-8?B?WXhsWFl3a25FVk5mdnF6emFEQ1I5VVZiN3p3ZHRmQ1orcGJIT1BFR2ovUUJD?= =?utf-8?B?TkthRC9kWnZTYlg2b1NUcnB4K1NHUlVwT2VrMGprV05lOUZscTg3ajE5dWhJ?= =?utf-8?B?SllsZ2N6ZlBQcU5iSi9MekordFdvbU5nOG1ocjZZbzhweDN0RERhMUtyYnBW?= =?utf-8?B?TkpoZEE1YTl4VHg2Wm10K1VKdUxrZ0hDTE9HaUtzNngycnpZTEVzMmZubzVW?= =?utf-8?B?R2ZTYndmVjRZRWJTUmdGek1iaHlqeThkOU5WSFVZaTFFODM5ckU4c3pocmdt?= =?utf-8?B?b2haeUpiRXczOXFnT3NvbXRKWVNqV0ZqZGQ5U1V5aEpKYWQ5dDJHYWlJWk9O?= =?utf-8?B?QjRCeFJrQW1JOWJHUGx1RWwxdlo0NkpyemF3dmREM1NqOFFiK21TWDBoSmNO?= =?utf-8?B?MmlyWlRtMjg2ZHMxRFV1SmdKL1NubWV2amZqVkd3SnV4ZTRyZnFIL2ZML2Ux?= =?utf-8?B?SjdHK3JqV09MZFM4TUVhc2dGR3ROenhPZ3NDUEo2U0hiUjdDUURJcjBiQ2Qx?= =?utf-8?B?ZzRDQzk1Z1FkSzN6RUNyOERzbG9VbUNFWkV5eWt5ajFydERJYkttSHAyeWNY?= =?utf-8?B?QzV4NStxWkhLVURRamtPaUlIajNkYnI4SzdsM3VGS2NSQkdaWk5nVWc5VUdI?= =?utf-8?B?eThReHpmeWwvWVJqaGthV2E0eFBCSkNLOVBpWDVkb3k0Qml5MUx3VGlCR0NR?= =?utf-8?B?c3p0ZytGSjhBd1R3a2REYWc0OENGQi9Ec2V5Z1RyaGRZQys3VnNaYzNMSzRV?= =?utf-8?B?eUNiWjlaMFpsRHlIZUcxMjRkT3ZTbERwK0ZiSlRsQTdtdXhpbHU0Y2lwVnpH?= =?utf-8?B?Ujh3RUdwdHg4UlpxTTUrOVF6MmFTeHd2Qnp5Q0VLRG5iMGhLRkNTeGE4NGda?= =?utf-8?B?UUlidVBObVZ2U09lSGNoclU1T0RKY3grNnNWci9hR3JwY2ZKQzVFcVovbFNv?= =?utf-8?Q?1rXOo1pPWuZqxzDeGR8QOWCiqiQfqHyU9uikMM5LtJ0Bg?= X-MS-Exchange-AntiSpam-MessageData-1: mN4sEzNgPyIKcA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a71dedc3-aac2-4dca-dfda-08debbe67960 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 11:52:48.8634 (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: FYJVAGLLAxZQKAG5JQDUZw0VoZe6+eJQwj77Z15GqE7TNDFb80R+hdJcuPWpGj9WXg8db8yz57nD8jwpYrBy0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5755 Emit nova-core's `.rmeta` crate metadata so dependent Rust modules can resolve nova-core's types and functions via `--extern`. The metadata is exposed as an explicit Kbuild target instead of relying on an untracked side effect of the object build. This lets dependent modules ask for the metadata directly, including single-target builds where `nova-core`'s object may already be up to date. This is a workaround until the build system supports Rust cross-crate dependencies natively. Signed-off-by: Alexandre Courbot --- drivers/gpu/nova-core/Makefile | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/gpu/nova-core/Makefile b/drivers/gpu/nova-core/Makefile index d31bfb04921f..7e2c62b9a597 100644 --- a/drivers/gpu/nova-core/Makefile +++ b/drivers/gpu/nova-core/Makefile @@ -22,3 +22,27 @@ $(obj)/exports_nova_core_generated.h: $(obj)/nova_core.o= FORCE $(call filechk,nova_core_exports) =20 $(obj)/nova_core_exports.o: $(obj)/exports_nova_core_generated.h + +# Dependent Rust drivers need `nova-core`'s crate metadata. +# Expose it as an explicit target so they can request it directly. +nova_core_rmeta :=3D libnova_core.rmeta +nova_core_rmeta_private :=3D .nova_core_rmeta/$(nova_core_rmeta) +targets +=3D $(nova_core_rmeta) $(nova_core_rmeta_private) + +# Build in a private directory to avoid racing with `nova_core.o` on rustc= 's +# intermediate object names during parallel builds. +quiet_cmd_rustc_rmeta_rs =3D RUSTC RMETA $@ + cmd_rustc_rmeta_rs =3D mkdir -p $(dir $@); \ + $(rust_common_cmd) --emit=3Dmetadata=3D$@ \ + --emit=3Dobj=3D$(basename $@).o $<; \ + rm -f $(basename $@).o + +$(obj)/$(nova_core_rmeta_private): private __modname :=3D nova-core +$(obj)/$(nova_core_rmeta_private): private part-of-builtin :=3D $(if $(fil= ter y,$(CONFIG_NOVA_CORE)),y) +$(obj)/$(nova_core_rmeta_private): private part-of-module :=3D $(if $(filt= er m,$(CONFIG_NOVA_CORE)),y) +$(obj)/$(nova_core_rmeta_private): $(obj)/nova_core.rs FORCE + +$(call if_changed_dep,rustc_rmeta_rs) + +# Keep the metadata available at a stable path for consumers. +$(obj)/$(nova_core_rmeta): $(obj)/$(nova_core_rmeta_private) FORCE + $(call if_changed,copy) --=20 2.54.0 From nobody Mon Jun 8 18:56:31 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012007.outbound.protection.outlook.com [52.101.48.7]) (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 81D51403150; Wed, 27 May 2026 11:52:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882781; cv=fail; b=r+VZo5B88MOp18T/C1jUEgpTpT58TsW+TlnWHuZeg9w+FRlr4BRpb1KBXq1uB0g+o6uvfqgyUX5x4HrQ2MiMBNqhurWnt8Y8JdowYotutTK/afHutCtBP1HnsMYnIDpVcu7BGnIEctmfVA/6RBmwir66JlPbwGeB7OYhGW4zztg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882781; c=relaxed/simple; bh=9bTL7TE5BShLw5YFA0rwfrxVUg5tykv2UiLShcpcF+U=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=tHT142KCpHqc3SQai1AShcTxEiQgvsWG04n0hxjOjRimLfwZM7MUeF6qPcfHNvelr9DANcfFJTltyy5+QF4PJLjuJus0cNvF2UXXndy553YejvxREhUk1PhVkmnmM88abr2osS5E3c4ttgN3NF53RmXQL+DKQB1J4cjrFBRJGbM= 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=ez08rZP9; arc=fail smtp.client-ip=52.101.48.7 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="ez08rZP9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wM5Sca73uEkPSeIgUX/6wzKIRG5WwyKV3m4BNGSxiAUOHPpa5aqS+DL28Ni0FXF5VCXgzxiYjq3ckY8PJfRMe2LY+lTsn6gcVyBiIytHsrDcSPYbmWhqeVE+9EhoiC9vnqxPqRGUUpuzjYAqxK7v8Pp4JPNwbyN1yVZZYnyaxdaZ8uqYWYf2XXh7lk1JMsIjaXKX/7xgHPVqHSpf1G/9S0S/wYICZ0GAf0SXKxa5hUtCw0E4XYYM86UMUJmMgVOKfxpGFmruMUVBmwOo4C1LcpcxNfI5Hh73NVqueq888r57oQMe3JS/vVucUJzh4iqIk1aR/tQ2QyzUoqmRVz7aNA== 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=aY1zNp8/qtaVZSIz1acsvdNw6cmp12DF2znjTV866m0=; b=UW880dmQ9GkCBiS3V31lcp1tZ0c12SegS1QJYwfhWG/w+Yre7fN8OcphXpQSMrvr8lsu+pLsuAgnE0/59lDuG9rTxA7Dpb+lt5qQq0V7r3K56RrSI2R0sibokI8pzgJuViuSgaBiKJ0MvvbyPh1njb5jLCuMlyz5n0xNlE6Q3mx54XGntJFss/ta0v06z+hUy5Yd7NjopWFBP1IPY+lJLbD7uDgQVJ3FhF9PDP3f/q+iw8QUnBNa+C0nuNLTJ7M+QmFE7kJBTNPJb8oLNC5EeCZbPtvB6984+RqiGZ84nCl3HgDPvRQcI9meIdmXXO+6whpe4KGOAFDWDq8sla3mIA== 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=aY1zNp8/qtaVZSIz1acsvdNw6cmp12DF2znjTV866m0=; b=ez08rZP9l/oAqsUXiILkHDWQqEYf6FKPKpvMemuzJQP5qQfGwANmJj9Qq+2/uW11Trdnfx0Fyvll/rsS3zru4g77FbfeMIFnlH81oqHvMMEvgJlZuzZeitWgdCngMvI4he42K1yJC16RvighSiyrVdPz527OV5GR5r6GROTfV/kNPiWr/rzi55R+vcl0YSRzNAwhzPf+Xu2NBGEl+7e6ohhnop9XzjJ60C1/iDXsJisZjGRjLWDmZ7uX4PMq/0dueRxtxj50ETqpuQ08v4abHBp8ijBeG3+gL5nB86OKOcpQD6HboIdyIbdz6Sia4cPff07vb48FgVeb4zwCTiu0Vw== 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 BL1PR12MB5755.namprd12.prod.outlook.com (2603:10b6:208:392::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Wed, 27 May 2026 11:52:52 +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.0071.010; Wed, 27 May 2026 11:52:52 +0000 From: Alexandre Courbot Date: Wed, 27 May 2026 20:52:22 +0900 Subject: [PATCH v2 6/7] gpu: drm: nova: build after nova-core metadata Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-nova-exports-v2-6-06de4c556d55@nvidia.com> References: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> In-Reply-To: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> To: Miguel Ojeda , Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 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: TY4P286CA0101.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:380::8) 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_|BL1PR12MB5755:EE_ X-MS-Office365-Filtering-Correlation-Id: 6760b0b4-3e68-4dfc-9409-08debbe67ba2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|10070799003|18002099003|22082099003|921020|56012099006|6133799003|11063799006; X-Microsoft-Antispam-Message-Info: d8tiX25yFKKKMjbJaQAotCsc2CemVPYAdZ7kMI96cwTbFhQYh+dED6JFBlE+Li0ncytk2+RsXQoy9nSus5pONgxsAiBPovGmU+WMn3+dhHL7L76ayF+XirFaIWRWCJ7dK6YMiweCj8+nG14ZEUUld0G2uqiQQKOA/qSm1IqTbmxAxkqHlZFqhDYuNTyREk6pHfbuLwag9Y3z0pQotYc6sE/sx5iFxTsVITHShqYTmGe/wSqYFWO3HZOTuUiVm3XuTvbGtOsf+b6eVsgHu/dpevuE75WlKWisGK695I0qDisAAlLW8e6hf2+BmJ0Py2XrTe2K9GJ1xWEYdaPuSDJJU444vSR7avWGCDfJ5H5Q8fQqww9gLmBnXqX6fHrVOiyB3Q5DwC7kg6iWlzrUyhK6qROU5JKx52YkRAqa81Hpe+36UvWUihJoRWuEQP6/tgd+IsX4kf6Euk92Ra4MCnu5GmS0I1tZE3jxL8CRi/JICl1vNhrHY2yFVTRzoK3UvRB/ldxmofE+4knHCmi0SsbXPu/ApRSwCgJuiRPtSX4Pq71A8BljYV94ePqOg2R1Y7CnP70GytynDh3soDhpSEqPwsF4HMB0MLki1keYiGZDid6YjMPPSOUmWLwjMarE/uL1MeCBUlJ4m0p1Rkb7sU6uupyf+bNHr6cutWXfxD1GJiiWT5MCEizdD+w4FY4obH8lBT6H8NJByPuLnXc8k23kLXjdAFzUvNgczuTcP4Gois4= 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)(366016)(7416014)(376014)(1800799024)(10070799003)(18002099003)(22082099003)(921020)(56012099006)(6133799003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WUgzZDRhaFVGdFhxcTU0SHAzU1Y3THZzUFIyb0V1OGg1Y3FLVXZvQitmVjNk?= =?utf-8?B?MVAxemRvNFVaUFc0M2Q1STAzU1BrZ3Q2ajdGQlBvTUVlZVZwR3VYUUhJbVda?= =?utf-8?B?TFNISkdnalBhOEFteitQdWFOdit1ZDlRaDh0bVV2Smg3T0xjbTZjMG55SEdY?= =?utf-8?B?dGFzRWxxZVd0cHl4Nkt4L0kyeVpIa0pLb0NueHFXNFJPRUFuSm16VVpYN09v?= =?utf-8?B?c01FWEJIUlo4RHc5bE1ER0dvRU5wMjQ5MS96MlRUWkZqa3R2NnN0NVdvUEpL?= =?utf-8?B?K0VFQXAzSUdMcmVhLzZodGlEL1cvRXJGcmFPR2Z1RTZla09PMWx4THZXSnRw?= =?utf-8?B?SVZ2djZEek9Ka0lmaVBwSERWblJqRnVPU0dGRlo4UE0wRWl6UmtEM1c3bncz?= =?utf-8?B?cTRnSC8yVGFROHdReWdkWCtHN1ZFWU0waDFRK29pUFQ5QkhWd3E0bEVVMEpV?= =?utf-8?B?MW83dkhpKy9nZ1FzN2gzS3JXcVRPQW9KQTJLVndqWW84K1NoUEZzM1gzS2xI?= =?utf-8?B?NTFKT1hQakthUXdpYUhQaVkrNG5PY2pqeDVyaVhvRGV4Q0MwMzVKc1BwbTBW?= =?utf-8?B?TjJCM3VKcHB5c1pnMjRQVlZDV0ZPeXc5bk8xb3d5RWlEOVdlRFczYUNjVm5C?= =?utf-8?B?ZHd0ekhlT0pkaVo5ZVhRSXlKeXVYaW92ZjFKcTc4YmhwbldnL0pyaGR4c0M0?= =?utf-8?B?VnpNQWZ4NmNNQVltTHNyYmY0S2M1N1NoMTVVMnVIT1ZHMmlTbzZLZHRpTmdX?= =?utf-8?B?SjNMWnNUOFgwSjAwQnFvQm1rNVRpRnpSakRtQ3M4Zy9FUmxSazhPNHJxYlV1?= =?utf-8?B?Mnl6d1NoamJqYXA2MHlpcTRRaWZiNWtUYkZ1SlZxM3pyN2oyZjJ2YjJYWDJJ?= =?utf-8?B?RlJoNWFVOVpzWFIyNXhnMExBZVdpd0QzQUNUMCsrV08rd0NSaGRDSmpoTWNX?= =?utf-8?B?bCtoWmJKbU1ZSmpCYUZNeVhNVG52cTZRUDNNSWRXbVU4WVl6d1B4SFUyekt5?= =?utf-8?B?M1RPOHU5NGdNNWoyeUVMZVpHNmdUYXNRUWVkUnhFTmgzais2K2RwSUxuV1VQ?= =?utf-8?B?aWtwZ0hJb3dvR3NCNlhybmdzTEkra0UyWGJHL2lhOHJYVmZ2c09TZVF4aDNL?= =?utf-8?B?dDV6TkZyT3JpaDRkc3Q3cmpiRDVla2FyMDI5S3cwYWxJZmUzOFg3TWJEMVNs?= =?utf-8?B?ZldvcDZPZGFhYVBabUtQYk85WS9TM2hTYXJhbS9NeFhlQnZDNTNCamwreTJY?= =?utf-8?B?WXpCVkNGM21MbWVQTkZBWnpvUThzY2hWSEd2Q2ZIOE9UWU0wc2QvNFJFZzZn?= =?utf-8?B?bFVMa3dQcmI2Qm1lL2VURFRPc0YyclpPbmJCbVcxQXhVVEYrUlNScWtOWkQ1?= =?utf-8?B?bk5NYUFyd1VUY25BU2NPUTd4M3FDZjNzR2ZpbTlPOCtneXFXdkpua3doQm9h?= =?utf-8?B?eUFuamVML2N5N2JVcXI5ckJScWd5TDZXQlFXUWdMYm41UzhoOTdtWFZFWHJv?= =?utf-8?B?RzF5Q2thV3lOQk1RT1I0c0NZY3Q0MVJMcUlYUFIwcnQyZThhWjh1SnBScEZi?= =?utf-8?B?Qm8xcStIdHl4aTkvU25DTFVnWDlKVGxJWnliVzBXVGdUTDI2VVRuVzVOdEdK?= =?utf-8?B?Tk1YT1JoZURHQ082WDJBczBnV3NWc3ByclA2UTVpMjVMbE1yM1dCWk00TnNy?= =?utf-8?B?NDBNd3k1WHhuRXJPRlErYWJ0QmhUM0hWUkNlQ0ZJNnlIZlpFN1N6ODY1bHpL?= =?utf-8?B?c053SHNsendWWkhmaUpNc25UMDJPUzVOT3lVaG5vYmM5QWtTWXkxRXNYTzlP?= =?utf-8?B?b0kzVUthTXhEYUMwVVNFcWs3U09pS09LY3FPd1NuNUJPS0FJVWF5Zkcza3I5?= =?utf-8?B?NEFBejFBcWZrcUN2WXdnRVNpQXdrK21kSHYrV1I1cm5KS3RSYXBacVN1ZWJL?= =?utf-8?B?WHhXNlhBM3dqZmxxd05YSjZ3RUttd1pId3JEeUVKYmkvS3BNS2lCc2JGMXBx?= =?utf-8?B?WjlGeEJsYW1JNGVYUzZoNEhYb2daUWpta3lnZFhOZHFsWEZ4dWJjL0lhQ3gz?= =?utf-8?B?WmgvcEMwd2NhdkZPUHZINERGR0E1ZWFUVlNPK2NLakdUZWxrK2U0UXhwY2Vr?= =?utf-8?B?ZU1PT1lQQk5qY011V3ZIYmg2TGIxQ3AvYXlQUU1lbXVGRlROa002bk54L2d6?= =?utf-8?B?NnVIU3RONjVFeEdBcjBvb2NzK29ON0RDYzNzU2QzWWNQQnpjSGNwUjNCeXh1?= =?utf-8?B?VUtneFNzc1Zva21rNlB2THJra1RTTkNpY2xxcks0MnQybXh5U1lsV3RBVEMx?= =?utf-8?B?cWp1Vm5Cd3BlNCtvVFJ6OG9SZVFyRjlGbm1PSWhoZldxaDZJQ3lBelZuWTNm?= =?utf-8?Q?C8FTBcp0jLSRwqwbRlRevR0qseqw1qe5ut2t5WTZl8N6H?= X-MS-Exchange-AntiSpam-MessageData-1: ctrQCp3smYxcgQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6760b0b4-3e68-4dfc-9409-08debbe67ba2 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 11:52:52.5457 (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: ARQDKLGvXqxneo3QjtUS6cgSFPAd6TIw+adKIDUNiJXODba4TABLuWtFULVh6O2tmh8HpC5T0bllEcIyx95rHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5755 Point rustc to `nova-core`'s `.rmeta` file so `nova-drm` can use `nova_core`'s types and functions at compile time. Signed-off-by: Alexandre Courbot --- drivers/gpu/drm/nova/Makefile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/gpu/drm/nova/Makefile b/drivers/gpu/drm/nova/Makefile index f8527b2b7b4a..6ed4ccbfbcdc 100644 --- a/drivers/gpu/drm/nova/Makefile +++ b/drivers/gpu/drm/nova/Makefile @@ -2,3 +2,18 @@ =20 obj-$(CONFIG_DRM_NOVA) +=3D nova-drm.o nova-drm-y :=3D nova.o + +nova_core_rmeta :=3D drivers/gpu/nova-core/libnova_core.rmeta + +rustflags-y +=3D --extern nova_core=3D$(objtree)/$(nova_core_rmeta) + +# `nova-drm` imports `nova-core` at compile time, so request `nova-core`'s +# explicit metadata target before compiling nova.o. +$(obj)/nova.o: | $(objtree)/$(nova_core_rmeta) + +# Build `nova-core`'s metadata by invoking make. +# +# This is ugly but only temporary until the build system natively supports +# cross-crate dependencies. +$(objtree)/$(nova_core_rmeta): FORCE + $(Q)$(MAKE) $(build)=3Ddrivers/gpu/nova-core $(nova_core_rmeta) --=20 2.54.0 From nobody Mon Jun 8 18:56:31 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012007.outbound.protection.outlook.com [52.101.48.7]) (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 33CFE40242D; Wed, 27 May 2026 11:53:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882785; cv=fail; b=M+low+GaA4sPWLtcmV79R1Lce6/RXHhcZLb1jKU6+Y/aQ8IYP99kAMJjFk5ouSYHUunfMEjUS9j4cHo+zko/LISX/ateom2KZ65b+GnmPSXqfmzvvQmMB52mzEdYIFhDT9NEoQ1fS2IFV8vT1m8psN1suJv++XZ/6tKVG6sqCog= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779882785; c=relaxed/simple; bh=FlNN4Eq+fE0xlUZoMLv3UVvs8ExdKJHc5K9L46MmY9g=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Bzu0/oWFx9CG5Mp0+vbPUU4CBCeSg9L8mN418Q6VuXs+1E7iex6mQVTc5xXjIdlWLYvFAIRdEfodp+xebu4tgixSOQfWwIuQXP6htkCOUNeJetilqoyht4smh1HlyiY5qgA76ZvxUpplHiPGyaSdOWVGaamWns/6nYwL/pSSae0= 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=MKq9xx6D; arc=fail smtp.client-ip=52.101.48.7 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="MKq9xx6D" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WpIxpuIcbDb6pdS8gzzsLKkB4h1XQ2OuYaSQAn7mLtXXp1nsfEURDCNIuoIttPiVJ/eFWT9OJY4NS9AMojQ4xODtkAYG77LrV6byKkwfyz5rVRdWTtf6jU3Zu2phpJhmVquzz2gzTLIMs2iyoLSwG77ASmoJFPSZbD/NtEoUUzX49pPymhK6QunJunl6m2SzgjxaudJQCEUKbaA1y7nXSfP6eE0dqfNBLE2ag3kiP/oa3YG9fdjH+D8zqsHUO6akf1AlWpaICUZj98Q6p6OiO0NjcqFBuob0vCfBIlpBn1hQHpQZFDTJd2dw29MQgPQw4Ium9wKr5S4MaPj41xDyNw== 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=FSiCvFdZB8lXvNnSgIksF/dXxonUalVvnWheZfQxb/o=; b=UT9xO1WulqiGiDfYJi00olOYA5yqexQyBKooVkRvMqexOigsAIBKIfRjSINBbcCPWLuDeaTJcBDAnaqlalYYHgtNqBS0pBFLVfPercieFlAZBSVCbNYgPYIMf7lIDRwTcgnHxkGLU54pHL09trsiglrgopMeFzPsQHigXmY0bNHwP9jd2cJBSlofzMzhYnwgULf+p2JpG26HApoY/DlEluuBRQ3CaJiv7Mqj+lGo2Aq1uOE9ftxrYluyE5wG6IXWcLDH4/8loptYMW0QyxEKFawRcu9wLD5ioc3sHzRHHJV5sh/x46arCgJGUwLb1lQs9VmtUbej7UZ5wKHYxu6uvw== 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=FSiCvFdZB8lXvNnSgIksF/dXxonUalVvnWheZfQxb/o=; b=MKq9xx6DJNNCh/1T3hIToa/EYF4el1sxtQDof+WJxzLy0jb+QsLkyhARTNnZi9vDmVkXiwNKsUUofUZxXvoNIjps6eYTuZGkYDmIJcwaUP/ayQTTdzv/60jncX3PNoZoJxx+ACNGlskFR+jGUTGGzhTzVWeVYj0CccKu2lmNq5rZDYnbGy4b++VcOOZJmdLJBy+wevvhsAds3Yr6xK6bcps1dxVArkhsOTv3SoAC5k4tTPHrReAOQvDBxE8I8yq+UEWcZ3eTMPZMvcHsiOSPWYq9T8bU6PVWARYiqKwLuDt4u5WjLFxMyzWTtp6XXQScfjP1GxiPg0+a2cA6DYXK7A== 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 BL1PR12MB5755.namprd12.prod.outlook.com (2603:10b6:208:392::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Wed, 27 May 2026 11:52:56 +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.0071.010; Wed, 27 May 2026 11:52:56 +0000 From: Alexandre Courbot Date: Wed, 27 May 2026 20:52:23 +0900 Subject: [PATCH POC v2 7/7] drm: nova: demonstrate interaction with nova-core Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260527-nova-exports-v2-7-06de4c556d55@nvidia.com> References: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> In-Reply-To: <20260527-nova-exports-v2-0-06de4c556d55@nvidia.com> To: Miguel Ojeda , Nathan Chancellor , Nicolas Schier , Miguel Ojeda , 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 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: TY4P301CA0044.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36b::8) 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_|BL1PR12MB5755:EE_ X-MS-Office365-Filtering-Correlation-Id: 91aa534f-ddde-46a3-09d3-08debbe67d9e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|10070799003|18002099003|7136999003|22082099003|11062099010|921020|56012099006|6133799003|11063799006; X-Microsoft-Antispam-Message-Info: CIMMuv3lfOFgE/GjIZRSMVr99StGceAs1LHNE7X8JmNVPyhELVBqStSNMp3jOeT1MBDJ4V9XZxehqANxaBVs0CwaiUrhT6nvnSAKee6e1BbzxN/8IwCYks3LFAPUhX+oJYtsTd5k/FmXiIT8ckyp+4ZnYVwCmGZpiWwbSik9Teq1q7QegCXEbnFbXqNuokUfxAmTFuj7xEQuTqvlq/FlEZ6PErHubeV5wgGNn0/8yFKskTEZ7kOkAc9fx446WyJv4Y1xrdW7NB6Y5N4OQxDMBJgfuyemSHZFhEaD9JJo5M/BNvMSiAkL7hh4GLXA8YYH4O67iTP/FNnlSLs0lHaVUPfGkRVJ+XSPrWz/kytypDTgUhauHZlLoVptcDBCORn7ettNLxU4oJZGVSe7pcd5GfHQ+W8Y09uXCDpqtymiF8BWyMQFyMNZICY2Tz47+uin73Y7W2TUYY0Qds+7WURhUYYeQIRxASsXxELnKm4YiVl/aRSXvpXTVOvJhGiKE3njDutLReNrrneNgDavm+ZfyyFnRd8pYxquDPb9K+uCV9D3EaatT77LNTe8fv/ILwjFa7omNC4utssdWYyPM/YPCYpo75nxNDxJq897rgbr1pNKvdNPxDips+5gES28I1doIcXTratH7KyByw3N89xIsNfsrNauRolftBvnpWs0P+zVCe1armQKGTeZUu0+EtSdtyLwfLM9+GxYUt1yGbcc9VEiyY0/Oq9kZYkNEmWEYOc= 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)(366016)(7416014)(376014)(1800799024)(10070799003)(18002099003)(7136999003)(22082099003)(11062099010)(921020)(56012099006)(6133799003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aTRZTzV5R0k3MVVNSWo2dHZmVWJJK0Y2azJRUHFqVnFqMTNKV2paekREVGNZ?= =?utf-8?B?KzNPQmVHN2JnNjREQnZrR3VJaVVjdXRaeVFkQlVIc2RpczRzd2xWNHROeVBa?= =?utf-8?B?ZXdHYk9XZU1tMDFUNFdocC8rUjg4T2xvSk9RbzFldmxLVFBVdmgwak5WejBn?= =?utf-8?B?NDQzdzU0cGFpdFhaemMrVGhDaDhMTmZnWmNRNGU3K0pzSlhhOXhEZUVValNr?= =?utf-8?B?bVBJYTR1b2FTdFBaYitlaGtBdllRT1N3TFFOendHMjkxdUFPaXA2YUJ6NDFG?= =?utf-8?B?dTA0cmhmNHRZUFpTcFFXcUJLdithbFV4Rmg2cEZjUHhnUTQzcjg2SFJ0UE5r?= =?utf-8?B?VnN6VjJZaW45ZlF0bzV0c2FsalVVUEJqb2hwbG40VUlHdjNDNUxWTjRveHQz?= =?utf-8?B?RWRHaStOcHdValJ1aU9qREN1UUtGT0VPaTF2NitzMnFWay9EWGZhT0tUSENW?= =?utf-8?B?eWd2dk9UWE5yTkxnRnJubVgwd2lUTmdEL2xsc2FXSnNramJjMmlzNkMzS1dm?= =?utf-8?B?cnhLS0hDMWhHWktkNVFvWGRFTTdJQVovbzhZUGtTdFNZUmR6UkpXclpLeDJm?= =?utf-8?B?dFI1ckVDdDJpTm1xZFVEVkZiRGhOeldiN0dudkl3blBqNVZVTzZLQWNGMDNM?= =?utf-8?B?dVR2YTA4OHRqb3lGb1VIc2hiSGdmN3lqamkxQWJTSnJlRnlOemVPVjZWbzlq?= =?utf-8?B?QXJta0cxSjJqcXR2TTRML0hIMFI4aG9MU1d6OFhFUEt5WTQ2NCs4UUtJRWtv?= =?utf-8?B?MVplSEZBd3cxcjEvRllOWGhaL0pWYWlQSytEMExmLzJqQkNtZnY1eWlQSm5Z?= =?utf-8?B?TkhVVGNKV1puNWVRdkNoL1p3dm5qY3JLa3V2L2ZHUytBb2hBNGdXcnZRQnN5?= =?utf-8?B?ZmN6eEVzZE9pRnFWeTFmY0dXM2Y1bFQzVmRVYi8zd0l0WDNaNWNsSjFEV2pI?= =?utf-8?B?Sm9GMWZJNWdpc2M2TDJmL3pwbUdXUXlVSWFVQkRMRXN6MWcwTEhUd3o3OXZD?= =?utf-8?B?eVF2MGRJU090eE9RbGJkUkNEYmoyM0h3N0kyblhwUXF2bmRLcDY4YUtvTTdN?= =?utf-8?B?c2NZVDMxVVQ5TEwvOXRSQm9SWDd1S0RQVjdpSGVyRW1qbk5lZVp6Wi8yMFBQ?= =?utf-8?B?Mm1mVDlOeGk3enpjcDhlY3RLcHAvMGszajE5dEVWL0UwYStBL0lwUDhnRUR0?= =?utf-8?B?UDRVNmJ1eWg3aTVNaS9RZGd6OGJrQktxaEM2TXhMbFpVMHh2N1BvSmtwcjdF?= =?utf-8?B?NkNDOG1Cb2dhTkQyVGVTbEhvc09pdDkyVTcvWXozRVRuYlZKc09ESTNaRFhT?= =?utf-8?B?TFNFbUdzZmZHYzRVNEdZNXRnUVZ3VHZJaGZWdWJkalJJbHRGdGdvWTBmcFFx?= =?utf-8?B?d05aei9QaWk3Z3VZOW5SZUVDT3BSc1c5Vk1CTHpzWU5hRGp5NlR6eTVvbG0r?= =?utf-8?B?aSsySnpLUUo5Z1psV3gvcy8vcnB1VUZybURtamVnZkU2aUtKSzFsSnYwa3FH?= =?utf-8?B?K0J6NWxOMkhieUhIYVYxMUQrWkV2VWhFOVkzeHhBaUFSTTVtSlVlaHo5OERM?= =?utf-8?B?OHVGTmhtQldqQ2ZDbWVYRmY0SXhoN0UzVmNBMnY3WCtaZzZBQjRLTVlRRjJj?= =?utf-8?B?KzJrN3pqME5MUVc5TFNFR0lWRHBoWjdaRzk3aUUvZ1hGeHFXdmh6K2NKU3I0?= =?utf-8?B?L3ZvU1ZaUFVRMWgxZnRZM0lZUGhLakJtOHBOWnpPL3JPUUlUL0ZEb1BmMmhl?= =?utf-8?B?cTFVaFhlejQ2N3dDb04rci9wNDZHZWRxaHRvYTVPQVNiS1ZDbWwwL3ZGYkox?= =?utf-8?B?bnZoWWxlSHdPNnRBUGNPSGJMbk1uUGFSaWMxWW93R3dpZmVLbVI0ZEVNYWhp?= =?utf-8?B?NUdYQUwwV3phV0tPRzlYYWhvU1RjRWhsSzFpVzJiRDVzK2x5OURyZFNsaC9y?= =?utf-8?B?V1J4VHYvbWY5TUtwRVp1L2pNazI3UWtubk9LTFpaYjJadVNHM1ZtbjJIZHdh?= =?utf-8?B?T3c3NkY4ajRINXBWNldvaERPQURNSWFCMWFMd3cyeFFsUEQyWVBXRGdCMGgy?= =?utf-8?B?WnlYeXNNNmFzVjE2QU82U3JLWG5yRU5OMHNIRkh5dE13NmRZYTNYVzlPYldJ?= =?utf-8?B?K2ZsZFZ6cGVoS2I5Q2RRSm1lL3BRN1VhV25McWo2THRST2daQ2l2Z3YzbHFU?= =?utf-8?B?dm00RWNyMmpuK2xFcGVQQ011c1hWSEF5dEhRTGowbElDc1lVdGdXTGJ3eGxJ?= =?utf-8?B?bURWOStSQUJjQk5xcjNkdFRZQnpIZ1JsaVA0WTJwUmQrMERQTkJkaWVBMDBN?= =?utf-8?B?ZExlUDY3S2ZPSWZUci9nNi9kajhieFR6K1Q4TzRTODRxTlUwcEczZjZNeTVr?= =?utf-8?Q?IgCb8aSlFzdes+5BLPDfBR7MA+XN72nqDSIUb5jtegQMO?= X-MS-Exchange-AntiSpam-MessageData-1: 7z65Pul/iqdStw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91aa534f-ddde-46a3-09d3-08debbe67d9e X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2026 11:52:55.8813 (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: Fk+dzGymt2+rkgGObyxpYCH6VcumAIqXymebkuYmhrdQKLhiYMU781LcMxFPmGO8nAKqoXODT2J4ZR8Mwq5/yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5755 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/nova_core.rs | 4 +-- 4 files changed, 61 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/nova/driver.rs b/drivers/gpu/drm/nova/driver.rs index 4289df7de01c..2a3f47974079 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::Device::::new(adev.as_ref(), data)?; diff --git a/drivers/gpu/nova-core/driver.rs b/drivers/gpu/nova-core/driver= .rs index cff5034c2dcd..49cb1c046905 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, @@ -20,18 +22,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 auxialiary device registration, for the sibling dri= ver 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; @@ -93,7 +113,7 @@ fn probe<'bound>( // other threads of execution. unsafe { pdev.dma_set_mask_and_coherent(DmaMask::new::())? }; =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. // @@ -101,15 +121,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: &*core::ptr::from_ref(&this.as_ref().gpu), + }, + )? + }, })) }) } diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index cf134cab49cd..5636659f24a8 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 kernel::{ device, fmt, @@ -29,7 +31,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 @@ -183,7 +186,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 @@ -245,7 +248,7 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Resul= t { /// Structure holding the resources required to operate the GPU. #[pin_data] pub(crate) struct Gpu<'gpu> { - spec: Spec, + pub(crate) spec: Spec, /// MMIO mapping of PCI BAR 0. bar: &'gpu Bar0, /// System memory page required for flushing all pending GPU-side memo= ry writes done through diff --git a/drivers/gpu/nova-core/nova_core.rs b/drivers/gpu/nova-core/nov= a_core.rs index 5a260062295f..5166e10ce8a0 100644 --- a/drivers/gpu/nova-core/nova_core.rs +++ b/drivers/gpu/nova-core/nova_core.rs @@ -13,11 +13,11 @@ #[macro_use] mod bitfield; =20 -mod driver; +pub mod driver; mod falcon; mod fb; mod firmware; -mod gpu; +pub mod gpu; mod gsp; #[macro_use] mod num; --=20 2.54.0