Page MenuHomeFreeBSD

tcp_timers: check for (INP_TIMEWAIT | INP_DROPPED) only once
ClosedPublic

Authored by glebius on Nov 12 2021, 5:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Apr 25, 4:06 PM
Unknown Object (File)
Mar 7 2024, 8:15 PM
Unknown Object (File)
Jan 11 2024, 7:52 PM
Unknown Object (File)
Jan 11 2024, 3:30 AM
Unknown Object (File)
Dec 21 2023, 1:36 PM
Unknown Object (File)
Dec 20 2023, 5:32 AM
Unknown Object (File)
Dec 12 2023, 8:00 AM
Unknown Object (File)
Nov 29 2023, 2:36 AM
Subscribers

Details

Summary

All timers keep inpcb locked through their execution. We need to
check these flags only once. Checking for INP_TIMEWAIT earlier is
is also safer, since such inpcbs point into tcptw rather than tcpcb,
and any dereferences of inp_ppcb as tcpcb are erroneous.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision is now accepted and ready to land.Nov 13 2021, 12:39 PM

This check is occurring lots of places and could have been factored out:

if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) {
        INP_WUNLOCK(inp);