aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/virt.h
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-08-15 20:43:46 +0200
committerTakashi Iwai <tiwai@suse.de>2013-08-15 20:43:46 +0200
commitf85a6597a6ce33fe4f390744b2764b30aa7bfda8 (patch)
tree9b923afc20e7d3a7e78f98d600fd7e6633b4265b /arch/arm/include/asm/virt.h
parentALSA: usb-audio: Fix invalid volume resolution for Logitech HD Webcam C525 (diff)
parentMerge remote-tracking branch 'asoc/fix/tegra' into asoc-linus (diff)
downloadlinux-dev-f85a6597a6ce33fe4f390744b2764b30aa7bfda8.tar.xz
linux-dev-f85a6597a6ce33fe4f390744b2764b30aa7bfda8.zip
Merge tag 'asoc-v3.11-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.11 A few driver specific fixes here plus one core fix for a memory corruption issue in DAPM initialisation which could lead to crashes.
Diffstat (limited to 'arch/arm/include/asm/virt.h')
-rw-r--r--arch/arm/include/asm/virt.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/include/asm/virt.h b/arch/arm/include/asm/virt.h
index 50af92bac737..4371f45c5784 100644
--- a/arch/arm/include/asm/virt.h
+++ b/arch/arm/include/asm/virt.h
@@ -29,6 +29,7 @@
#define BOOT_CPU_MODE_MISMATCH PSR_N_BIT
#ifndef __ASSEMBLY__
+#include <asm/cacheflush.h>
#ifdef CONFIG_ARM_VIRT_EXT
/*
@@ -41,10 +42,21 @@
*/
extern int __boot_cpu_mode;
+static inline void sync_boot_mode(void)
+{
+ /*
+ * As secondaries write to __boot_cpu_mode with caches disabled, we
+ * must flush the corresponding cache entries to ensure the visibility
+ * of their writes.
+ */
+ sync_cache_r(&__boot_cpu_mode);
+}
+
void __hyp_set_vectors(unsigned long phys_vector_base);
unsigned long __hyp_get_vectors(void);
#else
#define __boot_cpu_mode (SVC_MODE)
+#define sync_boot_mode()
#endif
#ifndef ZIMAGE