linux/arch/arm/mach-mvebu
Nadav Haklai b60b61d412 ARM: mvebu: Fix bug in coherency fabric low level init function
When adding CPU to the SMP group and enabling the coherency on this
CPU we must protect the register access.
The previous implementation claims to be atomic but doesn't provide
any protection against parallel access to the coherency fabric control
and configuration registers.

This patch fixes this by using the ldrex and strex mechanism.
This method should be used in all accesses to those registers.

[gregory.clement@free-electrons.com: fixed the commit's topic]
Signed-off-by: Nadav Haklai <nadavh@marvell.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-05-28 14:50:08 +00:00
..
include/mach
Kconfig ARM: mvebu: select ARCH_REQUIRE_GPIOLIB for mvebu platform 2013-05-19 19:38:59 +00:00
Makefile ARM: arm-soc: late cleanups 2013-05-07 11:22:14 -07:00
armada-370-xp.c ARM: Orion: Remove redundant init_dma_coherent_pool_size() 2013-05-13 19:32:14 +00:00
armada-370-xp.h ARM: mvebu: Align the internal registers virtual base to support LPAE 2013-04-15 14:06:59 +00:00
coherency.c arm: mvebu: Add hardware I/O Coherency support 2012-11-21 17:07:49 +01:00
coherency.h
coherency_ll.S ARM: mvebu: Fix bug in coherency fabric low level init function 2013-05-28 14:50:08 +00:00
common.h arm: mvebu: Add SMP support for Armada XP 2012-11-21 16:49:38 +01:00
headsmp.S arm: mvebu: Add SMP support for Armada XP 2012-11-21 16:49:38 +01:00
hotplug.c arm: mvebu: Add SMP support for Armada XP 2012-11-21 16:49:38 +01:00
platsmp.c arm: mach-mvebu: convert to use mvebu-mbus driver 2013-04-15 14:06:16 +00:00
pmsu.c
pmsu.h
system-controller.c