From nobody Sun Feb 8 00:26:18 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013058.outbound.protection.outlook.com [40.93.196.58]) (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 493DC38E13C; Thu, 22 Jan 2026 03:00:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050826; cv=fail; b=cki/gYV5LdD0R+cCYBxuo4Ssp+9P9nONH9FF5DlzCHvpjDJsIXQNC/8CpPuXuOpa45s8SeIlBKOi5wp8VomsERpLf+ZtUvPlqlGHsMsbHayTrNeTbukvfgqLzLeL7EUq4B85B4kaM0DOUCp/9O6Y7a5biz7AvEZT0zVa1V81IBw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050826; c=relaxed/simple; bh=iTJPaVovw+BZg/dX7FDcdpNdqNwQ2MZCpGz0BjOtzcA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=I83vKcjaRP7I1Yp2pg7aMpUuGktcDVizVI6lrkSIyvzf9c+mQ6CR+CVqUDXHJYgeip6ps/JWC/GHMbDtZxAGJKo5wQbjw9q+xVJTgHUZv2bAVHlO/MNP/Em2h3+APwHAPLZai3h2yGvYTcxvO5h1cTtPhffHzhZKCo9PQr8Si6M= 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=lkDT3wl3; arc=fail smtp.client-ip=40.93.196.58 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="lkDT3wl3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SKC8aPVu3Jjdb3nwyul8hmKpUFQipUo1sXBfxDrthfpZt5u+N0/7xNuvjfBTBM9PTWk1jNjxLqCmRtcqcprO4GSFLSopsX31BH9BAvAh/kQXqAk1vMcSkjX1lolQWp+Mp/zS8KrEg4/PcotPNP0WFhr/+iqu+uil/G1JXvSddLecRVCLept+ZJuZvFqxo7yyZl6XpIjFo60NVfGziwjd2X24IIwQqOZssnYhZv7AYuvd2wLCobE4eRGIh77qzztUQSXDdmBfvvlkjNFU9iNCTLBD3m2t6pVTQJQeIncQXsSocMN1HpPLYX6lw/Om/YbSbsOPbJBNdbWvpxklQSkH+w== 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=REx9ZFL33SHL/Y3hf7WaBe4cOQ1mtKshVcngJgPkt0U=; b=iBU0mG5B17ocUhGevu1rviuc0TMdWk8p3qkY4ZmquaZ00VbMTd+YnIZ/I/UeKxeFlZ5GQIP0F2rgPz881d+iASvEym4Gflp48cAwcrYwXKkInMoJAUwNF/VBOIVS5FExM4/BFc3MIs+a+TytELdvBDlVIK27t3J6oXD2dcEZQAk0qLtl3cl0N208J7ngcqdTb/NvIFpZbbvhTUNwVFaRZrhn/c3m2xdVw57hxE9OETLZwdQhm/4sCspiPFErEGv6FuhOXYRned85rHYdW9L213ppm0CwFAxp14Pdg84VSmvYiWB2VUe4PziOGOtE6q4SLvJqer/jf3uww1Nw0F+6dw== 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=REx9ZFL33SHL/Y3hf7WaBe4cOQ1mtKshVcngJgPkt0U=; b=lkDT3wl3O04HB+rwNLjn8EPctYtKsvP1iSOnpfoBaWcCWxdW5vyxeaSyYzzb/pB85/kX3jsD7CIctTeFlTUcUu1S2et/laKYpzSklAFKUzyHUJ85cjT8ZXhryPrN8VE/03NBa/rYtiBPj2kPAw1nUUEZnMOy4f8885cj6sCCoG8OfYujx009Q58o6ky2ZTevuVuQ2+9EKA3KCXLiJKZlgeZErFSd7ch7BoYy2smSf9dyAYGJD278VRM/RnjWicyEudf8NXfXmHf4R8Z569orRd/fgjqCL/3vhfkO17dtktARWPW1PcfwyNfXkDATyvZ8r4Xq/sV7hHcdEQ6KX2IFdg== 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 SA5PPF7D510B798.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Thu, 22 Jan 2026 03:00:19 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9542.008; Thu, 22 Jan 2026 03:00:17 +0000 From: Eliot Courtney Date: Thu, 22 Jan 2026 11:59:04 +0900 Subject: [PATCH 1/4] gpu: nova-core: gsp: fix incorrect advancing of write pointer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260122-nova-core-cmdq1-v1-1-7f8fe4683f11@nvidia.com> References: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> In-Reply-To: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> To: Danilo Krummrich , Alexandre Courbot , Alice Ryhl , David Airlie , Simona Vetter , Alistair Popple Cc: nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP301CA0058.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:384::7) 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_|SA5PPF7D510B798:EE_ X-MS-Office365-Filtering-Correlation-Id: d0f0e476-3884-4da5-5170-08de59625f2b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?dXpiL2FOVUsrd1Fhb2tGTTRVYXpkTUdxaXk2dG5wemVHbk1LaGRBQjNuWGhx?= =?utf-8?B?UXRQc09sRmx3Ui9rNjZpZzZkdTR5cXFaQlJCcjZSdXlSK3l2cnp2V2UyMHdV?= =?utf-8?B?ODhwODVWQ3lFaGJkTkJEbVZhY3NYdnFlckN1MndwbElSN3gvdE9Pa1ZWeFhz?= =?utf-8?B?U1IxSFl1ZitrTTNqbDhWN1NBZ0g0WktDY3dDN21HRCtoQkpzNlZ2WVN4ZTVI?= =?utf-8?B?bGFzZC9SRDFDdTNIbTBKcXZOTWtveGlXdkMyMThSblc2elc2cWtxRzBLUVlu?= =?utf-8?B?cjJ4cVk0aVMzU0N5eXhpSVpaa2dTVmpCcDJ1a0psZy8xb3BKQ2szczFPNyty?= =?utf-8?B?SitOVEJjUDdsY3lzSGRQdXdzRWNqRVNUaEJoMHRUZXBKNkxVUm1ISzMwQTBK?= =?utf-8?B?eVViZmRxTTVacnFCMVdDaE44Rm5SYWVIY0hvSXI0andPcjZzUG9xUENOY2Fa?= =?utf-8?B?Y1V5WWFFREZDRzg3OFd3ZExkZ0I0RW52UmhCZjQ2Z1o0ODNoLzdSOUhzNzlP?= =?utf-8?B?TTZsMFBsVEpJa2dUT0F6TTBpRFgzQVE1SGQvcXg3VGx5QUxBWGFkZ0IxejNX?= =?utf-8?B?TytzV1Y2eU9GeDZxb1VDeGQxSWpMM2pxRUY4UzlKQTFPQW1ZNGpydG1PQnVG?= =?utf-8?B?c1VQeG1vTU1hVkJPWS9haEpBOUdwYmZXYkdYVmJkQmx0OXhPSm9lU05nOGFP?= =?utf-8?B?aVZGaUszYjNRZWh3aDEvTjZKK0tvbFlCQUVRenpMcjVLUys0bEJySW1WZW9C?= =?utf-8?B?Wm9zcnhHYzlmVnR1eTduelZPV3phOUNISXUxUVNPZmo1RnFIczZVSzNPZEd4?= =?utf-8?B?VERFZEFxWmo3ejRleUdNVXFHd3FHd3ZnYlRGNU1IdzFjaDZsemovcmROekVJ?= =?utf-8?B?MytmaWtvZ2UwLzZCYzVHN1M3aWV4U3laR3VLYmFmUjIyRVY5a0lRZTZ4UHJa?= =?utf-8?B?bk9VVjVma2piY01TQnovaVBpWlkzL1lhYWdnbllwcUFTVkdreWZOb09taStN?= =?utf-8?B?U2U2elM5ZXYyQmhWZ05JL1RFb3lVM29oVTVpWnFHelV2d2h2ZDlSWVFZL2NZ?= =?utf-8?B?SGFkTmJsN2ZPenpaNU5FWWp5c1FhYnlTam9JbjJoSUdjNDE3UEVjU1g2TDlB?= =?utf-8?B?SDVWL1lzVGlUTkppWkF0aHJTa1RpZHhUTSt3ME84R2wvYXBOUjVWWnY5SURo?= =?utf-8?B?Nmk4dGNpbjMrV0w4b2dwWTVwRXkvOUQwY2s2QUZvQ054YXdkUWkyTC9FcDBQ?= =?utf-8?B?b0hCTWYvampjRnprYTRFbW1FT0pxeWR2TTJXWUcrUC9va1piemRCQTBTaHdt?= =?utf-8?B?OHJjTmVmRnpDQUptSVI1T3JpbjhFRGVSK2I2WXdYZGdFeVNtazQwYXBGN2tS?= =?utf-8?B?Yk93WlJuMm0zZW8vNHFLZXp1bEYrS2ZFTUpPdDJlcFVXaGdVTm5uSG15akla?= =?utf-8?B?ZjZHbFhSeFBMOGhSeHdDenNVVUxnQWIrQmhKUzFJZlQxUkhGUXEzRFBVVDdO?= =?utf-8?B?Q3EybHFxVkVlb0hWYmsxSHE3OXUvbVhMSHV6MzVKMkkvYU1KRzQ2enFTM0dP?= =?utf-8?B?ZXUvcVJrNDhuQXB5a0ZrUDVEdUFiMEVuZ3NrcFpVZFZkdFp6T1NTVS9xWmh3?= =?utf-8?B?emtrT09rWlhTSGkwWitrRWl3QlNzc1Z4bmNzaklQN0JvSVh0MjBLU1lUUjBL?= =?utf-8?B?aXlBR0xlSUlyazNGdWJQYnV2a2VaZDQrNmZBMTkrUmVnYjgwUUdKTW5KM0dC?= =?utf-8?B?NVRBcHpPODFHdHFLSVYwTmhKcjRUS0lFNEpoRVJPNkxWQXlITm9sbjZxUENh?= =?utf-8?B?SW1Yb2pzWXNxdkFnM0xKaEhEenNQdzJBTi8xcy9QaGgzSjdzUndHK1hHSDFZ?= =?utf-8?B?RU1kNGFyNXFIOVNMbjFsRTJUWGJJbDhVQ0N0WU9pUWx3SFBqb3laTWp3Ny9I?= =?utf-8?B?TlhDL2g5cHM5QmcxNnJYNFlYUzJ4bWpoNXhmQjVVQ2VZZXVDRndOazRuZWow?= =?utf-8?B?V3RMdGF6bnNvcnJMYkpKTVc1eGZzdHd5VzhST0psVVZtNHVLUVRBaThVMUNz?= =?utf-8?B?TlBQM3FtSHBqTTgyZmVXSFVrZEszQmNhNUhZOVpwalNkQkYwL0l0ejE1Ulo4?= =?utf-8?Q?9OR8=3D?= 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)(376014)(10070799003)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SU83UHlHRWNnSFZWb2FEWWZWOHFTczlRYWNRWGJxQ0xrWHNmT1dBQUpvNVk3?= =?utf-8?B?Z1paK3F5QlVoRDNxNmt0YnU4Zk9CWUt5azFBZVJiQnlBWUdXSzI3QlhOa0tZ?= =?utf-8?B?OU9nbnRFYmtpYVZueG5VMW90V0o4M204WW5ycTgzeVpqSkpLV0xvb0Y1cHpE?= =?utf-8?B?WTRMdEk2bXdVeUR6eVltUEVBNTBHNEkvZnAxQmZpSnViS3VhY2NwM3BQRW9p?= =?utf-8?B?VTdzaGtsYzdEUHk4czBUQWRUdGd0cDc1WGNNdGRnTWVUa2hQTVlQMk1VY2R3?= =?utf-8?B?djROYjZrclBCVzhLeEdkMm8zTm5CUkgxTXFQajhVZUJZcGUzZDdsVE8yZmto?= =?utf-8?B?cDYxRFFQMHZQUTRBVXpnZStxd21UcXYzQnlUK3RLNHczR0tiRjdRempxL3RW?= =?utf-8?B?V2R6Nk9zRXgzRjRiTVNaamxCRUJBQjhvUXZjVFZKb0Zkb0UxQWx2ZCtQNngy?= =?utf-8?B?eGZUdXUxVUdMUjgxdjNhTENZUUpVSmlxV0xxNGt3SUUyb1F1eE5xc3VGNWRj?= =?utf-8?B?cmNHT0Qxei9tTnRhVGpQbmhpbkI1OTFLREd0WUZFQzlXUUlEcDNUcDNXdkp4?= =?utf-8?B?M0VRN0MrQ0tVTi9PK3BIQ0JXdWhJRUhBd0Y2YThRVjRzbWl5NmFkTXZPd3Ra?= =?utf-8?B?Y1l4SWI1L3BpMncvWFBIbTYzRmVWRnF6dG9VR0t0Z2FQcXNSSlhIUHdwQVBy?= =?utf-8?B?Q0RsUDlVSUNtZHNRQ0FYVHdoWjZIQVh2M3VlcTBlNUcvKzZSRmxUeVNaQkxw?= =?utf-8?B?TjlZV1ozdjYyZ29aVjBFNFp0NG9Rc2p5bmZ6RDRkS1pKUEVvZEEyeUVQYklv?= =?utf-8?B?K0pqUVllRHNueG9rMWwrOGovYnZ3UFNNNXc1OC9VK3I0WngyemYwNlNmRDJZ?= =?utf-8?B?SEo1MGVlMjVudFR6cDdMLzVkODJPeXdlbSsxcDFvc0U0Snc1YW9mMUZsTC9m?= =?utf-8?B?bGRNWFZqSEVlMW10K1NwL1o1MTZmUC95aWRDQzV6Z0lOa3c2ZkN5RkxZQTIz?= =?utf-8?B?WUJjRy84eVdmZG5PY1NLS2ovZ2h3WSszRkk2eDJyQ3F3TzFPTEY2cy94RXJI?= =?utf-8?B?bWE3RktKS1lpK3dxOHIzUTU5cDRLMkJsdUJwMEJLcWFacy9xOTBEYWRRczFn?= =?utf-8?B?Vloyd1JDYXFocXV5anF3M2ZrdzJ4YzJOMzFBQ1FrejFVVWIzbWI3anZpK2lU?= =?utf-8?B?UTVJMHVpODY1d1JFWXZ6VkpvU0VzeWRqQlh0UHQxNm5aaklueHVhRW5NL2w5?= =?utf-8?B?OEVyekVhSUozTjRVL3cvMXBIdjlBamdsaEdXRlFMbCtQZEU5eTRBWDZ0dlcr?= =?utf-8?B?T0hmR1ZhR21ialhHUXpOL1E5ZVhiQlNGR3NHK29mRnBLMDFhSVNoV3l6bVBH?= =?utf-8?B?VWIwU3RMYTg5MEN4dVdTUmNlRENVV0pyVURrYnVrQVRIZmp1cjNqcVNZSXBY?= =?utf-8?B?RVdhQkdYalV4cFVZNXltSmFkN0ZFOFZsZkpQNGc4WGtjVnM3RzAzMEVhTndV?= =?utf-8?B?MlpJWjFJbmhCcTJOMFNNdElIVU9LSFdSMnB1TXBOQ3g1dUNHdjBiNmlOVzBE?= =?utf-8?B?VkdNa3VVaEY4a0lBdWFONGFhOXZkRWZRSjFWTENPZUtCMEVSMjdMT0hEbzQ3?= =?utf-8?B?clZYZWF4WDk5a3FKUFV5Ri9ESDNKdzhTTzdnYnNXbVk3VjFBWlFPVnNBRVNh?= =?utf-8?B?RWtuUVY3SC9DMjU1THdpK3BUMnJmVENtaTEwK0xPMERrZnhNMzBJQUZOdU5E?= =?utf-8?B?b2txL3Ura2h2Z3N4QzNNc1l5OHR3bW9TUUh4NkFjdEtZUnUrR1N2Vjdxa3ZQ?= =?utf-8?B?Ym9obUkrTUd4VTA2TG5ZeVY2NFZnUXNJTDNiK0lPOVhHNlM3OUY0UGZtZ1FE?= =?utf-8?B?MXEvYys4VVdocm9ObW5HUVY5eFpMSzlpeVVoa2d5enJrMUYwTmtlb1NQSWNN?= =?utf-8?B?ZVF1cU5Qc0JoeGVaNGtJd2ZocVM5Z2V5NVRDYVoyVzZhRHZZaXRMOEd2OVRi?= =?utf-8?B?a2x2TDRSU2ROQUNIVElIbGU5WTR1b2hacW1vejNqZFFBMFZqVmhydmJ3bGdr?= =?utf-8?B?ZDJmVXFVbEl3V3Fici9uaU1FVDNQSm91OUZrSDVzVXRQSTJTZzFyS2JCVUw5?= =?utf-8?B?U3hzMERXakYwR0NTWDUvZTVsTGZrRHRNZEpPYUpUNy8wSGw4YWliTXdoNVFs?= =?utf-8?B?dkVkSUZDWXhMRnJNdS9CeHI0Z2NIT3QrdnN2aVk2TVdCY1pnc3RGVHhBRUl5?= =?utf-8?B?UisxTEwwNlNEblJveUt4MDFBSWJmK0NqN0xxRnZjSlNNZ2pWc2xUMDhpQTdQ?= =?utf-8?B?NUxFVUx2eUtpY2UySzNMTDQrWXl3a2phWmc2YUg0RUxOVk1XWGtoWXJjc3ZO?= =?utf-8?Q?6CFYHFay2JMZZsCTkvDeG04O4epb/mJmNlSjd+J4rfxB3?= X-MS-Exchange-AntiSpam-MessageData-1: fIPGusII6Ym6Gg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d0f0e476-3884-4da5-5170-08de59625f2b X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2026 03:00:17.4542 (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: 0nxk+MyxyvdtGv2nh8Ae/NP+SJ1tmwjWy/Ks9q3KRBAcqmvnTvlj1Fn2fsj5MFSnz/8zA4evia3UHd7yw+1Yxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF7D510B798 We should modulo not bitwise-and here. The current code could, for example, set wptr to MSGQ_NUM_PAGES which is not valid. Fixes: 75f6b1de8133 ("gpu: nova-core: gsp: Add GSP command queue bindings a= nd handling") Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/cmdq.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index 46819a82a51a..f139aad7af3f 100644 --- a/drivers/gpu/nova-core/gsp/cmdq.rs +++ b/drivers/gpu/nova-core/gsp/cmdq.rs @@ -384,7 +384,7 @@ fn cpu_write_ptr(&self) -> u32 { =20 // Informs the GSP that it can process `elem_count` new pages from the= command queue. fn advance_cpu_write_ptr(&mut self, elem_count: u32) { - let wptr =3D self.cpu_write_ptr().wrapping_add(elem_count) & MSGQ_= NUM_PAGES; + let wptr =3D self.cpu_write_ptr().wrapping_add(elem_count) % MSGQ_= NUM_PAGES; let gsp_mem =3D self.0.start_ptr_mut(); =20 // SAFETY: --=20 2.52.0 From nobody Sun Feb 8 00:26:18 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013058.outbound.protection.outlook.com [40.93.196.58]) (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 1D0E5392C30; Thu, 22 Jan 2026 03:00:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050830; cv=fail; b=mQH+bSU8B8WJGzNEJUhLkzy7T2dGhYDTSZLSj6p1cShYfdq33lJacjmMCxC9ZspmwaJU1LwoF0rj48FvKf34SXjPW0IAlVtdT8w8wcYDQ1wdcTJJK6DcYvL4oyVU0UsEzQYX1/5+vKwsn6/0WrChxudNn35aTeIhKwgtdElxPaw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050830; c=relaxed/simple; bh=7W7AomPr2ydmjhb+Bw+uN2+4AvOADvXJPzZ4kWzB1y4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=FJTaZbqQC0MlWVK10br4B+VGkUq5tEwueMVgXV60fwTUAvzHIVw+XX+YOiwR1qTlUDHRTv+vWXzN20m26KeBMKm6b9Ni0jqjBKGB+NLRJyFmUEd8iXPX06QEUrIJ1KmF6amO3FpoMyZTfbSrWv0ntMMdICrs4JNftLrN316HjzE= 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=L5wuQj+k; arc=fail smtp.client-ip=40.93.196.58 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="L5wuQj+k" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=P67FZSSgw8e+kz29FoQ2BMw2kqDaVLupd4HJ6sIfp2vnPCL9nhXiXDSZmgPOk3dZI3M+f46jFVv4lUcv5rgkEyebFztMfGsRd4wSgfprqkN+UAebZqPGWF9gbZCGFmOTCwnOlOYl2EMEGaD9HXDwS0B3WTfn0f4KkbJeefsDaqqc3hcs1wiKwTc1cB/rjonR582FloYqQzyyWMSrzykrdYtiYlQnQQbNOzNHBuEYBw7yu7l7ey+1RMI3rUJmW55tncbjNny5tjYVP7y9TYafzn05m8b3kndZtCrIYkI73Gb+fv+5eIIkm0KlBmuXGo41LKgDvAcea5B5sxfiGBD/uA== 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=LJVRE/Lg6+H/iFUgGm3W88U8n6pTgNs2h6GprJcfWoQ=; b=jnxAif79JN+AkJZ0s8EIJiv6dfncqnM9OF2iHKmz/s4hCER1ritHGMALoQ3yK27g+AwaZAz4e8BeSFJHrBWMz4lsyEEyhBLsd2et1Qy2oug+VQ3cZ/N2/vAo2Ee9isXwy8g7c4Ohjw/w8VUVilZR7YXBOG5ZcxxBhW5vViMgUm2ybR3LK5h5iUuZOJloAoEzmqtsP5Sk81kch0ustPE8OpN6AFpZCivCsIl2bJ7EiOxD/HBdr73e6iLSdJZuMWsoi2fobCUI3Qgld98tcHY/3zOtdpY5bQv07G3nM1bEfPQAEzfkoiqgL4idX2rgvGyfxiBEr9HLQVB7JH/FlQADkA== 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=LJVRE/Lg6+H/iFUgGm3W88U8n6pTgNs2h6GprJcfWoQ=; b=L5wuQj+k69cO7mYbSWOUDPCVfueTzSytGkZaA81PqX1sNbuwj0eDT5+6yIxW/iFia6yiSuGG1cHGpJWhOPNMPH3QBKdZMp+monriVUksp3zScHefOvvypvm9aSHLfwQkZkGIvO9aIL4PD3f6jb3nsvVE+QJcsq74jTe+PU0DzRbqcq8ceC2L7jNKmzNn1JzX0ZJxVbKlmcCtmflG+xTfP8935ULJ0PYyfOHPwu7V96T7vd1fDLHZtbxT7Cle01uJ6Yf3uL97fXS6q/MlhA3YMuIbFNbmBliUAkxXEtK0Krffmck+jdUBRh9UT8bCwhu32OKrv5Tx+EDozf2RBDE/wg== 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 SA5PPF7D510B798.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Thu, 22 Jan 2026 03:00:22 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9542.008; Thu, 22 Jan 2026 03:00:22 +0000 From: Eliot Courtney Date: Thu, 22 Jan 2026 11:59:05 +0900 Subject: [PATCH 2/4] gpu: nova-core: gsp: clarify comments about invariants and pointer roles Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260122-nova-core-cmdq1-v1-2-7f8fe4683f11@nvidia.com> References: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> In-Reply-To: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> To: Danilo Krummrich , Alexandre Courbot , Alice Ryhl , David Airlie , Simona Vetter , Alistair Popple Cc: nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0074.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31a::19) 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_|SA5PPF7D510B798:EE_ X-MS-Office365-Filtering-Correlation-Id: 2c432f6e-1814-4735-39aa-08de59626213 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SzlqTVhwY2QxeHUrR3NVdG9VRmg3Y2lJUzR0TUozRWh3OURBV0M3bTZzL1Fk?= =?utf-8?B?TzVnMjBIQVQzUEFuQ250TWFBaHh6eW9OS0VVTXR5aldYVmN3RUZoNGx3cFlZ?= =?utf-8?B?NzM1dGN6TEFnNHBpYjFBcDh3d0V0T3hzSVdJcWRWTmZibWNuZ1g3cTVkZmtF?= =?utf-8?B?V2xnRWI1WFF6Y1E3TGRZUnZrUTVvdjRoU0JLcmViWUJMTmlBY1lRUW9hYWc3?= =?utf-8?B?dWs4d3I0enFPZlNyTDlNSERycVBDSHk1Ykh0OEN1RDd3bVl1cnR2Z2VFcnFK?= =?utf-8?B?UkRpTjdQekpHV0xyWmNRZXlVNWNsQzU2a05kYnJmemRvMVhWQ1pWejlaVEpJ?= =?utf-8?B?RHl4K2wwMmtkWjVqeGJTNnpLTUZnVHV1N1JjQmsyRndyZDEwVyswNU1ocjgz?= =?utf-8?B?VjZhTzFuMVRNbkxMaVdubEowSmdvZlpseCtHSGlrbFVXa1Q1aHVFYXlSNEhr?= =?utf-8?B?TlQzZ0lHeFF4OWhaaTNBU3V0RXlzOFJjK2I3MzRwemIyZEhCak41cDY5ZFg0?= =?utf-8?B?clp6NHhDUm1CeWFaNFpzVjJacUlDbWhDUXZ2RDk4cjMrWVUvdGZwdkdrSnBX?= =?utf-8?B?RFpmeWZoYTJQL2JhbkJGSVRMSDFjanhmVWh4ZUhyYUdHSlNsZlZnMVYvWFJ5?= =?utf-8?B?ZDRSdDFTTEh6TWtkRGNZUzFSVk5pUDRWUGVtRVhXZU5tWldwRlRhblp4bTFF?= =?utf-8?B?cHVabnBQbVpmK1VIOHplTVR5M1RoSnFZVTl3dkNDclk3QVN1UFVhLzFkMVI1?= =?utf-8?B?YU04RGM0RGNzY1o4ampNclNrZ1EyeUJ6dGg2V2wvUk1JbVpjNUViRkY5STAx?= =?utf-8?B?T0JXU0JIOVl1Um12bTBpbmVhaU1HSEhxUGdrTHdhQ0I3UmFmZmF4VmU0MlQ2?= =?utf-8?B?eENpb3ozcVdpSExwcTVOcFVuNmxsSGVJdVZhdThlUFlrTWJ6NVJuWGRkRnpa?= =?utf-8?B?d3ZRMnVqR2x3ZG1JZ2FzblFRenM2VWpUV2FEZmN5emUyU21zSS9RM2pTaEpS?= =?utf-8?B?Ukw1MVB2UE56VlpPenptdnFNRFRqR0pnZ0phMFhmVk1HQWVISTA1S3lFZkpV?= =?utf-8?B?ZEh0KzRmZEhvWEJEMG8vUUlGU2hjYlpyMGVkTXlabndBMkxhODF1OW1PVEJD?= =?utf-8?B?YmdjL0hBMlNvR0NHS3V5U3htUk9vamhsNkVDNmVrNCtoeHh6RUNHNk5DZVgx?= =?utf-8?B?bm1nSUN1M2xiQy9OUmZzVWlaTDhEa0o1UGU4eFZWdGxKTldZMFZaSE1ZZjlZ?= =?utf-8?B?MnYvUkRBMExqQ1ZPVnVqZG1OVDJseFBiVFFncksxVW1FRFM5bzRNcjNlZmNo?= =?utf-8?B?dVdrRWRFRUxCQURVOWFQK3VoRkJ4c1h6YmFtcndUa1ZWK1E3OXMvamh4Z08y?= =?utf-8?B?MXVZYmgrazl6L093d0RLTThmM1l4aGNQYmJzcmJnNTQyK0d6NC9BV2JTc3JQ?= =?utf-8?B?RlZ2dDNQMUVuaC9pVjZWN3VyU3pOL1prRmkwVUFwanZ5YTk2Y3hDaUNDWFlN?= =?utf-8?B?T2wyem5XWEVwWm0vbWI1eDkwMGFFd0QrdCtKRk9xSGNON3ZBVkNLMnhZN2Vj?= =?utf-8?B?bENvZlBKNVY0YW5Tc080dUx6TmFSekhLcFpIR2VuSm9CU25ZUk1kQ3QrTFNy?= =?utf-8?B?NFJiYnVKR1hXM29vMWNVQ2JodFI2a05kT0oyTjBRUFM1blNHZXlZMEFoREdZ?= =?utf-8?B?ZnJPbHcrNmFWNTcwbXNBZUt3OWduQ2ovZndnbzVaQklRa2Z0N2JDRDB5VGVt?= =?utf-8?B?SXB1anlKT3pkM0NuU1V2Zk5MWmRUOUNSbW5IaEpzTXEwdDNoWnVoKy8vVnBQ?= =?utf-8?B?Qi9oRk54b01XSTZMNE5ZQ1lpVy9EamU5dDVMTjhZNFQ1cGFQVUg1OVBrSk1l?= =?utf-8?B?SjNzcEtVUURxbnhUZDAvc1ErbWsyLzRiSndTcnV3SGI0bDFZczExUmtGUVZy?= =?utf-8?B?RGJqdTM1dzRmb2xvN1JpUCt0OE5oZVRzanZhcGZRTzZReWkrelpSc09SMjkx?= =?utf-8?B?Rk5VUklKN09DMGRITXZqVXpiL1ZPVFdHa2lzdVZHMWJxV25MS2d0a0Z4VCt0?= =?utf-8?B?cysydHl5NzlDdFNQaDJueDU1NjIyNGdTczBSUUZoaUlteEdUalFQSG50cDBj?= =?utf-8?Q?iSMc=3D?= 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)(376014)(10070799003)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZHkvbndlK1BQZnpTV1FHekNwa1F1Mm4zN2VTV2hBWjRXU3dDb1pMQ1RUcjhN?= =?utf-8?B?czdwUENrSGZMNVVKa21UWElKVVVSRDNIRTN0TzUrWlZlTDE1ZStEQUlJQTZG?= =?utf-8?B?Z3UzWEx0ekt5eEoxY0ZYYnZ2dEp6c3F6MmFxZWE2WC9zSURxVlhjZXBobzM0?= =?utf-8?B?a3lNcTY2SkMrSE9KeFZkZFNqMGNTZ3U5WTlSOHIyam9VZmNNZjZOaThWaHFn?= =?utf-8?B?T0hPei9USzlDejJRaldnVThVRDBDeXN6MFN1RFBIandGL3paMTZMZDcxcGZR?= =?utf-8?B?V2NIWDVuZG82ZW9zSXpDY3AxajlnMmp6TkdQbThnV1JQblJBK2VBN3dTaThP?= =?utf-8?B?amxCWGRsaEhabmdFVm5uTjlwc21QVFBhcit3c0lSelJGbVh6VDNFYTdUUHdy?= =?utf-8?B?d2VnRS9TdXJITE1FcVcrUi9HMThsRzVZT09nMVNzaU1wSlhnT2oyTWxGSjRj?= =?utf-8?B?NnpwdkFUb05JMUpqVjFSVzFYTmc4QmlTeTIrd2FhdHc0Y1hDQ21GbHNzRHlI?= =?utf-8?B?UWEreVVTaHgrWW5lakJaUVd6ajY1WmZmTFBobG90UGpZSXVJNGk4d09LRmdT?= =?utf-8?B?Ti9SRHNuZWJ6OEpDTHdjc21KUHJ4dDIvSkFHSmJhY29Ta3AwRmVXVFZKb045?= =?utf-8?B?UjJPVXpPUEZQN0hra1ZGazFYZ251cGQxN1NoQ0JtQkwwdms4Y1BRV1NLQWhx?= =?utf-8?B?NnBXa1V4eUZibENHbDgwYURXdTMxWGRVK01rWVhtMktDS1pRTm82Y1JwdjJD?= =?utf-8?B?V0Y0MU5WVm9wNjJNQzVDaDZ2OWtVRXRpdCtXZlJhQmxGSFRLcFNJUTlmaEdu?= =?utf-8?B?b2lhdE5kOXIvODd2dmI3djVxUzhPamk2QWpCSWlCemZEQ2tHUkJHRjNkRnlQ?= =?utf-8?B?UDRKQWFVVFRXWXJJMkVBeXJHMmQ5OTZhZEF4YlVSTGhpdDdKakF4a3RsK0pT?= =?utf-8?B?STB4TVRTc0VzNzM3VFVMaERIM0s3Nkh0b1VtMTZqNFV5Q2VuMTBYTkRLeWVG?= =?utf-8?B?eGtVTmh3Wmk4aHA4UzYzZ21nNDhuM3g2eHJXNThFQ1E5Qi9MSFhUVEs5allC?= =?utf-8?B?ek1vTW9seENpWjNycWpJUThqQTN6cThEOXRJaEliS2pkTGV4WmRiUW1WT0RR?= =?utf-8?B?QWtNUXB1c3JmbjVHZUloOEhZZU4yRG0vUm90bU0rTkNQV0MySiswc21IV2Z3?= =?utf-8?B?ekdxOENRSnozOCt2bEcwcW9Fa2JOZVRCc3ZVbnpVOEt4bm4yYzY1dVhEVUNh?= =?utf-8?B?a0p5WG8wcTlYbzU2amU4K3VVQnNyVzBVSVZNclczVDlXYXpLUUVzaktXMnpC?= =?utf-8?B?ZEZJWnp1bnVTMlFVU2RwTWZ1SjdZaWtuUGJyYTk5OTFhejZqcGlUWGNBU3VR?= =?utf-8?B?aks0bGlZWjVua2VCY2txR0J1OVh2MVBJWVpJeTJGOG1hOHA3bVRVaG1wRVVM?= =?utf-8?B?L2x0Y3dSY1grN3BMdXlOSGVLYm5qWXFzQ0c3VmRUbXZnRkFzSWtjWFFaRkFS?= =?utf-8?B?eG9RUjEzZjlxaTBUWXd5bW1pM3Avdm82WmdGWThiR0hYUzNCS0pYc2o1UElR?= =?utf-8?B?S1dIc3JHZVJoNksxK3pPNkxmVkhpNzBwVVZQVGhjb0txMWdPOUx4eEJBZVBS?= =?utf-8?B?QWJDL1Bxdkh3dkJlSzR2WVBYa0JRVUw2U3RDWmluVEJ3aFRRNVY1VWVpb0Vo?= =?utf-8?B?Sm1ZbTY2MnJ0clVQeHhsdXMzUUVPUmtsdHBPdHQ1cmFFbDdvcFErNWd0Qytn?= =?utf-8?B?Q2hwK0xLN0VIWDUvVWh5Q29BM2NRbTJSUUF3eDZoNHRvT201NzlmUHR2ZGU5?= =?utf-8?B?MXMvbmUrbVBIODVlRy9WQnRqQTBGMm12ZTVJK0EyNVFqU1psREdjVVN2Rjd1?= =?utf-8?B?KzJ6eUdib25Ta0lrSlVsRGQzQlM3RlUrWFp0cHNqdU5hQnZBbW94Zkw4dzNX?= =?utf-8?B?Z1JwU3A5MkxUUkl2M2pBN2E5dTAxYnpLd1VOVFNiMVg5T0tqbGNybWg3TXpx?= =?utf-8?B?VHdFYUw0d2ZNWFEzS2RDRUNjenNWQlhERTc2bzBxUFI5SCtHZFBqVy83Q0Jk?= =?utf-8?B?ZUJpaW4vdW1xd3E3TXhmeTI0MDdqNWhOYXVtWHlZZzZ2ZVl0RlJRd3Y0YTZZ?= =?utf-8?B?UTkxVTNwdzdWTGZQNmxyY0o5NFhLTWlyd2hPbjJDMERQTVVmS3NSY3JNZERq?= =?utf-8?B?bGtERnppeDNrenVZeGxja25VeXpzZ1cwVWNVREV4eG9NQmQvZVNQbTBoSnlr?= =?utf-8?B?ZUxwc0Fzdjdiem45dUQxa0tZa2QrS1Vka0k2elVOL21jNDhZK0FwMmROb0Fh?= =?utf-8?B?WVlYUHQzUnI1NE8rVUJZU2NsUklyamIyNUI5TTYwMS9laUhWdVlqUlkvTElL?= =?utf-8?Q?n8mQ+ag0HSih38nOpMHC1v8GyqqqaQUPkryfDAa7YDF/F?= X-MS-Exchange-AntiSpam-MessageData-1: BiUBINwW/sbLxQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c432f6e-1814-4735-39aa-08de59626213 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2026 03:00:22.2536 (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: Iof8fikuDf8mm606W7sAOOIsnlYOp04XGQUC3tC7idY0l+txNmHDg2RVU1fKAY5RzehYENnWIQQ7tABI9gkkHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF7D510B798 Disambiguate a few things in comments in cmdq.rs. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/cmdq.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index f139aad7af3f..09c28eeb6f12 100644 --- a/drivers/gpu/nova-core/gsp/cmdq.rs +++ b/drivers/gpu/nova-core/gsp/cmdq.rs @@ -161,12 +161,14 @@ struct GspMem { /// Self-mapping page table entries. ptes: PteArray<{ GSP_PAGE_SIZE / size_of::() }>, /// CPU queue: the driver writes commands here, and the GSP reads them= . It also contains the - /// write and read pointers that the CPU updates. + /// write and read pointers that the CPU updates. This means that the = read pointer here is an + /// index into the GSP queue. /// /// This member is read-only for the GSP. cpuq: Msgq, /// GSP queue: the GSP writes messages here, and the driver reads them= . It also contains the - /// write and read pointers that the GSP updates. + /// write and read pointers that the GSP updates. This means that the = read pointer here is an + /// index into the CPU queue. /// /// This member is read-only for the driver. gspq: Msgq, @@ -222,7 +224,7 @@ fn new(dev: &device::Device) -> Result { // - We will only access the driver-owned part of the shared memor= y. // - Per the safety statement of the function, no concurrent acces= s will be performed. let gsp_mem =3D &mut unsafe { self.0.as_slice_mut(0, 1) }.unwrap()= [0]; - // PANIC: per the invariant of `cpu_write_ptr`, `tx` is `<=3D MSGQ= _NUM_PAGES`. + // PANIC: per the invariant of `cpu_write_ptr`, `tx` is `< MSGQ_NU= M_PAGES`. let (before_tx, after_tx) =3D gsp_mem.cpuq.msgq.data.split_at_mut(= tx); =20 if rx <=3D tx { @@ -257,7 +259,7 @@ fn new(dev: &device::Device) -> Result { // - We will only access the driver-owned part of the shared memor= y. // - Per the safety statement of the function, no concurrent acces= s will be performed. let gsp_mem =3D &unsafe { self.0.as_slice(0, 1) }.unwrap()[0]; - // PANIC: per the invariant of `cpu_read_ptr`, `xx` is `<=3D MSGQ_= NUM_PAGES`. + // PANIC: per the invariant of `cpu_read_ptr`, `rx` is `< MSGQ_NUM= _PAGES`. let (before_rx, after_rx) =3D gsp_mem.gspq.msgq.data.split_at(rx); =20 match tx.cmp(&rx) { @@ -315,7 +317,7 @@ fn allocate_command(&mut self, size: usize) -> Result> { // // # Invariants // - // - The returned value is between `0` and `MSGQ_NUM_PAGES`. + // - The returned value is between `0` and `MSGQ_NUM_PAGES - 1`, inclu= sive. fn gsp_write_ptr(&self) -> u32 { let gsp_mem =3D self.0.start_ptr(); =20 @@ -329,7 +331,7 @@ fn gsp_write_ptr(&self) -> u32 { // // # Invariants // - // - The returned value is between `0` and `MSGQ_NUM_PAGES`. + // - The returned value is between `0` and `MSGQ_NUM_PAGES - 1`, inclu= sive. fn gsp_read_ptr(&self) -> u32 { let gsp_mem =3D self.0.start_ptr(); =20 @@ -343,7 +345,7 @@ fn gsp_read_ptr(&self) -> u32 { // // # Invariants // - // - The returned value is between `0` and `MSGQ_NUM_PAGES`. + // - The returned value is between `0` and `MSGQ_NUM_PAGES - 1`, inclu= sive. fn cpu_read_ptr(&self) -> u32 { let gsp_mem =3D self.0.start_ptr(); =20 @@ -372,7 +374,7 @@ fn advance_cpu_read_ptr(&mut self, elem_count: u32) { // // # Invariants // - // - The returned value is between `0` and `MSGQ_NUM_PAGES`. + // - The returned value is between `0` and `MSGQ_NUM_PAGES - 1`, inclu= sive. fn cpu_write_ptr(&self) -> u32 { let gsp_mem =3D self.0.start_ptr(); =20 --=20 2.52.0 From nobody Sun Feb 8 00:26:18 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013058.outbound.protection.outlook.com [40.93.196.58]) (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 CBF80392C39; Thu, 22 Jan 2026 03:00:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050834; cv=fail; b=Zm2A4fI/GLbaEjyBnqCfQREDrMf/MvzJSHbdSzsZBvjn0Y5fk3+Fze7KA3skPfhoPDHsIIFwAOwCVkGPRGyDOIauJkt1apkXefVZQ7ASMxF762SD5pk+AyPmBeu3fiENkECYqLVopRtyCyaIhOKcZ+13oqEKBpizdSSuJYJutnM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050834; c=relaxed/simple; bh=188iR65U+0t6231ZOVCzqK1D+JR0ohzFj7EsBkaxYHk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=BCgzAiG1w5uOOhcboVUyqHZe2/FIh7ViHWqJmY78+k4Efav+c+CNgf7U+I0jRdHHgpECW7NoZcM657Tddn2y/pbEB5Rnb1sQIgc8pX45lF/e7VAGJFWos78FF19w1VtviYE3aM3s/BRDWVlcHTLW7MgT5duOv7YZ7/vfF8Zazho= 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=CKy3C3K9; arc=fail smtp.client-ip=40.93.196.58 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="CKy3C3K9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=foHeqZPHfeiXd6D8gJ7oQeZoK8nTEEB3x2ehTKVTPtxzEkYRpiW1TaMVxmhH214RPi4I6ZCxfaro9ZFDaZCOHT85OwslGkFQuUFfVB2rdWKYdIHrKgQW/PQ81wbq1DTMNKA99df5jsEAZrgRXbAB9iLsZ4lVZ6I7A9e3kRRFSe9Xw6asmLRKsZ2zBKuqArdG1A9FJ2NdFuXqbG2/nxqywH8bIwb2SkgEszoWPBCBnlqNDMcPCTrnjmFk2HT20/n+xv3laS5J/HM8g4K6DQMmrDCRew4EgRfetzReebaJkbuGLWN+Yp1NHq+UmfrYDMY4ZeiDHJMIh1ZPk05bDrLYbQ== 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=DownGYYaCqYynl7Fe4boCCGRgn+1L3jhfdPMc+jCq98=; b=WPTU4GewYwUShPYZE1yBLat4pQnVaPmIS27nSjHW95OMyHhekGhs/LQngRsxPGmeZs4wzJGgdqSyndD+QOO8FmQptTWnNiwWZLhRX6RXdmqK0y0cYNVplWzRPl8PWp9fYh34vNNCXtKzpykdil+wxpPQjKH0R/Bu7nCafmIdGi49zAjDj/+jrGCYCKPVyGDGxNy0bUBnPaoflb8grVB+EDY20JDZK0xI19/X/9mqwANaFmeyF5oegoxEenmdzlBFDvD9NHq2W2NR1xLKBslbFe/MjjqureoZWzUIpFHCKyiVKinTMC2Z/M8xpggB8zYGkQ8NHp+/kTtQF5+LDd4Bmw== 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=DownGYYaCqYynl7Fe4boCCGRgn+1L3jhfdPMc+jCq98=; b=CKy3C3K9sFDWb/zek/MgqvRXDG5c4Nv/SC9TaDRRZwI409h01pjhubyjnSm18A2Rt3K32syhfZ6X/655BtuvOHfsL+sgpji4qz+PSuxG8Pdfu/cH87ATrMyAG8rgnK+338WpPfBaB4YsQlrbt3LO2E71KiRwW7HxgDIPCo9nxqy14C3xpidL9direOQ1OsxYSrmJ/od/1KsZWzXf0HJRhvICw7Y2ujiE5E/pgqWtkaWJtlcHxuVeQKcj5CuwhThlCD5GrVjq/4q0Q6orDIqnbknHqjtRSfBvesHeX2xnbqwMseqhwRc2MiSXaWhjpadqQx+x3uoHoS8YeWFB27XGgg== 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 SA5PPF7D510B798.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Thu, 22 Jan 2026 03:00:26 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9542.008; Thu, 22 Jan 2026 03:00:26 +0000 From: Eliot Courtney Date: Thu, 22 Jan 2026 11:59:06 +0900 Subject: [PATCH 3/4] gpu: nova-core: gsp: fix improper handling of empty slot in cmdq Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260122-nova-core-cmdq1-v1-3-7f8fe4683f11@nvidia.com> References: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> In-Reply-To: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> To: Danilo Krummrich , Alexandre Courbot , Alice Ryhl , David Airlie , Simona Vetter , Alistair Popple Cc: nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0160.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:383::7) 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_|SA5PPF7D510B798:EE_ X-MS-Office365-Filtering-Correlation-Id: 6979a878-d0f4-4cc2-0deb-08de59626485 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VUJsS3hRWjlKRXpRZTVxVTJFK0k4RnpUakNKN2s3SVFrN2VDdHM1Y0VnaWVv?= =?utf-8?B?ZGtXZjhqYmJzdGlPSk9PNTNkZ2t1TEFVTlFPOVRrNm9mRnljNlBUdm9oUDZw?= =?utf-8?B?dFVOS1pJRk1lOWVFSXlSdGE1anFjUlRaejAzVnplY2VlMHdhb0R1ay92U3JR?= =?utf-8?B?RmhUdTZFSmRrMzdtemZCTlpoWW9tc05SaEhHcDJmNFJLdFlSd3RnUHJTZjlM?= =?utf-8?B?MjJNQmR0MENhdmpaMTRYWHpHZmM5R1QwbVJoRXdxNTFDK28vUVdSbWV3VC84?= =?utf-8?B?LzdrYTk2aitGTEl3ekhyNWFwS1hEN1doL1NWcm9senhHZFBVOUZIeDNvWlhk?= =?utf-8?B?bUxxbzc0UEdQTExwd05lSW1XOUJaN3lzcTBxSVl0TDlRUEVuUzY0OEVSKzhR?= =?utf-8?B?WDlqOCtvd1d2Z0ppTHQ2S3pTaXV2MEdNeFgwdXlKUC80eUZqQ0c1cjRhWTR0?= =?utf-8?B?SnI3akp1cVhhQnFmS0hUNDZ4WDlPQy9oODdZcFlzWUR5TWU0ZmUzUTIxNTdo?= =?utf-8?B?dVYyZUpKU3poZTYyWWdwVEIxaUdkdDFWUS9WcHh4ajVINWRPVXkwTVRwTFM3?= =?utf-8?B?UExLOXRrci9RWmhvOVlOM3FNbmd4UGZZdGtLc1ovcnlQd2IvT2t0TjI3Y2Vv?= =?utf-8?B?RHc3SFcySUdzV0JOUkoxNGxKdFZOWFEzV09TU09lK0RFaUNZcXN0eFlDTHd6?= =?utf-8?B?U09XRk9KcFAzMHVRbUNFMnhnTmtIRlhoc0VNbDR0eTlxalpqOHArK1U4Y2xH?= =?utf-8?B?YUN4K1EvR0VCSkd0RTZaOHpsRlNCRE1HUHliWFc1c2JMNUIzdHowL0sxM0Vk?= =?utf-8?B?dnZ5cHJvcHFsaXBxZUphQ0JBYklPdW0vS2RUZGpsWjBIVTRZTkNVeE4ycExJ?= =?utf-8?B?MFRtcXYxWFZIQnQ4eUNCclZUTHYzYlBsMmN2c2lveFBUdXhFQXoyZDBaR25L?= =?utf-8?B?TXN3Wnh4SWRHLzdLYlBNWm1vaCtaZjUyaGI1aER3aUVIdTk2YWpxSUFjZ0N6?= =?utf-8?B?QWhOcjUzcTR1K1U2WUNKdWwyeFBEaDFJT1laUHVPR29VejNSVWs1ZVJ2bmxi?= =?utf-8?B?UzBQS2Y3Ni9GQ2hNMFRGc3Fzb2FhVHlQTnhqYWZCZFRiS1lsdW5qRGpydlFo?= =?utf-8?B?R3R3QWkxSk5WaWg4eUF4eXJpOEg1UHlJR09mYzhPclJlZXNKMk11V0JFN0x0?= =?utf-8?B?dnZ0eVhXOVh5ZXdmbWNRby9jVy85STUrT0lzRHQzYTRSc3h2dTBIZm9KRGo4?= =?utf-8?B?bGZ1VlhvY2c5Vnp2bTZJNTZ0SXVPbnFtYjNOYU04MDh0cUhzUU5veGtUS0Q0?= =?utf-8?B?eGZMd3I5WS8reFgzNExsQ1NPZHZIaHpkZkVPb3habEp3c2JXUHM5MmREZldN?= =?utf-8?B?aFBlSFFDOFNoeVhhMjd4Vm5sc1RYZXBYQktJSXRlNDI0QzVGV2NhVXRpZTFN?= =?utf-8?B?Zi94U29EVGU4OEdhS0JlTWRlOENFQlUwSWlUWCtGcTFxUWgwSlN2Q1FWd0Jm?= =?utf-8?B?WWRxeFdpbVY0d2llQjdtcnVtM1d1ZjI3aU82SGtLZzlNcDNzVHRNNHduTTZ2?= =?utf-8?B?ZnpEaC9TUUMybXNkWGdNNm5PQ3k3eTlDdHZKYjNxWFh2Z3BQZ1VTK2dScG5Q?= =?utf-8?B?ZFRMQVEvYld0TFd3Mjk4dlM2dzJkd2k5SlQ5WUpSTVlsdU9GMlRaOHl5VEFI?= =?utf-8?B?TE0yeTBlNXV5SXoyWExhd0RrTDFneUJRWTBtMSt1cVJtaDg5dEZuQllTUzhG?= =?utf-8?B?MUY5cFV0T2VTRm1ma1hxMEt4THppL0tzUFIrV0pKb2hRZjkvenQyY2drUVdu?= =?utf-8?B?VXdMYTRJT3VZNjJyNUZjeUd1emlQaUVNaUMxNWRtR3lDb1Y3SlhLNklHTE5m?= =?utf-8?B?RVNWNFZoNFcwUHFwL291dkZKQ2FkWEdScFNrTWFVZkh1ejAvOUxxZ1pneHZu?= =?utf-8?B?d2lPYlNuNUh1SFo4WHppN0xxeTFjdGtTWDYzUTFVdXJhQk8vMlBzVEpaQUlH?= =?utf-8?B?QS9LR3RkTjFhQU5hWE40WTJvSEQ2NnNxTWFPWlpqc0FDTUl3UnNCaGdGU0pH?= =?utf-8?B?MWJCSW1kbVQweVFZYVZyWTJvQjlCQzdJYUVGSFh3bVphTXhiZi9kUDBFV3JH?= =?utf-8?Q?PGLw=3D?= 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)(376014)(10070799003)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YURUOTNrdGd0a3dhR01PT1Z3MGxmUGxDd1BBRkd0VCtxcTlacCtQUnU2QjN0?= =?utf-8?B?REU4RnBDSTUxTEJRU2wrRmhsS3VIWDRmVldRT2kzMnhYKytoOWgyM2d5M3NI?= =?utf-8?B?dkxaRUdkYVRGR0pWTFpPeGtwc3d6OXZDbjJEWmV5aEJUT0lTNU9zYmhpL3VT?= =?utf-8?B?NXBiVm1hYVQ1ZGNuYVFwSUliMzBzSjBUemVYd0xaOXgyUG1nVlNDRVBYYzVk?= =?utf-8?B?MVlIWGlWUWcxb3ZocllkTlFCcy9oc2FXY3RXUXJIR29lbHpCWEh1R3dTMkFF?= =?utf-8?B?MXhhbW5XV0xJT2daSkw0NFNwMHBaQmFtZXFZNXdvVm5mdlprNkZab09jaitz?= =?utf-8?B?U3NQS1R6RlJBY2RyZlV0YVlTMFJoRzNCRkhmbXZhL0xncTlwM2VNNVVxTVlr?= =?utf-8?B?RXBraEJQNzVobkcyUnFmZFNxSTZNZ3p2d09jU1NqdnRGL0c5akk5TStHSzc1?= =?utf-8?B?d0RVMVZKckltYnZjUlF4NHpkTmV2ZkV1TVNTVkVxdDYzdlFrUzhScW1MTGVT?= =?utf-8?B?NlFQeFpKYWh2YnBrWU1ndnB6YUttQVZJR1RndkRWYVNOWWFHdFVCQmkvSjVH?= =?utf-8?B?OHArK2xON0dMUW1Tb0dsejVaVXkyT05FVktDK1JEM0p3UVZ0RHJpeFczT3NT?= =?utf-8?B?RUZ5VE9zcDVGeUlBZGdMdnZsRFlsQW15TzNBU2E3dktlbFFFZHNXQkcxY2Zu?= =?utf-8?B?cXkrZDI5MGtnM215cE1JZWxPUHQzdjZDcmJRL3I0UktOVG1TdHkyRnlnanM0?= =?utf-8?B?NWg4Qk9rbGlzM1lZaHNmT1p2RVpiSDh0TDFvN3VwVkV5QkpLUTlFSWtYZG53?= =?utf-8?B?bG8veDJIUG8vOXZzZWVZL3ZaQmF2MGJJL3lORldpK2hxVW5MSE1yZFY1UlUv?= =?utf-8?B?MjdrOGV0NzkwamlYRjhaMnlEenl2T29GTE5uMkY3SXFrTFNWMmZtdkRnaHM3?= =?utf-8?B?R2dvTUlSLy84cjRoSkRKbk9UUVBPWTRFMDhkbXVPb3ZzZ05pdlMwZ3lvQjVX?= =?utf-8?B?V0gydUl4L2lxbXZqWkhURlZXbExnWVlnL1F0UmFMTG01RmU2dXYxUVZ2RFRw?= =?utf-8?B?T1p6M2RHMDY2SUljNy9YYjlLYWhnQWtyTlcyWmdSMDRUdDdGOXFuVVJuRnBj?= =?utf-8?B?NUVKT1hrMENOQ2x3OG5iUEp3UUJWdzA0ZWt6TzFod3FVaDc5WU1kU2x2cWN6?= =?utf-8?B?UFU5bmlHbjgwMTRZVUtmb0tBbkRkYkx5RTdza2lscG54d25QVU5WeFIvdkxn?= =?utf-8?B?RXFzamtscEovZUF1cWVoVy9kVnhFbi8vRnZ6Q1ZhbU5FdTRieU0xUjVnRVk3?= =?utf-8?B?Q2ltRnQ2aFp5ZmtiaFh5VENkMVVhaHdmU1VVUW9ZSVNYTXRHb0hNdkhZNTZ2?= =?utf-8?B?ajNLM2FKMTJseFI0eDZuQXlDV3VnZU9NWENPb0p0TXF0R0hpdGhPWk9yUUNv?= =?utf-8?B?ak9WVHBDUTF2TWZNTjVFejB1Z3JWdklYVmJMMGU3TERCWk5PMHhZdzRIaGR1?= =?utf-8?B?Y2o2eDh2QzFFZmZ1OUdSaUxEWEs5VGtyYklHbzN3MjdHZnpQWXhxV1pYT3FT?= =?utf-8?B?QnFRSEZFTEJQODJBbUozeUpDdVRRSHZRbjhScHpRZ2s1cHI3TUF1ODI3ZjNx?= =?utf-8?B?L0JIWGYxbThvOFRxRVRjRXRQeFg4SG9qVmEwdDd4TUI3WG1yQWMxWmhyY1pG?= =?utf-8?B?TTl2a25lVllEaGtvMytvRjZYT0VYSUFqZ0gxYWZoL2FSZW96RmVjS2VFSGUr?= =?utf-8?B?TG41QVBSTHVONllyNFU1aU9NL0I5dHdlNmFRaStvbFVjNlg4endORVNmdVJj?= =?utf-8?B?a0R6SGY0YUJCalB3dkJla0o5Mnpjc2hlemhEcUs2MFFDQSs1Y2pYY0VMTnFw?= =?utf-8?B?d2hGamxkUjlDdlpGUEdjaXZaVkZKNkhwbFJHRE03QWZSMGF6ZFRCYnRqWHpJ?= =?utf-8?B?VEdQYVhISDFmSnRyclV0ZmpDR09ZOGdjNmdubW9VMjlFNzJ2a2RvWlRhbzli?= =?utf-8?B?Ym9ta0xBMm5IRkVjZ1NHWW1XWHg3WjB1M3pTUWt4RUdESVp2cFlYa2dNSUt3?= =?utf-8?B?b0ZPbTZrY2RaeGE2eTU5NDMwS1NCRWZ4WUpDbG5ySVBkZW9XS0ttV3NqSW1k?= =?utf-8?B?Wm9PV2ZIZDRQK2VXQXg5aFZUTk1tRHZqN0tlOWJ6dk95SzFtVmR6T3VxM0Qx?= =?utf-8?B?bEhYTkY4bVFiOCsxOWlIMjNad1B2WXhBaXZQSnlWTUVhaS9sZ0NaZTlrS0lj?= =?utf-8?B?WHJvQTZLZVRYT3g0VGhHWlRRYWZ1ODUrT1daaWozM3gyUXJUUmU3VHZRWWtk?= =?utf-8?B?aUsvZHNENE9BWkwrZVBiMnhSSEN4dFQ2Rjdvc1YrS2dMZVBjNXQ4VE9JV2JO?= =?utf-8?Q?kRqypLBkbQxo2tLq92aQlwVeZiY+jkLwfzDO/zh//RD96?= X-MS-Exchange-AntiSpam-MessageData-1: SMvRb+TaMX2tDw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6979a878-d0f4-4cc2-0deb-08de59626485 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2026 03:00:26.4063 (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: 7daNxVtJ8XgYsjD7S3nWFi3uOnU0MJAcwT0JqaH6nYbZVKRqQOBKblk9roxM0mQOysQ37EP0y36kCAWyWuq8bw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF7D510B798 The current code hands out buffers that go all the way up to and including `rx - 1`, but we need to maintain an empty slot to prevent the ring buffer from wrapping around into having 'tx =3D=3D rx', which means empty. Also add more rigorous no-panic proofs. Fixes: 75f6b1de8133 ("gpu: nova-core: gsp: Add GSP command queue bindings a= nd handling") Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/cmdq.rs | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index 09c28eeb6f12..b6d6093e3ac0 100644 --- a/drivers/gpu/nova-core/gsp/cmdq.rs +++ b/drivers/gpu/nova-core/gsp/cmdq.rs @@ -227,21 +227,24 @@ fn new(dev: &device::Device) -> Result= { // PANIC: per the invariant of `cpu_write_ptr`, `tx` is `< MSGQ_NU= M_PAGES`. let (before_tx, after_tx) =3D gsp_mem.cpuq.msgq.data.split_at_mut(= tx); =20 - if rx <=3D tx { - // The area from `tx` up to the end of the ring, and from the = beginning of the ring up - // to `rx`, minus one unit, belongs to the driver. - if rx =3D=3D 0 { - let last =3D after_tx.len() - 1; - (&mut after_tx[..last], &mut before_tx[0..0]) - } else { - (after_tx, &mut before_tx[..rx]) - } + // The area starting at `tx` and ending at `rx - 2` modulo MSGQ_NU= M_PAGES, inclusive, + // belongs to the driver for writing. + if rx =3D=3D 0 { + // Since `rx` is zero, leave an empty slot at end of the buffe= r. + let last =3D after_tx.len() - 1; + (&mut after_tx[..last], &mut before_tx[0..0]) + } else if rx > tx { + // The area is contiguous and we leave an empty slot before `r= x`. + // PANIC: since `rx > tx` we have `rx - tx - 1 >=3D 0` + // PANIC: since `tx < rx < MSGQ_NUM_PAGES && after_tx.len() = =3D=3D MSGQ_NUM_PAGES - tx`: + // `rx - 1 <=3D MSGQ_NUM_PAGES` -> `rx - tx - 1 <=3D MSGQ_NU= M_PAGES - tx` + // -> `rx - tx - 1 <=3D after_tx.len()` + (&mut after_tx[..(rx - tx - 1)], &mut before_tx[0..0]) } else { - // The area from `tx` to `rx`, minus one unit, belongs to the = driver. - // - // PANIC: per the invariants of `cpu_write_ptr` and `gsp_read_= ptr`, `rx` and `tx` are - // `<=3D MSGQ_NUM_PAGES`, and the test above ensured that `rx = > tx`. - (after_tx.split_at_mut(rx - tx).0, &mut before_tx[0..0]) + // The area is discontiguous and we leave an empty slot before= `rx`. + // PANIC: since `rx !=3D 0 && rx is unsigned` we have `rx - 1 = >=3D 0` + // PANIC: since `rx <=3D tx && before_tx.len() =3D=3D tx` we h= ave `rx - 1 <=3D before_tx.len()` + (after_tx, &mut before_tx[..(rx - 1)]) } } =20 --=20 2.52.0 From nobody Sun Feb 8 00:26:18 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013058.outbound.protection.outlook.com [40.93.196.58]) (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 BF012392C4C; Thu, 22 Jan 2026 03:00:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050837; cv=fail; b=eZx8mWLm/sO8gVQL7CSa8+ncoJe1hIKxo5xEMPn1Wkqp0mrs6v3IrZrLhVz0ll++lpCWo2t9hlzhzt7zXo8A3krXss0pTIw41tEwIrh2Q1OEYIh5us7No3ccit9+Z7oPO/fEnhoCinHQoFcwyVgHN3gVf1u+3uFgnfmzRhI7FmA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769050837; c=relaxed/simple; bh=3Z02ciuEhGn8f8G4jbF05JgkuPaKqk6NKON0hvsTaJU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=otVdc5JwRMpDy2Sy9dUqIiqfMSGncmfaZylffKlK7RWZFP/AJwEhUHm+QcUvJy05hw1HC8uiecDYefTVUnj4UXZi5/I2vpYpbviEOs3P7u/70YqUQJNvoJWJCN2OpuQEo8pNrJ2/+EdeIVkrVDBb0AcXkfjiYg/kkxtkVrRUxEc= 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=lKJ1Pe9v; arc=fail smtp.client-ip=40.93.196.58 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="lKJ1Pe9v" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u/V1/8TWXkParuJwCScGYSKFM76ml196PIJxTGzzaWHlMPWnh9O6P0cGcrjTvctkaDbKQo/RyRchH0bKLTF0Fez5VbAypfM9ZMCaTm4j/Q9wRfcw9gv1KxpBzkHlj4Uv6AEoTowVNmcKcg66SsVNVdtBLyI2aZZo57W/ZnDv6g0hXiSBZbWEvIPFts1Lotwl9ViJoGDJGVNdoPH7ZtyyHYHqcPRtQY1d6DfCWUPuDosTy8ERSXS+KjXNb+k8c9CVtYDK5S2cXm2x7E6jWeRqWgWfqqMnItU08sMR9oCcn0h00CdH0445EUDpOOo5JorhSOvRxeX2WlsNl0PpZNMKDg== 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=MnQ0tLl1NmEFXu7LwzYMY9TFquu9dbbPqS/W2WcnPT8=; b=BS5r8fflIaTuXKHuHRTX0+SDMFUkbkghR1UAmqY8CbSXCHWVSIl0OT6g4bBDj3veojiyNfBujInEe3w2Mj3IhvveEtajAv/P3S4hx6Ts+HGZIU6LgPH8dvAOOxEtKx3AqYEt30z16jnQWnUYBmF5Li0Fg2z1NuJcIAVdj4Us0GqusfO/cbAcFdcCH+xKZmDbBxRh9SSH4bY/JSVnXG/T4T5AIa1oijYXviZ9bgvdTE4EXgRW8qo9DYh85rBQpRCYPbBpPL2N2LElAhNDEACMBhgnDrs6rhavORMfbQvzXQQNwu2lREHq1r02P3jfJcc3OweGd18KLI1qqn5lGvHBtg== 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=MnQ0tLl1NmEFXu7LwzYMY9TFquu9dbbPqS/W2WcnPT8=; b=lKJ1Pe9vkQ7R7KrhbnWnh9nTtrMiROASylDCQMYyqAuWSCJZ0pLn2MO16d/E2WbDB3P5S3KJTGl7ggdIf1Ji+Xt+UBn2UzuzMh+7kFQWQuDSa3Zd+cZJ/Qc8jeIUbkS5yIzj3DzlhK2FMoldQzSFaR6b/vQK9TY/SfE+KvcOn+DwtluJlyhIAG5D6aa2nAwnVsvT8BQclinc42bwh8qf+MqY786CgdghTVm4TwnlhIzu99ZByv5E0U71iIKhseYEPoThmgZR/9gf/5r6NryMzjs507KuE+Ik63Ia0CCB/zEG84X+/j7SZfwVRY3xDtieHy6h8o3mzSfKidvncmxzww== 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 SA5PPF7D510B798.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8d0) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Thu, 22 Jan 2026 03:00:30 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%6]) with mapi id 15.20.9542.008; Thu, 22 Jan 2026 03:00:30 +0000 From: Eliot Courtney Date: Thu, 22 Jan 2026 11:59:07 +0900 Subject: [PATCH 4/4] gpu: nova-core: gsp: fix improper indexing in driver_read_area Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260122-nova-core-cmdq1-v1-4-7f8fe4683f11@nvidia.com> References: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> In-Reply-To: <20260122-nova-core-cmdq1-v1-0-7f8fe4683f11@nvidia.com> To: Danilo Krummrich , Alexandre Courbot , Alice Ryhl , David Airlie , Simona Vetter , Alistair Popple Cc: nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0139.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::7) 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_|SA5PPF7D510B798:EE_ X-MS-Office365-Filtering-Correlation-Id: 3aa6fed8-6169-4d49-43fa-08de5962672a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ejU4UmdaU1JhY0pVL0pnNWVTSHBOdllnRTNMV3BUTjlaUmFJM1lobzR6STJY?= =?utf-8?B?VGZrVTFpdFNKckc4T2o0TmFVWGFJcmdWNlNORG8rL2Fub2I1dnlJNU1nY1A0?= =?utf-8?B?OWZoaEJQeW5ERDhTazFSVkYvRDh6dVllc3BabXdUOWZ5R0tEcS9CYmR4OExV?= =?utf-8?B?WVBwMk1mVkFlVHFnY3BoUUFxNzFJN0sxcy8yWGVmeHAyS3Bvb1VMSDZuTnlB?= =?utf-8?B?bUtuV3FESmRqVkE1NUxMRWFqcjhkQktPOUNhb3gvVjN1d3lNYVZSSkk5NU1r?= =?utf-8?B?Uk5mYnQ4ZVozVG91S3RFdW9UVnpkb05tMk4yWUZoQTZobTlwSGpRV1pFN3F5?= =?utf-8?B?VmtGaFJiSHo3NGFkZTZRVGQ4OGpYcVJ3UCt4bW80RWYwc01YcGhyN2w2bmFv?= =?utf-8?B?K2ZVdVBlUjBTOG9zSm1tMzlBN2tWenFuM1A0M2lGckRnSXBnOFdOa3QwSnk3?= =?utf-8?B?dkJKMWJwQUZ0NXNrYk04d2tNTFJNZ3FhZlZCdFZrSW5LSzFqSmpRVFZvK3pR?= =?utf-8?B?SThlSksxS1ZLZHVjOGxuUnFvOEZhdUNFUGcyVHkxVmxwdHpqUkc0elJYb0VR?= =?utf-8?B?dzJ3djFWSkZNYkJocXBPYjQrV3Q2eVVza2c2eHIwTSt2N2VzTmxYeE1uVEkv?= =?utf-8?B?WWdzMjIyZEtlL3ZHVHRDVVBJRmFLNURWV1RDbkxlb1dQRGRJa2hRRkV4Umk2?= =?utf-8?B?bUlKNGVnWmsxRTB2SkRvRHB0MDBSNndoM0gyQzlacEVXbCtTbGo2dVBFMC90?= =?utf-8?B?NUJEbnZBMWtRdzFja2IyTXUvL3pGUDlyT3I4UHV3VUFTakQ1SEVzSEwvQkNz?= =?utf-8?B?bmZjUGMzODJXYjk4cWd3SjBGdExSVjU3OG81WDNRSWU2TWdxa2Q3SVNxd2oz?= =?utf-8?B?VXpVYTdoZExUWlRXTlpGcG1rRHB3c3Jiem9pWlVSbkxTRUtQZDlwUkN3TUVN?= =?utf-8?B?TFgxQXZsMWYwQThLQVpnWFliTnZBaHRHQWg4aDBGMndCaE1EcXVzVzN2OEda?= =?utf-8?B?QmVhTnpRUHNqSFErT2Q5VDJGYzRWM1VSb0NlUzZLV1F2cXpBV3pFNGgvclE4?= =?utf-8?B?Vm12Z1FVSlRHejhwdVdKSVllT3hiekZHVnY2ZUxoOVNYVzJzL0RxT24rRVN6?= =?utf-8?B?YmM4THV2U1g5alhqN21lU3U0NnFhbzluU3UyQW1iRTdyOEdnWXB1eldwQ0Rp?= =?utf-8?B?ckJ5Nm5iSzNyN0grS3lXQmFaZ1p5WlNyalFBNjFjV3F1RHhpZ24rWDRoQnJM?= =?utf-8?B?SzhTNHFNbXlta3JKTlh5a3NMZnVUWjBQd0pTUGVHOGJGZGVhMlhUSmYvdENi?= =?utf-8?B?SklEdGZRNnhiTFEybEJwUXVTMXJKZXJHckhTb09NQ0h2Qk9oWVMrRmNZaWpp?= =?utf-8?B?a2hmbGY4TkNUSG1tSmJkaXQ2TjJydXowUzVNWTB3NXhra3VhVHdPeStwcWxW?= =?utf-8?B?T2dNdG1MSDBsb3dPNWJDVEhTdldIbk41Yy9JeUdhL0dwdjFEeEVQVFIySmxF?= =?utf-8?B?VkNVN3lPendlMUcvNFI3dU8ydStjUjNSellpRkNiM0o4VTJKOUpyQWJVcTE2?= =?utf-8?B?WWp1R2ptVitDcmR6dHVMM1pQSDFxUnY0YUNaMVU3OUMvWTZnQTVJN1dHNDVk?= =?utf-8?B?c3VKT3haTTFXZHI3SmNpbHZPWkdWTTVCNDdvWXAvWHY0TUgwdkhEaWhHODdF?= =?utf-8?B?OE9uTDY0c0ptekoyZmt1WVNVSFJOd0FJbmJ4YWEyVWRRa3BEcmVUZC9WN3h3?= =?utf-8?B?ekxxdS9LQTdydlpWMzkreGtZRU0xL25SVGs4K0RFQ1pNeFMyTWNhUU9xdE9m?= =?utf-8?B?ZWpGcWlUaGh3V2dDSWU5MURUR2Y5bTQvZTdGTjZlRWluVlFxeHp5bjFTR1ZD?= =?utf-8?B?d3JBcXpyTDJ3M1ZQbUJaSEZLUE4ra3B3cWJ1VnN3a0dvQkkyT0dpRE0yZzR5?= =?utf-8?B?MmRHdXQvc3JNaXZYZTNKYmdKaHRiT0tvNUhpaHFRZE5OR1hBVjZUN2NtMzlW?= =?utf-8?B?bkRiRkdTQnliYWd5ME1JdDRUeDcrRTVBMG1vRWp3WXdmVmpGUkZweWlOSy83?= =?utf-8?B?RVZXUVNVTmhrRm9UeGkzM3E2all0d2p2LzZjSWY0TExQN0Z6WjR2cUxxbkgr?= =?utf-8?Q?E/yU=3D?= 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)(376014)(10070799003)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ekJ5aWxOUEkyS3R0OTNUREJDMm80bWl0Y2h2b2NqSitONTluM1B6czMvZFhD?= =?utf-8?B?ZnJXU0EvNkpQZ2FqWmhEampxcGhVT0NWSFRzUFRweWNDMkZTc2xQaFVXZ1ox?= =?utf-8?B?U05BZUg0VE9vb1FYUXNIQ2txTjRjUGtUQzdaT0tWS29mRkJRT1BtR01kcVNl?= =?utf-8?B?WXpLQ2NocEtQaW4vRlFmZXk2SkhiQ0lNSTJDb1ZwQSt3VGtxbHpIM3pVQkNP?= =?utf-8?B?M2laM25IOGR4U3dxdVJ0MXZ4emwrcWkveWFEZ3lhUXlPckZva3pzR0hKcjZj?= =?utf-8?B?T2U2RmxXNEJhcThCdldBdVpwS21MU0RqRjRiaGpMNlNqUW1lcUNGTGhNVGxr?= =?utf-8?B?WnQ1ZktwWENrY2NIZkxtQjVMK0dNUGJtdzNlUFUyeitZdkdKWHdLSVVzRWox?= =?utf-8?B?ZzdIZldSRGF6eHUyU25qMUwwRzVuZDd0enFVdEdiaU9iK3pNWWlCenN6cmNP?= =?utf-8?B?SGtTRi85Z0tUbmNkTC8ySmJzaE1BSEFmTHZvMlJDWnRPQnVESnlLdW5RYkFw?= =?utf-8?B?ZWhibGFQRzNUdm5OL2hWNThJeDV0K3JhR01OOUIwakpJMXR3WnJQSEV2RWtx?= =?utf-8?B?OHFFRHA5eUdlbmhhVS8xemRLR0xMVGw5QjFXUml6QkRIMlh0VnFkWjNoaU0w?= =?utf-8?B?ZXNvUFFrNGNqaDdPZUx0M295NVZQcmZPYVJYY0NVUWhOL3BVNUwwdmtFd0M2?= =?utf-8?B?NWErV3BHdEhYb1RkU21kbU1wb0lZaDdJQklGMTJDaUozdFd4Y0EwQ095ZG1Y?= =?utf-8?B?OFFYZ2xKVk42eVNCTjA3YU5UUnpCdFdvQmRBbmYzdFpYelY2SWRtcTVmdHFs?= =?utf-8?B?bTArOFpWQ2FsT2swTGJTb3RsYWpMbFJ4ekJzaHFzdnhxOTJsSjMzVm9zcm1y?= =?utf-8?B?VmhVVElHbmlrTGl4a0JxNGlBM05EWVJhU0VvRS8wY0J3YVhwNktwYnA3Z1ds?= =?utf-8?B?bE1ZQXZlVS8wdTlZMDVMWXZ6UEZscGdtZzVYWWJjM2hFRmtEMlY5R1hETldY?= =?utf-8?B?QlNFNUJwTW4vSFA2ckZ3UFlBeEF4bWZDN25GZEtidGJSek5sS1VvY3Q5VHlG?= =?utf-8?B?U1FQZmRmek5VZVV5Mnd4KzRPZVppUmpQcmlwNnhuTTVSeTQvVzVMTzZCNkRK?= =?utf-8?B?TFozR2FZQUFqRUxURHpkQ3RmczA2UGlhSHdxOWdGQmF0ekRValdEeUk0Y25D?= =?utf-8?B?NnAzVVZTSHVaYUFLWjFCSisrTU54OG55NzVtcEI3blczaG1KWFk1aWtidytY?= =?utf-8?B?WjZxZitLVnlVUkovVnVEQVk0cFZzamFvUFVhbExmM3RPVG1ta1M4akJZNHpN?= =?utf-8?B?MVNCS1c2U1RLWVZyaG1FcUlYS1MreUxMdEZlTTByaitOVU1rRzVxbWJnMXMz?= =?utf-8?B?TnZUZ1ZVUHkvazJFdE9UajdRNGFud2E2d1I0UmNGdnZnWVVOcDFKSDl2U215?= =?utf-8?B?TURpb1pGUCszMUZVNUc5NHVBRDZOYXpBUjFDbjk4dG55MG54L1o0UUk4aURP?= =?utf-8?B?eGdIZzlTZmtPQUVjaEMreEtNTUJBbi92ZlhabGhrRmpDSVpmQkd5TVQ0elNp?= =?utf-8?B?NGUxbzk4Wm5PM25Vb2tzRG9IYVJCMVdndXd5cElUdEZlc2J1TGdKRnAxMVJR?= =?utf-8?B?dVhXempJQlVzRFZWcXpoL3lGM0VCWnlOUkFBRy9GMExxTjF4SndZN2Nnc1lN?= =?utf-8?B?ejVaMWd2QWVNS3pwaGxXUTFVRFBhMmlsNzF4K3RJWjBYYlV1aWdldjlWRitp?= =?utf-8?B?UW5ZOFc0QWZhZ3hiODF6dEZSbmsxbURuS2p6MjNoSnJnMUtsR2xveSs5UHFk?= =?utf-8?B?U0R2SStqdHdTcXU2TldRR2oxMWxhQVZObXhVMjJVOVpoVm5QQzI0dmVJVnY0?= =?utf-8?B?QWRxemw0MXlHdHhTbUlkY25xWGUrWjZldXo0L1NPcm9hdFZncjBpS3BYK2lq?= =?utf-8?B?OFRMRk9ubDcxM0RiZ2FjYk9Ed1FOR1RXVEhncm1IZTBpMHdYaU5wdWllS3p0?= =?utf-8?B?dG1kN3RwaXZ2QTJud2NNRTdldVNqUzIxNEFhcWpOdWJWdU9kWXNyblBJaXpp?= =?utf-8?B?WHlzTkpnVEZWM05YQWdqRmxxN242UFlRNmcrQ0kyRTc0MEJEczNNVDJacFFH?= =?utf-8?B?ZzQ2TWJsUnU1cVVPZGZ2Y1pEb3hGMjRBdU0wUW80SDFwR2VLUXphUDlveFR6?= =?utf-8?B?MkVUN3cxMTZibG9OSDNRMUt4WS8wT3NMVnVIbmJMdk9sR3JlSDQxVXNPTVU0?= =?utf-8?B?Znl6Lzl5dnZQcmlPZzAxekhLcUt4Z2dMZkpIbEVxZStWd2pUWUFKeDl4Ympy?= =?utf-8?B?cHpvTFovT0w5b0FaRWRwakRwN3RIK2NTbWhGYmhHNmlDd0tFQnQrWS82T29j?= =?utf-8?Q?koqJKl2jiogu7EtRMJGGDqTc74caIeuSyKOAmpYCTujB8?= X-MS-Exchange-AntiSpam-MessageData-1: IY5U9spLfR+Rhw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3aa6fed8-6169-4d49-43fa-08de5962672a X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2026 03:00:30.6606 (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: rkDH7VIxe7xuT4kIo0aYamLZkqMxs73KG9CMYqPAswyeCNT1MhqVeFakd5WaC8dQwZON5UFwi0XDehGwuTfcTA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF7D510B798 The current code indexes into `after_rx` using `tx` which is an index for the whole buffer, not the split buffer `after_rx`. Also add more rigorous no-panic proofs. Fixes: 75f6b1de8133 ("gpu: nova-core: gsp: Add GSP command queue bindings a= nd handling") Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/cmdq.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index b6d6093e3ac0..5ca1d757d4a3 100644 --- a/drivers/gpu/nova-core/gsp/cmdq.rs +++ b/drivers/gpu/nova-core/gsp/cmdq.rs @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 =20 use core::{ - cmp, mem, sync::atomic::{ fence, @@ -265,10 +264,18 @@ fn new(dev: &device::Device) -> Result= { // PANIC: per the invariant of `cpu_read_ptr`, `rx` is `< MSGQ_NUM= _PAGES`. let (before_rx, after_rx) =3D gsp_mem.gspq.msgq.data.split_at(rx); =20 - match tx.cmp(&rx) { - cmp::Ordering::Equal =3D> (&after_rx[0..0], &after_rx[0..0]), - cmp::Ordering::Greater =3D> (&after_rx[..tx], &before_rx[0..0]= ), - cmp::Ordering::Less =3D> (after_rx, &before_rx[..tx]), + // The area starting at `rx` and ending at `tx - 1` modulo MSGQ_NU= M_PAGES, inclusive, + // belongs to the driver for reading. + if rx <=3D tx { + // The area is contiguous. + // PANIC: since `rx <=3D tx` we have `tx - rx >=3D 0` + // PANIC: since `tx < MSGQ_NUM_PAGES && after_rx.len() =3D=3D = MSGQ_NUM_PAGES - rx`: + // `tx - rx <=3D MSGQ_NUM_PAGES - rx` -> `tx - rx <=3D after= _rx.len()` + (&after_rx[..(tx - rx)], &after_rx[0..0]) + } else { + // The area is discontiguous. + // PANIC: since `tx < rx && before_rx.len() =3D=3D rx` we have= `tx <=3D before_rx.len()` + (after_rx, &before_rx[..tx]) } } =20 --=20 2.52.0