From mboxrd@z Thu Jan 1 00:00:00 1970 From: Claude Code Review Bot To: dri-devel-reviews@example.com Subject: Claude review: gpu: nova-core: gsp: make `Cmdq` a pinned type Date: Fri, 27 Feb 2026 13:18:04 +1000 Message-ID: In-Reply-To: <20260225-cmdq-locking-v1-3-bbf6b4156706@nvidia.com> References: <20260225-cmdq-locking-v1-0-bbf6b4156706@nvidia.com> <20260225-cmdq-locking-v1-3-bbf6b4156706@nvidia.com> X-Mailer: Claude Code Patch Reviewer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Patch Review Mechanical change to prepare for `Mutex` in patch 4. **`#[pin_data]` annotation added:** ```rust +#[pin_data] pub(crate) struct Cmdq { ``` **Constructor returns `PinInit` instead of `Result`:** ```rust - pub(crate) fn new(dev: &device::Device) -> Result= { - let gsp_mem =3D DmaGspMem::new(dev)?; - Ok(Cmdq { + pub(crate) fn new(dev: &device::Device) -> impl PinInit= + '_ { + try_pin_init!(Self { + gsp_mem: DmaGspMem::new(dev)?, dev: dev.into(), seq: 0, - gsp_mem, }) ``` **Parent struct uses pin-init syntax:** ```rust - cmdq: Cmdq::new(dev)?, + cmdq <- Cmdq::new(dev), ``` **Reference update for `GspArgumentsCached::new`:** ```rust - dma_write!(rmargs[0].inner =3D fw::GspArgumentsCached:= :new(cmdq))?; + dma_write!(rmargs[0].inner =3D fw::GspArgumentsCached:= :new(&cmdq))?; ``` Correct =E2=80=94 after pin-init, `cmdq` is accessed by reference via the p= in projection, so the explicit `&` is needed. Straightforward and correct. **Reviewed-by worthy.** --- --- Generated by Claude Code Patch Reviewer