Commit a23afb44 authored by Allen Pais's avatar Allen Pais Committed by Jason Gunthorpe

RDMA/qib: Convert tasklets to use new tasklet_setup() API

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.

Link: https://lore.kernel.org/r/20200903060637.424458-5-allen.lkml@gmail.comSigned-off-by: default avatarRomain Perier <romain.perier@gmail.com>
Signed-off-by: default avatarAllen Pais <allen.lkml@gmail.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 4e95f849
...@@ -1733,9 +1733,9 @@ static noinline void handle_7322_errors(struct qib_devdata *dd) ...@@ -1733,9 +1733,9 @@ static noinline void handle_7322_errors(struct qib_devdata *dd)
return; return;
} }
static void qib_error_tasklet(unsigned long data) static void qib_error_tasklet(struct tasklet_struct *t)
{ {
struct qib_devdata *dd = (struct qib_devdata *)data; struct qib_devdata *dd = from_tasklet(dd, t, error_tasklet);
handle_7322_errors(dd); handle_7322_errors(dd);
qib_write_kreg(dd, kr_errmask, dd->cspec->errormask); qib_write_kreg(dd, kr_errmask, dd->cspec->errormask);
...@@ -3537,8 +3537,7 @@ static void qib_setup_7322_interrupt(struct qib_devdata *dd, int clearpend) ...@@ -3537,8 +3537,7 @@ static void qib_setup_7322_interrupt(struct qib_devdata *dd, int clearpend)
for (i = 0; i < ARRAY_SIZE(redirect); i++) for (i = 0; i < ARRAY_SIZE(redirect); i++)
qib_write_kreg(dd, kr_intredirect + i, redirect[i]); qib_write_kreg(dd, kr_intredirect + i, redirect[i]);
dd->cspec->main_int_mask = mask; dd->cspec->main_int_mask = mask;
tasklet_init(&dd->error_tasklet, qib_error_tasklet, tasklet_setup(&dd->error_tasklet, qib_error_tasklet);
(unsigned long)dd);
} }
/** /**
......
...@@ -62,7 +62,7 @@ static void sdma_get(struct qib_sdma_state *); ...@@ -62,7 +62,7 @@ static void sdma_get(struct qib_sdma_state *);
static void sdma_put(struct qib_sdma_state *); static void sdma_put(struct qib_sdma_state *);
static void sdma_set_state(struct qib_pportdata *, enum qib_sdma_states); static void sdma_set_state(struct qib_pportdata *, enum qib_sdma_states);
static void sdma_start_sw_clean_up(struct qib_pportdata *); static void sdma_start_sw_clean_up(struct qib_pportdata *);
static void sdma_sw_clean_up_task(unsigned long); static void sdma_sw_clean_up_task(struct tasklet_struct *);
static void unmap_desc(struct qib_pportdata *, unsigned); static void unmap_desc(struct qib_pportdata *, unsigned);
static void sdma_get(struct qib_sdma_state *ss) static void sdma_get(struct qib_sdma_state *ss)
...@@ -119,9 +119,10 @@ static void clear_sdma_activelist(struct qib_pportdata *ppd) ...@@ -119,9 +119,10 @@ static void clear_sdma_activelist(struct qib_pportdata *ppd)
} }
} }
static void sdma_sw_clean_up_task(unsigned long opaque) static void sdma_sw_clean_up_task(struct tasklet_struct *t)
{ {
struct qib_pportdata *ppd = (struct qib_pportdata *) opaque; struct qib_pportdata *ppd = from_tasklet(ppd, t,
sdma_sw_clean_up_task);
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&ppd->sdma_lock, flags); spin_lock_irqsave(&ppd->sdma_lock, flags);
...@@ -436,8 +437,7 @@ int qib_setup_sdma(struct qib_pportdata *ppd) ...@@ -436,8 +437,7 @@ int qib_setup_sdma(struct qib_pportdata *ppd)
INIT_LIST_HEAD(&ppd->sdma_activelist); INIT_LIST_HEAD(&ppd->sdma_activelist);
tasklet_init(&ppd->sdma_sw_clean_up_task, sdma_sw_clean_up_task, tasklet_setup(&ppd->sdma_sw_clean_up_task, sdma_sw_clean_up_task);
(unsigned long)ppd);
ret = dd->f_init_sdma_regs(ppd); ret = dd->f_init_sdma_regs(ppd);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment