|
@@ -49,7 +49,7 @@ void mlx4_srq_event(struct mlx4_dev *dev, u32 srqn, int event_type)
|
|
|
srq = radix_tree_lookup(&srq_table->tree, srqn & (dev->caps.num_srqs - 1));
|
|
|
rcu_read_unlock();
|
|
|
if (srq)
|
|
|
- atomic_inc(&srq->refcount);
|
|
|
+ refcount_inc(&srq->refcount);
|
|
|
else {
|
|
|
mlx4_warn(dev, "Async event for bogus SRQ %08x\n", srqn);
|
|
|
return;
|
|
@@ -57,7 +57,7 @@ void mlx4_srq_event(struct mlx4_dev *dev, u32 srqn, int event_type)
|
|
|
|
|
|
srq->event(srq, event_type);
|
|
|
|
|
|
- if (atomic_dec_and_test(&srq->refcount))
|
|
|
+ if (refcount_dec_and_test(&srq->refcount))
|
|
|
complete(&srq->free);
|
|
|
}
|
|
|
|
|
@@ -203,7 +203,7 @@ int mlx4_srq_alloc(struct mlx4_dev *dev, u32 pdn, u32 cqn, u16 xrcd,
|
|
|
if (err)
|
|
|
goto err_radix;
|
|
|
|
|
|
- atomic_set(&srq->refcount, 1);
|
|
|
+ refcount_set(&srq->refcount, 1);
|
|
|
init_completion(&srq->free);
|
|
|
|
|
|
return 0;
|
|
@@ -232,7 +232,7 @@ void mlx4_srq_free(struct mlx4_dev *dev, struct mlx4_srq *srq)
|
|
|
radix_tree_delete(&srq_table->tree, srq->srqn);
|
|
|
spin_unlock_irq(&srq_table->lock);
|
|
|
|
|
|
- if (atomic_dec_and_test(&srq->refcount))
|
|
|
+ if (refcount_dec_and_test(&srq->refcount))
|
|
|
complete(&srq->free);
|
|
|
wait_for_completion(&srq->free);
|
|
|
|