hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/drivers/dma/fsl_raid.c
....@@ -154,16 +154,14 @@
154154 fsl_re_issue_pending(&re_chan->chan);
155155 }
156156
157
-static void fsl_re_dequeue(unsigned long data)
157
+static void fsl_re_dequeue(struct tasklet_struct *t)
158158 {
159
- struct fsl_re_chan *re_chan;
159
+ struct fsl_re_chan *re_chan = from_tasklet(re_chan, t, irqtask);
160160 struct fsl_re_desc *desc, *_desc;
161161 struct fsl_re_hw_desc *hwdesc;
162162 unsigned long flags;
163163 unsigned int count, oub_count;
164164 int found;
165
-
166
- re_chan = dev_get_drvdata((struct device *)data);
167165
168166 fsl_re_cleanup_descs(re_chan);
169167
....@@ -671,7 +669,7 @@
671669 snprintf(chan->name, sizeof(chan->name), "re_jr%02d", q);
672670
673671 chandev = &chan_ofdev->dev;
674
- tasklet_init(&chan->irqtask, fsl_re_dequeue, (unsigned long)chandev);
672
+ tasklet_setup(&chan->irqtask, fsl_re_dequeue);
675673
676674 ret = request_irq(chan->irq, fsl_re_isr, 0, chan->name, chandev);
677675 if (ret) {