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]>

Reply via email to