svn commit: r336667 - stable/11/sys/dev/cxgbe/iw_cxgbe
Navdeep Parhar
np at FreeBSD.org
Tue Jul 24 13:13:31 UTC 2018
Author: np
Date: Tue Jul 24 13:13:30 2018
New Revision: 336667
URL: https://svnweb.freebsd.org/changeset/base/336667
Log:
cxgbe/iw_cxgbe: Do not call soaccept twice on the same socket.
This is a direct commit to stable/11.
Reported by: Sai Tallamraju @ Netapp
Sponsored by: Chelsio Communications
Modified:
stable/11/sys/dev/cxgbe/iw_cxgbe/cm.c
Modified: stable/11/sys/dev/cxgbe/iw_cxgbe/cm.c
==============================================================================
--- stable/11/sys/dev/cxgbe/iw_cxgbe/cm.c Tue Jul 24 12:55:54 2018 (r336666)
+++ stable/11/sys/dev/cxgbe/iw_cxgbe/cm.c Tue Jul 24 13:13:30 2018 (r336667)
@@ -947,7 +947,6 @@ process_newconn(struct c4iw_listen_ep *master_lep, str
{
struct c4iw_listen_ep *real_lep = NULL;
struct c4iw_ep *new_ep = NULL;
- struct sockaddr_in *remote = NULL;
int ret = 0;
MPASS(new_so != NULL);
@@ -992,20 +991,6 @@ process_newconn(struct c4iw_listen_ep *master_lep, str
START_EP_TIMER(new_ep);
setiwsockopt(new_so);
- ret = soaccept(new_so, (struct sockaddr **)&remote);
- if (ret != 0) {
- CTR4(KTR_IW_CXGBE,
- "%s:listen sock:%p, new sock:%p, ret:%d\n",
- __func__, master_lep->com.so, new_so, ret);
- if (remote != NULL)
- free(remote, M_SONAME);
- uninit_iwarp_socket(new_so);
- soclose(new_so);
- c4iw_put_ep(&new_ep->com);
- c4iw_put_ep(&real_lep->com);
- return;
- }
- free(remote, M_SONAME);
/* MPA request might have been queued up on the socket already, so we
* initialize the socket/upcall_handler under lock to prevent processing
@@ -1118,8 +1103,10 @@ dequeue_socket(struct socket *head)
SOCK_UNLOCK(so);
ACCEPT_UNLOCK();
remote = NULL;
- soaccept(so, (struct sockaddr **)&remote);
-
+ if (soaccept(so, (struct sockaddr **)&remote) != 0) {
+ soclose(so);
+ so = NULL;
+ }
free(remote, M_SONAME);
return so;
}
More information about the svn-src-all
mailing list