linux/arch/metag
Mikulas Patocka 2425ce8402 metag: fix memory barriers
Volatile access doesn't really imply the compiler barrier. Volatile access
is only ordered with respect to other volatile accesses, it isn't ordered
with respect to general memory accesses. Gcc may reorder memory accesses
around volatile access, as we can see in this simple example (if we
compile it with optimization, both increments of *b will be collapsed to
just one):

void fn(volatile int *a, long *b)
{
	(*b)++;
	*a = 10;
	(*b)++;
}

Consequently, we need the compiler barrier after a write to the volatile
variable, to make sure that the compiler doesn't reorder the volatile
write with something else.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Acked-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: James Hogan <james.hogan@imgtec.com>
2014-05-15 00:00:34 +01:00
..
boot metag: tz1090: instantiate gpio-tz1090-pdc 2013-07-22 10:55:31 +01:00
configs metag: minimal TZ1090 (Comet) SoC infrastructure 2013-06-13 12:14:07 +01:00
include metag: fix memory barriers 2014-05-15 00:00:34 +01:00
kernel Most of the changes were largely clean ups, and some documentation. 2014-04-03 10:26:31 -07:00
lib metag: move EXPORT_SYMBOL(csum_partial) to metag_ksyms.c 2013-07-04 10:00:02 +01:00
mm memblock: make memblock_set_node() support different memblock_type 2014-01-21 16:19:44 -08:00
oprofile metag: OProfile support 2013-03-15 13:21:05 +00:00
tbx metag: handle low level kicks directly 2013-11-06 10:40:02 +00:00
Kconfig Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
Kconfig.debug consolidate per-arch stack overflow debugging options 2013-07-04 11:25:39 -07:00
Kconfig.soc metag: tz1090: select and instantiate gpio-tz1090 2013-07-22 10:55:31 +01:00
Makefile metag: minimal TZ1090 (Comet) SoC infrastructure 2013-06-13 12:14:07 +01:00