kernel-ark/include
Pavel Emelyanov fa86d322d8 [NEIGH]: Fix race between pneigh deletion and ipv6's ndisc_recv_ns (v3).
Proxy neighbors do not have any reference counting, so any caller
of pneigh_lookup (unless it's a netlink triggered add/del routine)
should _not_ perform any actions on the found proxy entry. 

There's one exception from this rule - the ipv6's ndisc_recv_ns() 
uses found entry to check the flags for NTF_ROUTER.

This creates a race between the ndisc and pneigh_delete - after 
the pneigh is returned to the caller, the nd_tbl.lock is dropped 
and the deleting procedure may proceed.

One of the fixes would be to add a reference counting, but this
problem exists for ndisc only. Besides such a patch would be too 
big for -rc4.

So I propose to introduce a __pneigh_lookup() which is supposed
to be called with the lock held and use it in ndisc code to check
the flags on alive pneigh entry.


Changes from v2:
As David noticed, Exported the __pneigh_lookup() to ipv6 module. 
The checkpatch generates a warning on it, since the EXPORT_SYMBOL 
does not follow the symbol itself, but in this file all the 
exports come at the end, so I decided no to break this harmony.

Changes from v1:
Fixed comments from YOSHIFUJI - indentation of prototype in header
and the pndisc_check_router() name - and a compilation fix, pointed
by Daniel - the is_routed was (falsely) considered as uninitialized
by gcc.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-03-24 14:48:59 -07:00
..
acpi ACPI, cpuidle: Clarify C-state description in sysfs 2008-02-14 00:09:55 -05:00
asm-alpha CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
asm-arm Merge branch 'omap-fixes' 2008-03-06 12:18:25 +00:00
asm-avr32 AVR32: Define PAGE_SHARED 2008-02-13 14:44:03 +01:00
asm-blackfin [Blackfin] arch: current_l1_stack_save is a pointer, so use NULL rather than 0 2008-03-05 19:02:23 -07:00
asm-cris cris: correct syscall numbers in unistd.h for timerfd_settime and timerfd_gettime 2008-03-04 16:35:16 -08:00
asm-frv FRV: Change the timerfd syscalls to be the same as i386 2008-02-20 19:58:16 -08:00
asm-generic percpu: fix DEBUG_PREEMPT per_cpu checking 2008-02-23 12:09:28 -08:00
asm-h8300 h8300: fix recent uaccess breakage 2008-03-13 13:11:43 -07:00
asm-ia64 [IA64] kprobes arch consolidation build fix 2008-03-06 09:49:01 -08:00
asm-m32r CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
asm-m68k m68k{,nommu}: Wire up new timerfd syscalls 2008-03-04 08:04:11 -08:00
asm-m68knommu m68k{,nommu}: Wire up new timerfd syscalls 2008-03-04 08:04:11 -08:00
asm-mips [MIPS] Clocksource: Only install r4k counter as clocksource if present. 2008-03-12 14:14:42 +00:00
asm-mn10300 Really unexport asm/page.h 2008-03-06 08:13:47 -08:00
asm-parisc [PARISC] futex: special case cmpxchg NULL in kernel space 2008-03-15 19:12:17 -07:00
asm-powerpc [POWERPC] 8xx: fix swap 2008-03-07 08:42:28 -06:00
asm-ppc [PPC] 8xx: swap bug-fix 2008-03-07 16:56:54 -06:00
asm-s390 Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00
asm-sh sh: Fix up the sh64 build. 2008-03-06 17:23:15 +09:00
asm-sparc [SPARC]: Add reboot_command[] extern decl to asm/system.h 2008-02-28 21:53:20 -08:00
asm-sparc64 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 2008-03-04 20:20:32 -08:00
asm-um uml: x86_64 should copy %fs during fork 2008-02-08 09:22:43 -08:00
asm-v850 Add pgtable_t to remaining nommu architectures 2008-02-09 11:08:33 -08:00
asm-x86 x86: remove quicklists 2008-03-11 17:11:55 +01:00
asm-xtensa [XTENSA] Allow debugger to modify the WINDOWBASE register. 2008-02-13 17:45:36 -08:00
crypto [CRYPTO] skcipher: Fix section mismatches 2008-03-08 20:29:43 +08:00
keys
linux Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-03-17 23:44:31 -07:00
math-emu
media V4L/DVB (7192): Adds support for Genius TVGo A11MCE 2008-02-18 11:15:19 -03:00
mtd
net [NEIGH]: Fix race between pneigh deletion and ipv6's ndisc_recv_ns (v3). 2008-03-24 14:48:59 -07:00
pcmcia
rdma IB/core: Remove unused struct ib_device.flags member 2008-02-08 14:47:26 -08:00
rxrpc
scsi [SCSI] iscsi class: regression - fix races with state manipulation and blocking/unblocking 2008-03-05 12:04:09 -06:00
sound [ALSA] opl3 - Fix compilation without sequencer support 2008-02-22 14:20:08 -08:00
video atmel_lcdfb: backlight control 2008-02-06 10:41:16 -08:00
xen
Kbuild