freebsd-nq/sys
Sam Leffler 9967cafc49 Correct mbuf packet header propagation. Previously, packet headers
were sometimes propagated using M_COPY_PKTHDR which actually did
something between a "move" and a  "copy" operation.  This is replaced
by M_MOVE_PKTHDR (which copies the pkthdr contents and "removes" it
from the source mbuf) and m_dup_pkthdr which copies the packet
header contents including any m_tag chain.  This corrects numerous
problems whereby mbuf tags could be lost during packet manipulations.

These changes also introduce arguments to m_tag_copy and m_tag_copy_chain
to specify if the tag copy work should potentially block.  This
introduces an incompatibility with openbsd which we may want to revisit.

Note that move/dup of packet headers does not handle target mbufs
that have a cluster bound to them.  We may want to support this;
for now we watch for it with an assert.

Finally, M_COPYFLAGS was updated to include M_FIRSTFRAG|M_LASTFRAG.

Supported by:	Vernier Networks
Reviewed by:	Robert Watson <rwatson@FreeBSD.org>
2002-12-30 20:22:40 +00:00
..
alpha - Use VM_ALLOC_WIRED. 2002-12-28 22:47:45 +00:00
amd64 Synchronize to kern/syscalls.master:1.139. 2002-12-29 20:33:26 +00:00
arm MB_LEN_MAX is not MD, move it to the MI limits.h. 2002-12-22 06:38:45 +00:00
boot -mno-align-long-strings can make things smaller, so lets use it in hopes 2002-12-21 02:03:31 +00:00
cam Quirk for Memorybird pen drive 2002-12-18 21:47:52 +00:00
coda Back our kernel support for reliable signal queues. 2002-10-01 17:15:53 +00:00
compat Synchronize to kern/syscalls.master:1.139. 2002-12-29 20:33:26 +00:00
conf Move the amd(4) driver to it's own directory in preparation for it growing 2002-12-13 22:59:18 +00:00
contrib SMP locking for ifnet list. 2002-12-22 05:35:03 +00:00
crypto Make this compilable from userland as well. 2002-11-01 08:56:39 +00:00
ddb Add code to ddb to allow backtracing an arbitrary thread. 2002-12-28 01:23:07 +00:00
dev Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
fs There is some sort of race/deadlock which I have not identified 2002-12-29 10:32:16 +00:00
geom Implement ioctls for tampering with sector0. 2002-12-29 14:59:24 +00:00
gnu MFufs 1.33: 2002-10-18 21:41:41 +00:00
i4b network interface and link layer changes: 2002-11-15 00:00:15 +00:00
i386 Change the ident so people know a kernel built with this has SMP support. 2002-12-30 11:36:17 +00:00
ia64 Synchronize to kern/syscalls.master:1.139. 2002-12-29 20:33:26 +00:00
isa Remove calls to cdevsw_add(), they are dreprecated on this branch now. 2002-12-28 21:39:04 +00:00
isofs/cd9660 Unbreak MNT_UPDATE when running with cd as root. Detect mountroot by 2002-11-02 20:16:55 +00:00
kern Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
libkern Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
modules Make it work -current style. 2002-12-23 22:33:08 +00:00
net Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
netatalk Lock up ifaddr reference counts. 2002-12-18 11:46:59 +00:00
netatm Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
netgraph Make ng_fec.c compile again since Sam's changes. 2002-12-23 22:31:24 +00:00
netinet Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
netinet6 Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
netipsec Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
netipx Fix a sizeof(int) != sizeof(void *) warning. 2002-11-08 21:16:27 +00:00
netkey o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
netnatm Be consistent about functions being static. 2002-10-16 09:19:17 +00:00
netncp - Change mb_copy_t to take a size_t as the length argument instead of an 2002-11-08 21:26:32 +00:00
netns Use m_length() instead of home-rolled versions. 2002-09-18 19:44:14 +00:00
netsmb o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
nfs Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
nfsclient Abstract-out the constants for the sequential heuristic. 2002-12-28 20:37:50 +00:00
nfsserver Abstract-out the constants for the sequential heuristic. 2002-12-28 20:28:10 +00:00
opencrypto correct minor # in make_dev call 2002-11-08 23:07:41 +00:00
pc98 Unspam some experimental changes which should not have been committed. 2002-12-17 13:37:08 +00:00
pccard MFp4: 2002-11-27 06:04:49 +00:00
pci Leave only one of the two $FreeBSD$ tag, and use __FBSDID(). 2002-12-30 12:46:08 +00:00
posix4 Rework the sysconf(3) interaction with aio: 2002-11-17 04:15:34 +00:00
powerpc MB_LEN_MAX is not MD, move it to the MI limits.h. 2002-12-22 06:38:45 +00:00
rpc
security Map VAPPEND to VWRITE since the ugidfw rule syntax doesn't specifically 2002-12-28 23:41:18 +00:00
sparc64 Use memset instead of __builtin_memset. Apparently there's an inline 2002-12-29 08:37:11 +00:00
sys Correct mbuf packet header propagation. Previously, packet headers 2002-12-30 20:22:40 +00:00
tools - Move ASSERT_VOP_*LOCK* functionality into functions in vfs_subr.c 2002-09-26 04:48:44 +00:00
ufs Use three UMA zones for FFS/UFS inodes instead of malloc space. 2002-12-27 11:05:05 +00:00
vm - Mark the kernel_map as a system map immediately after its creation. 2002-12-30 05:55:41 +00:00
Makefile Milestone #1 in cross-arch make releases. 2002-04-26 17:55:27 +00:00