From nobody Sun Apr 5 18:17:39 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011063.outbound.protection.outlook.com [52.101.52.63]) (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 7A8183783C2; Fri, 6 Mar 2026 07:22:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772781759; cv=fail; b=J6DUH9sW4mUdwe459QNgjfgkuVMk+eam8QeoGkOEUPmC67GGAqEbcTQMukFrtX72qR/7wy2jyKRtq7RJBBGBAIyGqi9/NthSyl9ZwQxSmaTY8OGOjASeJWgmYGXFsF157xXR7ASegmH9XqPw81/jtA51QcWPZZkE7IkB7jBjp+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772781759; c=relaxed/simple; bh=XlUqIGeZRmQSM/rBWK09aSaj+UrLbE8blemwe2oySXQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=VXrUtOGFLKrADQuaHH+SBbEOxIvRp7GGNfwNW+SOtdhTqoLi/hToPYhjahz7v/RJHBjFe2K4zjQUEV15Ggx9V6h6vakiJmFtwvKoeS1o2JYQM/jN6s6vXSqq2b4/FFvfUyPt4dJPahgh9Zqa4xPi+bVPSf9Mgm3UNc+EIvUXyHg= 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=SuuI0Nrv; arc=fail smtp.client-ip=52.101.52.63 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="SuuI0Nrv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wyIh1M5eBETZGVLuXg5qLGWxolLd2v1I5U4TvQ5D/4mZ4JOBAzOqXU3kEkWaErghBEOJ5enAGVly0smfYzFdMEA6BS+8bhjT84Lxmb1cB8BZWQ5IpmA7DJxWET1RXgdpSAFXLAjiPWB2wB7Kip9vAXkYSr7sY8vs8gRG685t/DIa4EqUKLKd1yP71ashmVCay/R6BIcZkrE348rdl9Orwty1HlkEWvTJwqdxTiAfndldWFb/nyFOYThw5r4m4B/SuPI2iY6VVq5WOUZXreqNu83TE+Yb+1bflwXjPTyYwaTgHg8FpzY+4MOJLLZtERWDZs8obs+Y1nySD1tl1Fb9ag== 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=NtSI1x+tXgrTn6AxMNX9hjfaFkfZ0bjfJdroggZg+ro=; b=DBInOBhai4NqeGqbU8jOiGVYR0hbw/yvYq3P0NbtaAsndeZVn6izGkGDbxq9frkPGuwdQoVQhpEWLMogpevLRmUd4z2uMiyj6Ql3JtGTGvInCodxWlCPOECK2UppklpL0DDsuaBgAE0TaIGI92HaVzt6BKnKrImsN4xB/Rfq/HnutNpSsJg4WVCDpL8+0BE7c+P1YM0ca29CsQt7VmW5qD8NCI+wkEcm/CW9o6g157Tf/+GClGroBrrQ024YsQYTkqTHD8vNcNIEVrTTv85pFmdu7kcGsY1QMBD5t+miRmpKjfpX/9cqgYPQgAlK+3dvvSUScGCiW6yKlCK2Ong1Jg== 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=NtSI1x+tXgrTn6AxMNX9hjfaFkfZ0bjfJdroggZg+ro=; b=SuuI0NrvkEaGFv7wJFX+FgfOPbRsp1DrxowYHoB1mT5WbZsTuLeRmOpqyG2o7kzfcWtgQZ8RztXzXedKuTP5vQGhGfgggqk6intEeM15sA8Ne4T7aytuLot7xYFmx18DplYULTIPZAP2jxCN7fB7Nz8aWypEgUBAnVfXRGFYscK6nHAbwwNGfnR4QS4mHKlDCRlfzWo5Xxtq1c8V9qSrbt8LH8A78NaNCIJ8CUYJLRryQ/2ZZM1Uat/CTqM6XJa5+RRUkh37RhEs6GpbNugb8VOSp82RZS7zQW2GzK3HgHpYxspxdS2ugbVMIOnO2yCNFblH6WQzFhP8OJPXpNIqvA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by CY8PR12MB7340.namprd12.prod.outlook.com (2603:10b6:930:50::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.22; Fri, 6 Mar 2026 07:22:34 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.022; Fri, 6 Mar 2026 07:22:34 +0000 From: Eliot Courtney Date: Fri, 06 Mar 2026 16:22:04 +0900 Subject: [PATCH v6 7/9] gpu: nova-core: gsp: add `size` helper to `CommandToGsp` Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260306-cmdq-continuation-v6-7-cc7b629200ee@nvidia.com> References: <20260306-cmdq-continuation-v6-0-cc7b629200ee@nvidia.com> In-Reply-To: <20260306-cmdq-continuation-v6-0-cc7b629200ee@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross Cc: Zhi Wang , John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0138.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::13) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|CY8PR12MB7340:EE_ X-MS-Office365-Filtering-Correlation-Id: 80f74e43-ed55-4fbe-b603-08de7b512308 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|10070799003|1800799024|921020; X-Microsoft-Antispam-Message-Info: MO1t1Vk29072hk3OSf3wIt1rFuJNcxUDW++QC31D6G9WKGpufOcxp4sQpJ7lT3OZVeLbw0o9rwR0dEUgkNTUQQaCG8ZJ/s3v2EOPN/0Qd1pDn30lB+4xuxo1cR/2gyJp0fPBz0oTl0b/aptozmnss+2xtIw0N2S8vxQJbznzfrZcye2CbzziEOS/hISkAnb9h8oY9ll5KW1SKQXt2kgosr7Xo33CO9HzPi2YU+Ec9cuEsY3VmGHkg/aUNXJUNLiILg2qicawD06WKxPqzFDGBfGUoT0rkjq5qQm8mQWiKQgbrLWba0Ji/H/xvsyM0i9qOWGQsiyaQ1nWF1lBrWVJdCh/6e5riBi83M7OnLSyeOwMNQRfbX3+zZCzcMtQ4bDxRWA2Fg69WYOb+6NFPA7gnnQ/sR7jA6M5qubxq4oDOiOzZJQL84Ncu2uduM3WwWebtSgpwjhJXnZLpOEWvqwmY9mlMMVE0RxSS6u9JFBsbl+89JVXQIz5jmDv5zH3OSfj9MbfzyrXk+5OYG76SMUlXiM9gk8246X81sVcPPxBlxZ66VfU52OqB/JYF/ThKgTN8ddsQ+bOHSVWCrmeNSFfUKO2PErYDDtSkI2ctxJp4ArpG2NmTDf7q9CDWUB1sPAR/fPlcg5P0xioqDmIZDpoF6d+kdw7zEf9SZD3Y4Z7TfYQA1Ss9u1C8pMJahasuLAXq0s8K6eizrY1h46nLKR8l5lIWK0uU2x3E8Mftd9kzeSy/K3wQezzoMPnXDriXdbI3mpxjamRlICkjIYc0MGOjw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(10070799003)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YXNoRkRVMXFlM256anUxNFlGOG1RUzZzcnBSS0Z2VlFUV1JNelMrKzIwLzhK?= =?utf-8?B?S3ZOc3MvOW9kcjYyTlMzUWVVMVRIczhKSVdFc3JaYW5CZSs5cWhCU2ZBY1h3?= =?utf-8?B?U3R4RlgraWpvcjF6TENNanRETDJIUFU2aWxtS1hNSGFoT1FoZnJHUXZGenFP?= =?utf-8?B?Sll2UUp5d1Q2bWx2ajRlZmxpUTB2SmdpVm1SOVowSG94MjAxQ09CMEJRS1hD?= =?utf-8?B?YzRtZ0FXU2NhaHhnYmI1VkQ4ZDQyZWFHTTNSUWZGYlpYQ3o5ZmlieTg4SEN2?= =?utf-8?B?RWppSS9uOGhoU0VLQXFuZVIvbDFFQkVoVzJ6L2duMU8vckJIZEFzc2NTVUwz?= =?utf-8?B?ak1aNytHY1NHMzZRNGJ4aUhVZnJtckhuenlvVFNscFRKdFJVaWxDdTRrTjMx?= =?utf-8?B?OHdpRFR5ZTVscStUOER0U3FJV3c1Q2dhalBSRmpPVWlvL09sMCtHbTd1VzRl?= =?utf-8?B?Y1lpMjRXMUllUDViYWFnR1E1TDZjcCsyeWZMaFhOcTgxbmhJUXpvVU9pRUsy?= =?utf-8?B?eDlxb0kxUFkrMnRMS3pBNDYwV0FsYU9Mc2lGVzM0dDZsWElyclRvREVmaTVl?= =?utf-8?B?UjhzcUJkcGVJS1FVNURRa1pNdHRQZXJiYWt1M3VSRmlPQmZWTUVpSFExRHFm?= =?utf-8?B?ZUUvcjFla2lRajlZeS8vcFN3TEVnSjIyZkdaZzZ0YXBYZ2hScDRYOVRMTXhm?= =?utf-8?B?T3RGTFlWNmt6UmlPbm9tVWJjR09UVGNBaGVFbjF1YkZFVXZudkt2aXZ3OERo?= =?utf-8?B?TXRraDN6aDQwTTBoUlBybURLQndVdTJKajEyaDFROTdNbGc0a1BDc2tjc0dk?= =?utf-8?B?TkRwTE04RDdBK1l5amJBWFhOd3d3MEtzQVU1enYwNnFyQXB3TGNTTTNYTzZy?= =?utf-8?B?cWxWdmNocWVWWEJrOU9FMXZxSXU3cmhDbHZxZ0FmM21GMnNoZGhkWm1JZ09Y?= =?utf-8?B?UkpjRUN2V0EzcVNKSkRaUkpYalpNZnhZVDc3TzJzTTNYVzVvWEZveFZ6d2Jz?= =?utf-8?B?RTk3ZHVxMW5MdU50NW9ZMXp4emtJS1dRdGpFNnA3SUxxN0RXbjhCUDY1UUVT?= =?utf-8?B?K1dCTUI4ZWR6ODgrMUlGSk9nWU5HK0NFVVNIQW55Y1JleEc4QytCVllkcGI2?= =?utf-8?B?cHE5UG53TDE2cmVWbEp4ZUpCTWszT3B5bTBRNmZJa05BaXZsMXJrL0hLMDVJ?= =?utf-8?B?NE9IK09IKzhRYnQ1Wm5IL0NTVlI2ekxoTTNuYVlsNkluc00vRktpMDhpcmc0?= =?utf-8?B?TG1Ed1NBR3ZmTXQvUUdpTGZZdjVOL205bEVFdkNUVThramREdlpRTFZZbGto?= =?utf-8?B?UDhQMUlaS0s3VDFyd3Brd25oZmFQdDhCVkRDRHJyR0NHWnBESkNwVCs5c1Rt?= =?utf-8?B?cHZYVlRjcXRRNTVENk5qY1pROWJLMWRqS0tmcVFyMENTMzRRU2pDWkxnTW9B?= =?utf-8?B?dDd0eEpNcUxnbzJjZU1KWHQ0RnhSVGsxeHpTb3ZLM0hNdXV1dzVPaWdiemlj?= =?utf-8?B?enl3SkF4SWgzNFNNYUd4SGEvNDMyS3o5UmpCUHlrTTgzcGhFdGtUQXkyWW91?= =?utf-8?B?SU5laUlzTjY0cmIwem9LQ3hzTW9LQms3WHo5SDlOLzB6QXdqdWVBYk8rVU1v?= =?utf-8?B?cHV6ZjZtWlVFSVo4VkU2b04xdFVuWlVoeDU5M3J1eURkQ3ZCK2pqKzNhTGFP?= =?utf-8?B?aGxoSjQ4bDNtUUszNTd5cEZPRW5SU2o4ZDFWT0pYb2h0R3A1WFdDRUpxRXlE?= =?utf-8?B?VVdGWnJmN1dqdXllT1U5TkZPNFBZd0s1S1ZxNlNDUXRWVHZCQi82b2p1YVh4?= =?utf-8?B?SXZEUnhqTnBiWnR0Zi9UQi9QZG1selhZMVpVSjlyZjVQcHZuazRwUXlNbWdQ?= =?utf-8?B?bFZCUHZVSGUyRzBSb1QvMlNRZXlFWkxEWGlZQ2hOc2xpeEVBMjJsb1JUZEM1?= =?utf-8?B?UHYyWmdYZ1VmelI3cVFLT3dPNXBySktuNStzc0VLRU1GZU5reEFaeDBCS2NI?= =?utf-8?B?Wi9RLzE3VlRUbW5HeVJwT3lpdUczTW5DTUZNQjRDaDgvQjcrNFRjeWZZNEpx?= =?utf-8?B?MUhLYjg2Nkpwc09kT0o5S0R0WWR0UXc5MW9oOGt3UlpuNFRaSW5rcFhDWXVL?= =?utf-8?B?bU5QelJHdGxCcERZNG9NM29JeTNMOWJybW5WS2wzTWhGaDQ3eUxFWTdRS3ZY?= =?utf-8?B?cWI1Zy9KZDlBd25Md20zRlNJMEhub2Q3UmJoSUQ4bWx1WEQxYlRlYnpveTJG?= =?utf-8?B?QzF2M0tFWlhRVWZITS80R2E3TW15dENZeGd3S0lCK2V1ZUtWZ0F2dlhtNnZ6?= =?utf-8?B?K2Nhb3Y3QkVUbkNjL05rMWVubWRPVlB4L3A0dG1OOW9tMVVueHdMaElObEhE?= =?utf-8?Q?RKMlAl5uO6YDgS045umMHK/j+RWt5sOOe82TOztFwSNQC?= X-MS-Exchange-AntiSpam-MessageData-1: 8+ytoNtjbgk9LA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80f74e43-ed55-4fbe-b603-08de7b512308 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 07:22:34.6046 (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: 1y2Lpis0PlcZv1D8XjzyvKvJmW4aptrIHmCYEaZTbxggDTtHUhqHvEO/OJ/ND8rOxB3ANCE1LHHMNDQPc9dJGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7340 Add a default method to `CommandToGsp` which computes the size of a command. Tested-by: Zhi Wang Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/cmdq.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index b41a866e24da..861f5666fe7f 100644 --- a/drivers/gpu/nova-core/gsp/cmdq.rs +++ b/drivers/gpu/nova-core/gsp/cmdq.rs @@ -94,6 +94,12 @@ fn init_variable_payload( ) -> Result { Ok(()) } + + /// Total size of the command (including its variable-length payload) = without the + /// [`GspMsgElement`] header. + fn size(&self) -> usize { + size_of::() + self.variable_payload_len() + } } =20 /// Trait representing messages received from the GSP. @@ -529,10 +535,10 @@ pub(crate) fn send_command(&mut self, bar: &Bar0, = command: M) -> Result // This allows all error types, including `Infallible`, to be used= for `M::InitError`. Error: From, { - let command_size =3D size_of::() + command.variable_pa= yload_len(); + let size_in_bytes =3D command.size(); let dst =3D self .gsp_mem - .allocate_command(command_size, Self::ALLOCATE_TIMEOUT)?; + .allocate_command(size_in_bytes, Self::ALLOCATE_TIMEOUT)?; =20 // Extract area for the command itself. The GSP message header and= the command header // together are guaranteed to fit entirely into a single page, so = it's ok to only look @@ -540,7 +546,7 @@ pub(crate) fn send_command(&mut self, bar: &Bar0, co= mmand: M) -> Result let (cmd, payload_1) =3D M::Command::from_bytes_mut_prefix(dst.con= tents.0).ok_or(EIO)?; =20 // Fill the header and command in-place. - let msg_element =3D GspMsgElement::init(self.seq, command_size, M:= :FUNCTION); + let msg_element =3D GspMsgElement::init(self.seq, size_in_bytes, M= ::FUNCTION); // SAFETY: `msg_header` and `cmd` are valid references, and not to= uched if the initializer // fails. unsafe { --=20 2.53.0