freebsd-dev/sys
Hans Petter Selasky 9c0f6aa762 Fix a special case in ip_fragment() to produce a more sensible chain
of packets. When the data payload length excluding any headers, of an
outgoing IPv4 packet exceeds PAGE_SIZE bytes, a special case in
ip_fragment() can kick in to optimise the outgoing payload(s). The
code which was added in r98849 as part of zero copy socket support
assumes that the beginning of any MTU sized payload is aligned to
where a MBUF's "m_data" pointer points. This is not always the case
and can sometimes cause large IPv4 packets, as part of ping replies,
to be split more than needed.

Instead of iterating the MBUFs to figure out how much data is in the
current chain, use the value already in the "m_pkthdr.len" field of
the first MBUF in the chain.

Reviewed by:		ken @
Differential Revision:	https://reviews.freebsd.org/D1893
MFC after:		2 weeks
Sponsored by:		Mellanox Technologies
2015-02-25 13:58:43 +00:00
..
amd64 Always emulate MSR_PAT on Intel processors and don't rely on PAT save/restore 2015-02-24 05:35:15 +00:00
arm Fix endianness on FDT read in ARM GIC 2015-02-24 12:31:08 +00:00
boot Fix potential NULL dereference. 2015-02-25 09:57:05 +00:00
bsm
cam Fix printf format warnings on sparc64 and mips. 2015-02-24 05:43:16 +00:00
cddl Use the ARM unwinder with dtrace to extract the stack when asked. With this 2015-02-19 12:20:21 +00:00
compat
conf sfxge: add to config files 2015-02-25 06:20:42 +00:00
contrib Merge ACPICA 20141107 and 20150204. 2015-02-18 20:33:00 +00:00
crypto
ddb
dev Add ugen keyword to USB pnpinfo. Remove extra space from existing pnpinfo. 2015-02-25 08:35:00 +00:00
fs ext2fs: Plug small memory leak 2015-02-15 14:25:00 +00:00
gdb
geom Replace constant with proper sizeof(). 2015-02-25 10:18:11 +00:00
gnu
i386 Ensure that the supplied data length is large enough to hold the base 2015-02-18 23:34:03 +00:00
isa
kern Keep a reference on the coredump vnode for vn_fullpath() call. Do it 2015-02-24 13:07:31 +00:00
kgssapi
libkern
mips Remove this - I made it all work again a looong time ago. 2015-02-16 02:05:34 +00:00
modules sfxge: list header in SRCS 2015-02-22 18:57:28 +00:00
net Handle SIOCSIFCAP by propogating the request to the parent interface. This 2015-02-20 18:39:12 +00:00
net80211
netgraph Revise default limit for maximum of netgraph data items. 2015-02-12 22:20:34 +00:00
netinet Fix a special case in ip_fragment() to produce a more sensible chain 2015-02-25 13:58:43 +00:00
netinet6 Now that all users of _WANT_IFADDR are fixed, remove this crutch and 2015-02-19 23:16:10 +00:00
netipsec Fix possible memory leak and several races in the IPsec policy management 2015-02-24 10:35:07 +00:00
netnatm
netpfil Even more fixes to !INET and !INET6 kernels. 2015-02-17 22:33:22 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Macro fixes: 2015-02-23 12:54:46 +00:00
opencrypto
pc98
powerpc New pmap implementation for 64-bit PowerPC processors. The main focus of 2015-02-24 21:37:20 +00:00
rpc
security
sparc64 Unbreak sparc64 after r276630 by calling __sparc_sigtramp_setup signal 2015-02-16 22:13:03 +00:00
sys Pass macro arguments properly. 2015-02-24 17:36:44 +00:00
teken
tools
ufs
vm Some minor style(9) fixes (whitespace + comment) 2015-02-17 08:50:26 +00:00
x86 Revert r276949 and redo the fix for PCIe/PCI bridges, which do not 2015-02-21 22:38:32 +00:00
xdr
xen
Makefile