diff options
Diffstat (limited to 'net/rds/ib_cm.c')
| -rw-r--r-- | net/rds/ib_cm.c | 23 | 
1 files changed, 10 insertions, 13 deletions
diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c index ee369d201a6..31b74f5e61a 100644 --- a/net/rds/ib_cm.c +++ b/net/rds/ib_cm.c @@ -34,6 +34,7 @@  #include <linux/in.h>  #include <linux/slab.h>  #include <linux/vmalloc.h> +#include <linux/ratelimit.h>  #include "rds.h"  #include "ib.h" @@ -374,23 +375,21 @@ static int rds_ib_setup_qp(struct rds_connection *conn)  		goto out;  	} -	ic->i_sends = vmalloc_node(ic->i_send_ring.w_nr * sizeof(struct rds_ib_send_work), +	ic->i_sends = vzalloc_node(ic->i_send_ring.w_nr * sizeof(struct rds_ib_send_work),  				   ibdev_to_node(dev));  	if (!ic->i_sends) {  		ret = -ENOMEM;  		rdsdebug("send allocation failed\n");  		goto out;  	} -	memset(ic->i_sends, 0, ic->i_send_ring.w_nr * sizeof(struct rds_ib_send_work)); -	ic->i_recvs = vmalloc_node(ic->i_recv_ring.w_nr * sizeof(struct rds_ib_recv_work), +	ic->i_recvs = vzalloc_node(ic->i_recv_ring.w_nr * sizeof(struct rds_ib_recv_work),  				   ibdev_to_node(dev));  	if (!ic->i_recvs) {  		ret = -ENOMEM;  		rdsdebug("recv allocation failed\n");  		goto out;  	} -	memset(ic->i_recvs, 0, ic->i_recv_ring.w_nr * sizeof(struct rds_ib_recv_work));  	rds_ib_recv_init_ack(ic); @@ -435,13 +434,11 @@ static u32 rds_ib_protocol_compatible(struct rdma_cm_event *event)  		version = RDS_PROTOCOL_3_0;  		while ((common >>= 1) != 0)  			version++; -	} else if (printk_ratelimit()) { -		printk(KERN_NOTICE "RDS: Connection from %pI4 using " -			"incompatible protocol version %u.%u\n", -			&dp->dp_saddr, -			dp->dp_protocol_major, -			dp->dp_protocol_minor); -	} +	} else +		printk_ratelimited(KERN_NOTICE "RDS: Connection from %pI4 using incompatible protocol version %u.%u\n", +				&dp->dp_saddr, +				dp->dp_protocol_major, +				dp->dp_protocol_minor);  	return version;  } @@ -587,7 +584,7 @@ int rds_ib_conn_connect(struct rds_connection *conn)  	/* XXX I wonder what affect the port space has */  	/* delegate cm event handler to rdma_transport */  	ic->i_cm_id = rdma_create_id(rds_rdma_cm_event_handler, conn, -				     RDMA_PS_TCP); +				     RDMA_PS_TCP, IB_QPT_RC);  	if (IS_ERR(ic->i_cm_id)) {  		ret = PTR_ERR(ic->i_cm_id);  		ic->i_cm_id = NULL; @@ -751,7 +748,7 @@ int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp)  	int ret;  	/* XXX too lazy? */ -	ic = kzalloc(sizeof(struct rds_ib_connection), GFP_KERNEL); +	ic = kzalloc(sizeof(struct rds_ib_connection), gfp);  	if (!ic)  		return -ENOMEM;  | 
