freebsd-dev/sys
Gleb Smirnoff e71fefbe21 When we read data from socket buffer using soreceive() the socket layer
does not clear m_nextpkt for us. The mbufs are sent into netgraph and
then, if they contain a TCP packet delivered locally, they will enter
socket code again. They can pass the first assert in sbappendstream()
because m_nextpkt may be set not in the first mbuf, but deeper in the
chain. So the problem will trigger much later, when local program
reads the data from socket, and an mbuf with m_nextpkt becomes a
first one.

This bug was demasked by revision 1.54, when I made upcall queueable.
Before revision 1.54 there was a very small probability to have 2
mbufs in GRE socket buffer, because ng_ksocket_incoming2() dequeued
the first one immediately.

 - in ng_ksocket_incoming2() clear m_nextpkt on all mbufs
   read from socket.
 - restore rev. 1.54 change in ng_ksocket_incoming().

PR:			kern/84952
PR:			kern/82413
In collaboration with:	rwatson
2005-09-06 17:15:42 +00:00
..
alpha Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
amd64 Eliminate unnecessary TLB invalidations by pmap_enter(). Specifically, 2005-09-04 19:06:27 +00:00
arm Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
boot net.graph.ngqfreemax has been deprecated. 2005-08-31 10:51:55 +00:00
bsm For consistency with more system include files, add a trailing '_' to 2005-05-29 16:11:34 +00:00
cam Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
coda Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
compat Test the mbuf flags against the correct constant. The previous version 2005-08-30 16:21:51 +00:00
conf Remove the el(4) driver for 3Com 3c501 ISA NICs from HEAD as threatened 2005-08-26 13:42:04 +00:00
contrib Wrap the new world order in __FreeBSD__ to ease future imports. 2005-08-09 11:59:02 +00:00
crypto Add VIA/ACE "PadLock" support as a crypto(9) driver. 2005-08-18 00:30:22 +00:00
ddb Remove the need to forward declare statics by moving them around. 2005-08-10 07:08:14 +00:00
dev When bge_stop() is called from bge_detach(), mii is already NULL, so check 2005-09-04 06:35:59 +00:00
doc
fs Unbreak hpfs/ntfs/udf/ext2fs/reiserfs mounting. 2005-09-03 20:23:41 +00:00
gdb check return value of gdb_rx_varhex 2005-03-28 18:31:18 +00:00
geom Remove a race condition that could result in processes being stuck 2005-09-04 19:14:19 +00:00
gnu Unbreak hpfs/ntfs/udf/ext2fs/reiserfs mounting. 2005-09-03 20:23:41 +00:00
i4b Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
i386 Eliminate unnecessary TLB invalidations by pmap_enter(). Specifically, 2005-09-04 19:06:27 +00:00
ia64 Milestone: enable SMP by default. 2005-09-05 21:36:28 +00:00
isa Add pnp and location info for the ISA bus. The pnp info is the 2005-08-01 07:03:10 +00:00
isofs/cd9660 - restore the ability to mount cd9660 filesystems as root by inverting 2005-08-14 04:19:36 +00:00
kern In soreceive(), when a first mbuf is removed from socket buffer use 2005-09-06 17:05:11 +00:00
libkern - Fix checking range of strings of struct iconv_add_in in libsmb and libkiconv, 2005-08-24 12:38:26 +00:00
modules Unbreak stand-alone build of the de(4) module. 2005-08-29 15:18:04 +00:00
net Instead of caching the PID which opened the bpf descriptor, continuously 2005-09-05 23:08:04 +00:00
net80211 Properly set ic_curchan before calling back to device driver to do channel 2005-08-30 14:27:47 +00:00
netatalk Use the correct mbuf type for MGET(). 2005-08-30 16:28:46 +00:00
netatm Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
netgraph When we read data from socket buffer using soreceive() the socket layer 2005-09-06 17:15:42 +00:00
netinet clear lock on error in O_LIMIT case of install_state 2005-09-04 17:33:40 +00:00
netinet6 Use the correct mbuf type for MGET(). 2005-08-30 16:35:27 +00:00
netipsec Correct typo in a comment describing vshiftl(). 2005-06-02 23:56:10 +00:00
netipx Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
netkey SADB_UPDATE did not return an error when key length is invalid. 2005-08-22 07:05:14 +00:00
netnatm Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
netncp Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
netsmb Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
nfs Fixes for NFS crashes on architectures that require strict alignment. 2005-07-14 20:08:27 +00:00
nfs4client - We want if (mrep != NULL) not if (m_freem != NULL). m_freem will never 2005-04-25 05:11:19 +00:00
nfsclient FIx for a bug in the change that made nfs_timer() MPSAFE. We need to 2005-07-27 15:06:26 +00:00
nfsserver NFS write gathering defers execution of NFS server write requests to wait 2005-04-17 16:25:36 +00:00
opencrypto Fix bogus check. It was possible to panic the kernel by giving 0 length. 2005-08-18 11:58:03 +00:00
pc98 MFi386: revision 1.1204. 2005-07-21 11:13:12 +00:00
pccard Change a directory layout for pc98. 2005-05-10 12:02:18 +00:00
pci Use if_printf() and device_printf() for printf's and remove the unit number 2005-08-31 18:03:18 +00:00
posix4 Introduce MAC Framework and MAC Policy entry points to label and control 2005-05-04 10:39:15 +00:00
powerpc Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
rpc - Don't call rpcclnt_realign() if we don't have any mbufs to realign. 2005-03-19 01:16:25 +00:00
security Insert a series of place-holder function pointers in mac_policy.h for 2005-08-08 16:09:33 +00:00
sparc64 Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
sys Convert the primary ACL allocator from malloc(9) to using a UMA zone instead. 2005-09-06 00:06:30 +00:00
tools Allow EVFILT_VNODE events to work on every filesystem type, not just 2005-06-09 20:20:31 +00:00
ufs Convert the primary ACL allocator from malloc(9) to using a UMA zone instead. 2005-09-06 00:06:30 +00:00
vm Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
Makefile When building cscopnamefile, default architecture to ${MACHINE}, not i386. 2005-03-08 00:09:41 +00:00