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