On 31/08/2020 13.35, Allen Pais wrote: > In preparation for unconditionally passing the > struct tasklet_struct pointer to all tasklet > callbacks, switch to using the new tasklet_setup() > and from_tasklet() to pass the tasklet pointer explicitly. Reviewed-by: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > Signed-off-by: Romain Perier <romain.perier@xxxxxxxxx> > Signed-off-by: Allen Pais <allen.lkml@xxxxxxxxx> > --- > drivers/dma/virt-dma.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/dma/virt-dma.c b/drivers/dma/virt-dma.c > index 23e33a85f033..a6f4265be0c9 100644 > --- a/drivers/dma/virt-dma.c > +++ b/drivers/dma/virt-dma.c > @@ -80,9 +80,9 @@ EXPORT_SYMBOL_GPL(vchan_find_desc); > * This tasklet handles the completion of a DMA descriptor by > * calling its callback and freeing it. > */ > -static void vchan_complete(unsigned long arg) > +static void vchan_complete(struct tasklet_struct *t) > { > - struct virt_dma_chan *vc = (struct virt_dma_chan *)arg; > + struct virt_dma_chan *vc = from_tasklet(vc, t, task); > struct virt_dma_desc *vd, *_vd; > struct dmaengine_desc_callback cb; > LIST_HEAD(head); > @@ -131,7 +131,7 @@ void vchan_init(struct virt_dma_chan *vc, struct dma_device *dmadev) > INIT_LIST_HEAD(&vc->desc_completed); > INIT_LIST_HEAD(&vc->desc_terminated); > > - tasklet_init(&vc->task, vchan_complete, (unsigned long)vc); > + tasklet_setup(&vc->task, vchan_complete); > > vc->chan.device = dmadev; > list_add_tail(&vc->chan.device_node, &dmadev->channels); > - Péter Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki