diff options
Diffstat (limited to 'drivers/net/ethernet/ibm/ehea/ehea_qmr.c')
| -rw-r--r-- | drivers/net/ethernet/ibm/ehea/ehea_qmr.c | 19 | 
1 files changed, 6 insertions, 13 deletions
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_qmr.c b/drivers/net/ethernet/ibm/ehea/ehea_qmr.c index 27f881758d1..9b03033bb55 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_qmr.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_qmr.c @@ -64,11 +64,10 @@ static int hw_queue_ctor(struct hw_queue *queue, const u32 nr_of_pages,  	}  	queue->queue_length = nr_of_pages * pagesize; -	queue->queue_pages = kmalloc(nr_of_pages * sizeof(void *), GFP_KERNEL); -	if (!queue->queue_pages) { -		pr_err("no mem for queue_pages\n"); +	queue->queue_pages = kmalloc_array(nr_of_pages, sizeof(void *), +					   GFP_KERNEL); +	if (!queue->queue_pages)  		return -ENOMEM; -	}  	/*  	 * allocate pages for queue: @@ -129,10 +128,8 @@ struct ehea_cq *ehea_create_cq(struct ehea_adapter *adapter,  	void *vpage;  	cq = kzalloc(sizeof(*cq), GFP_KERNEL); -	if (!cq) { -		pr_err("no mem for cq\n"); +	if (!cq)  		goto out_nomem; -	}  	cq->attr.max_nr_of_cqes = nr_of_cqe;  	cq->attr.cq_token = cq_token; @@ -257,10 +254,8 @@ struct ehea_eq *ehea_create_eq(struct ehea_adapter *adapter,  	struct ehea_eq *eq;  	eq = kzalloc(sizeof(*eq), GFP_KERNEL); -	if (!eq) { -		pr_err("no mem for eq\n"); +	if (!eq)  		return NULL; -	}  	eq->adapter = adapter;  	eq->attr.type = type; @@ -428,10 +423,8 @@ struct ehea_qp *ehea_create_qp(struct ehea_adapter *adapter,  	qp = kzalloc(sizeof(*qp), GFP_KERNEL); -	if (!qp) { -		pr_err("no mem for qp\n"); +	if (!qp)  		return NULL; -	}  	qp->adapter = adapter;  |