mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 18:12:25 -04:00
RDMA/rxe: Convert tasklet args to queue pairs
Originally is was thought that the tasklet machinery in rxe_task.c would be used in other applications but that has not happened for years. This patch replaces the 'void *arg' by struct 'rxe_qp *qp' in the parameters to the tasklet calls. This change will have no affect on performance but may make the code a little clearer. Link: https://lore.kernel.org/r/20230304174533.11296-2-rpearsonhpe@gmail.com Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
committed by
Jason Gunthorpe
parent
5bf944f241
commit
3946fc2a42
@@ -575,9 +575,8 @@ static void free_pkt(struct rxe_pkt_info *pkt)
|
||||
ib_device_put(dev);
|
||||
}
|
||||
|
||||
int rxe_completer(void *arg)
|
||||
int rxe_completer(struct rxe_qp *qp)
|
||||
{
|
||||
struct rxe_qp *qp = (struct rxe_qp *)arg;
|
||||
struct rxe_dev *rxe = to_rdev(qp->ibqp.device);
|
||||
struct rxe_send_wqe *wqe = NULL;
|
||||
struct sk_buff *skb = NULL;
|
||||
|
||||
@@ -170,9 +170,9 @@ void rxe_srq_cleanup(struct rxe_pool_elem *elem);
|
||||
|
||||
void rxe_dealloc(struct ib_device *ib_dev);
|
||||
|
||||
int rxe_completer(void *arg);
|
||||
int rxe_requester(void *arg);
|
||||
int rxe_responder(void *arg);
|
||||
int rxe_completer(struct rxe_qp *qp);
|
||||
int rxe_requester(struct rxe_qp *qp);
|
||||
int rxe_responder(struct rxe_qp *qp);
|
||||
|
||||
/* rxe_icrc.c */
|
||||
int rxe_icrc_init(struct rxe_dev *rxe);
|
||||
|
||||
@@ -635,9 +635,8 @@ static int rxe_do_local_ops(struct rxe_qp *qp, struct rxe_send_wqe *wqe)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int rxe_requester(void *arg)
|
||||
int rxe_requester(struct rxe_qp *qp)
|
||||
{
|
||||
struct rxe_qp *qp = (struct rxe_qp *)arg;
|
||||
struct rxe_dev *rxe = to_rdev(qp->ibqp.device);
|
||||
struct rxe_pkt_info pkt;
|
||||
struct sk_buff *skb;
|
||||
|
||||
@@ -1443,9 +1443,8 @@ static void rxe_drain_req_pkts(struct rxe_qp *qp, bool notify)
|
||||
queue_advance_consumer(q, q->type);
|
||||
}
|
||||
|
||||
int rxe_responder(void *arg)
|
||||
int rxe_responder(struct rxe_qp *qp)
|
||||
{
|
||||
struct rxe_qp *qp = (struct rxe_qp *)arg;
|
||||
struct rxe_dev *rxe = to_rdev(qp->ibqp.device);
|
||||
enum resp_states state;
|
||||
struct rxe_pkt_info *pkt = NULL;
|
||||
|
||||
@@ -11,7 +11,7 @@ int __rxe_do_task(struct rxe_task *task)
|
||||
{
|
||||
int ret;
|
||||
|
||||
while ((ret = task->func(task->arg)) == 0)
|
||||
while ((ret = task->func(task->qp)) == 0)
|
||||
;
|
||||
|
||||
task->ret = ret;
|
||||
@@ -29,7 +29,7 @@ static void do_task(struct tasklet_struct *t)
|
||||
int cont;
|
||||
int ret;
|
||||
struct rxe_task *task = from_tasklet(task, t, tasklet);
|
||||
struct rxe_qp *qp = (struct rxe_qp *)task->arg;
|
||||
struct rxe_qp *qp = (struct rxe_qp *)task->qp;
|
||||
unsigned int iterations = RXE_MAX_ITERATIONS;
|
||||
|
||||
spin_lock_bh(&task->lock);
|
||||
@@ -54,7 +54,7 @@ static void do_task(struct tasklet_struct *t)
|
||||
|
||||
do {
|
||||
cont = 0;
|
||||
ret = task->func(task->arg);
|
||||
ret = task->func(task->qp);
|
||||
|
||||
spin_lock_bh(&task->lock);
|
||||
switch (task->state) {
|
||||
@@ -91,9 +91,10 @@ static void do_task(struct tasklet_struct *t)
|
||||
task->ret = ret;
|
||||
}
|
||||
|
||||
int rxe_init_task(struct rxe_task *task, void *arg, int (*func)(void *))
|
||||
int rxe_init_task(struct rxe_task *task, struct rxe_qp *qp,
|
||||
int (*func)(struct rxe_qp *))
|
||||
{
|
||||
task->arg = arg;
|
||||
task->qp = qp;
|
||||
task->func = func;
|
||||
task->destroyed = false;
|
||||
|
||||
|
||||
@@ -22,18 +22,19 @@ struct rxe_task {
|
||||
struct tasklet_struct tasklet;
|
||||
int state;
|
||||
spinlock_t lock;
|
||||
void *arg;
|
||||
int (*func)(void *arg);
|
||||
struct rxe_qp *qp;
|
||||
int (*func)(struct rxe_qp *qp);
|
||||
int ret;
|
||||
bool destroyed;
|
||||
};
|
||||
|
||||
/*
|
||||
* init rxe_task structure
|
||||
* arg => parameter to pass to fcn
|
||||
* qp => parameter to pass to func
|
||||
* func => function to call until it returns != 0
|
||||
*/
|
||||
int rxe_init_task(struct rxe_task *task, void *arg, int (*func)(void *));
|
||||
int rxe_init_task(struct rxe_task *task, struct rxe_qp *qp,
|
||||
int (*func)(struct rxe_qp *));
|
||||
|
||||
/* cleanup task */
|
||||
void rxe_cleanup_task(struct rxe_task *task);
|
||||
|
||||
Reference in New Issue
Block a user