mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-06 14:48:06 +00:00
RDMA/rxe: 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-6-allen.lkml@gmail.com Signed-off-by: Romain Perier <romain.perier@gmail.com> Signed-off-by: Allen Pais <allen.lkml@gmail.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
a23afb448b
commit
00b3c11879
3 changed files with 8 additions and 8 deletions
|
@ -39,9 +39,9 @@ err1:
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
static void rxe_send_complete(unsigned long data)
|
||||
static void rxe_send_complete(struct tasklet_struct *t)
|
||||
{
|
||||
struct rxe_cq *cq = (struct rxe_cq *)data;
|
||||
struct rxe_cq *cq = from_tasklet(cq, t, comp_task);
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&cq->cq_lock, flags);
|
||||
|
@ -80,7 +80,7 @@ int rxe_cq_from_init(struct rxe_dev *rxe, struct rxe_cq *cq, int cqe,
|
|||
|
||||
cq->is_dying = false;
|
||||
|
||||
tasklet_init(&cq->comp_task, rxe_send_complete, (unsigned long)cq);
|
||||
tasklet_setup(&cq->comp_task, rxe_send_complete);
|
||||
|
||||
spin_lock_init(&cq->cq_lock);
|
||||
cq->ibcq.cqe = cqe;
|
||||
|
|
|
@ -28,12 +28,12 @@ int __rxe_do_task(struct rxe_task *task)
|
|||
* a second caller finds the task already running
|
||||
* but looks just after the last call to func
|
||||
*/
|
||||
void rxe_do_task(unsigned long data)
|
||||
void rxe_do_task(struct tasklet_struct *t)
|
||||
{
|
||||
int cont;
|
||||
int ret;
|
||||
unsigned long flags;
|
||||
struct rxe_task *task = (struct rxe_task *)data;
|
||||
struct rxe_task *task = from_tasklet(task, t, tasklet);
|
||||
|
||||
spin_lock_irqsave(&task->state_lock, flags);
|
||||
switch (task->state) {
|
||||
|
@ -96,7 +96,7 @@ int rxe_init_task(void *obj, struct rxe_task *task,
|
|||
snprintf(task->name, sizeof(task->name), "%s", name);
|
||||
task->destroyed = false;
|
||||
|
||||
tasklet_init(&task->tasklet, rxe_do_task, (unsigned long)task);
|
||||
tasklet_setup(&task->tasklet, rxe_do_task);
|
||||
|
||||
task->state = TASK_STATE_START;
|
||||
spin_lock_init(&task->state_lock);
|
||||
|
@ -132,7 +132,7 @@ void rxe_run_task(struct rxe_task *task, int sched)
|
|||
if (sched)
|
||||
tasklet_schedule(&task->tasklet);
|
||||
else
|
||||
rxe_do_task((unsigned long)task);
|
||||
rxe_do_task(&task->tasklet);
|
||||
}
|
||||
|
||||
void rxe_disable_task(struct rxe_task *task)
|
||||
|
|
|
@ -53,7 +53,7 @@ int __rxe_do_task(struct rxe_task *task);
|
|||
* work to do someone must reschedule the task before
|
||||
* leaving
|
||||
*/
|
||||
void rxe_do_task(unsigned long data);
|
||||
void rxe_do_task(struct tasklet_struct *t);
|
||||
|
||||
/* run a task, else schedule it to run as a tasklet, The decision
|
||||
* to run or schedule tasklet is based on the parameter sched.
|
||||
|
|
Loading…
Add table
Reference in a new issue