linux/include
Eric Dumazet 96631ed16c udp: introduce sk_for_each_rcu_safenext()
Corey Minyard found a race added in commit 271b72c7fa
(udp: RCU handling for Unicast packets.)

 "If the socket is moved from one list to another list in-between the
 time the hash is calculated and the next field is accessed, and the
 socket has moved to the end of the new list, the traversal will not
 complete properly on the list it should have, since the socket will
 be on the end of the new list and there's not a way to tell it's on a
 new list and restart the list traversal.  I think that this can be
 solved by pre-fetching the "next" field (with proper barriers) before
 checking the hash."

This patch corrects this problem, introducing a new
sk_for_each_rcu_safenext() macro.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-10-29 11:19:58 -07:00
..
acpi Merge branch 'linus' into test 2008-10-23 00:11:07 -04:00
asm-arm
asm-cris container freezer: add TIF_FREEZE flag to all architectures 2008-10-20 08:52:33 -07:00
asm-frv
asm-generic mutex: speed up generic mutex implementations 2008-10-23 09:18:20 -07:00
asm-h8300
asm-m32r
asm-m68k proc: move /proc/hardware to m68k-specific code 2008-10-23 14:24:03 +04:00
asm-mn10300
asm-xtensa Merge git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6 2008-10-23 09:16:56 -07:00
crypto
drm
keys
linux udp: introduce sk_for_each_rcu_safenext() 2008-10-29 11:19:58 -07:00
math-emu math-emu: Fix thinko in _FP_DIV 2008-10-22 22:09:59 -07:00
media V4L/DVB (9335): videobuf: split unregister bus creating self-contained frontend de-allocator 2008-10-21 14:32:08 -02:00
mtd
net udp: introduce sk_for_each_rcu_safenext() 2008-10-29 11:19:58 -07:00
pcmcia
rdma
rxrpc
scsi [PATCH] don't mess with file in scsi_nonblockable_ioctl() 2008-10-21 07:47:28 -04:00
sound
trace
video video: add sh_mobile_lcdc platform flags 2008-10-20 11:38:50 +09:00
xen
Kbuild