This series fixes a few bugs in the GSP command queue ring buffer implementation in nova-core and also clarifies some of the comments.
The ring buffer uses read and write pointers (rx/tx) to track which areas are available for the CPU vs the GSP to read/write into. In the ring buffers there were some indexing issues which could end up causing panics, so I fixed those and added more rigorous proofs of correctness in the panic comments. Signed-off-by: Eliot Courtney <[email protected]> --- Changes in v3: - Use `&mut []` instead of `&mut xyz[0..0]` for empty slices. - Simplify driver_read_area by removing unnecessary split_at. - Use range notation for comments (e.g., `is within 0..MSGQ_NUM_PAGES`). - Fix up branch order to mirror existing code. - Link to v2: https://lore.kernel.org/r/[email protected] Changes in v2: - Modified PANIC comments to match existing style. - Link to v1: https://lore.kernel.org/r/[email protected] --- Eliot Courtney (5): gpu: nova-core: gsp: fix incorrect advancing of write pointer gpu: nova-core: gsp: clarify comments about invariants and pointer roles gpu: nova-core: gsp: use empty slices instead of [0..0] ranges gpu: nova-core: gsp: fix improper handling of empty slot in cmdq gpu: nova-core: gsp: fix improper indexing in driver_read_area drivers/gpu/nova-core/gsp/cmdq.rs | 71 +++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 29 deletions(-) --- base-commit: 58d26d42818c0f8c9b334cc7cf318b43046e675f change-id: 20260121-nova-core-cmdq1-6aaa369824c4 Best regards, -- Eliot Courtney <[email protected]>
