>  struct mlx4_cq {
 > +	int				cqe;
I'm probably missing something but I don't see why we can't continue
using cq->ibv_cq.cqe, which avoids a bunch of changes scattered
around.  The whole resize operation is inside the CQ's spinlock so we
don't have to worry about keeping the size of the CQ consistent or
anything like that.
 - R.