+++ /dev/null
-From 24b35521b8ddf088531258f06f681bb7b227bf47 Mon Sep 17 00:00:00 2001
-From: Colin Cross <ccross@android.com>
-Date: Fri, 20 Jul 2012 02:03:42 +0100
-Subject: ARM: 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP
-
-From: Colin Cross <ccross@android.com>
-
-commit 24b35521b8ddf088531258f06f681bb7b227bf47 upstream.
-
-vfp_pm_suspend should save the VFP state in suspend after
-any lazy context switch. If it only saves when the VFP is enabled,
-the state can get lost when, on a UP system:
- Thread 1 uses the VFP
- Context switch occurs to thread 2, VFP is disabled but the
- VFP context is not saved
- Thread 2 initiates suspend
- vfp_pm_suspend is called with the VFP disabled, and the unsaved
- VFP context of Thread 1 in the registers
-
-Modify vfp_pm_suspend to save the VFP context whenever
-vfp_current_hw_state is not NULL.
-
-Includes a fix from Ido Yariv <ido@wizery.com>, who pointed out that on
-SMP systems, the state pointer can be pointing to a freed task struct if
-a task exited on another cpu, fixed by using #ifndef CONFIG_SMP in the
-new if clause.
-
-Signed-off-by: Colin Cross <ccross@android.com>
-Cc: Barry Song <bs14@csr.com>
-Cc: Catalin Marinas <catalin.marinas@arm.com>
-Cc: Ido Yariv <ido@wizery.com>
-Cc: Daniel Drake <dsd@laptop.org>
-Cc: Will Deacon <will.deacon@arm.com>
-Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/arm/vfp/vfpmodule.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/arch/arm/vfp/vfpmodule.c
-+++ b/arch/arm/vfp/vfpmodule.c
-@@ -412,6 +412,12 @@ static int vfp_pm_suspend(void)
-
- /* disable, just in case */
- fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);
-+ } else if (vfp_current_hw_state[ti->cpu]) {
-+#ifndef CONFIG_SMP
-+ fmxr(FPEXC, fpexc | FPEXC_EN);
-+ vfp_save_state(vfp_current_hw_state[ti->cpu], fpexc);
-+ fmxr(FPEXC, fpexc);
-+#endif
- }
-
- /* clear any information we had about last context state */
pcdp-use-early_ioremap-early_iounmap-to-access-pcdp-table.patch
mm-fix-wrong-argument-of-migrate_huge_pages-in-soft_offline_huge_page.patch
arm-7467-1-mutex-use-generic-xchg-based-implementation-for-armv6.patch
-arm-7477-1-vfp-always-save-vfp-state-in-vfp_pm_suspend-on-up.patch
arm-7478-1-errata-extend-workaround-for-erratum-720789.patch
arm-7479-1-mm-avoid-null-dereference-when-flushing-gate_vma-with-vivt-caches.patch
mm-mmu_notifier-fix-freed-page-still-mapped-in-secondary-mmu.patch