Clear tp->tod in t4_pcb_detach().

Otherwise, a socket can have a non-NULL tp->tod while TF_TOE is clear.
In particular, if a newly accepted socket falls back to non-TOE due to
an active open failure, the non-TOE socket will still have tp->tod set
even though TF_TOE is clear.

Reviewed by:	np
MFC after:	2 weeks
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D27028
This commit is contained in:
John Baldwin 2020-11-10 19:54:39 +00:00
parent e268fd0a02
commit b3ceca0c80
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=367578

View File

@ -382,6 +382,7 @@ t4_pcb_detach(struct toedev *tod __unused, struct tcpcb *tp)
}
#endif
tp->tod = NULL;
tp->t_toe = NULL;
tp->t_flags &= ~TF_TOE;
toep->flags &= ~TPF_ATTACHED;