svn commit: r234627 - in user/np/toe_iwarp/sys/ofed: drivers/infiniband/core include/linux

Navdeep Parhar np at FreeBSD.org
Tue Apr 24 01:12:44 UTC 2012


Author: np
Date: Tue Apr 24 01:12:43 2012
New Revision: 234627
URL: http://svn.freebsd.org/changeset/base/234627

Log:
  sock_getname: check whether connected only if the peer's name has been
  requested.

Modified:
  user/np/toe_iwarp/sys/ofed/drivers/infiniband/core/cma.c
  user/np/toe_iwarp/sys/ofed/include/linux/net.h

Modified: user/np/toe_iwarp/sys/ofed/drivers/infiniband/core/cma.c
==============================================================================
--- user/np/toe_iwarp/sys/ofed/drivers/infiniband/core/cma.c	Tue Apr 24 00:13:59 2012	(r234626)
+++ user/np/toe_iwarp/sys/ofed/drivers/infiniband/core/cma.c	Tue Apr 24 01:12:43 2012	(r234627)
@@ -2257,12 +2257,7 @@ static int cma_get_tcp_port(struct rdma_
 		sock_release(sock);
 		return ret;
 	}
-/*
- * sock_getname does not seem to work here and it seems more similar to getpeername.
- * Instead something like kern_getsockname should be used. Till that change is done
- * lets disable the below code.
- */
-#if 0
+
 	size = ip_addr_size((struct sockaddr *) &id_priv->id.route.addr.src_addr);
 	ret = sock_getname(sock,
 			(struct sockaddr *) &id_priv->id.route.addr.src_addr,
@@ -2271,7 +2266,7 @@ static int cma_get_tcp_port(struct rdma_
 		sock_release(sock);
 		return ret;
 	}
-#endif
+
 	id_priv->sock = sock;
 	return 0;
 }

Modified: user/np/toe_iwarp/sys/ofed/include/linux/net.h
==============================================================================
--- user/np/toe_iwarp/sys/ofed/include/linux/net.h	Tue Apr 24 00:13:59 2012	(r234626)
+++ user/np/toe_iwarp/sys/ofed/include/linux/net.h	Tue Apr 24 01:12:43 2012	(r234627)
@@ -48,12 +48,12 @@ sock_getname(struct socket *so, struct s
 	int error;
 
 	nam = NULL;
-	if ((so->so_state & (SS_ISCONNECTED|SS_ISCONFIRMING)) == 0)
-		return (-ENOTCONN);
+	if (peer) {
+		if ((so->so_state & (SS_ISCONNECTED|SS_ISCONFIRMING)) == 0)
+			return (-ENOTCONN);
 
-	if (peer)
 		error = (*so->so_proto->pr_usrreqs->pru_peeraddr)(so, nam);
-	else
+	} else
 		error = (*so->so_proto->pr_usrreqs->pru_sockaddr)(so, nam);
 	if (error)
 		return (-error);


More information about the svn-src-user mailing list