static void vb2_dc_put(void *buf_priv) { struct vb2_dc_buf *buf = buf_priv;
if (!atomic_dec_and_test(&buf->refcount)) return;
if (buf->sgt_base) { sg_free_table(buf->sgt_base); kfree(buf->sgt_base); }
dma_free_coherent(buf->dev, buf->size, buf->vaddr, buf->dma_addr); put_device(buf->dev); kfree(buf);
}