> On 26 May 2016, at 18:35 , John Baldwin <j...@freebsd.org> wrote: > > Author: jhb > Date: Thu May 26 18:35:37 2016 > New Revision: 300764 > URL: https://svnweb.freebsd.org/changeset/base/300764 > > Log: > Don't reuse the source mbuf in tcp_respond() if it is not writable. > > Not all mbufs passed up from device drivers are M_WRITABLE(). In > particular, the Chelsio T4/T5 driver uses a feature called "buffer packing" > to receive multiple frames in a single receive buffer. The mbufs for > these frames all share the same external storage so are treated as > read-only by the rest of the stack when multiple frames are in flight. > Previously tcp_respond() would blindly overwrite read-only mbufs when > INVARIANTS was disabled or panic with an assertion failure if INVARIANTS > was enabled. Note that the new case is a bit of a mix of the two other > cases in tcp_respond(). The TCP and IP headers must be copied explicitly > into the new mbuf instead of being inherited (similar to the m == NULL > case), but the addresses and ports must be swapped in the reply (similar > to the m != NULL case).
Is the same true for ICMP(v6) replies? /bz _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"