When tcp_mss() is called from syncache_socket() or tcp_input() while
holding the inpcb (tcpinp) lock, it acquires SOCK_RECVBUF_LOCK(so_rcv)
and SOCK_SENDBUF_LOCK(so_snd). That establishes lock order tcpinp ->
so_rcv, which reverses the canonical so_rcv -> tcpinp order used
elsewhere and triggers WITNESS.
Add a skip_sockbuf argument to tcp_mss(). When set (callers that hold
the inpcb lock: syncache_socket and tcp_input MSS option handling),
skip the socket buffer lock and resize logic. TCP state (t_maxseg,
TF2_PROC_SACK_PROHIBIT, TSO) is still updated. Socket buffer sizing
still runs when tcp_mss() is invoked without the inpcb lock (e.g. from
tcp_usrreq).