From nobody Sat Feb 7 10:15:28 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012046.outbound.protection.outlook.com [40.107.200.46]) (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 1FD2A379961; Thu, 29 Jan 2026 07:45:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672758; cv=fail; b=OpJFqty9XJOhgcEIhpA6nYVFRcowcnTSgVVy94oiXo6NM0ISxQXHlhDUw6eGUtQ+hsyimgYmPA2TNlw9KylzlCY5N77g80/xTNjVKe67UxWSHdp8FKk04EaG/KxljjzsSEXPz3mu/jzXav/yTJRYKUP1f9bA1ba1xWSwdhoKpaI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672758; c=relaxed/simple; bh=iTJPaVovw+BZg/dX7FDcdpNdqNwQ2MZCpGz0BjOtzcA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=KLqAXsLX22v0HsccqfT11GB9sQ0rMBtl8t1fsTdiae65yYEcFBN0d9r8e5x8x0ly4OtaVW1kxYG7G3CwCxRxyZxlaZSSa2oxpcNm+Pw/71KF4Vt5bf1Iw+6HtYOr2eS1udch/0jSq6ZqkYVCL3+QbNdbfbIldTv4pZT/PAZ8+qw= 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=m475rDKc; arc=fail smtp.client-ip=40.107.200.46 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="m475rDKc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CY+UI3zr46o6rC2xfFcGLgxMAcFMmlBWBYbqK2UgBHm3tbZKyxlO09tko/d/c2aYG+V4D33V5OXDVI4RUB+QFEWrz4ZHxppckipTCGtUdwWLEmpombFQtFUnOl999Ea1BKPM+OiU17vSJuPYDQ0DZ73ITQBJzMyPLw1l3helXv19ve2+CRXdMkaXoz8JNXR9yv8aJjXtlMMX5L79ujFJIjXrE0pfDEXQZBUFxLeFv/R2qEE0pzQyQ5oP79Ke7vnuzlc4xl9F+JDfBOzFokxt89ZyYUKl/8weXdAlLTb3ZBFeGkVujJzKnRX8C3OILU0rbqwtjRqQpV/NJDDxYP2yEw== 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=oSrEBE/YuoJdtKM7IllxHtV+zgGHDRhWP3I/r3uB4ZsXoqjhmVa2AlY2jyJMce10AeNMkM85eMTlgEnjKD3Lyloa+0noSLtTm0v0ta6yL7EHoM4JWUIV2O0+VAKEE5H3T9Y9IXpAEDoIcy7BLq7d93M7EpUrm0N5lbnLxUTFiYCisEwUHSt3i3zBlW+gnJP4tZvjoi3jkQd9cBH2rXF/nviM0gT9x2/Qq/ZRT29ZYFJWH6q4WlplxYbJ6iR0Fywh1ljKK9B+Fcrdhehs+xDOHgs4IDtVKEk+At6zdsPV/wVIW9LbO+iT1T5/51q44Z4SCYwKc5FKChhVzMK5QwYlIQ== 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=m475rDKcvXA+A5DRX++kvVi14dp9oNcacsOYifNCxV9RPRyZNzSlalli5SCiFDR438dYA2t+qojnrMBHR5FgdZgCt0HUPYd3zZkavVm/hfu2Z/9AdTgA7sr6H9SZ6ZfongoOtkuL2a9DwzC6RoRkCzKORQJ5QBJx7ZqwIQD0XDohu0JLioqX074mGL6ohBwk8s914n93i8XydhXZn6L0eqCx8Zy+v/YJ3iNq7V0ADpbOBFpcstGxMAU0M7d3MV+yiwJM8JOJwHj0U+AGfHKMtll0Idn+wNpm+E1ih2Eaeh0Wx6C4Y12WHyRMO0TCGfJ5gJfSo+tYl84glZqlwhxENA== 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 CH3PR12MB9124.namprd12.prod.outlook.com (2603:10b6:610:1a7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.16; Thu, 29 Jan 2026 07:45:52 +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.010; Thu, 29 Jan 2026 07:45:52 +0000 From: Eliot Courtney Date: Thu, 29 Jan 2026 16:44:59 +0900 Subject: [PATCH v3 1/5] gpu: nova-core: gsp: fix incorrect advancing of write pointer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260129-nova-core-cmdq1-v3-1-2ede85493a27@nvidia.com> References: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@nvidia.com> In-Reply-To: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@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: TY4PR01CA0016.jpnprd01.prod.outlook.com (2603:1096:405:2bf::15) 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_|CH3PR12MB9124:EE_ X-MS-Office365-Filtering-Correlation-Id: 483d7914-491a-443e-893b-08de5f0a6daa 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?ZWlvcER1b1RHT3hoRWs4UU02ZStxMEpaT08xSFRFdU41WW9NVG5zRlFUVUZI?= =?utf-8?B?RFdRR3RrVVhJQkhXK3VBQXVSSG1aRzd3NnBqemFOeWtSMmRPV0M3Z0RuUS9D?= =?utf-8?B?V2dPNGFGY1RGZjkrOU1DMHpCaFNtSzdWK1lOcnpodjlIRlJjcHZ4a3BaWkFZ?= =?utf-8?B?SFBIZDl1RzUxeFVsaWRZNmZCK1Y5eXZpYUg0d2F4dFN2ZHlTaTJJcHNtNklp?= =?utf-8?B?cGFFUE9qazE0V3lxazBlaWFuMFk3cllWeXJ1REpSTmZiM2JSelVtZkhhU1Z2?= =?utf-8?B?ekc2V3JvK2dadnVIbmZ5T1A0ZE92ejZwYnB2UDB2dVBMWkFxVE1jOU1oMmtW?= =?utf-8?B?ZnBhYytqTXNpMFBNbzJGN1RXVFNWNStOK2ppWm1yL29BRm1iZnNxeVo5RU55?= =?utf-8?B?QWtGS1BkS2RzWUZJcW9zYXFTdmdKT1RueS9uMURkdHlLKzRpL3NBdVl4eXdz?= =?utf-8?B?VE51NktnV3hZcW9LMUhsb0pHcEhOU3lYWVZUU2tqKzhKWXJuMjMxb0ZSUldX?= =?utf-8?B?YUMxU0hBZzZkOEtPOXROaGQ5OVk3VDhNeDZFeSt5cmV5S3JMYVdleTZsQWVO?= =?utf-8?B?ei9iYmNnYVQ4VGt2cTdkWHpINWM5cWtTSnpNS0FHWGdOeE5STmExekVHKzNF?= =?utf-8?B?V2l2MkF2OXN5VHI1UjUxYjk3dWlSZkVxMlBZYXRuMUhQTWdScllOQXk1bkpH?= =?utf-8?B?SEdDK0RreVFObjVnNWNGd2lRNDZNY09EeUoxTzNwUk9MQllZQXJhUzFlNGsy?= =?utf-8?B?cUpWdEkwaDh5SWVocXBmamNHWHZINkdQNnNhREdYYlRaaHY3TWVzTmFTQ21v?= =?utf-8?B?ZVdzd1RacDh0djh0eGNldjJLZ1dJaFpKb0l2dDFTb3BQOUhBU215RmtsZEt4?= =?utf-8?B?eno1SzN6a2NTUjNRNVJrbWcrWnpTOTVOQU8vRE8yQ3hmSXRuaEtWcFByUUNW?= =?utf-8?B?MnJ4Sm1LY0krT2E2STlzUUFkQjEwMVUxeXNsK2ZkWHZoNmttdTVNYmttdEp2?= =?utf-8?B?T2VEbmRxcjJ5SmpqQ2dzdGFtcFcxVFh2WHN2WmR4VGZ5UGZsK2JiQVkrZ1NC?= =?utf-8?B?SUVJTlZvMVYySkRRZ1NHeDVBWG12UVFiWmxzYXZVMklraWpIdHd1VDB0VVl4?= =?utf-8?B?dVdQcmk5M3VhWnl3ZkNra0c4dDVzalVzYTNNWXdvaVpBR1pLRVpSVnV0RkYx?= =?utf-8?B?eGluMUVtd21Da3kyRzlLYVpmM09VcmQ1cjRwR25JVElYS09hbWxtK01qcHVU?= =?utf-8?B?YTkxV3pqUi92SUw3dW03cExOcXMrZU1BT05kaDFRT05ON3JkaWdpS2ZrSitn?= =?utf-8?B?SUMvU1YvRDIvN1VwNUpTR2JLUE5VbkMvK1UwSzlWNFdQMjFmZ3l4Znl6T0pF?= =?utf-8?B?RVl0R1lHSWFWNXhVa1kzQjRxdWpZN3EvR3FYVXQ1Tm91Yk03amt0ZmZsdUJV?= =?utf-8?B?UTVDT1lPbUdOd2VxRUlvVm9QSWpSWkRCeFRrSW55SzQ3djFqN2JTdDRKYldT?= =?utf-8?B?bmg4dXNaaVlXTTJDSndoUkluOVR1UzgyZnFWSWJiaCtTbHp3WlZydTl0cXQ5?= =?utf-8?B?aFZxRFJ1ZWlKRkE5WVZLTEtqRVBHejVORkF5UlFQM0Vra3dWTjRhUi9ZcHVo?= =?utf-8?B?RldvQUhOaTJKTVFMZDY3MEdoaGQ2allFcHlsalBlc3I3ZytkZDQzV0NTTXgx?= =?utf-8?B?WnJxWXEwN0JmQzZyL2VFRFd0c0ZIc083c3JtdWdzRXVyTVpQL1k3RDR1KzhQ?= =?utf-8?B?NDZZcFpJTnZrTERvZzlSamJZLzZkdmFiMjFMdmtPeksyT2lqTGYrZXg5bVhG?= =?utf-8?B?czE5UmwraTFhMENUcTFJSmtQcEZwSjdtbmhQTDAzNmhMTzFlWjMveWk3Tkl2?= =?utf-8?B?UkgrZG1NN2FlTVpPK3dwYUd6UHNBQ3ZqNVBnZTR1MU9qN1RjdXNpdVN3MlBj?= =?utf-8?B?bjhNUUpEc2xTUHBoM1IzNTJNMkZuaUROenNmZXo3SW9KcnN0NkRGcnJVUmdC?= =?utf-8?B?bjVlN3MvNnFva1p2d1YyMDZ3WXpzVVJwWTk5VG10NFBPTFQ1T1NxQjViUnZq?= =?utf-8?B?aWtCUEp1K2VkMHdqTlpJWldDNDhzZTF0R2pKcUJiN3Y1V0t1ejVuRVorT2d0?= =?utf-8?Q?KfEc=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?ZEovR2JtdTRnTG92LytXakZoOFB2TWZFSkxFWDVzdXhGYVBURDBsRTBRYjBu?= =?utf-8?B?blkxOTE3V3dvVWd4eUNRdkFaV1pMbW0rOWdKZW9vQ2NUYlMya3pRcXBoUXNI?= =?utf-8?B?TkU4bnNnaEdGSGwzcWd6azdwYlIyVnJWeTkyTEZTUHU0QlRicURYRWRiQnBl?= =?utf-8?B?MEpOTVV0U2g2OGVmVDIwL0o4b29CQXViZk9lZGl6cHJPdDV3MTc1WTdUSzJa?= =?utf-8?B?aFFoZElmT1FOVVlXb0gvd2xWaE5OcGFnZ3R5T2xIVTI5L2NJTnpsQWovUUl6?= =?utf-8?B?dzljaklmUkNjTGlmUlpuSElEUWRNMDJPSVoyWVBhYVB2VDZyb1VuNEV3N1pI?= =?utf-8?B?YndXSFpyY21pNDNiYXg5clNmemxabllPQ1E0UmNNQWFSNFN1M3BnajdwakVw?= =?utf-8?B?Tks0Qk1BZGpGQVJGa29xdTJFZ1piOXVEb1dkUmk5ZVF1SzRFNWx2blBwaGRi?= =?utf-8?B?QTducDFlUmFOUU1lVFd5eVpMOUVEWUx4VkF1TG0rT1ZJNXFXallyUXQ1Z2pH?= =?utf-8?B?ZkZZaGtRVzhlWEdKRjVmK29ydnY1TkF0SnlGVnRZN3AyQ3IvU1B3dkxBZ0pN?= =?utf-8?B?OGE5VVc4RndiRDJqalhGSUFIb0hyNU11ZmQ0b0V2SXQwWkZRc2RDZlI1WFRi?= =?utf-8?B?Nm5TS1I3SVdSY0UzZHdZbStRZWptV2cwcDFRTkEydnNPK1dKdEtwbjdicDM3?= =?utf-8?B?d0U2bGhQamZGRUQwa0dySGtqWnVRSCt3RE8yWjNEUVhaSmpIQjZ4TlVxTEM3?= =?utf-8?B?SVE2UWJBbmpkbFJ0SU9OU3NoU3FpTTNTSTN2ZVJGc2RWK0xXSjgzT1RuTWRJ?= =?utf-8?B?a3JFWnhUa005UGU1SGZ4TTNGOU0xbFFsZHM2bzBYWjZ4bGJQMXpDUStHUmRI?= =?utf-8?B?R2RHTy9LNm9JWk1TUitFZGtIaDluZlFvWTdEcHFUVnRKYUgyMllNRTNid3l1?= =?utf-8?B?SGFnS01pSGw1TjNsZUFKMUczMVBCM2lBMHZYMjRUcFlIMk9QbWtDQ0xwZmpT?= =?utf-8?B?U2t6UmpCL21KOWg1TW9EUVRDVUJ3VWJhT1dCQlo5dFltdHFhWHBuZnlYbytB?= =?utf-8?B?eDA0OStBbmNyY3lZcEpYMVRDUzJISDJEQlRCSXNYWDlVZjQ2MUVYMzhiOUN3?= =?utf-8?B?dlpoWVlRYnozYXFDYlYxSDJPMGxRZWhpQ0RYQzdOcVRQYnRERTRzSEVtOFdI?= =?utf-8?B?UnZmYUwrWUt3Q1l0SXlIREVEcko1ckJwbnF3TFRBaFFJL3h3RlluTVM1Y2Y2?= =?utf-8?B?a0JOSnBjckVPVktkNi9tOXB4UnU0NzRxdXNqSUJZL3I3OEtNUkpYNjJvSE1Z?= =?utf-8?B?TmxGTXlxOG1MRGgwVEFyajJFVm16bHgza29aNHA2aUsrc3RWcmd3dGg3V2hv?= =?utf-8?B?dDlvVzZtQUVuWlNSSmhSaXM4ak90SHRURDQwNkRkS1RPQXJUQlNVZzVWOFBL?= =?utf-8?B?Q1huc1JibWxnM2VadzBGSU1pdGZCM0IxQ0pHQnc2MW9YaG9XdzNVbW1uUEkw?= =?utf-8?B?Y0EzSUNEM09FNHpzTlBFQWFXUGRVU1JMcGE5VXFKcjd4WGtLQ0NDSWFWRkJk?= =?utf-8?B?aytYeDUvYTFCTlJEdFJSaTM3dkdVdkd6bjZtOGowZ2FCWFVNK2R1MjJYVEt1?= =?utf-8?B?UFk2dWo1eVgzN3BrZjZNU3hJUVdmbS9pYUhkSzJManRPbUdQVkxEOWNqVWpl?= =?utf-8?B?U09ISTRFRWEwSzZmOEl3WkV4NWErRnhkQmJqdTRpOEx4TEdFaXpoODB4cXN5?= =?utf-8?B?WURZTzF0Y0p5STkrQXBGVFRTamZGczkranhsa3lseGZnRHVpYzU4eFgyNG56?= =?utf-8?B?MDlDcmZiVXduRWRPdmd4YXpSY2w2c2s3NnU0T0xCblpPTWZJcVFYWFJTL1lR?= =?utf-8?B?akg1YUt4bk1MNzdpSysyeWtVZDdjYTVKVlNKRUJhbitzTlNsUlVHUEhPNlc3?= =?utf-8?B?YUdwQlBYNGRaMm9mL1k5TEF1NmhzSkRHL1c5WXBqTE5Ub243OGdkTEFqU3l0?= =?utf-8?B?RUR2ZFhrNC9OOGZleGtZVE1sT2g5VlVDa0pGV3EwNm9TeGE2bENrbkVhQ1Br?= =?utf-8?B?d3BhV0RackFYWUd6WFpHdGlFR3NWQjVTNndjK3BkMGVyZlVYMEZCbHQ4NHJT?= =?utf-8?B?Y1pqeGJVN1E3V1NnWXRNZ2xnWE0vczdBNDJQay9NWUZZK1ZhNSs3Z3dRMWE2?= =?utf-8?B?ZUphNUlEYkcxL0NZOHdLNDVtNkxpMnFieDJXSHZ1NzlKQWJlUTlOWWVXeEFS?= =?utf-8?B?clF3bjhZTUhyZi9OdVZuVEZhT2FmRHlBK01JRzRuOU8vNlFBMzViaTZqbDk0?= =?utf-8?B?UVY2TzErTFpDelRFcGFYMno3dW5nMEFKN3FUSXM0ZFR3V1cyWFhTQktoL3NS?= =?utf-8?Q?OcCzjhPErKv2XehhkeBATe6E+KK2MD61b7yg0eY2B83qJ?= X-MS-Exchange-AntiSpam-MessageData-1: 1eaI83wH6hK6Jw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 483d7914-491a-443e-893b-08de5f0a6daa X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 07:45:52.8319 (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: mKxWxBdeRSjLnRbK8IikyyUCvpDu2G0YE1NB8p+sRqYy7++AYWw1vLXYlmMfpIqQ6UV1YK/GiwQwqX/z4G83rw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9124 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 Reviewed-by: Gary Guo --- 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 Sat Feb 7 10:15:28 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011033.outbound.protection.outlook.com [52.101.52.33]) (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 4C4ED376BFA; Thu, 29 Jan 2026 07:46:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672763; cv=fail; b=L9YluTU1l/KX0YT0j8tS4J9E+eXLMheTdAqwOZjMMxm6Zjr8SaXCW5o6oA5myhdNJACRrP+0BOgzug1WM0OiUt1B33Va0aIT8KLSCyJl/VJ6nqMgMwKm/cUKliZxd4VBi0bUzpTc687wh+PqRdu3b+y4Ugzn4XF+GJ/PS5TYoA4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672763; c=relaxed/simple; bh=8rIUzWOw2m0lJks0qf4JTj2XKh35kN4qUVdz1y2VMU4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=HibIo3wp8hDPguK0g48k3Pxq3/xktstcXPGgGs2LqlVTQ+0kkMIEIC8Y6cCGQOxurAeU1KqklKQvgPuOVvLv/KbD1xpev1W1Wx33OtUg7ZjPlg2Tn3CwW8VGl+6DcVIg4UAuxwKSM3AmJl1N74r5FfqeBCKsRZkEvDiTMF9Rox4= 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=JksLdvE+; arc=fail smtp.client-ip=52.101.52.33 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="JksLdvE+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H0thSuc9Yy7QJRFkoqoHcSKE6exLon5mUY0+nHALGfbc545kYDAEYAtGAbbJioNP4wJ6cZko4aygwpphCO84LZYpcPwe6ZVNypJmZMoLCjGOW1W32mSnsgXYFsulj0y7eAqxuliTUN8Kh8Dh7IgPlPejFXVza1MKEUDwzlSGdpngYQmBlbSRzf/uwe8/Pv3Tr2Yx36cByZCyfLwd5qulP9fdVMnWfienmsJapt26U/fr9U4NZVjGhPEBdbVqFg62nCGRK9HZSyqd1J3/qMtbhIOg2ZY9OB98LH9/QOiWfmn08oUljAFwzgl9Mphz4B58lmc9r0aDeQ54f/4qxpAm4g== 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=tDQME6pifpINFTLaMtqEGsoeM7XvyNJGzwHdXKLNwWc=; b=deFgzzLD5lVdl3mNK3XCRmIBWLp8YnnA4Rlh/mn9u9gKEcP9zlg9fEPTzBRfg42SHUZkHc++x0rj5qpdIHzGn/mr3SJvp8H4XOseTOVpigDJh4hNA4hcsSv8F3MgI/+X/tFq9qDfsJXvG2/iDv5bUGlXY5fCTHWi5/ONiY7yjpc/9FEHp4aWFUtCoZHtX+mcSua1eo7DWwcBiXtjbgzIg5tK9h2zD3Me9Bmn5QakMjwfv29fAVMmQDXGTgZr5fhI7GbDHzEDpTUwfIEqS3Ogtz8ZND84C4Qp0Hxo+mILaacTRDuK0CAz4GsQpBsfuhCSQGTVJzRwHrNpDeTRsZUYyg== 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=tDQME6pifpINFTLaMtqEGsoeM7XvyNJGzwHdXKLNwWc=; b=JksLdvE+ZH8Jx+wrbN7QIupSOFdO5I27cKGTxu/LnrXhiiL6XQBHE2X4kFU2t8lYx3AZWmexG5v2DWLSAkBDkq1nGCcZiZygBR53eJoUMF2I7dpV+PxBLnH0e4Op2Iiz/sNHhZaaYpfQUWHPff/Q3g1ol6b42eweABuOgA0YBHl6Ruw82ZbQuK6FSqAHRrCXcRsvqFfZ+t8/2TOm3Dr1kXiRPqsBGj0zE51+Px7vgHxqXed3NofwTWYcO9V/MKDlmwVMsM9AoeABWk1GyWMoeOr1zdYmOmyjvFzIMSalWxo9SiCknebLwt8N33QUzxrSWQYfmq9nCitkgmb9dD7rFw== 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 CH3PR12MB9124.namprd12.prod.outlook.com (2603:10b6:610:1a7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.16; Thu, 29 Jan 2026 07:45:57 +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.010; Thu, 29 Jan 2026 07:45:57 +0000 From: Eliot Courtney Date: Thu, 29 Jan 2026 16:45:00 +0900 Subject: [PATCH v3 2/5] 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: <20260129-nova-core-cmdq1-v3-2-2ede85493a27@nvidia.com> References: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@nvidia.com> In-Reply-To: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@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: TY4P301CA0074.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36f::17) 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_|CH3PR12MB9124:EE_ X-MS-Office365-Filtering-Correlation-Id: f1950ca4-b2bd-40e0-2755-08de5f0a7000 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?ci8yZHBNMTVHaTlDMzFFQVJFd1p4U0wvUS9rSFQycjlLUURzRUJDQStXNVd6?= =?utf-8?B?c0tMNCtzMmNwVW1wUS9KbCszdk5lVnp0bGx0UGtadU56dE9JMzVRN0ZvZXFt?= =?utf-8?B?S2l4b2V2WFRiemluV0lPMTdwVTZUc1p0SWZya1pHL3ZuMzk1elBtbzNQWE5V?= =?utf-8?B?R2NKNDA0MkJiOEJ6NTJxTGZ3OXBydEE5VDdSYWVHQnhlR0FyWFpNY2thRVND?= =?utf-8?B?ZWUwblpTUTd4TWdoUnY0eEhPVE1rOTlObTg5M1V2Vit4MDNlMnc2SDhod3BK?= =?utf-8?B?ZVBZaGVBaXhHeHlEN20zTkJjT3RaVUh2SklmaVdESGNjdWFRYVE3RDQ4dUpD?= =?utf-8?B?MS9ndURjSnllL04wV0hRb1FFOXJUYWRSR1pwb29ZY3Byc0VHcmh5UFZTV3Q4?= =?utf-8?B?OXVMc0JvZjZVcG00VmFzb0srNTdjemc2L0F3aWl3OHhxd0FjTXFUWGNIajEx?= =?utf-8?B?UG5yNVpsRFNsNTIwSktwLzBPQWpETXdJc1E0YVUyZmdUa1Nrdmg1ejExaVBD?= =?utf-8?B?cC9ZRlc4dmRKSTY4SzhZMDZ4SXljWEVLYm5QcW5lNzBTcGtXZ2VUWEZuaUVH?= =?utf-8?B?YVB4R2swRkR2clBwWU5udno3V3RteHQrK2M1d1BQVDAvK3JzOVdUSEg0Z2Fz?= =?utf-8?B?a0JKOTNNWXpVRUFHSXZ3ckh5YXJHcWZyME1lOWFNWXZ6MTBsRDR1MDVyK1lC?= =?utf-8?B?ZENZOUU3a2V4RXZUY21iOUNTY1BpWlRRT01VTDlnT0FLbmJRUjhLYVFPbUpz?= =?utf-8?B?QUl2QWlRU2FTUjJSYnhlT3VPaHRHOUtqN1dFQ3FSZ3c5M0VsWU5ma3J6RWVW?= =?utf-8?B?T1BPRmVpT1Nab2MyQzY1L3pwdHNsVnNDdVZlUGYyTm1CVGhSa0dpamRibUJ3?= =?utf-8?B?TmV3VENGSHdzNEM5YUVqdmdrRzZ5NUx0eWRhWFRxRWtRQnNVV0VlQkovOUNp?= =?utf-8?B?UlEwOWxtZm0ySEhHWXhEUThhbXY0YkJkdS8zMElEbXAwcU1RNUQ4UG10U1E3?= =?utf-8?B?K00rdTRScm5INWJiTlFKdDJVV0VRZHRDeFJvT25rSXhpNW9wb3hGaithR051?= =?utf-8?B?V2V5MFZrV1B5djh5cU9HeFJpeTdPSE5JVkYyMEo4SzRxNlpQa1R0VGVtU1FV?= =?utf-8?B?RURpaVRYV09LeHpVL2tERGNXaC9uTjh1MmE3VzdlMmcwTkNhbDZuaVhMNTdl?= =?utf-8?B?WmlnM21Vek9HcTdua29qc1FCaTRWYzVlVUFWWnBqOVcwZnZVbVJsZ3VHOVhn?= =?utf-8?B?Ry95d21KV1dFbkw2WktxQjZYZE8vbTNZMHJ3eG9Na3ZEQ3A5ME5SWDFMSyt3?= =?utf-8?B?SVFPVktxNklhOTJ3RW04WVI2RXNwMXhIc0dmVmhBSmkvbDBXbEFFbkRXeEdL?= =?utf-8?B?QkxCbW4xckxNNmNnYnk4bFIrUFVYankreWNRc1pSZHIxYnpGVHpvcWZWNk00?= =?utf-8?B?ZnlFVEJHZ1RKSWpGYnlxUXhwdzVaZm1wK2xRY3dpUUhIT2w5WC9QcGtTRXVY?= =?utf-8?B?amVWdzkrejNadTJZUm1Zd2s4cFE0ejZJRkw3VnJySFNDeWdpUGZ2Q2dHK1No?= =?utf-8?B?OVdzaVptZUJVWlllNVBnOWIrdDUraDJTbVdHNkE0V3NMd1FaenI0c2RRSm1q?= =?utf-8?B?R0JqWTQzMHpYYkcwcndUZnk3MzQxUk44MCtHdlNuWmJjNFdaNmxlM0NnNjEx?= =?utf-8?B?OGdHTnRFQ01SS2tYTjZNa0NMS3UyODNScndqRkdSTkRWcWoyUGp2KzhOOE9K?= =?utf-8?B?VDhRcktMMzJSM2pUeks1dXgwRmNsdW1lMnl3eW05d3liYmxuQzJYQi95Znkz?= =?utf-8?B?V2NzeTVlWXNZOWEzTGszUCtNMnRibUxabGlLZEdkT0ZvcEloK01wazk2NERC?= =?utf-8?B?bFBlVmRqYWVCNlc0emlQQmpiRjhNcWJwc0dPRVQ2My8wRy9Bakh0d0F6b0JO?= =?utf-8?B?UlhuT2l3bHZtNnVUMWJCeUhOekhDU1FhOXhlSWUwWlB2NEN1V2FPZ2wzOE0v?= =?utf-8?B?SFVtUXg4bE96VW9YdHRwQktDMWZ4Sy9lVTVYUXBLMUtqL0NwbXVVSEtJam90?= =?utf-8?B?ODkzTElNL2RPb21PT2tZVnYrRm9lQ09velRWN0NYNVREZ2dkUG0xL1pEY2xN?= =?utf-8?Q?Kg2c=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?eXhUWkJLR3dSdml2bEwrVDZTMmtKRHFvTHNTVW81ZFprNHhEMmZmTVNKcVg2?= =?utf-8?B?WGNCT2J1ZXdmajRhVlRGSWRQSmVRa3FWcnJCWWFoTVhyU1VRRS9qZkJEVCtZ?= =?utf-8?B?NGdLQVZ0eFpjSUZ4bGpjODhlZ2R5b0R6cVU4QkRHaEo1UmlBNk9EdngvMENs?= =?utf-8?B?bUs2WXJEVFNUQkRybHV1VVZWQ2hVTFhveXVuT2FqMWhFeTFLUkxzRGtQV2c0?= =?utf-8?B?N2dCWElJUG92c2VNdTRZMHFUV1Erb2tPWTBWM24raVIzTkkvOVJUaFpHMjQ0?= =?utf-8?B?bGN6Rkt3NDFyU3lGMHNzTVUvT2xYWVpxVEluMENDdFc1Vm9vUUpWdnJMdzhJ?= =?utf-8?B?YXRieTZuUmt2M2oxQ1VGc2ZIemI3aG5KYjJ1SlZSdW5LbTNxZ0RBeWlGdGp3?= =?utf-8?B?NGZpTDJ3TE9rcEMraFhGQ1lzWGpKUnRSQ09SQzdkaUU0Tkc0TjF1a1F0emw0?= =?utf-8?B?SnRrUVdycCtTZld0ajJHNjhhV1BjMUozaUJyN3N6cXFyUG5VY1RGV2hGSnRx?= =?utf-8?B?ZWZMMDJRN3BLV0piNmUzbzByM2l1d2hSTmRiamNqREFEcnBBRzMzMXN3dnhu?= =?utf-8?B?SnRnQTJqem04cWxmOWJFQW85aHZ1OHcybEFwUzJreFJpZW9RMVdoMks5UFhG?= =?utf-8?B?a2F5a25CQXhBWUhTd1NNM1ZxaDhCZDlGUzFJTEJ2bElGdFhqYW15aVBZbmhU?= =?utf-8?B?RGt1c00xZlhGaGlnV0VMYTNGNjJUVm9ZQncxOHhIOTJGWm5paFJ0UkFaTGJq?= =?utf-8?B?L0tyOW9VVWdvUkdlblNMak10UE44R1NTSTVqZTBmYVRhSks1djJVSXIwZXhB?= =?utf-8?B?NS9pVHNvVml1UU1sbmQzZGNXWVJFbTBEQUF3THQvblRkaGwySnlLdHRDRXlY?= =?utf-8?B?UFcxRXkyYVZyMzhMdWY4U1l6MUlKSjhjd0k5WUc3Y2VscVlDQlUvc0pVbHZD?= =?utf-8?B?c0pseUY2eTlyeG5JbkJrSDh4ZzhMMFdrbFpCUUxENFNnbkFUVWhZdkdOYm5J?= =?utf-8?B?WHdXbDMwSFhudnhuOGdMOU9kN00va0QzV0g3WUd1eWJkOGRaeFFUTmZVQnho?= =?utf-8?B?UVl5Tlc4S05NQWlmS2g5YnloSFMveU9KYWQwSnF6TnoyMjVsNE0weE9VM3BK?= =?utf-8?B?NFBDQ0Rjd3lzVG9vMXA4Q2lWajdoVTdhN3orMnIyZklKNDZSN0QxNU9uSFc0?= =?utf-8?B?aHFPOE01akc1dkJzQ0x4aS96ZnJKaExwWnRpOWwxWGNrbVZSYnlPSzJaeDBa?= =?utf-8?B?WlZvRHhjUVA1ZzVKa1FNVkZKeHoybTQxTTN5SFNtemU4M2tDQVpMbTN1VFd3?= =?utf-8?B?UFpPZklQMHFYRWwweC9HNXU5YzFRQmRXNkZnOGRQWDhxVmN1TWUwRUh1ZFpq?= =?utf-8?B?WHZVd2NOMCt6VzJHRUJqa2pnbHNkQk1hdVYyQVlVOXNCenJmNVN4SThFdjVt?= =?utf-8?B?TEFPaXBWMm16ZzF1UkdvQTh0Y1IxQ3liSW9pc21hd2hITmhLUUZtWndYQ3lT?= =?utf-8?B?QUZrakhQdG9FQ25PdUlUNnErWGRLVW0yVzFHM1RGbmZ1eldzZnpPSkk5NFVy?= =?utf-8?B?WHdhcGhOcWhBOCtaRlFJSWxLc1RQdzZiWmREQjhZSUdIRTZ3SzlReVpTWWNS?= =?utf-8?B?bzBSMHBGY3RRWFZOMXV0TnZ6OGFlRjRBek4vNExTU3JBRmxUL2xaM1o0RS8r?= =?utf-8?B?cTdCN3hYanRlK2ZqWFBMMU83ZmtiYUxQTDRRS3I2QjNKVk9WTytzc3BzMlA4?= =?utf-8?B?cDhocHpWSlNLZ2RwYmNaWnlLejZSZFB0VGRtQlpKZUlFUHJGSVdrdjZsdTlr?= =?utf-8?B?L1V5R0pzWjl0RDdIS3FRa0p4cTQra0hUcFZtMjYvM2taa3Q2bDljdWZGNXpQ?= =?utf-8?B?TnF5d0FIWThCVGtNeUdJZXh1LzlKWFR1b0NVVTcwNVBhUW0vdzZuaVAraE1Q?= =?utf-8?B?dnlHd004MmttcnVpYlF3b044N1ZVNmRJUDJ4RHgvNDBVUXE1aW1QQWVsbEJH?= =?utf-8?B?d3pXMVN2Z0JqT1hCTjdaQjRzK0hjeWorY2tIQk92dGh0RVVDak95L2M2TlpH?= =?utf-8?B?NWxKQ29BVms0Q2JjUnEwN1psRk0ydmhhOFdUT21YdDROQTBBS1JKZ01EQWd3?= =?utf-8?B?Rm4wSUdpekFsOEhRaXdMMVJldC82NENqKzZWMGJjRVY0QTlBWG1PeEhudWgx?= =?utf-8?B?YVRXQVpTNGRWV0JQZC9TT0dOWnhua3pVMW5uMnhvQUUxM1hiS2UzS1R3Njc2?= =?utf-8?B?WVZxZ1ptdWUwWlhkRGRPTEtTNDZVWklwUTAwUkVVdndyVXJ4TWkrQmllR3VE?= =?utf-8?B?RE5QakxNTmhSamVQT1Q0ZDRiZmdubm1jSEZBcG50WkJMeWkrOVBnZEc4T0E0?= =?utf-8?Q?e5Jc3HUhJNZ31eWUSPFduD2Izig8Q8ZSLuTIrkivMrbeX?= X-MS-Exchange-AntiSpam-MessageData-1: HadPSpDMCBwB1w== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f1950ca4-b2bd-40e0-2755-08de5f0a7000 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 07:45:56.9840 (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: C0WUoHtSRAabfI36b2oClrPfT10cozSwaqQ1r/bJwMj1ZNdUaFJJFOL4T6dW6vcdIvf6M4nJ4ZcRhG7b8K56aw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9124 Disambiguate a few things in comments in cmdq.rs. Signed-off-by: Eliot Courtney Reviewed-by: Gary Guo --- 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..0743597779f1 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 within `0..MSGQ_NUM_PAGES`. 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 within `0..MSGQ_NUM_PAGES`. 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 within `0..MSGQ_NUM_PAGES`. 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 within `0..MSGQ_NUM_PAGES`. fn cpu_write_ptr(&self) -> u32 { let gsp_mem =3D self.0.start_ptr(); =20 --=20 2.52.0 From nobody Sat Feb 7 10:15:28 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011009.outbound.protection.outlook.com [52.101.52.9]) (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 294E0379994; Thu, 29 Jan 2026 07:46:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672768; cv=fail; b=d+qou6kpHXl10SeJnFK5HXzCCG8dlmlGtp99MF7JLHti9XTdX01SQhRD0+vA/aQw/6wVuImN9gtrXGx/jHn/W86ktKDkKpE3mAelj3TspIRPk4he0ZYtwUlXFIAmTihgNd5JOunZqhyCwKAHcBHujFNyEpU/crtne3DVg1oeB+4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672768; c=relaxed/simple; bh=Joevr7GB3G8QhJ7MMKYH5QNw1yLop1RT6O9cvT1e9iE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dQ+IlUzUP6uwRmknLyJ17debugVz6Uad0hlSVbcCJ/iGxkNMWR+3WPxm+8wc3LOGWhlW8R9GSg064tTzWQ6DvQVTaWL4CHgL1TQJrPg+K2hzPH1NU+dkMmsGEybQ3Vl1wfCMsGAWfKSF2rSpCPTfCkx0a9aysb05RU9HEM9oDYY= 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=kFuoblG+; arc=fail smtp.client-ip=52.101.52.9 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="kFuoblG+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Zs0IRG3DXb8ng75zKqez/2YgDh74UQwNjb0Qy5qkvrHQcX1Emh/uwDAx9FvGE6X+NsNlCi1rWf8eF3y/j8BkdKYpkgZ/AGnzOSdJ/3O8multU3HkW8Bm77rcQ8mx765+NwEyLOU6O0xDOjPlB8sFg9S1GvW6jY4plIa/smijF6IjheaxW5cznaPq/GiJNFvmqo7/rCN5bnO+c52EKFEw3j5w+heXLB52j0sxxpsGoa54Qw6qiTZMGQgVWyK1W5L09+p0tLJ4Ttodcp7K/sG60ekOOY2fZ7k33eeMIoQIZdmvgklzoQ46kXUXHIHYUUaX10fgOVJ1cBWzVdGQqMt0wA== 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=Sk5Msn7riPQmUQfNCaHRA92VHRN4heCxj1mAQzhx/zk=; b=sKICpCWjEag0sEaJwzmUHYTo8RrZuCXtJnNVg4FLFpiBPQgrGS6f0l1KkfLtcYMoNmSHJ5+VdYG81+UZR6eQyFu8pWZ1o8H/RyN55tDQ7MhmTT8Q8n+NFibS0rfFwMHPpMoTxY3eH2xfXU0fXxKFkuLGHCTBp7/M4ibtlD304q6+TKNGRkYXmv5la/9xlMWpbSlENuTFbhmlialNrN/wqQPEj6R2puDLzLOQEY1RvLoXslppcvpx5JxPnX+NDwfjF1oGq3HLL09VefiqyC7KRqED6FqQZaCQNadAM51tc+OAtcP+wTnBGnvGx/0GI4EUwzqu3uMPV2lGHgNJbiP8lQ== 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=Sk5Msn7riPQmUQfNCaHRA92VHRN4heCxj1mAQzhx/zk=; b=kFuoblG+d0D+4Gwetna59bvQGZeTJ4NUnpr7eGse6T69R7PlxDERbpDz1MpKaPxyTaycUuB6LOXOhGWb2MXtX+qJUEOv9kprWxpMmYRdcXUv1Qc8n7aIW2ZzRA926NwV5A3RC1FW9pLmvcY759DMVJg6FiYKN9Yilzi4Gt2/24/7Elb2tML2OlG6JUQ+Ex5FCZpIBtGwsdZ1DcjQBagKLGbNSs9TpSHYnbPZ+nGIYUzimRe7jXUr5nvwgp5+M4DvCxK8Eso1y0MlRfWx/boe2K2y7KcMiUfZ4t2DLTbAYS87P9HwYVmtbXwhKBRGeO9DXHM9uQfkj06hLNC0D/v/7A== 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 CH3PR12MB9124.namprd12.prod.outlook.com (2603:10b6:610:1a7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.16; Thu, 29 Jan 2026 07:46:00 +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.010; Thu, 29 Jan 2026 07:46:00 +0000 From: Eliot Courtney Date: Thu, 29 Jan 2026 16:45:01 +0900 Subject: [PATCH v3 3/5] gpu: nova-core: gsp: use empty slices instead of [0..0] ranges Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260129-nova-core-cmdq1-v3-3-2ede85493a27@nvidia.com> References: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@nvidia.com> In-Reply-To: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@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: TY4P301CA0066.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36a::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_|CH3PR12MB9124:EE_ X-MS-Office365-Filtering-Correlation-Id: ccff2bd9-5b58-4a90-128f-08de5f0a725e 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?UG02RGIrc0tUbEEyZVpORXhuejUxYlArS0hFZW4zYzMvNVJJOGJyNlFKSTNY?= =?utf-8?B?RWo3eSttQWNxaFNFM0hYenNETjMxOTFpcE1nMmpDeDA5cVNReDIyZlROWDVR?= =?utf-8?B?c25rVG16R2J1Nlpaem1ZTVVya2JxY0xOT1ErNmZyV3J4VVN1YzRkeFg5MWlW?= =?utf-8?B?S091UUprZFc4RnlwcnFuMmQxOENRRkZ4QmVwb3VuZ0ZMcmpHaHZVNHRWbDRi?= =?utf-8?B?ZGhKSGZEWjA1b2daZnBZOGVkcE5hdzlRQithdFNQTXNYLy9Nc1B4NzJxeEtj?= =?utf-8?B?Rkw3dnFvMkpHQUczNDVTUUxKRzVnbitMYWxvQmhka053TzdIb1AvM2IrVnMr?= =?utf-8?B?ZHhma3k0UnJZSldFRWJXYWpxRllVZThKTnRLS2Q4d1BOSnhKc3Y0aXduMllr?= =?utf-8?B?ZkJVSzZhS1ZPdzd2UGdLeDhLRXpQVGhtUnZYY3RPdnMvbFVSS1pzQjRjaEp0?= =?utf-8?B?dDZOZlQ2OEpmelpndUhxaFU2VFU3SzlnaUlzbkNMRkxpdmlBWVZDbVNsZ1Rz?= =?utf-8?B?S0wxUHBwdHRWYkFER2UxZWRDTGt6WjZFNi82YlJ0WlBnVUIwemVWK0dDVW5a?= =?utf-8?B?cXQrTEo1OXV6TXM2VXhDNU1hUU9jU2FLOEJId21UTzRmVER2S0QyT2VhbjhO?= =?utf-8?B?SWwyZTJIaStaR3ZHZUlabTZaazZ1RWNPM2ZmdGNYeWZvR055NDlYT1pkZ29N?= =?utf-8?B?ampueFI1SnpzeFZZRzh1RHJEZXcxeC9sNWFzN21abXU0bVlnWjhTdGxqZG9J?= =?utf-8?B?dUl4YkZmaTFEcGtuZ3dYL0xid002ZXBsaHR5Y3JCQU9UMEhUKzNwV2ttQXBE?= =?utf-8?B?Z3g4Ni9kS1JqZkpFZE5Kd28wRXFhNDQ1N21SSk11d3c3WW9ySlM0dlpTMTVQ?= =?utf-8?B?cWM2RDhiSDRLeGV3QTE0V1FPN294T1I1aHdLWkxaV0xtN3JnekRBVzR5Sm5L?= =?utf-8?B?YzRSZEFrVEU2MzN1aWJWSWxmWnpsRXVOVlZoa2QxaFIvVkoyVmZwbGNFaWVr?= =?utf-8?B?Nk9tekx6SlVXN1RLRzRXdXNqdWk3U3lxQTFtWmVjRHpyQzVzUUREU2VaWEtY?= =?utf-8?B?SWNTUGtJRjl6M0Y5MUkrN3VIZThveGcxSGN3RDJVbHNYbXU1NjZzNnhUc3Rs?= =?utf-8?B?bFo2dnJ6RkNZcFpwZngwRktjZ05HSERmOHl6cmRuNDF0bExpZDcybUFMWmUx?= =?utf-8?B?NDloT2JTUFREeUdmT1lLL08xLzc2aVNMd3FLd04zQ2NQVDRUVS8yOWFBWERh?= =?utf-8?B?ZkQvSlJidU5JUUtKSDc3aDRHL295ZVlCZHBzN1FPVFZoMGJ6T2dxQ1NHdVlJ?= =?utf-8?B?TGwrT3paZ1FLd3BsM2tUb0RYRC9ZQ0VBa2xmd1VoSXU4clppTDJYMHdBMG9J?= =?utf-8?B?b2FxS05ZdmFEMFAxT3YwWlRhMjllWXJHS01CRUlaMk12V0JzYlppWnpWdUYz?= =?utf-8?B?TW5sV2I2UVhQeGJ2KzZYbWwyS2N5dzZ5MWZlRFNLQzNjQWF6WXY0NUY4TmJw?= =?utf-8?B?MkNMTVFZM01ZSEk5V20zaXZVL05PaHg0T2dKb0E1NmhzVDJsN1ppUVQ4eDdI?= =?utf-8?B?U253OFJpSm5ZRjZ4T1Y3NkwxdUtzaGg1NnBNRy9IZEVadTJoRVZVQmR4Y213?= =?utf-8?B?M2dmM3BFUkhPejFpKy9uc0E4KzhwdmozODB5VDhtWG1XMWFKSnhEcVZyaGtX?= =?utf-8?B?dHNWQU1rV2VYbWtjRk9ndnBQMGFkT3dQaDBxRmozNk5ERndnQkJnakF6WFFa?= =?utf-8?B?aTRwRmNrRTVGcXBpeXVFeUhONUJaR3hNVFJxTXBzbkYxRGNSSDU4U1EwUnYv?= =?utf-8?B?T1grVDRRbWpzemZnNlE1YmtwVzJuTmlzcTVnZk5xdFF3MHlERVJMUmRNK2Zy?= =?utf-8?B?bStpeFUyd3IxanFRQVNaSVVVZlIzeVVQeDZGME1XQXdhd1JobXFDajZaVU13?= =?utf-8?B?a0MwV3A5dmVUUjNLTUYya0FXSmRtMXp1WDQ4anRqR1BkeDdtQ2phWjVGQ0ZY?= =?utf-8?B?WUVaVXVHR2hQTEtFNit1V3ExNHAveXcxMXRYaE1sRW5yeVFHbXlqODk2MG5F?= =?utf-8?B?Uy9xWEh5eGhRUEIwai9lTzJtcGlQZGRscDVDVHg0VG5hSU5JZ2lqNEZSWEZt?= =?utf-8?Q?APoc=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?L3FncEtHRm1oQ2t0eHcyMmMwWnVyeHZwTUltanpGeDB3ZTQ5QnRpSjRRR2wr?= =?utf-8?B?TUg5bmJaMWdVSG42czVkd2oreEtLWFRySWNIRDdBUk1kb2ZicTQwQXcxbUh0?= =?utf-8?B?eVF5S1BVOTcweWtabk4vN3JkeWRYWnh6RUxRN0JjUjA0ZFFPN1RnR3FmTHBk?= =?utf-8?B?cHlLck1KY3pnbE5zVE5LakFJR0J5ZUFqM1d2YmNYcmlVUkRlR2t2OURQK0hE?= =?utf-8?B?MDJyUVY0VTI2aUlLckJ3TnBtN2J3cG9vMzA3WE42dzZrVGRaVDNIazRaVXVN?= =?utf-8?B?TXRndHh2d3piT0hFN2tVNytpTWgrd09WQ2puSzR0anFVYTlFYzNyTWhvUnNs?= =?utf-8?B?NVQ5OGJJTkFuZHJuNlVIUVlwbTZCcVpNTDBMRlJsaDNuZHM5SnVSME42dWIy?= =?utf-8?B?dXFVR25FUmluZzRaMzgxWndaMzQydGQxemlYd0ZSN1ZXdmN4S3REa1ZNQnZ5?= =?utf-8?B?a0Z0dEo3blJhSzJVSWx0ZXlxand6aXl3NGozb3lRNVJjb2wxWGJ1cU1iWTdY?= =?utf-8?B?bGVsOGoxSGJlZTdLRjJrL0VtUkp6WmNEY1pkZDVwZFNzQnY1cm1TVzYwYVFO?= =?utf-8?B?d0l2b2tkUGlnbG9BQ1NSQmNLNnBBQmZoWTczQ1U4ay9IYjZYK1NmMzkzRFd6?= =?utf-8?B?Q1FNNnh6QzZzOGRldW9ML2NtcnVsd1pCYVUvbnVlRDFxMTFVVWY2ek9mKy9C?= =?utf-8?B?UXNTQk9ZdStZOENiVkltcFZwSmFLRmtYaDRjV0ZsQUVoWFF4N1RQMWdlNXVX?= =?utf-8?B?dmFFU29aVDIrWnVlYjZ3b3NsSnFGUWswTmtLZUNzOEdNV1d1UlJjY21GMGRC?= =?utf-8?B?cTN4YnNud1l0N1NSNS9NTkZRNDlWOHk5Z2U4Wmo2RmsvOG04Sk9mdVpTSXlM?= =?utf-8?B?L2lkb0REWmhGN0hYZnVxRTY4K0ZUMUpaQVZpODBDRzY1Z0I0RkxtbUJEOFBS?= =?utf-8?B?clJpNDlwRXBXMklwT1FoTzlic1lSLzdTeFFwNC9VdnhFMElzTGNMVHRmM2Ji?= =?utf-8?B?Y3g3Qkx0VGE3Q3BjWW9NOTZvNnV5TkFoKzNpU3dYa3F6RnhvZkUxdGxQbUUv?= =?utf-8?B?VmJyeEI1S3NVZUcycm82NGRVY2J1SkNtWFJVMEQ4bHhYM3R5M3hwVHA1V1Z0?= =?utf-8?B?RUo4eU1sSCt4VEJHR3lHZ3ZHYjBOU2wxSEUzMHZRWWV2Zm9aQjRYT3hGQlg0?= =?utf-8?B?TFZ0NFZ0M2puZmdJa2gwTnpuM3IrQ0xjRmoyNVFGT1JLejZRbzdRc2p5YVEy?= =?utf-8?B?TjFNelVrRlRta1l1ZlhoMk52ZHpWaWdGSVl0UFczMHRkNHdaSzRTRUZJeTlQ?= =?utf-8?B?TitKWEdRTGVPZTJZR2Y1Q1VVaG82Ym96dTQza3VOY2c3aEZUOFRTMlBPOVow?= =?utf-8?B?SXZaOWZkaktTT3U4MDhFdU5MenBwdlU1OHVXRWdhOVRqL2YvSWRvUDVUNDUr?= =?utf-8?B?OWdBY1VtYWNtVHMzV1hqNGpiYXlGMHhaME45cWNZZHc3WXRRcnRLL3FGWlo4?= =?utf-8?B?eHVOUHp5Tk9VMUlvUW1zazZ0V0VjTkVqamxuTWJTUzNYM1FIMDM0VXZnS1JS?= =?utf-8?B?c0dlZXovS2ppZzJWd1A1T211WHJSRWdNMXBUaWVPWGZ2cm5ROG9pd2tiUFQ0?= =?utf-8?B?MHFucGNkMW9jekg1bUxkNiszSy8rWGpKaVliaS9BWmF0djJrV0NqV1NtdjZy?= =?utf-8?B?azkzQXlIUzErYjA3UHFPdHZxQmhYbm1Tdnk2VXluMFYwazQ2b1EyL1F3Y1hy?= =?utf-8?B?aDhoRGQrbG9vbUNBeWxxRHlPUjdabFZ5L3FQdXBRMk5FMFRNR0Y0VmRFeWky?= =?utf-8?B?MmtMUFZkakdXQmU5VjFwZ3JLc0FGT0NhQ200eCtuVyt4RW5QY1lGa3Z4czVh?= =?utf-8?B?ZWM1MzcrSUIxZ3UwOHNnWU9rR3k3aDlzcWlCZGY4V3BXMTFKNHZYd2I1RWE0?= =?utf-8?B?VEZkOUJxOEVBY1ZGZlZoNzNSaGhwbE5YQkh4d29FK2t4Yk5QWHduYUVUZ044?= =?utf-8?B?VDZqcyt2VjZ6dS9VNFpYKzJiaUZxUzI4SVhGZmV2OUR1TFU0ZnFId2RhcnNh?= =?utf-8?B?ZzBYeWFDZFdlUEthU1A0cS83MjRJdG1Zb0phaEFGNVpnRlVxVHpSN2lOYUhH?= =?utf-8?B?ZUlhWlhnSkFXdlBwdTJ6b3d1a1dqSGtwK2IvY3lTckt1cE9SVXcveVAydVNr?= =?utf-8?B?VmJYTVVpMVVUT1JnNkFKYllqQ3lsUG80eVRUUVlBNGlsV0hWQVVOdTlzU3Jy?= =?utf-8?B?c1ZraExoaE42MTNiWnVqVkVOdDRvMnF0cXNZRy9kbTVrVW9KaUtlbG1pQ0tX?= =?utf-8?B?dks5V2xuUHZYRHdIYnVsV0FsQU1zdWtjM1ErS3dXbVRXaFUxZGVvZlVwSmgy?= =?utf-8?Q?r3Eff+GmAJOAEJYJ4JcggWhbCpw8g9xggjrN3oO+uTuv9?= X-MS-Exchange-AntiSpam-MessageData-1: g//Q9J5HYlfWHg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ccff2bd9-5b58-4a90-128f-08de5f0a725e X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 07:46:00.7042 (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: +RbRdP3fvXLsPTgwhdTdaqmsLT4Urq4JTAoY0OeDfl29CNAINWthduSrSoZL7Dxu7zEFIvjbvw7/Pgr0LYHv0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9124 The current code unnecessarily uses, for example, &before_rx[0..0] to return an empty slice. Instead, just use an empty slice. Signed-off-by: Eliot Courtney Reviewed-by: Gary Guo --- drivers/gpu/nova-core/gsp/cmdq.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index 0743597779f1..b88ff8ebc098 100644 --- a/drivers/gpu/nova-core/gsp/cmdq.rs +++ b/drivers/gpu/nova-core/gsp/cmdq.rs @@ -232,7 +232,7 @@ fn new(dev: &device::Device) -> Result { // 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]) + (&mut after_tx[..last], &mut []) } else { (after_tx, &mut before_tx[..rx]) } @@ -241,7 +241,7 @@ fn new(dev: &device::Device) -> Result { // // 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]) + (after_tx.split_at_mut(rx - tx).0, &mut []) } } =20 @@ -263,8 +263,8 @@ fn new(dev: &device::Device) -> Result { 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::Equal =3D> (&[], &[]), + cmp::Ordering::Greater =3D> (&after_rx[..tx], &[]), cmp::Ordering::Less =3D> (after_rx, &before_rx[..tx]), } } --=20 2.52.0 From nobody Sat Feb 7 10:15:28 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011009.outbound.protection.outlook.com [52.101.52.9]) (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 C6C752BEC5E; Thu, 29 Jan 2026 07:46:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672770; cv=fail; b=A9qUoxIBbXXMMXLW9r7LxMigbN0ZZH5SOkmeyCM1xvWPS3El2GOXxbAngCWJN5eKCX/NxAITwG6JjiFjvSBtFqXHrFfAM08txdwNXhl7R2fe6979vdW7vr47as13+BS5eNOYXlnHx/M6aVDoSVd2fhUkLz6hwS3GSlrE4wFY8mU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672770; c=relaxed/simple; bh=Q0MvuLyq+5kXHV7MkJPU3KuhIcXsXgd6HX54OeaQsVo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=L7PeDOTWdMOZ/qT2M+h2Fo1og8Npd8+9FlhqspIaFn0rDTzRGpSrVaEJ3vPA5FFbE1J9jzi7P1wzujklYxa0RtTOw50SdfiaGg9q/6hmfRWVMMsvyiSxEuYAh5qDni3rzKb9BDubRFkFiaFq/+aBH+fvqZ0fUZJYEIWx2FLjyNU= 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=DI2wVU0m; arc=fail smtp.client-ip=52.101.52.9 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="DI2wVU0m" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rcTvR7DZw0CYYb4jmaAEioHUkOl/O77eUIEtfJTTvb0KpKLEGNgH9sOLbaATllnOodrC9SEb1RzmHUdUlHc9GAfY77nt7jIIHUF0u7lBUAvC1nwFBsBIxtMyT94Y+J0e+YnE3S/BZCOdQ8GOISFut9aAFiM2QOCsfCzCPdlc6ksjCu4H7WDpKNjSR6yxBsALTA+hx1agZiiOw2AzloDA2sI01kKVDJvU+/25tv6hAC7MfuKPBtWPIRJc+dJQZCOytJEBOFi++j1g3+3975l0veOxs79bkBinEnmEp/1OQrN7ONi5H4FD8B56jQUI8lp0jAx7Lq+EDVUhKkjnB+Ev8Q== 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=ru1GXJ4TLm+pn0FtBACF4a3xa5wniCGSE6gp36h4d2I=; b=sHwaulgxdR80qV309XqgMQaDmrVf/OiixnyseyYiXiFigXA9MKVSQkJgvcCSchkRrji0fz9Ml5/KsX8WPZc3GGAYDcFrsHSR4JvgGKhSUNMQLMRw+ZhHmxw7QqIUYCn84pW/2mWFMS3ZKGqizMRHdkuzXWBIwMpr5qypq+D1AN0Z65brnxIQTWvCFzJ/eJ+a1SlcpKBY9DIo5YsDl2w86BD2EAkmGuHfYkYaxfL9OBuCCZgFPC/cUoXK7ELJ7wh4W81v0OhqZzZ0rGanc5VWPkaM5JedyIeSduvFIuht+DHjes/AqMafHxxPlw7P0ObzIbL5TxJL0Bx6clOmYxbDww== 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=ru1GXJ4TLm+pn0FtBACF4a3xa5wniCGSE6gp36h4d2I=; b=DI2wVU0mr1HbQQC4hjwzr+xN1ngzSHjfxmECi9+S35lrA9O+6paqqEfR2d9O+6tj0pkeiwd1CGLn7utu6oQ6kBaUnGpVvztQYFugrMcGTPH1owOR8N2ml+BJTEpfp9g3s7pRKzXqy1mEyZA6X2V/lhIFaeESZsCoHtKFTxtcgKcCmlv24t+wJIDDtrwW9BNxPU+acyKHRqyjPFBZGAmh46FrnzyQw2OYUe5H0w/1mrFGTctSF/g1DSKLoAZnJCssIhbjDp6NCkABOw23d1GlPE75LApxzCdaavffDS6r+dA4iTAF1BwRrQKjeNe3/em1xqZccCcDDa7wLpGBGjsdNA== 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 CH3PR12MB9124.namprd12.prod.outlook.com (2603:10b6:610:1a7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.16; Thu, 29 Jan 2026 07:46:04 +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.010; Thu, 29 Jan 2026 07:46:04 +0000 From: Eliot Courtney Date: Thu, 29 Jan 2026 16:45:02 +0900 Subject: [PATCH v3 4/5] 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: <20260129-nova-core-cmdq1-v3-4-2ede85493a27@nvidia.com> References: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@nvidia.com> In-Reply-To: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@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: TY4P301CA0062.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36a::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_|CH3PR12MB9124:EE_ X-MS-Office365-Filtering-Correlation-Id: 75070a3d-b19f-4cfd-1997-08de5f0a7488 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?ekNpNXg5TzJaNnJ1V3FMNm5pb3RkQnAxWVpKeEtQYWtkU0REV0lOalExYi9m?= =?utf-8?B?M1NDUE1OY1JKRndJR0ZMd1JMc0VZTWMySUNzc2ozZlRkNG9TSkwxeGoyU3Fo?= =?utf-8?B?eExMeGFVcFYyV1R3bE1SRXMwWmdsS0NubWdkQzdoQ0xDc3ZEOEJNYVRKMXpk?= =?utf-8?B?SVkzeURKWUh6UUFTODlvY3RSUDJETzNiTFB5c3Q4dlZjbHF1d2hOWHlGWmNL?= =?utf-8?B?K2JSNGlzaURMWE01L0xXR28yQysyWlFZYTcwOHVjdExJRXRnb3ZuOXRER2tO?= =?utf-8?B?a2FadTFtZmVOUjFBV09aSWNodUNPL05RMHRjMEt2L2RRcW0way9kTktyL3JJ?= =?utf-8?B?aWIvMngra2lRWnZtTGtnNzduNERvYjBrWXR4TnlBQW5OS3lMNEI4T2I0R2Fz?= =?utf-8?B?MHBXV0I4M3Y5Vm8vRWtsdUVPM0RydnRSbEdkNmZWdDlJTDhGOFNRaUJTVEN4?= =?utf-8?B?YW5RSk5PT2ZDaFYwenVZL2g1a2JYWEl4TUlENTIxam1ibFpOdUpqMit0eXk5?= =?utf-8?B?dm53OEFVMWNYNlpWeVkxckVSZjE1M2tFNndKd0x4TmpXbVp5RTQ2MzJUMVdP?= =?utf-8?B?ZlFQUHlDVlBnNU5NcXArbG5ZU0lCaG5oaFpaV2w2VWM5S2xLL003SG80STFH?= =?utf-8?B?b3VIUXkxMWNzL2JNRWp5R29xWkF6bFVleFlNZ0FNMlVVdmdnOXNYNy9uaFhs?= =?utf-8?B?d2tXTE9TNTlHQlVXTmNFWnN0THUyL1BaR3JMbVdQdVFRVmw3TEloZm8yLzFF?= =?utf-8?B?WmtsYW1GbXcxUW5lRjBzQVh1eWpzbXhwWnYzWHlBaHl0YjUzMFFvVFNBZDFZ?= =?utf-8?B?czI3ZkpveHhkQndXNUdNMFg3WFlWYVEwejRIdmtLZjJmejN0UmNjVE9XZUlh?= =?utf-8?B?elI4aGJyK2s4c3lwNjlrS1gxWUxqTFR2QjhoWmI5MUdsczFTTFRta1luazNP?= =?utf-8?B?T2w0R3ZRMWtyQ2R2OXpTWUlYQ0dxdFlOb0ZIOEJJWW15a29wQSszc0MyNHV2?= =?utf-8?B?K1R4K2pKbmtxak9SQkhkZGhmTVRiKzVtKzNkYm5jTm5BT3RMRlc4U3IwaFgw?= =?utf-8?B?bnErdkFmZUx0YkdUajlqVGRQdHlJSitjU2tFbDhkMmJySWRlWEdrNzdTK1pC?= =?utf-8?B?cmJjcWNKVEQza3AyMDExQnBhVWxYTTJtTmttTmsydWtXSDBteUVZS0Q3Z0Nn?= =?utf-8?B?M0N5WExHbWFuR1ZzcDQvL2Y0R2Q1WnB3WlIrZE1NL1dSN1VlYkFrUEFCNk14?= =?utf-8?B?V3lHOTFhQjNjVUw3SzVhRCtsZVRRLy9xOHp0ZG9sMzZuMGRyQVhuYnA4bFI0?= =?utf-8?B?T1FaWFliaG5nNzFSYjFtQnZISlRGNlg2WkJsMGRlRHdmWlkza1ZhQlVYQkZM?= =?utf-8?B?eWtTUlVyR3UzcXdBZTJKRGNvRDY5RzhzNWxmTTlqYld4MWFwV1F4N3VFS3ZS?= =?utf-8?B?aDZUMWc2WTEyVmZPWnJ0T3VXaExTS0Fnak9kTWpReEpIRDZDTDRYWkJ2aXdX?= =?utf-8?B?M1UwZ0xiR044S2N1OWpNQzFHdUk4TUFrZkZ5U25Sd2Fpa0RjYTFyL3RLS1RC?= =?utf-8?B?VzZES3VHRUVJU040eEFmUkpJZEd5c0luTDRsbW1FZ05wS0FBN0lxWExTQ1Vw?= =?utf-8?B?TTlnMDY5NVBSL2l3ZWRwczF6d3VVOW4rVHVMdG9OR0QySU1XR3g0OFViVnFK?= =?utf-8?B?RnYvcWxTcHlGZ1VqS0w1RmZ6WkhUdkkwUDg0UlFnMVZnL1NGSEVNa0R2WGtN?= =?utf-8?B?ajVucTVqdU9QOFFvMFBYcXREem9qWFVHWGxkOWI0UG8zdjNPRFpUK0h4a1pI?= =?utf-8?B?eU1mWVRxZytJOXdBZlI0cm9hb3o4TG5JaGdPM3JOQm9BNXA0VlI3RU1qeUZy?= =?utf-8?B?KzRqUWVGaEdNS1pJZnE3aFk2ekNTNm9NaklnUXkwTndLK3FOM2J3Qkl5VXlX?= =?utf-8?B?OTdnemtrc01PbUJ2WlBaZEV5ZkhFMWVKWDRhSDlFSldDYkcvTkgxaDIyUUln?= =?utf-8?B?WnRjeTNMTVlCYmlUWWFDZlo2VlJQYXFXbVVtSFc5TGdhaHpIOWZNQ2x0bHND?= =?utf-8?B?aXMrWVg5djBIUXZjMGI5QjBSQzJWSFJxTnpOTzVmdENucG95bm1nRnlydVg4?= =?utf-8?Q?5wv0=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?MWZyT09HR0RjUHhkUXhSSW5PRjdBTkgrdCtuWmNnZjFnNW1qU1VsN1REWEFz?= =?utf-8?B?VVdUWUFvbitCdE5Ic3FueXBLZHc1bmp5NWJETngxd2FoY2JSYkViUXR6UXhs?= =?utf-8?B?NDVnemQvMEp5ZmlHek9QZUNrTGhBc3NOZW5oakZGVVdHUDZtdzJrdUJnVTR3?= =?utf-8?B?MVpZRlZtZzJaRG9mNnlKVlRWVDdPSnBhOHJ0WTVYZXhYYlNXREpINFZjdXNQ?= =?utf-8?B?cTRSdGhwQVcxNEpIZXZaa0Viak5uNVZ2cmk0WXppUit0dUNTWHI3OTJoWTFO?= =?utf-8?B?SDAxN3Q0Q3RRT21Zak11NXhqeE80eEp5QXJjTWNFT0I1dElMMXVuS1BtL0NQ?= =?utf-8?B?SDNScHROS08rejhtQlJSNUJMamhZZEtDd0lvbm1iQjQ5Nlpuc2JjNEpSVUo3?= =?utf-8?B?UUMxbWZoTXJmaDl2MTg1OXBQSUZQWHg4QWE4TnV1VFMvQXNLWXBoL0FBclp2?= =?utf-8?B?VVhYQlBwUWZ5ZzZDTk0xZTZIYjlENjM1eDBDS1pPSG90WHRaZkVyeHBQZXlK?= =?utf-8?B?dFRUTUhUb2xxajZvbjY5L3RqYm5MNWdhNUlrcXJhU2lKWDU4UDU5VFR2MkxB?= =?utf-8?B?eGE0MlZ0Wlg0bElTVFNjUlYybTd6OGRWLzJHSGY4Sk41OHZLT3VPeTlzaUJH?= =?utf-8?B?U3VkNEhqa2tFM3pGWVFEOWFvNjBIWjcxaVArblVjQldrRTVRUXlxcVNneVVX?= =?utf-8?B?dUt3RlNtckpySWxuMEZzTHZ3QlA2bVY0NlJtandOQ0JvT0FyS05JaFg5S01W?= =?utf-8?B?Z3RUaXljc2dDQUhuVzBhQU4ycFVQcUFCVkpOOXZHdjQxalBuemJJN0VxRENu?= =?utf-8?B?SHdlWUMyQkd4cEZNRHBVdlU1NXpZdU83MDArTlpRRUkvYWFaSVBhcGdaRnl3?= =?utf-8?B?SVRKSWpzSmc4UkdkQ3RlR3dyQVg2cS9zTURDMmtId2lCWjlWTlo4Rkh5NFA5?= =?utf-8?B?K0RVdXl1RTNCZzBDMmlqaHE5cnZkQUxsc1pmVG9QWWxoTmJiWmJQSTVOOE5o?= =?utf-8?B?V0tUZWlMRUdaY0grY2JUQ2FJS0QwWUd4ZlF2NFlIUGR5QnR6aXhsbzlKb2NO?= =?utf-8?B?L0VDNnFkNUlGOFlKdVlVS3ZxTkNsWTZBUDNxNExPM0hmZTBpZGJNU1Q3cFJR?= =?utf-8?B?ZWVYZFpoQ2NWbHU0NVh3ZWVFdzN0c1laL2hsUWJFYmRzcDE4MmxhaG11N3ow?= =?utf-8?B?MUtLSHd6YXdqSFpVY09NLyt5SmE2empKOVBPdU9hTzdzRGMyeDdUNUhJaWkx?= =?utf-8?B?WnJNN2Nteit2TG9RUnBQNGU1VjJIeTdpOEl6SEZvMHlPUEFob0oyWTVHQktH?= =?utf-8?B?QVM4dllVRlYrVlNTTjl1SnhMNm1wcjlPMHdSc1lLVHRGRkZ2bU1YM2w3WVg1?= =?utf-8?B?WUFrNUlWeVdnZVB5MTBlZTJWaktzYWVkTWF5dzNxU3J2bGp1WWd6OGoxN2RU?= =?utf-8?B?ZXUwdkZ5UUU5Rm5rV3hUbmIyMEROUHcxcDNWMlM2MVpIWlVOcDlaYi8yc29P?= =?utf-8?B?eHJrSEoxUGg2QW1XU0xtMGRHNElTNENPTGJnODZRUytWZFB6SjhNV0NvZjIw?= =?utf-8?B?UFlaT1A5NzhEQnRuMms4d1RaaEVqVkdQdTBjSG9CN0RUZ2djMUpEV2Z2Z1dN?= =?utf-8?B?MjJXaGVTVWFqU1hWRW1MR1N5c2VodkN6NjFUdVZ3b0N2R1lZTTJGSGwyekR2?= =?utf-8?B?NnFlRWhFaWR1ZHVjY3Y5aXVpZm5mTS84N2dtV1hoK1JFMEh0Z0VkQmg3YWkx?= =?utf-8?B?RmFaTjFlN1ZiVzI1alBwY093YS9MRHhXeHMyQ0c3Vmd4UHg1NzV3Wm55emRk?= =?utf-8?B?MVFESlFOc05nbk1YcUxDV0FRRElveHJpWVFseEtOQ2NMUkhFcWRHR2t3Nzkz?= =?utf-8?B?Z28wanpIdW9ORnd4dnNTUGhXZGxZN0Z1UnVwTDUvTVdMTXcya1o3ZmRsUWVB?= =?utf-8?B?TmVuZHZudFE4WGZhM2dvWUJmL284SzA2UUhTYVJROFp6ZExSa0Z6ZUE5K1F4?= =?utf-8?B?aWlSbGliQnBDNVkwOTZDaTI5RVRwN0xRS3pjSHFVV09iM1g0cE1pRFNIUFRY?= =?utf-8?B?WEMyT3V3SStkNm8wRGQwemdNdkxBS200amk3ajVTQ2R5SHFBL0lySTRMZzkv?= =?utf-8?B?aysrbFY2TzBybHdHQ2FGY0o0dXQxWm4yRW1TUEJaOFBoK0w3Zk44ZVFPZHNr?= =?utf-8?B?em8vemx0Y3lIOUpCYVhuT2NQWFN5YjVqbkthMi9FbjFwaUtid0gzNlRRVTJM?= =?utf-8?B?RlBUUld1TjRCbFg3bGZIRGFydlFZTmhZd05sOHVTTUIrWGltUUpsWlBqSHB1?= =?utf-8?B?eEFYSTNRcnBmK2FoZm5FbzUxSWsyZkVIOVduVmpzbW85N1VNekJRL0laYUxF?= =?utf-8?Q?im3d6z8oiw3gNYpP9EW3rFlQBDeC1BXmHts+r28MvkF9h?= X-MS-Exchange-AntiSpam-MessageData-1: CyroBxxAu9beag== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75070a3d-b19f-4cfd-1997-08de5f0a7488 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 07:46:04.3456 (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: u8dMppnL3o7yAlzslaLILcA5QSH1BBmJxsmSdoHyGa18FWXna4i1oOjQnkk5mwlwLK4XD+8cZkDwVJ8tV6h4Nw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9124 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 Reviewed-by: Gary Guo --- drivers/gpu/nova-core/gsp/cmdq.rs | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index b88ff8ebc098..333bf0125d74 100644 --- a/drivers/gpu/nova-core/gsp/cmdq.rs +++ b/drivers/gpu/nova-core/gsp/cmdq.rs @@ -227,21 +227,27 @@ 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 []) - } 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 []) + } else if rx <=3D tx { + // The area is discontiguous and we leave an empty slot before= `rx`. + // PANIC: + // - The index `rx - 1` is non-negative because `rx !=3D 0` in= this branch. + // - The index does not exceed `before_tx.len()` (which equals= `tx`) because + // `rx <=3D tx` in this branch. + (after_tx, &mut before_tx[..(rx - 1)]) } 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 []) + // The area is contiguous and we leave an empty slot before `r= x`. + // PANIC: + // - The index `rx - tx - 1` is non-negative because `rx > tx`= in this branch. + // - The index does not exceed `after_tx.len()` (which is `MSG= Q_NUM_PAGES - tx`) + // because `rx < MSGQ_NUM_PAGES` by the `gsp_read_ptr` invar= iant. + (&mut after_tx[..(rx - tx - 1)], &mut []) } } =20 --=20 2.52.0 From nobody Sat Feb 7 10:15:28 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011042.outbound.protection.outlook.com [52.101.52.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A65C137A493; Thu, 29 Jan 2026 07:46:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672775; cv=fail; b=FgdX9hsfQ1brQJ/d30J8nfyZWAHeUI4lKp4Wg3rO3hRhyqiOVNQ8GD8BBk0COAySGelFSmeGLfs6gYGTPS7W1Oxw9B1iNfVRM1l7JxGZK740nTlnppURPRVuR4X3qwuKHpAtsZNtvIJebxMGjwG+8KVsX2rb4rNDlWYfSLrVMRc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769672775; c=relaxed/simple; bh=b4xpKXiYeTKqNeBlNSwjQcsv6jUY/jtZTgfJClczaiA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ILsxvaS5ymZu4q+OpNpCv2CqjUOAwBooTtcAW8ta7k1GXbgEPPYprXatt2pohng1+YXPJHjLMrf51RXO4opUkgsd55UaIM8m95oegt3+sV5ipUa7Cj4qEf/mY7WJF8+s5tXi33e61sT5zWMms0o4MMebki/6OwuFR5n0jKpZVAc= 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=q4qIq74r; arc=fail smtp.client-ip=52.101.52.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="q4qIq74r" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dVf+qiNGqVqji1Nwv8l92OzHohOSkmtDFbuMLuqJ/pWR/hIPzt1CHDbzNosIsfFkseoCMFa7F3rMS/dwHoqdzKmWN4Eh96ygrIlJkdw2oQX+D/wR1KbEy4ao0JmE6GjZR8ZoIEKoGNE/78r2xbvCBuJznqAcvQLOYHc0RCbLFBnuRSOA1vspvRSeK5qorLuYK58PrS8TDq14irdnpGBT6SobnZuRdwl9aykNf4epvTXj8ci/TvodjPrd38shDi2qY9FflV2GbezlNG4iKwaM+3cXo5UzlaJ17uSA8XyYJJz+X3GXs2CVbXZQ2DtAsJvJVaxoR4yXYv/54aLDmuA8UA== 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=ZkYLE1GCV4fhy/ZBsygC9VidZlpmhfG27JGnERN8Ics=; b=GcROp+4Mn4uUVqCbUFxXLfgGiurmoaOdKJG9YlA8ZSeOAuPYd56BLdzXHa7t2790tAmKUlQt95wAsZcAg+1fCbgC0W6u8e90x/d9rrNdPlcjTMHxW9J4JmMmZHBJsBZuZzzyadCWQJpZ6ACJB3Go0UImStjD6pihBi5hA489pTzBSoMoetW/6pz5H7j/ufLDzhnI3tD8OnoHw6GAxcmYauNALnO05xsp+0mv+fCLnpXH5prG+DiEZEoPwufWQzsRsx0z+b30zAwkovCDNOhhAt/l1gg/C8PuD6XlIvJI2prvViiGqAgL2qGrmMu83on+c07fhyFMaeb9A2LywkQdAA== 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=ZkYLE1GCV4fhy/ZBsygC9VidZlpmhfG27JGnERN8Ics=; b=q4qIq74rG9fG6ENY/yawZMfmPueh0I2KvOQMO6H8uqQLK3KJBpqOHhlpoOOpayEsEy9NIclH6hYL1vvfctByxwpLFGgT4yIdzcgOEgQKw3aZD4jxl58yhRzdZ35CfyvyhZmMewxz1t6UD1uzW98Ue+p5x0Qp7TRyos7UaB8U4Pl4t9PKQ8VwVe4ntDSb4w2k+wa2UaIrlS1shDaLjfyzYG3gZWdu3aZbQBXj8VIqd5hbEmUyM6y8Cj3BSv+xa7Ehw+DDQJi38f37oCxdVktYC6zAAotw0T1e1mPbeIILNVsHXdAu9XHms5BUMchkLdQ+Ei0BWvPw0aJ0ZvPQfbL/ew== 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 CH3PR12MB9124.namprd12.prod.outlook.com (2603:10b6:610:1a7::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.16; Thu, 29 Jan 2026 07:46:08 +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.010; Thu, 29 Jan 2026 07:46:08 +0000 From: Eliot Courtney Date: Thu, 29 Jan 2026 16:45:03 +0900 Subject: [PATCH v3 5/5] 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: <20260129-nova-core-cmdq1-v3-5-2ede85493a27@nvidia.com> References: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@nvidia.com> In-Reply-To: <20260129-nova-core-cmdq1-v3-0-2ede85493a27@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: TY4P286CA0109.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:380::15) 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_|CH3PR12MB9124:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d9e1b3f-ce02-4d2f-b2d1-08de5f0a76de 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?c2JNbXFvQ3Ava2VnOVM2bVcxcnArNk5FVDh2S2xMK2dXaEMza0pGNXBjWTRz?= =?utf-8?B?TGNXQjh3TW15S2lXSDFCWkJTdWo3MER6ZG1HUmdCQWZCbUk0QlJZclFtRDQ5?= =?utf-8?B?Tkw3cENFblJvN1YwVDhheEU2UlVVYkQreDhmM3lvQnFzTHlKNlo3UGVodXE4?= =?utf-8?B?VVViNG1pZ29KVUd2TnNBY2JNOXUvQ1QyYVB1Q09XeUdyVGRBRmlFS1o0S3pT?= =?utf-8?B?ZjRnck1sRm9Zam5LdWx4c2p3eXpHeUdxZThVRTdxYnBONUptanVzT3FNcmxM?= =?utf-8?B?ZHY4YkNjMGZCcUVwbUFIU3FJTWdEeTNVcEdaNm5lSHN2TkY4MXM4Z0VWb1Vu?= =?utf-8?B?ZFRINlhGNE9iQSt0KzFTSjJIdUdNcXhtSlVlUXFTZ1RZQ29NU2JVajNzSkdF?= =?utf-8?B?YzVKbURKS3h3TW1FbnVsbHBVN01rL0VjSmpnbE9BS1YyeHIzd0dZanp4UlV2?= =?utf-8?B?L3FndHh3a1YrcWE2TDc2SGRnVXF1cGt6SkhoVmNnZzNvbFBjVGV4NnZYdVdP?= =?utf-8?B?ZGJxc0w1dDg5ZTR3enpGSFNGSWZKNHQ4cHcramhmTFY3eW1YQ3RPRkx4L3g4?= =?utf-8?B?UElZdmpxa3c1enZZMktiR1Q5RDc5Z3RkeUpsMEVzbmJzWjZ3dTZERkh4ZTVu?= =?utf-8?B?ZjlnK0UvVGtYYld2eW51L0xaVjhBb0FhMlZPa0srZEZ5VWwwWXp2bkVISHZm?= =?utf-8?B?L1BwdkpoODdtTXlEVktRcXhWZ0o0elpVRUI5SmhUVTlQY2xOV0pwbysyUmlZ?= =?utf-8?B?MU11SWwvVHBScEJBeGJ2bFg0MUpqTWkvMXZtQ0QwNzg2alRHQ1d0UnZieGdj?= =?utf-8?B?aEdNM3ovQzA3ZFJGZk84NTZZN0Q2UXRibHN6UDZxRlZqZFBVZ24zSFJUUEpO?= =?utf-8?B?SkhUM3kvUVRlRGlKZmtjTkpLYVVjdXVVUm05UGt4bWZsUWZESWY3N3Q3bjFv?= =?utf-8?B?N1J4QkRub1BINjRvOFljK0gwelZTcG1vRVhPSkk3RitGQlpmYVAzYmlhNDBW?= =?utf-8?B?YWxmSStzeUZ2NGxjakFOUUw5SmdlaVlYK21DRUhXVUdKMUc4TkhEM21GMWhR?= =?utf-8?B?U3VUWnEzTlpYZXpmRXhQM1IxQ3pPVUpLRDNFY0ZqZHBlYklCVm1WZFFhY3cy?= =?utf-8?B?UVJmVVEwV2IxZGVraFNHSGN0c0dZbXJKTGs5RllUdndoYUpJeHoyRlhncGR3?= =?utf-8?B?VjNHOXBaemNlTWx0ZWNwS0htYWx3SnZFSTFHVEhXU0Y3Z21YcmJDZjJpVDFv?= =?utf-8?B?ZkVHL2R3U0o2eWVpaktJODFINnFaMkhCS3FzWFllck5TUm93QzAxbks4TmZs?= =?utf-8?B?bVE2NzVUMVA4YkFRakx5bzZSYi9DKzBBQk5pMlVpN21IWDBIQndXTGVxMEtV?= =?utf-8?B?QTQwOVUwTG5GcU00anlLNEtSMlNUdzViYUZyeUJ6UTcwbUwrNDNYSk9mWjln?= =?utf-8?B?R21HTkhybk1wanpRczdDTUp5Szl6UGdnTTY3VDNjKzI5VU1WM2pLd3FFNVVG?= =?utf-8?B?RVlmeUdrdnZiUlJLRXVDSjRqU0d0aitWNUdZcDUrUjdDQjliVjV5bENhajhz?= =?utf-8?B?ZXNjQW5vRHJUakhGd0dxbGMva2tUbEZYcG9lYzdyNnBEWjhRTkFFL0MvVUxy?= =?utf-8?B?WC9tNnVkWG12TUtVN3IzOVE4Tkt5eERCZTBUVjVnRDlnLzcvRlk1NCs4emlG?= =?utf-8?B?dlBhalF2aDBzSlVOc3QwTmxubHVzQXBtNmIzMUYwSGpOcjZsd0lJbmJTOG9I?= =?utf-8?B?cDdBM3JvWnRJcjZzZmtmREFXd1JxaStWTnB2cWZFOXA0SEZSaGNGS3dBSGFo?= =?utf-8?B?OGJyaThWMlFxaTVMWXlwbEgwUzczUGVnTnYrSk1KUjVyNmt3WG1JRFFKUGEy?= =?utf-8?B?OE91TmFrUkJWdUs3R2kyY1c3QS9obXJpYWlHRXJaV25lRlZGVHhWWFJaQjJn?= =?utf-8?B?TVFvcEtzZXVGNnArRm4xTGRZa1FEMWgwUktSS3dhayttOC9pdGJOZnhxbVFR?= =?utf-8?B?ZkllN2pwdlBFVk13SUM0bUo0eHBwamVIbmJmcG9oYmE1T3lOWW1UalBxTW1Q?= =?utf-8?B?cTVqcEZFUmhjWGowTTNwWENvNHFpRlY4aEE4QStQa1B1MnB5c3YvVHJIR0FG?= =?utf-8?Q?ZYUk=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?bWNLZVhTSEdNekc5UTF4RkcvbThDY2I2dTRBdG5TSmdJb3VRVkNZa2hTeVBq?= =?utf-8?B?amFEQVRPWlQ4SytyQ3RxdE1mQVkrWWVGVElOcFZhZENhZ0tTOC92enhPeDF3?= =?utf-8?B?cFJkVFc4NUNyekRBZ1A0ZHY1TTVOdS9laWZEUTFPZzlXQndtYkd1VWgzNTYv?= =?utf-8?B?N1U0K3l0MkpmcERkZDZrMlpwYytvbU0remlaQTZvQ2VpN1ZlYnVxd2lkQ29Y?= =?utf-8?B?U2RTSWltOUFrbnNzZHJtMmZFNEJqTXY0VTduQnliZUFQbmdnNERWS1J0MUQw?= =?utf-8?B?MDlhSEtPVkdsU241MDhRWUdTWFhVL29obHpaUHgyVFVFZDNWWXZObFpSMmdk?= =?utf-8?B?MHRLSENkL1hWK0xvS3k3YTFiNU9jSmU1ZFZtWWRLU2JCM3BEQStqQ0E1bGVW?= =?utf-8?B?TDlpa2taQkhsbktwcXlJUmFkaXFXbzN5Q2YzZGJUZ1VQaXVJL0dXZ3BZNnNn?= =?utf-8?B?SEZodlVXNVBVV2gxWFJjbllPbEtscFNlVXZpRjRkOWFKQWJBamR4REtsL0NE?= =?utf-8?B?UmpwalJUd0RsaUg5R3B4L0IvaWlUQllGdERjSDBvZlVSRzZTcE5STlYxaFp2?= =?utf-8?B?eEsza29PZGpHOSs1aUppTkFYbk9SM2Exc1NZVnp6Q1o4aFFTckUyc3pmK0hM?= =?utf-8?B?NWQyUXNnS0xBUFRvaTdJczlNSUdyVGhCempDZUIxSEZNS3FKQXVLRDVUd0E0?= =?utf-8?B?Q2RwbmxSNDlZeXRicm1oV1Z5UnZ1ZlJpNDAzQTIrT1BMNWNNSFBtbnhnYXZh?= =?utf-8?B?STBTS2oxVmt1UUo1MEw1OXNqeDlkTDVWM0dISkdjNU9EVWNBZS9QWjJlR1pO?= =?utf-8?B?VWxXcUR6OG5qK04wYUJhbFRkOWVDMGdMM2NYejd0d3ViazdkSGpwV2M1T2ZQ?= =?utf-8?B?RFJzQnd3bjFCYVZFS1FpbEhTZEI4TXdPWHpWNWdmbTN4MkNpNXdLUGtldEdO?= =?utf-8?B?MUlHUTVKYWZTTWwxZGk0L1FXUitBeUtCc1g5MDhJZmVweTN5N2pVRHpxWjdO?= =?utf-8?B?ZktiNGlvWmNxT3ZHTnZDclEya2YzbW9mT2RpZkIzMzlGU2NXNElvOW8zaDA3?= =?utf-8?B?VWE3ck0vOUNiRTlhbGVQUkUyakZpLzlBc09nUmlVeGpwYUczQkYyM2JKVi81?= =?utf-8?B?MnRPMjRidW9lYm5MbFBlZFFtc0wzOHIxVFVLMzF3RFpNVmg5ZFF2aE5BVktk?= =?utf-8?B?RGsweEI0clFvVGcrYWRWdjNIUy9TTlFSbTYzMFFuTG56ZkREMDViZkgrejVT?= =?utf-8?B?dTl0YlFtVVpEdWNDRVVBYmUyeVNub2hoVUU5TnFWSEJpbHRmYkVuNllqdmRH?= =?utf-8?B?aXUxd3hDWTNrdVFHNzVnS041a3FBWTFadGhZaDhTSnRyTUJhSnYxRFhDZmJy?= =?utf-8?B?L3hwaWI5QTlrVGZZZnZDemExTzNvbXZWVW4vZjRwdEFwSFBMYkordy9WVWt6?= =?utf-8?B?eWNSMmVWZzJhRW9yeE1EWkRqcEhINjlMQmtqT05oNWtvRE5kUm50cmtjRkFM?= =?utf-8?B?T2x2UWtmaVVabmxvZng2M0Z0TDFJcWRTR3IxQmpWVGdXQlp2eUp0S2VnazJx?= =?utf-8?B?emhoZUpFRURVakc1c3NPdllGbm4yaTJjVkJVSmdsd0dJYkthSEQrNDAyUHdS?= =?utf-8?B?dEhQc2tYNFVSUnRYQllMMS90RUp1aW96NDJJUm11aTFrUWhNaE16UjVvUmRx?= =?utf-8?B?eHRxUm1JenZja0JBMFBodzl4UllsdHNTdVRXN0Q0VmJ4Y1QwT2p4dHhpd1VM?= =?utf-8?B?cEl2U0ZUVVBsbXV2SmNsdHdRaUJ4U1NmMFdMVTFzckpLTk1OY3VucmR5U1I3?= =?utf-8?B?OEZGTnFOZ3lTVng5alFwcmlZcVVwZEg3bnBiMGIwY1Z6V0JienNPcjl1REFw?= =?utf-8?B?SjFlM2JyVkJNejJteU1ZbkN4cE5pTFQ3MjZPbWI4UndDbExEQ252YjFIUEhG?= =?utf-8?B?ZmZqZ1JwUE5FbzFKMnJXa0dlQUVBQ1FQM2tYdjY3ZFVFNWNraXVyUGkvVVNM?= =?utf-8?B?bEJSQjRRY01ZQ2dkZTZjb2dFRDAySmVYcGZjWmY4dFg3eGI3NzlpMzZtcFBa?= =?utf-8?B?NnJ3bE55ZGZ1WE9XVUFUczZuSUl5WFpWY2h4V3VhNC8vRXpWenVRVWRKYkFJ?= =?utf-8?B?c25lUitUYlBMdDJNbXBWdVlRa2xnNkdEYWc5WTVsQ2tKVUxuemxDNXA1MHBE?= =?utf-8?B?anpYYzB3YWRtZDk3OWlpVE5zRjNiZDV2eHY1djB4cFFBcVBDNVIrRXpTWjNr?= =?utf-8?B?QzNBYitMTTV2RmdVK3IyV2V3VjFUU1ZzOHplMXRCSkd2QkV6TDJUUzcxVkV5?= =?utf-8?B?ZWRmMWMyeThIaWhxdk1GVlY3b3E0VmdNcTJ1NGcwbHlDVHVtWjdGYmRKU3Q5?= =?utf-8?Q?xzQXAvs51sjF/4F1xqmMoYHM5VQ1KSdhvRYQdXQZRpsGV?= X-MS-Exchange-AntiSpam-MessageData-1: 70LjjO+i+0HBKw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d9e1b3f-ce02-4d2f-b2d1-08de5f0a76de X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2026 07:46:08.4408 (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: dfg9EihUo07uROS7xtJMViaC3tUlIkd4er5rqxpJuiZVwiuuMoH8OawL+dNrksn6v+E4yGlOlEQZ48hOGeYI+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9124 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 Reviewed-by: Gary Guo --- drivers/gpu/nova-core/gsp/cmdq.rs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/cmdq.rs b/drivers/gpu/nova-core/gsp/= cmdq.rs index 333bf0125d74..16895f5281b7 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,13 +264,19 @@ 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`, `rx` is `< MSGQ_NUM= _PAGES`. - let (before_rx, after_rx) =3D gsp_mem.gspq.msgq.data.split_at(rx); - - match tx.cmp(&rx) { - cmp::Ordering::Equal =3D> (&[], &[]), - cmp::Ordering::Greater =3D> (&after_rx[..tx], &[]), - cmp::Ordering::Less =3D> (after_rx, &before_rx[..tx]), + let data =3D &gsp_mem.gspq.msgq.data; + + // The area starting at `rx` and ending at `tx - 1` modulo MSGQ_NU= M_PAGES, inclusive, + // belongs to the driver for reading. + // PANIC: + // - per the invariant of `cpu_read_ptr`, `rx < MSGQ_NUM_PAGES` + // - per the invariant of `gsp_write_ptr`, `tx < MSGQ_NUM_PAGES` + if rx <=3D tx { + // The area is contiguous. + (&data[rx..tx], &[]) + } else { + // The area is discontiguous. + (&data[rx..], &data[..tx]) } } =20 --=20 2.52.0