Garrett Wollman wrote: > In article <201407151034.54681....@freebsd.org>, j...@freebsd.org > writes: > > >Hmm, I am surprised by the m_pullup() behavior that it doesn't just > >notice that the first mbuf with a cluster has the desired data > >already > >and returns without doing anything. > > The specification of m_pullup() is that it returns a *writable* mbuf > (and thus also that the "length" provided is less than MHLEN). > Clusters are read-only. > I suspect you already know this, but being nit-picky... I think the cluster starts out rw, but become M_RDONLY (not M_WRITABLE()) when copied by reference. Since that will happen in TCP before a segment gets handed to a device driver for transmission, I think it will always be M_RDONLY in the device driver's output function.
Does that sound correct? rick > -GAWollman > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to > "freebsd-net-unsubscr...@freebsd.org" > _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"