kernel-ark/include
Herbert Xu b24d18aa74 [PATCH] list: add missing rcu_dereference on first element
It seems that all the list_*_rcu primitives are missing a memory barrier
on the very first dereference.  For example,

#define list_for_each_rcu(pos, head) \
	for (pos = (head)->next; prefetch(pos->next), pos != (head); \
		pos = rcu_dereference(pos->next))

It will go something like:

	pos = (head)->next

	prefetch(pos->next)

	pos != (head)

	do stuff

We're missing a barrier here.

	pos = rcu_dereference(pos->next)

		fetch pos->next

		barrier given by rcu_dereference(pos->next)

		store pos

Without the missing barrier, the pos->next value may turn out to be stale.
In fact, if "do stuff" were also dereferencing pos and relying on
list_for_each_rcu to provide the barrier then it may also break.

So here is a patch to make sure that we have a barrier for the first
element in the list.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-17 08:59:10 -07:00
..
acpi
asm-alpha
asm-arm [ARM] 3011/1: pxafb: Add ability to set device parent + fix spitz compile error 2005-10-14 16:07:25 +01:00
asm-arm26
asm-cris
asm-frv
asm-generic [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
asm-h8300
asm-i386 [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
asm-ia64
asm-m32r
asm-m68k
asm-m68knommu
asm-mips
asm-parisc
asm-powerpc [PATCH] ppc32: Fix timekeeping 2005-10-12 08:24:47 -07:00
asm-ppc [PATCH] ppc32: Tell userland about lack of standard TB 2005-10-12 08:24:47 -07:00
asm-ppc64 [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
asm-s390
asm-sh
asm-sh64
asm-sparc
asm-sparc64 [SPARC64]: Eliminate PCI IOMMU dma mapping size limit. 2005-10-13 22:15:24 -07:00
asm-um
asm-v850
asm-x86_64 [PATCH] x86_64: Allocate cpu local data for all possible CPUs 2005-10-10 16:33:25 -07:00
asm-xtensa
linux [PATCH] list: add missing rcu_dereference on first element 2005-10-17 08:59:10 -07:00
math-emu
media
mtd
net [TWSK]: Grab the module refcount for timewait sockets 2005-10-10 21:25:23 -07:00
pcmcia
rdma [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
rxrpc [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
scsi
sound [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
video