diff options
Diffstat (limited to 'drivers/infiniband/hw/hfi1/user_sdma.c')
| -rw-r--r-- | drivers/infiniband/hw/hfi1/user_sdma.c | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c index 5b11c8282744..a71c5a36ceba 100644 --- a/drivers/infiniband/hw/hfi1/user_sdma.c +++ b/drivers/infiniband/hw/hfi1/user_sdma.c @@ -161,9 +161,7 @@ int hfi1_user_sdma_alloc_queues(struct hfi1_ctxtdata *uctxt,  	if (!pq->reqs)  		goto pq_reqs_nomem; -	pq->req_in_use = kcalloc(BITS_TO_LONGS(hfi1_sdma_comp_ring_size), -				 sizeof(*pq->req_in_use), -				 GFP_KERNEL); +	pq->req_in_use = bitmap_zalloc(hfi1_sdma_comp_ring_size, GFP_KERNEL);  	if (!pq->req_in_use)  		goto pq_reqs_no_in_use; @@ -210,7 +208,7 @@ cq_comps_nomem:  cq_nomem:  	kmem_cache_destroy(pq->txreq_cache);  pq_txreq_nomem: -	kfree(pq->req_in_use); +	bitmap_free(pq->req_in_use);  pq_reqs_no_in_use:  	kfree(pq->reqs);  pq_reqs_nomem: @@ -257,7 +255,7 @@ int hfi1_user_sdma_free_queues(struct hfi1_filedata *fd,  			pq->wait,  			!atomic_read(&pq->n_reqs));  		kfree(pq->reqs); -		kfree(pq->req_in_use); +		bitmap_free(pq->req_in_use);  		kmem_cache_destroy(pq->txreq_cache);  		flush_pq_iowait(pq);  		kfree(pq); |