Date: Tue, 24 Apr 2012 01:12:43 +0000 (UTC) From: Navdeep Parhar <np@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r234627 - in user/np/toe_iwarp/sys/ofed: drivers/infiniband/core include/linux Message-ID: <201204240112.q3O1ChWm023631@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204240112.q3O1ChWm023631>