Herbert Xu
deea84b0ae
[NET]: Fix SKB_WITH_OVERHEAD calculation
...
The calculation in SKB_WITH_OVERHEAD is incorrect in that it can cause
an overflow across a page boundary which is what it's meant to prevent.
In particular, the header length (X) should not be lumped together with
skb_shared_info. The latter needs to be aligned properly while the header
has no choice but to sit in front of wherever the payload is.
Therefore the correct calculation is to take away the aligned size of
skb_shared_info, and then subtract the header length. The resulting
quantity L satisfies the following inequality:
SKB_DATA_ALIGN(L + X) + sizeof(struct skb_shared_info) <= PAGE_SIZE
This is the quantity used by alloc_skb to do the actual allocation.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-22 02:59:53 -07:00
..
acpi
asm-alpha
ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT
2007-10-20 00:32:32 +02:00
asm-arm
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
2007-10-19 20:36:17 -07:00
asm-arm26
asm-avr32
forbid asm/bitops.h direct inclusion
2007-10-19 11:53:41 -07:00
asm-blackfin
Blackfin arch: dma add some API and cleanup bf54x DMA definition
2007-10-22 00:02:14 +08:00
asm-cris
ide: add hwif->ack_intr hook
2007-10-20 00:32:32 +02:00
asm-frv
forbid asm/bitops.h direct inclusion
2007-10-19 11:53:41 -07:00
asm-generic
Linux Kernel Markers
2007-10-19 11:53:54 -07:00
asm-h8300
include/asm-*/system.h: remove unused set_rmb(), set_wmb() macros
2007-10-20 02:30:47 +02:00
asm-ia64
ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT
2007-10-20 00:32:32 +02:00
asm-m32r
ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT
2007-10-20 00:32:32 +02:00
asm-m68k
ide: add hwif->ack_intr hook
2007-10-20 00:32:32 +02:00
asm-m68knommu
include/asm-*/system.h: remove unused set_rmb(), set_wmb() macros
2007-10-20 02:30:47 +02:00
asm-mips
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
2007-10-19 20:36:17 -07:00
asm-parisc
Merge branch 'master' of hera.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6
2007-10-20 20:19:15 -07:00
asm-powerpc
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
2007-10-19 20:36:17 -07:00
asm-ppc
remove asm/bitops.h includes
2007-10-19 11:53:41 -07:00
asm-s390
forbid asm/bitops.h direct inclusion
2007-10-19 11:53:41 -07:00
asm-sh
Fix misspellings of "system", "controller", "interrupt" and "necessary".
2007-10-19 23:10:43 +02:00
asm-sh64
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
2007-10-19 20:36:17 -07:00
asm-sparc
ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT
2007-10-20 00:32:32 +02:00
asm-sparc64
ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT
2007-10-20 00:32:32 +02:00
asm-um
forbid asm/bitops.h direct inclusion
2007-10-19 11:53:41 -07:00
asm-v850
include/asm-*/system.h: remove unused set_rmb(), set_wmb() macros
2007-10-20 02:30:47 +02:00
asm-x86
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
2007-10-19 20:36:17 -07:00
asm-xtensa
forbid asm/bitops.h direct inclusion
2007-10-19 11:53:41 -07:00
crypto
keys
linux
[NET]: Fix SKB_WITH_OVERHEAD calculation
2007-10-22 02:59:53 -07:00
math-emu
media
mtd
net
[Bluetooth] Add support for handling simple eSCO links
2007-10-22 02:59:47 -07:00
pcmcia
rdma
rxrpc
scsi
sound
video
define global BIT macro
2007-10-19 11:53:42 -07:00
xen
Kbuild