Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d716a2a0 authored by Vipul Pandya's avatar Vipul Pandya Committed by Roland Dreier
Browse files

RDMA/cxgb4: Use vmalloc() for debugfs QP dump



This allows dumping thousands of QPs.  Log active open failures of
interest.

Signed-off-by: default avatarVipul Pandya <vipul@chelsio.com>
Signed-off-by: default avatarSteve Wise <swise@opengridcomputing.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 422eea0a
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -1413,6 +1413,24 @@ static int act_open_rpl(struct c4iw_dev *dev, struct sk_buff *skb)
		return 0;
	}

	/*
	 * Log interesting failures.
	 */
	switch (status) {
	case CPL_ERR_CONN_RESET:
	case CPL_ERR_CONN_TIMEDOUT:
		break;
	default:
		printk(KERN_INFO MOD "Active open failure - "
		       "atid %u status %u errno %d %pI4:%u->%pI4:%u\n",
		       atid, status, status2errno(status),
		       &ep->com.local_addr.sin_addr.s_addr,
		       ntohs(ep->com.local_addr.sin_port),
		       &ep->com.remote_addr.sin_addr.s_addr,
		       ntohs(ep->com.remote_addr.sin_port));
		break;
	}

	connect_reply_upcall(ep, status2errno(status));
	state_set(&ep->com, DEAD);

+2 −2
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ static int qp_release(struct inode *inode, struct file *file)
		printk(KERN_INFO "%s null qpd?\n", __func__);
		return 0;
	}
	kfree(qpd->buf);
	vfree(qpd->buf);
	kfree(qpd);
	return 0;
}
@@ -145,7 +145,7 @@ static int qp_open(struct inode *inode, struct file *file)
	spin_unlock_irq(&qpd->devp->lock);

	qpd->bufsize = count * 128;
	qpd->buf = kmalloc(qpd->bufsize, GFP_KERNEL);
	qpd->buf = vmalloc(qpd->bufsize);
	if (!qpd->buf) {
		ret = -ENOMEM;
		goto err1;