From 4cea2335f8be42e6396631b2f6f32b43aa2afd83 Mon Sep 17 00:00:00 2001 From: Santosh Shilimkar Date: Thu, 9 Aug 2012 12:35:48 +0530 Subject: [PATCH] --- yaml --- r: 322303 b: refs/heads/master c: 5b6e3eb576e8ad03264d46982afed77bdc6323a3 h: refs/heads/master i: 322301: 99588869444c805e54a7aca48c4e0377bdb1bed0 322299: 87d872c7a60e9ac627cabac1102b309e49140ec2 322295: 6cb4d48edc3732ccf7ff17e85be273af8eb4c8d0 322287: 6094f4313211dd8c6ee9458b4aeeac943d2e5aed 322271: 41b73a17b33970f9f36033d88c8c1cf4773e9536 322239: e326cf26eb2131367c59ae2fa93ad476a6aad983 322175: f9653d49122fc215c2adc1be2c3681eed50d46d3 322047: 27b0e523df4658ba9565de27ac71978c0533e2b2 v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-omap2/sleep44xx.S | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index b77058a87c6f..001ed1c2117c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e0e29fd74c3c8bd2ef83bbaa73d528d58a944610 +refs/heads/master: 5b6e3eb576e8ad03264d46982afed77bdc6323a3 diff --git a/trunk/arch/arm/mach-omap2/sleep44xx.S b/trunk/arch/arm/mach-omap2/sleep44xx.S index 9f6b83d1b193..91e71d8f46f0 100644 --- a/trunk/arch/arm/mach-omap2/sleep44xx.S +++ b/trunk/arch/arm/mach-omap2/sleep44xx.S @@ -56,9 +56,13 @@ ppa_por_params: * The restore function pointer is stored at CPUx_WAKEUP_NS_PA_ADDR_OFFSET. * It returns to the caller for CPU INACTIVE and ON power states or in case * CPU failed to transition to targeted OFF/DORMANT state. + * + * omap4_finish_suspend() calls v7_flush_dcache_all() which doesn't save + * stack frame and it expects the caller to take care of it. Hence the entire + * stack frame is saved to avoid possible stack corruption. */ ENTRY(omap4_finish_suspend) - stmfd sp!, {lr} + stmfd sp!, {r4-r12, lr} cmp r0, #0x0 beq do_WFI @ No lowpower state, jump to WFI @@ -226,7 +230,7 @@ scu_gp_clear: skip_scu_gp_clear: isb dsb - ldmfd sp!, {pc} + ldmfd sp!, {r4-r12, pc} ENDPROC(omap4_finish_suspend) /*