diff options
Diffstat (limited to 'drivers/infiniband/hw/cxgb4/cq.c')
| -rw-r--r-- | drivers/infiniband/hw/cxgb4/cq.c | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/drivers/infiniband/hw/cxgb4/cq.c b/drivers/infiniband/hw/cxgb4/cq.c index 8d8f8add6fcd..1720dc790d13 100644 --- a/drivers/infiniband/hw/cxgb4/cq.c +++ b/drivers/infiniband/hw/cxgb4/cq.c @@ -801,6 +801,10 @@ struct ib_cq *c4iw_create_cq(struct ib_device *ibdev, int entries,  	if (ucontext) {  		memsize = roundup(memsize, PAGE_SIZE);  		hwentries = memsize / sizeof *chp->cq.queue; +		while (hwentries > T4_MAX_IQ_SIZE) { +			memsize -= PAGE_SIZE; +			hwentries = memsize / sizeof *chp->cq.queue; +		}  	}  	chp->cq.size = hwentries;  	chp->cq.memsize = memsize; | 
