Skip to content

Commit 0fae4f5

Browse files
committed
dmaengine: sdxi: dma: Use completion cleanup in synchronize
IIRC I had "temporarily" done this manually while debugging an issue that turned out to be list/stack corruption. Signed-off-by: Nathan Lynch <nathan.lynch@amd.com>
1 parent 0f1a1ff commit 0fae4f5

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

drivers/dma/sdxi/dma.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -318,18 +318,17 @@ static void sdxi_dma_synchronize(struct dma_chan *dma_chan)
318318
if (sdxi_ring_reserve(cxt->ring_state, 1, &resv))
319319
return;
320320

321-
struct sdxi_completion *sc = sdxi_completion_alloc(cxt->sdxi);
322-
if (!sc)
321+
struct sdxi_completion *comp __free(sdxi_completion) = sdxi_completion_alloc(cxt->sdxi);
322+
if (!comp)
323323
return;
324324

325325
nop = sdxi_ring_resv_next(&resv);
326326
sdxi_serialize_nop(nop);
327-
sdxi_completion_attach(nop, sc);
327+
sdxi_completion_attach(nop, comp);
328328
sdxi_desc_set_fence(nop);
329329
sdxi_desc_make_valid(nop);
330330
sdxi_cxt_push_doorbell(cxt, sdxi_ring_resv_dbval(&resv));
331-
sdxi_completion_poll(sc);
332-
sdxi_completion_free(sc);
331+
sdxi_completion_poll(comp);
333332

334333
vchan_synchronize(to_virt_chan(dma_chan));
335334
}

0 commit comments

Comments
 (0)