Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'topic/tasklet' into next

+131 -151
+3 -3
drivers/dma/altera-msgdma.c
··· 680 680 * msgdma_tasklet - Schedule completion tasklet 681 681 * @data: Pointer to the Altera sSGDMA channel structure 682 682 */ 683 - static void msgdma_tasklet(unsigned long data) 683 + static void msgdma_tasklet(struct tasklet_struct *t) 684 684 { 685 - struct msgdma_device *mdev = (struct msgdma_device *)data; 685 + struct msgdma_device *mdev = from_tasklet(mdev, t, irq_tasklet); 686 686 u32 count; 687 687 u32 __maybe_unused size; 688 688 u32 __maybe_unused status; ··· 830 830 if (ret) 831 831 return ret; 832 832 833 - tasklet_init(&mdev->irq_tasklet, msgdma_tasklet, (unsigned long)mdev); 833 + tasklet_setup(&mdev->irq_tasklet, msgdma_tasklet); 834 834 835 835 dma_cookie_init(&mdev->dmachan); 836 836
+3 -4
drivers/dma/at_hdmac.c
··· 598 598 599 599 /*-- IRQ & Tasklet ---------------------------------------------------*/ 600 600 601 - static void atc_tasklet(unsigned long data) 601 + static void atc_tasklet(struct tasklet_struct *t) 602 602 { 603 - struct at_dma_chan *atchan = (struct at_dma_chan *)data; 603 + struct at_dma_chan *atchan = from_tasklet(atchan, t, tasklet); 604 604 605 605 if (test_and_clear_bit(ATC_IS_ERROR, &atchan->status)) 606 606 return atc_handle_error(atchan); ··· 1892 1892 INIT_LIST_HEAD(&atchan->queue); 1893 1893 INIT_LIST_HEAD(&atchan->free_list); 1894 1894 1895 - tasklet_init(&atchan->tasklet, atc_tasklet, 1896 - (unsigned long)atchan); 1895 + tasklet_setup(&atchan->tasklet, atc_tasklet); 1897 1896 atc_enable_chan_irq(atdma, i); 1898 1897 } 1899 1898
+3 -4
drivers/dma/at_xdmac.c
··· 1613 1613 /* Then continue with usual descriptor management */ 1614 1614 } 1615 1615 1616 - static void at_xdmac_tasklet(unsigned long data) 1616 + static void at_xdmac_tasklet(struct tasklet_struct *t) 1617 1617 { 1618 - struct at_xdmac_chan *atchan = (struct at_xdmac_chan *)data; 1618 + struct at_xdmac_chan *atchan = from_tasklet(atchan, t, tasklet); 1619 1619 struct at_xdmac_desc *desc; 1620 1620 u32 error_mask; 1621 1621 ··· 2063 2063 spin_lock_init(&atchan->lock); 2064 2064 INIT_LIST_HEAD(&atchan->xfers_list); 2065 2065 INIT_LIST_HEAD(&atchan->free_descs_list); 2066 - tasklet_init(&atchan->tasklet, at_xdmac_tasklet, 2067 - (unsigned long)atchan); 2066 + tasklet_setup(&atchan->tasklet, at_xdmac_tasklet); 2068 2067 2069 2068 /* Clear pending interrupts. */ 2070 2069 while (at_xdmac_chan_read(atchan, AT_XDMAC_CIS))
+3 -4
drivers/dma/coh901318.c
··· 1868 1868 * This tasklet is called from the interrupt handler to 1869 1869 * handle each descriptor (DMA job) that is sent to a channel. 1870 1870 */ 1871 - static void dma_tasklet(unsigned long data) 1871 + static void dma_tasklet(struct tasklet_struct *t) 1872 1872 { 1873 - struct coh901318_chan *cohc = (struct coh901318_chan *) data; 1873 + struct coh901318_chan *cohc = from_tasklet(cohc, t, tasklet); 1874 1874 struct coh901318_desc *cohd_fin; 1875 1875 unsigned long flags; 1876 1876 struct dmaengine_desc_callback cb; ··· 2615 2615 INIT_LIST_HEAD(&cohc->active); 2616 2616 INIT_LIST_HEAD(&cohc->queue); 2617 2617 2618 - tasklet_init(&cohc->tasklet, dma_tasklet, 2619 - (unsigned long) cohc); 2618 + tasklet_setup(&cohc->tasklet, dma_tasklet); 2620 2619 2621 2620 list_add_tail(&cohc->chan.device_node, 2622 2621 &dma->channels);
+3 -3
drivers/dma/dw/core.c
··· 463 463 dwc_descriptor_complete(dwc, bad_desc, true); 464 464 } 465 465 466 - static void dw_dma_tasklet(unsigned long data) 466 + static void dw_dma_tasklet(struct tasklet_struct *t) 467 467 { 468 - struct dw_dma *dw = (struct dw_dma *)data; 468 + struct dw_dma *dw = from_tasklet(dw, t, tasklet); 469 469 struct dw_dma_chan *dwc; 470 470 u32 status_xfer; 471 471 u32 status_err; ··· 1142 1142 goto err_pdata; 1143 1143 } 1144 1144 1145 - tasklet_init(&dw->tasklet, dw_dma_tasklet, (unsigned long)dw); 1145 + tasklet_setup(&dw->tasklet, dw_dma_tasklet); 1146 1146 1147 1147 err = request_irq(chip->irq, dw_dma_interrupt, IRQF_SHARED, 1148 1148 dw->name, dw);
+3 -4
drivers/dma/ep93xx_dma.c
··· 745 745 spin_unlock_irqrestore(&edmac->lock, flags); 746 746 } 747 747 748 - static void ep93xx_dma_tasklet(unsigned long data) 748 + static void ep93xx_dma_tasklet(struct tasklet_struct *t) 749 749 { 750 - struct ep93xx_dma_chan *edmac = (struct ep93xx_dma_chan *)data; 750 + struct ep93xx_dma_chan *edmac = from_tasklet(edmac, t, tasklet); 751 751 struct ep93xx_dma_desc *desc, *d; 752 752 struct dmaengine_desc_callback cb; 753 753 LIST_HEAD(list); ··· 1353 1353 INIT_LIST_HEAD(&edmac->active); 1354 1354 INIT_LIST_HEAD(&edmac->queue); 1355 1355 INIT_LIST_HEAD(&edmac->free_list); 1356 - tasklet_init(&edmac->tasklet, ep93xx_dma_tasklet, 1357 - (unsigned long)edmac); 1356 + tasklet_setup(&edmac->tasklet, ep93xx_dma_tasklet); 1358 1357 1359 1358 list_add_tail(&edmac->chan.device_node, 1360 1359 &dma_dev->channels);
+3 -3
drivers/dma/fsl_raid.c
··· 154 154 fsl_re_issue_pending(&re_chan->chan); 155 155 } 156 156 157 - static void fsl_re_dequeue(unsigned long data) 157 + static void fsl_re_dequeue(struct tasklet_struct *t) 158 158 { 159 - struct fsl_re_chan *re_chan; 159 + struct fsl_re_chan *re_chan = from_tasklet(re_chan, t, irqtask); 160 160 struct fsl_re_desc *desc, *_desc; 161 161 struct fsl_re_hw_desc *hwdesc; 162 162 unsigned long flags; ··· 671 671 snprintf(chan->name, sizeof(chan->name), "re_jr%02d", q); 672 672 673 673 chandev = &chan_ofdev->dev; 674 - tasklet_init(&chan->irqtask, fsl_re_dequeue, (unsigned long)chandev); 674 + tasklet_setup(&chan->irqtask, fsl_re_dequeue); 675 675 676 676 ret = request_irq(chan->irq, fsl_re_isr, 0, chan->name, chandev); 677 677 if (ret) {
+3 -3
drivers/dma/fsldma.c
··· 976 976 return IRQ_HANDLED; 977 977 } 978 978 979 - static void dma_do_tasklet(unsigned long data) 979 + static void dma_do_tasklet(struct tasklet_struct *t) 980 980 { 981 - struct fsldma_chan *chan = (struct fsldma_chan *)data; 981 + struct fsldma_chan *chan = from_tasklet(chan, t, tasklet); 982 982 983 983 chan_dbg(chan, "tasklet entry\n"); 984 984 ··· 1151 1151 } 1152 1152 1153 1153 fdev->chan[chan->id] = chan; 1154 - tasklet_init(&chan->tasklet, dma_do_tasklet, (unsigned long)chan); 1154 + tasklet_setup(&chan->tasklet, dma_do_tasklet); 1155 1155 snprintf(chan->name, sizeof(chan->name), "chan%d", chan->id); 1156 1156 1157 1157 /* Initialize the channel */
+3 -4
drivers/dma/imx-dma.c
··· 612 612 return 0; 613 613 } 614 614 615 - static void imxdma_tasklet(unsigned long data) 615 + static void imxdma_tasklet(struct tasklet_struct *t) 616 616 { 617 - struct imxdma_channel *imxdmac = (void *)data; 617 + struct imxdma_channel *imxdmac = from_tasklet(imxdmac, t, dma_tasklet); 618 618 struct imxdma_engine *imxdma = imxdmac->imxdma; 619 619 struct imxdma_desc *desc, *next_desc; 620 620 unsigned long flags; ··· 1168 1168 INIT_LIST_HEAD(&imxdmac->ld_free); 1169 1169 INIT_LIST_HEAD(&imxdmac->ld_active); 1170 1170 1171 - tasklet_init(&imxdmac->dma_tasklet, imxdma_tasklet, 1172 - (unsigned long)imxdmac); 1171 + tasklet_setup(&imxdmac->dma_tasklet, imxdma_tasklet); 1173 1172 imxdmac->chan.device = &imxdma->dma_device; 1174 1173 dma_cookie_init(&imxdmac->chan); 1175 1174 imxdmac->channel = i;
+3 -3
drivers/dma/ioat/dma.c
··· 165 165 tasklet_kill(&ioat_chan->cleanup_task); 166 166 167 167 /* final cleanup now that everything is quiesced and can't re-arm */ 168 - ioat_cleanup_event((unsigned long)&ioat_chan->dma_chan); 168 + ioat_cleanup_event(&ioat_chan->cleanup_task); 169 169 } 170 170 171 171 static void __ioat_issue_pending(struct ioatdma_chan *ioat_chan) ··· 690 690 spin_unlock_bh(&ioat_chan->cleanup_lock); 691 691 } 692 692 693 - void ioat_cleanup_event(unsigned long data) 693 + void ioat_cleanup_event(struct tasklet_struct *t) 694 694 { 695 - struct ioatdma_chan *ioat_chan = to_ioat_chan((void *)data); 695 + struct ioatdma_chan *ioat_chan = from_tasklet(ioat_chan, t, cleanup_task); 696 696 697 697 ioat_cleanup(ioat_chan); 698 698 if (!test_bit(IOAT_RUN, &ioat_chan->state))
+1 -1
drivers/dma/ioat/dma.h
··· 393 393 enum dma_status 394 394 ioat_tx_status(struct dma_chan *c, dma_cookie_t cookie, 395 395 struct dma_tx_state *txstate); 396 - void ioat_cleanup_event(unsigned long data); 396 + void ioat_cleanup_event(struct tasklet_struct *t); 397 397 void ioat_timer_event(struct timer_list *t); 398 398 int ioat_check_space_lock(struct ioatdma_chan *ioat_chan, int num_descs); 399 399 void ioat_issue_pending(struct dma_chan *chan);
+1 -3
drivers/dma/ioat/init.c
··· 767 767 struct ioatdma_chan *ioat_chan, int idx) 768 768 { 769 769 struct dma_device *dma = &ioat_dma->dma_dev; 770 - struct dma_chan *c = &ioat_chan->dma_chan; 771 - unsigned long data = (unsigned long) c; 772 770 773 771 ioat_chan->ioat_dma = ioat_dma; 774 772 ioat_chan->reg_base = ioat_dma->reg_base + (0x80 * (idx + 1)); ··· 776 778 list_add_tail(&ioat_chan->dma_chan.device_node, &dma->channels); 777 779 ioat_dma->idx[idx] = ioat_chan; 778 780 timer_setup(&ioat_chan->timer, ioat_timer_event, 0); 779 - tasklet_init(&ioat_chan->cleanup_task, ioat_cleanup_event, data); 781 + tasklet_setup(&ioat_chan->cleanup_task, ioat_cleanup_event); 780 782 } 781 783 782 784 #define IOAT_NUM_SRC_TEST 6 /* must be <= 8 */
+4 -4
drivers/dma/iop-adma.c
··· 238 238 spin_unlock_bh(&iop_chan->lock); 239 239 } 240 240 241 - static void iop_adma_tasklet(unsigned long data) 241 + static void iop_adma_tasklet(struct tasklet_struct *t) 242 242 { 243 - struct iop_adma_chan *iop_chan = (struct iop_adma_chan *) data; 243 + struct iop_adma_chan *iop_chan = from_tasklet(iop_chan, t, 244 + irq_tasklet); 244 245 245 246 /* lockdep will flag depedency submissions as potentially 246 247 * recursive locking, this is not the case as a dependency ··· 1351 1350 ret = -ENOMEM; 1352 1351 goto err_free_iop_chan; 1353 1352 } 1354 - tasklet_init(&iop_chan->irq_tasklet, iop_adma_tasklet, (unsigned long) 1355 - iop_chan); 1353 + tasklet_setup(&iop_chan->irq_tasklet, iop_adma_tasklet); 1356 1354 1357 1355 /* clear errors before enabling interrupts */ 1358 1356 iop_adma_device_clear_err_status(iop_chan);
+3 -3
drivers/dma/ipu/ipu_idmac.c
··· 1299 1299 return IRQ_HANDLED; 1300 1300 } 1301 1301 1302 - static void ipu_gc_tasklet(unsigned long arg) 1302 + static void ipu_gc_tasklet(struct tasklet_struct *t) 1303 1303 { 1304 - struct ipu *ipu = (struct ipu *)arg; 1304 + struct ipu *ipu = from_tasklet(ipu, t, tasklet); 1305 1305 int i; 1306 1306 1307 1307 for (i = 0; i < IPU_CHANNELS_NUM; i++) { ··· 1740 1740 if (ret < 0) 1741 1741 goto err_idmac_init; 1742 1742 1743 - tasklet_init(&ipu_data.tasklet, ipu_gc_tasklet, (unsigned long)&ipu_data); 1743 + tasklet_setup(&ipu_data.tasklet, ipu_gc_tasklet); 1744 1744 1745 1745 ipu_data.dev = &pdev->dev; 1746 1746
+3 -3
drivers/dma/k3dma.c
··· 297 297 return -EAGAIN; 298 298 } 299 299 300 - static void k3_dma_tasklet(unsigned long arg) 300 + static void k3_dma_tasklet(struct tasklet_struct *t) 301 301 { 302 - struct k3_dma_dev *d = (struct k3_dma_dev *)arg; 302 + struct k3_dma_dev *d = from_tasklet(d, t, task); 303 303 struct k3_dma_phy *p; 304 304 struct k3_dma_chan *c, *cn; 305 305 unsigned pch, pch_alloc = 0; ··· 962 962 963 963 spin_lock_init(&d->lock); 964 964 INIT_LIST_HEAD(&d->chan_pending); 965 - tasklet_init(&d->task, k3_dma_tasklet, (unsigned long)d); 965 + tasklet_setup(&d->task, k3_dma_tasklet); 966 966 platform_set_drvdata(op, d); 967 967 dev_info(&op->dev, "initialized\n"); 968 968
+3 -4
drivers/dma/mediatek/mtk-cqdma.c
··· 356 356 return ret; 357 357 } 358 358 359 - static void mtk_cqdma_tasklet_cb(unsigned long data) 359 + static void mtk_cqdma_tasklet_cb(struct tasklet_struct *t) 360 360 { 361 - struct mtk_cqdma_pchan *pc = (struct mtk_cqdma_pchan *)data; 361 + struct mtk_cqdma_pchan *pc = from_tasklet(pc, t, tasklet); 362 362 struct mtk_cqdma_vdesc *cvd = NULL; 363 363 unsigned long flags; 364 364 ··· 878 878 879 879 /* initialize tasklet for each PC */ 880 880 for (i = 0; i < cqdma->dma_channels; ++i) 881 - tasklet_init(&cqdma->pc[i]->tasklet, mtk_cqdma_tasklet_cb, 882 - (unsigned long)cqdma->pc[i]); 881 + tasklet_setup(&cqdma->pc[i]->tasklet, mtk_cqdma_tasklet_cb); 883 882 884 883 dev_info(&pdev->dev, "MediaTek CQDMA driver registered\n"); 885 884
+3 -3
drivers/dma/mmp_pdma.c
··· 873 873 * Do call back 874 874 * Start pending list 875 875 */ 876 - static void dma_do_tasklet(unsigned long data) 876 + static void dma_do_tasklet(struct tasklet_struct *t) 877 877 { 878 - struct mmp_pdma_chan *chan = (struct mmp_pdma_chan *)data; 878 + struct mmp_pdma_chan *chan = from_tasklet(chan, t, tasklet); 879 879 struct mmp_pdma_desc_sw *desc, *_desc; 880 880 LIST_HEAD(chain_cleanup); 881 881 unsigned long flags; ··· 993 993 spin_lock_init(&chan->desc_lock); 994 994 chan->dev = pdev->dev; 995 995 chan->chan.device = &pdev->device; 996 - tasklet_init(&chan->tasklet, dma_do_tasklet, (unsigned long)chan); 996 + tasklet_setup(&chan->tasklet, dma_do_tasklet); 997 997 INIT_LIST_HEAD(&chan->chain_pending); 998 998 INIT_LIST_HEAD(&chan->chain_running); 999 999
+3 -3
drivers/dma/mmp_tdma.c
··· 346 346 return IRQ_NONE; 347 347 } 348 348 349 - static void dma_do_tasklet(unsigned long data) 349 + static void dma_do_tasklet(struct tasklet_struct *t) 350 350 { 351 - struct mmp_tdma_chan *tdmac = (struct mmp_tdma_chan *)data; 351 + struct mmp_tdma_chan *tdmac = from_tasklet(tdmac, t, tasklet); 352 352 353 353 dmaengine_desc_get_callback_invoke(&tdmac->desc, NULL); 354 354 } ··· 586 586 tdmac->pool = pool; 587 587 tdmac->status = DMA_COMPLETE; 588 588 tdev->tdmac[tdmac->idx] = tdmac; 589 - tasklet_init(&tdmac->tasklet, dma_do_tasklet, (unsigned long)tdmac); 589 + tasklet_setup(&tdmac->tasklet, dma_do_tasklet); 590 590 591 591 /* add the channel to tdma_chan list */ 592 592 list_add_tail(&tdmac->chan.device_node,
+3 -3
drivers/dma/mpc512x_dma.c
··· 414 414 } 415 415 416 416 /* DMA Tasklet */ 417 - static void mpc_dma_tasklet(unsigned long data) 417 + static void mpc_dma_tasklet(struct tasklet_struct *t) 418 418 { 419 - struct mpc_dma *mdma = (void *)data; 419 + struct mpc_dma *mdma = from_tasklet(mdma, t, tasklet); 420 420 unsigned long flags; 421 421 uint es; 422 422 ··· 1009 1009 list_add_tail(&mchan->chan.device_node, &dma->channels); 1010 1010 } 1011 1011 1012 - tasklet_init(&mdma->tasklet, mpc_dma_tasklet, (unsigned long)mdma); 1012 + tasklet_setup(&mdma->tasklet, mpc_dma_tasklet); 1013 1013 1014 1014 /* 1015 1015 * Configure DMA Engine:
+3 -4
drivers/dma/mv_xor.c
··· 336 336 mv_chan->dmachan.completed_cookie = cookie; 337 337 } 338 338 339 - static void mv_xor_tasklet(unsigned long data) 339 + static void mv_xor_tasklet(struct tasklet_struct *t) 340 340 { 341 - struct mv_xor_chan *chan = (struct mv_xor_chan *) data; 341 + struct mv_xor_chan *chan = from_tasklet(chan, t, irq_tasklet); 342 342 343 343 spin_lock(&chan->lock); 344 344 mv_chan_slot_cleanup(chan); ··· 1097 1097 1098 1098 mv_chan->mmr_base = xordev->xor_base; 1099 1099 mv_chan->mmr_high_base = xordev->xor_high_base; 1100 - tasklet_init(&mv_chan->irq_tasklet, mv_xor_tasklet, (unsigned long) 1101 - mv_chan); 1100 + tasklet_setup(&mv_chan->irq_tasklet, mv_xor_tasklet); 1102 1101 1103 1102 /* clear errors before enabling interrupts */ 1104 1103 mv_chan_clear_err_status(mv_chan);
+4 -4
drivers/dma/mv_xor_v2.c
··· 553 553 /* 554 554 * handle the descriptors after HW process 555 555 */ 556 - static void mv_xor_v2_tasklet(unsigned long data) 556 + static void mv_xor_v2_tasklet(struct tasklet_struct *t) 557 557 { 558 - struct mv_xor_v2_device *xor_dev = (struct mv_xor_v2_device *) data; 558 + struct mv_xor_v2_device *xor_dev = from_tasklet(xor_dev, t, 559 + irq_tasklet); 559 560 int pending_ptr, num_of_pending, i; 560 561 struct mv_xor_v2_sw_desc *next_pending_sw_desc = NULL; 561 562 ··· 781 780 if (ret) 782 781 goto free_msi_irqs; 783 782 784 - tasklet_init(&xor_dev->irq_tasklet, mv_xor_v2_tasklet, 785 - (unsigned long) xor_dev); 783 + tasklet_setup(&xor_dev->irq_tasklet, mv_xor_v2_tasklet); 786 784 787 785 xor_dev->desc_size = mv_xor_v2_set_desc_size(xor_dev); 788 786
+3 -4
drivers/dma/mxs-dma.c
··· 319 319 return dma_cookie_assign(tx); 320 320 } 321 321 322 - static void mxs_dma_tasklet(unsigned long data) 322 + static void mxs_dma_tasklet(struct tasklet_struct *t) 323 323 { 324 - struct mxs_dma_chan *mxs_chan = (struct mxs_dma_chan *) data; 324 + struct mxs_dma_chan *mxs_chan = from_tasklet(mxs_chan, t, tasklet); 325 325 326 326 dmaengine_desc_get_callback_invoke(&mxs_chan->desc, NULL); 327 327 } ··· 811 811 mxs_chan->chan.device = &mxs_dma->dma_device; 812 812 dma_cookie_init(&mxs_chan->chan); 813 813 814 - tasklet_init(&mxs_chan->tasklet, mxs_dma_tasklet, 815 - (unsigned long) mxs_chan); 814 + tasklet_setup(&mxs_chan->tasklet, mxs_dma_tasklet); 816 815 817 816 818 817 /* Add the channel to mxs_chan list */
+3 -3
drivers/dma/nbpfaxi.c
··· 1113 1113 return dchan; 1114 1114 } 1115 1115 1116 - static void nbpf_chan_tasklet(unsigned long data) 1116 + static void nbpf_chan_tasklet(struct tasklet_struct *t) 1117 1117 { 1118 - struct nbpf_channel *chan = (struct nbpf_channel *)data; 1118 + struct nbpf_channel *chan = from_tasklet(chan, t, tasklet); 1119 1119 struct nbpf_desc *desc, *tmp; 1120 1120 struct dmaengine_desc_callback cb; 1121 1121 ··· 1260 1260 1261 1261 snprintf(chan->name, sizeof(chan->name), "nbpf %d", n); 1262 1262 1263 - tasklet_init(&chan->tasklet, nbpf_chan_tasklet, (unsigned long)chan); 1263 + tasklet_setup(&chan->tasklet, nbpf_chan_tasklet); 1264 1264 ret = devm_request_irq(dma_dev->dev, chan->irq, 1265 1265 nbpf_chan_irq, IRQF_SHARED, 1266 1266 chan->name, chan);
+3 -4
drivers/dma/pch_dma.c
··· 670 670 return 0; 671 671 } 672 672 673 - static void pdc_tasklet(unsigned long data) 673 + static void pdc_tasklet(struct tasklet_struct *t) 674 674 { 675 - struct pch_dma_chan *pd_chan = (struct pch_dma_chan *)data; 675 + struct pch_dma_chan *pd_chan = from_tasklet(pd_chan, t, tasklet); 676 676 unsigned long flags; 677 677 678 678 if (!pdc_is_idle(pd_chan)) { ··· 882 882 INIT_LIST_HEAD(&pd_chan->queue); 883 883 INIT_LIST_HEAD(&pd_chan->free_list); 884 884 885 - tasklet_init(&pd_chan->tasklet, pdc_tasklet, 886 - (unsigned long)pd_chan); 885 + tasklet_setup(&pd_chan->tasklet, pdc_tasklet); 887 886 list_add_tail(&pd_chan->chan.device_node, &pd->dma.channels); 888 887 } 889 888
+7 -7
drivers/dma/pl330.c
··· 1573 1573 tasklet_schedule(&pch->task); 1574 1574 } 1575 1575 1576 - static void pl330_dotask(unsigned long data) 1576 + static void pl330_dotask(struct tasklet_struct *t) 1577 1577 { 1578 - struct pl330_dmac *pl330 = (struct pl330_dmac *) data; 1578 + struct pl330_dmac *pl330 = from_tasklet(pl330, t, tasks); 1579 1579 unsigned long flags; 1580 1580 int i; 1581 1581 ··· 1979 1979 return ret; 1980 1980 } 1981 1981 1982 - tasklet_init(&pl330->tasks, pl330_dotask, (unsigned long) pl330); 1982 + tasklet_setup(&pl330->tasks, pl330_dotask); 1983 1983 1984 1984 pl330->state = INIT; 1985 1985 ··· 2062 2062 } 2063 2063 } 2064 2064 2065 - static void pl330_tasklet(unsigned long data) 2065 + static void pl330_tasklet(struct tasklet_struct *t) 2066 2066 { 2067 - struct dma_pl330_chan *pch = (struct dma_pl330_chan *)data; 2067 + struct dma_pl330_chan *pch = from_tasklet(pch, t, task); 2068 2068 struct dma_pl330_desc *desc, *_dt; 2069 2069 unsigned long flags; 2070 2070 bool power_down = false; ··· 2172 2172 return -ENOMEM; 2173 2173 } 2174 2174 2175 - tasklet_init(&pch->task, pl330_tasklet, (unsigned long) pch); 2175 + tasklet_setup(&pch->task, pl330_tasklet); 2176 2176 2177 2177 spin_unlock_irqrestore(&pl330->lock, flags); 2178 2178 ··· 2484 2484 list_splice_tail_init(&pch->submitted_list, &pch->work_list); 2485 2485 spin_unlock_irqrestore(&pch->lock, flags); 2486 2486 2487 - pl330_tasklet((unsigned long)pch); 2487 + pl330_tasklet(&pch->task); 2488 2488 } 2489 2489 2490 2490 /*
+3 -4
drivers/dma/plx_dma.c
··· 241 241 rcu_read_unlock(); 242 242 } 243 243 244 - static void plx_dma_desc_task(unsigned long data) 244 + static void plx_dma_desc_task(struct tasklet_struct *t) 245 245 { 246 - struct plx_dma_dev *plxdev = (void *)data; 246 + struct plx_dma_dev *plxdev = from_tasklet(plxdev, t, desc_task); 247 247 248 248 plx_dma_process_desc(plxdev); 249 249 } ··· 513 513 } 514 514 515 515 spin_lock_init(&plxdev->ring_lock); 516 - tasklet_init(&plxdev->desc_task, plx_dma_desc_task, 517 - (unsigned long)plxdev); 516 + tasklet_setup(&plxdev->desc_task, plx_dma_desc_task); 518 517 519 518 RCU_INIT_POINTER(plxdev->pdev, pdev); 520 519 plxdev->bar = pcim_iomap_table(pdev)[0];
+3 -4
drivers/dma/ppc4xx/adma.c
··· 1660 1660 /** 1661 1661 * ppc440spe_adma_tasklet - clean up watch-dog initiator 1662 1662 */ 1663 - static void ppc440spe_adma_tasklet(unsigned long data) 1663 + static void ppc440spe_adma_tasklet(struct tasklet_struct *t) 1664 1664 { 1665 - struct ppc440spe_adma_chan *chan = (struct ppc440spe_adma_chan *) data; 1665 + struct ppc440spe_adma_chan *chan = from_tasklet(chan, t, irq_tasklet); 1666 1666 1667 1667 spin_lock_nested(&chan->lock, SINGLE_DEPTH_NESTING); 1668 1668 __ppc440spe_adma_slot_cleanup(chan); ··· 4141 4141 chan->common.device = &adev->common; 4142 4142 dma_cookie_init(&chan->common); 4143 4143 list_add_tail(&chan->common.device_node, &adev->common.channels); 4144 - tasklet_init(&chan->irq_tasklet, ppc440spe_adma_tasklet, 4145 - (unsigned long)chan); 4144 + tasklet_setup(&chan->irq_tasklet, ppc440spe_adma_tasklet); 4146 4145 4147 4146 /* allocate and map helper pages for async validation or 4148 4147 * async_mult/async_sum_product operations on DMA0/1.
+3 -3
drivers/dma/qcom/bam_dma.c
··· 1074 1074 * 1075 1075 * Sets up next DMA operation and then processes all completed transactions 1076 1076 */ 1077 - static void dma_tasklet(unsigned long data) 1077 + static void dma_tasklet(struct tasklet_struct *t) 1078 1078 { 1079 - struct bam_device *bdev = (struct bam_device *)data; 1079 + struct bam_device *bdev = from_tasklet(bdev, t, task); 1080 1080 struct bam_chan *bchan; 1081 1081 unsigned long flags; 1082 1082 unsigned int i; ··· 1292 1292 if (ret) 1293 1293 goto err_disable_clk; 1294 1294 1295 - tasklet_init(&bdev->task, dma_tasklet, (unsigned long)bdev); 1295 + tasklet_setup(&bdev->task, dma_tasklet); 1296 1296 1297 1297 bdev->channels = devm_kcalloc(bdev->dev, bdev->num_channels, 1298 1298 sizeof(*bdev->channels), GFP_KERNEL);
+3 -3
drivers/dma/qcom/hidma.c
··· 224 224 return 0; 225 225 } 226 226 227 - static void hidma_issue_task(unsigned long arg) 227 + static void hidma_issue_task(struct tasklet_struct *t) 228 228 { 229 - struct hidma_dev *dmadev = (struct hidma_dev *)arg; 229 + struct hidma_dev *dmadev = from_tasklet(dmadev, t, task); 230 230 231 231 pm_runtime_get_sync(dmadev->ddev.dev); 232 232 hidma_ll_start(dmadev->lldev); ··· 885 885 goto uninit; 886 886 887 887 dmadev->irq = chirq; 888 - tasklet_init(&dmadev->task, hidma_issue_task, (unsigned long)dmadev); 888 + tasklet_setup(&dmadev->task, hidma_issue_task); 889 889 hidma_debug_init(dmadev); 890 890 hidma_sysfs_init(dmadev); 891 891 dev_info(&pdev->dev, "HI-DMA engine driver registration complete\n");
+3 -3
drivers/dma/qcom/hidma_ll.c
··· 173 173 /* 174 174 * Multiple TREs may be queued and waiting in the pending queue. 175 175 */ 176 - static void hidma_ll_tre_complete(unsigned long arg) 176 + static void hidma_ll_tre_complete(struct tasklet_struct *t) 177 177 { 178 - struct hidma_lldev *lldev = (struct hidma_lldev *)arg; 178 + struct hidma_lldev *lldev = from_tasklet(lldev, t, task); 179 179 struct hidma_tre *tre; 180 180 181 181 while (kfifo_out(&lldev->handoff_fifo, &tre, 1)) { ··· 792 792 return NULL; 793 793 794 794 spin_lock_init(&lldev->lock); 795 - tasklet_init(&lldev->task, hidma_ll_tre_complete, (unsigned long)lldev); 795 + tasklet_setup(&lldev->task, hidma_ll_tre_complete); 796 796 lldev->initialized = 1; 797 797 writel(ENABLE_IRQS, lldev->evca + HIDMA_EVCA_IRQ_EN_REG); 798 798 return lldev;
+3 -3
drivers/dma/sa11x0-dma.c
··· 323 323 } 324 324 } 325 325 326 - static void sa11x0_dma_tasklet(unsigned long arg) 326 + static void sa11x0_dma_tasklet(struct tasklet_struct *t) 327 327 { 328 - struct sa11x0_dma_dev *d = (struct sa11x0_dma_dev *)arg; 328 + struct sa11x0_dma_dev *d = from_tasklet(d, t, task); 329 329 struct sa11x0_dma_phy *p; 330 330 struct sa11x0_dma_chan *c; 331 331 unsigned pch, pch_alloc = 0; ··· 928 928 goto err_ioremap; 929 929 } 930 930 931 - tasklet_init(&d->task, sa11x0_dma_tasklet, (unsigned long)d); 931 + tasklet_setup(&d->task, sa11x0_dma_tasklet); 932 932 933 933 for (i = 0; i < NR_PHY_CHAN; i++) { 934 934 struct sa11x0_dma_phy *p = &d->phy[i];
+3 -3
drivers/dma/sirf-dma.c
··· 393 393 } 394 394 395 395 /* DMA Tasklet */ 396 - static void sirfsoc_dma_tasklet(unsigned long data) 396 + static void sirfsoc_dma_tasklet(struct tasklet_struct *t) 397 397 { 398 - struct sirfsoc_dma *sdma = (void *)data; 398 + struct sirfsoc_dma *sdma = from_tasklet(sdma, t, tasklet); 399 399 400 400 sirfsoc_dma_process_completed(sdma); 401 401 } ··· 938 938 list_add_tail(&schan->chan.device_node, &dma->channels); 939 939 } 940 940 941 - tasklet_init(&sdma->tasklet, sirfsoc_dma_tasklet, (unsigned long)sdma); 941 + tasklet_setup(&sdma->tasklet, sirfsoc_dma_tasklet); 942 942 943 943 /* Register DMA engine */ 944 944 dev_set_drvdata(dev, sdma);
+3 -4
drivers/dma/ste_dma40.c
··· 1571 1571 1572 1572 } 1573 1573 1574 - static void dma_tasklet(unsigned long data) 1574 + static void dma_tasklet(struct tasklet_struct *t) 1575 1575 { 1576 - struct d40_chan *d40c = (struct d40_chan *) data; 1576 + struct d40_chan *d40c = from_tasklet(d40c, t, tasklet); 1577 1577 struct d40_desc *d40d; 1578 1578 unsigned long flags; 1579 1579 bool callback_active; ··· 2804 2804 INIT_LIST_HEAD(&d40c->client); 2805 2805 INIT_LIST_HEAD(&d40c->prepare_queue); 2806 2806 2807 - tasklet_init(&d40c->tasklet, dma_tasklet, 2808 - (unsigned long) d40c); 2807 + tasklet_setup(&d40c->tasklet, dma_tasklet); 2809 2808 2810 2809 list_add_tail(&d40c->chan.device_node, 2811 2810 &dma->channels);
+3 -3
drivers/dma/sun6i-dma.c
··· 467 467 return 0; 468 468 } 469 469 470 - static void sun6i_dma_tasklet(unsigned long data) 470 + static void sun6i_dma_tasklet(struct tasklet_struct *t) 471 471 { 472 - struct sun6i_dma_dev *sdev = (struct sun6i_dma_dev *)data; 472 + struct sun6i_dma_dev *sdev = from_tasklet(sdev, t, task); 473 473 struct sun6i_vchan *vchan; 474 474 struct sun6i_pchan *pchan; 475 475 unsigned int pchan_alloc = 0; ··· 1343 1343 if (!sdc->vchans) 1344 1344 return -ENOMEM; 1345 1345 1346 - tasklet_init(&sdc->task, sun6i_dma_tasklet, (unsigned long)sdc); 1346 + tasklet_setup(&sdc->task, sun6i_dma_tasklet); 1347 1347 1348 1348 for (i = 0; i < sdc->num_pchans; i++) { 1349 1349 struct sun6i_pchan *pchan = &sdc->pchans[i];
+3 -4
drivers/dma/tegra20-apb-dma.c
··· 644 644 } 645 645 } 646 646 647 - static void tegra_dma_tasklet(unsigned long data) 647 + static void tegra_dma_tasklet(struct tasklet_struct *t) 648 648 { 649 - struct tegra_dma_channel *tdc = (struct tegra_dma_channel *)data; 649 + struct tegra_dma_channel *tdc = from_tasklet(tdc, t, tasklet); 650 650 struct dmaengine_desc_callback cb; 651 651 struct tegra_dma_desc *dma_desc; 652 652 unsigned int cb_count; ··· 1523 1523 tdc->id = i; 1524 1524 tdc->slave_id = TEGRA_APBDMA_SLAVE_ID_INVALID; 1525 1525 1526 - tasklet_init(&tdc->tasklet, tegra_dma_tasklet, 1527 - (unsigned long)tdc); 1526 + tasklet_setup(&tdc->tasklet, tegra_dma_tasklet); 1528 1527 spin_lock_init(&tdc->lock); 1529 1528 init_waitqueue_head(&tdc->wq); 1530 1529
+3 -4
drivers/dma/ti/k3-udma.c
··· 2909 2909 * This tasklet handles the completion of a DMA descriptor by 2910 2910 * calling its callback and freeing it. 2911 2911 */ 2912 - static void udma_vchan_complete(unsigned long arg) 2912 + static void udma_vchan_complete(struct tasklet_struct *t) 2913 2913 { 2914 - struct virt_dma_chan *vc = (struct virt_dma_chan *)arg; 2914 + struct virt_dma_chan *vc = from_tasklet(vc, t, task); 2915 2915 struct virt_dma_desc *vd, *_vd; 2916 2916 struct dmaengine_desc_callback cb; 2917 2917 LIST_HEAD(head); ··· 3667 3667 3668 3668 vchan_init(&uc->vc, &ud->ddev); 3669 3669 /* Use custom vchan completion handling */ 3670 - tasklet_init(&uc->vc.task, udma_vchan_complete, 3671 - (unsigned long)&uc->vc); 3670 + tasklet_setup(&uc->vc.task, udma_vchan_complete); 3672 3671 init_completion(&uc->teardown_completed); 3673 3672 INIT_DELAYED_WORK(&uc->tx_drain.work, udma_check_tx_completion); 3674 3673 }
+3 -3
drivers/dma/timb_dma.c
··· 563 563 return 0; 564 564 } 565 565 566 - static void td_tasklet(unsigned long data) 566 + static void td_tasklet(struct tasklet_struct *t) 567 567 { 568 - struct timb_dma *td = (struct timb_dma *)data; 568 + struct timb_dma *td = from_tasklet(td, t, tasklet); 569 569 u32 isr; 570 570 u32 ipr; 571 571 u32 ier; ··· 658 658 iowrite32(0x0, td->membase + TIMBDMA_IER); 659 659 iowrite32(0xFFFFFFFF, td->membase + TIMBDMA_ISR); 660 660 661 - tasklet_init(&td->tasklet, td_tasklet, (unsigned long)td); 661 + tasklet_setup(&td->tasklet, td_tasklet); 662 662 663 663 err = request_irq(irq, td_irq, IRQF_SHARED, DRIVER_NAME, td); 664 664 if (err) {
+6 -8
drivers/dma/txx9dmac.c
··· 601 601 } 602 602 } 603 603 604 - static void txx9dmac_chan_tasklet(unsigned long data) 604 + static void txx9dmac_chan_tasklet(struct tasklet_struct *t) 605 605 { 606 606 int irq; 607 607 u32 csr; 608 608 struct txx9dmac_chan *dc; 609 609 610 - dc = (struct txx9dmac_chan *)data; 610 + dc = from_tasklet(dc, t, tasklet); 611 611 csr = channel_readl(dc, CSR); 612 612 dev_vdbg(chan2dev(&dc->chan), "tasklet: status=%x\n", csr); 613 613 ··· 638 638 return IRQ_HANDLED; 639 639 } 640 640 641 - static void txx9dmac_tasklet(unsigned long data) 641 + static void txx9dmac_tasklet(struct tasklet_struct *t) 642 642 { 643 643 int irq; 644 644 u32 csr; 645 645 struct txx9dmac_chan *dc; 646 646 647 - struct txx9dmac_dev *ddev = (struct txx9dmac_dev *)data; 647 + struct txx9dmac_dev *ddev = from_tasklet(ddev, t, tasklet); 648 648 u32 mcr; 649 649 int i; 650 650 ··· 1113 1113 irq = platform_get_irq(pdev, 0); 1114 1114 if (irq < 0) 1115 1115 return irq; 1116 - tasklet_init(&dc->tasklet, txx9dmac_chan_tasklet, 1117 - (unsigned long)dc); 1116 + tasklet_setup(&dc->tasklet, txx9dmac_chan_tasklet); 1118 1117 dc->irq = irq; 1119 1118 err = devm_request_irq(&pdev->dev, dc->irq, 1120 1119 txx9dmac_chan_interrupt, 0, dev_name(&pdev->dev), dc); ··· 1199 1200 1200 1201 ddev->irq = platform_get_irq(pdev, 0); 1201 1202 if (ddev->irq >= 0) { 1202 - tasklet_init(&ddev->tasklet, txx9dmac_tasklet, 1203 - (unsigned long)ddev); 1203 + tasklet_setup(&ddev->tasklet, txx9dmac_tasklet); 1204 1204 err = devm_request_irq(&pdev->dev, ddev->irq, 1205 1205 txx9dmac_interrupt, 0, dev_name(&pdev->dev), ddev); 1206 1206 if (err)
+3 -3
drivers/dma/virt-dma.c
··· 80 80 * This tasklet handles the completion of a DMA descriptor by 81 81 * calling its callback and freeing it. 82 82 */ 83 - static void vchan_complete(unsigned long arg) 83 + static void vchan_complete(struct tasklet_struct *t) 84 84 { 85 - struct virt_dma_chan *vc = (struct virt_dma_chan *)arg; 85 + struct virt_dma_chan *vc = from_tasklet(vc, t, task); 86 86 struct virt_dma_desc *vd, *_vd; 87 87 struct dmaengine_desc_callback cb; 88 88 LIST_HEAD(head); ··· 131 131 INIT_LIST_HEAD(&vc->desc_completed); 132 132 INIT_LIST_HEAD(&vc->desc_terminated); 133 133 134 - tasklet_init(&vc->task, vchan_complete, (unsigned long)vc); 134 + tasklet_setup(&vc->task, vchan_complete); 135 135 136 136 vc->chan.device = dmadev; 137 137 list_add_tail(&vc->chan.device_node, &dmadev->channels);
+3 -4
drivers/dma/xgene-dma.c
··· 975 975 return dma_cookie_status(dchan, cookie, txstate); 976 976 } 977 977 978 - static void xgene_dma_tasklet_cb(unsigned long data) 978 + static void xgene_dma_tasklet_cb(struct tasklet_struct *t) 979 979 { 980 - struct xgene_dma_chan *chan = (struct xgene_dma_chan *)data; 980 + struct xgene_dma_chan *chan = from_tasklet(chan, t, tasklet); 981 981 982 982 /* Run all cleanup for descriptors which have been completed */ 983 983 xgene_dma_cleanup_descriptors(chan); ··· 1539 1539 INIT_LIST_HEAD(&chan->ld_pending); 1540 1540 INIT_LIST_HEAD(&chan->ld_running); 1541 1541 INIT_LIST_HEAD(&chan->ld_completed); 1542 - tasklet_init(&chan->tasklet, xgene_dma_tasklet_cb, 1543 - (unsigned long)chan); 1542 + tasklet_setup(&chan->tasklet, xgene_dma_tasklet_cb); 1544 1543 1545 1544 chan->pending = 0; 1546 1545 chan->desc_pool = NULL;
+3 -4
drivers/dma/xilinx/xilinx_dma.c
··· 1046 1046 * xilinx_dma_do_tasklet - Schedule completion tasklet 1047 1047 * @data: Pointer to the Xilinx DMA channel structure 1048 1048 */ 1049 - static void xilinx_dma_do_tasklet(unsigned long data) 1049 + static void xilinx_dma_do_tasklet(struct tasklet_struct *t) 1050 1050 { 1051 - struct xilinx_dma_chan *chan = (struct xilinx_dma_chan *)data; 1051 + struct xilinx_dma_chan *chan = from_tasklet(chan, t, tasklet); 1052 1052 1053 1053 xilinx_dma_chan_desc_cleanup(chan); 1054 1054 } ··· 2846 2846 } 2847 2847 2848 2848 /* Initialize the tasklet */ 2849 - tasklet_init(&chan->tasklet, xilinx_dma_do_tasklet, 2850 - (unsigned long)chan); 2849 + tasklet_setup(&chan->tasklet, xilinx_dma_do_tasklet); 2851 2850 2852 2851 /* 2853 2852 * Initialize the DMA channel and add it to the DMA engine channels
+3 -3
drivers/dma/xilinx/zynqmp_dma.c
··· 744 744 * zynqmp_dma_do_tasklet - Schedule completion tasklet 745 745 * @data: Pointer to the ZynqMP DMA channel structure 746 746 */ 747 - static void zynqmp_dma_do_tasklet(unsigned long data) 747 + static void zynqmp_dma_do_tasklet(struct tasklet_struct *t) 748 748 { 749 - struct zynqmp_dma_chan *chan = (struct zynqmp_dma_chan *)data; 749 + struct zynqmp_dma_chan *chan = from_tasklet(chan, t, tasklet); 750 750 u32 count; 751 751 unsigned long irqflags; 752 752 ··· 908 908 909 909 chan->is_dmacoherent = of_property_read_bool(node, "dma-coherent"); 910 910 zdev->chan = chan; 911 - tasklet_init(&chan->tasklet, zynqmp_dma_do_tasklet, (ulong)chan); 911 + tasklet_setup(&chan->tasklet, zynqmp_dma_do_tasklet); 912 912 spin_lock_init(&chan->lock); 913 913 INIT_LIST_HEAD(&chan->active_list); 914 914 INIT_LIST_HEAD(&chan->pending_list);