The branch main has been updated by glebius:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=0773b44e829421a806a89087009b294f16ee51fd

commit 0773b44e829421a806a89087009b294f16ee51fd
Author:     Gleb Smirnoff <gleb...@freebsd.org>
AuthorDate: 2022-09-05 17:15:19 +0000
Commit:     Gleb Smirnoff <gleb...@freebsd.org>
CommitDate: 2022-09-05 17:19:11 +0000

    tcp: tcp6_connect() requires net epoch
    
    PR:                     262663
    Reported & tested by:   dch
    MFC after:              2 weeks
---
 sys/netinet/tcp_usrreq.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c
index 291d6a76bb20..d1b7ce5daa67 100644
--- a/sys/netinet/tcp_usrreq.c
+++ b/sys/netinet/tcp_usrreq.c
@@ -693,20 +693,18 @@ tcp6_usr_connect(struct socket *so, struct sockaddr *nam, 
struct thread *td)
        inp->inp_vflag &= ~INP_IPV4;
        inp->inp_vflag |= INP_IPV6;
        inp->inp_inc.inc_flags |= INC_ISIPV6;
+       NET_EPOCH_ENTER(et);
        if ((error = tcp6_connect(tp, nam, td)) != 0)
-               goto out;
+               goto out_in_epoch;
 #ifdef TCP_OFFLOAD
        if (registered_toedevs > 0 &&
            (so->so_options & SO_NO_OFFLOAD) == 0 &&
            (error = tcp_offload_connect(so, nam)) == 0)
-               goto out;
+               goto out_in_epoch;
 #endif
        tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp));
-       NET_EPOCH_ENTER(et);
        error = tcp_output(tp);
-#ifdef INET
 out_in_epoch:
-#endif
        NET_EPOCH_EXIT(et);
 out:
        KASSERT(error >= 0, ("TCP stack %s requested tcp_drop(%p) at connect()"

Reply via email to