* [PATCH V3] ARM: tegra: Re-add removed SoC id macro to tegra_resume()
@ 2014-10-10 13:24 Dmitry Osipenko
2014-11-17 11:07 ` Thierry Reding
0 siblings, 1 reply; 2+ messages in thread
From: Dmitry Osipenko @ 2014-10-10 13:24 UTC (permalink / raw)
To: linux-arm-kernel
Commit d127e9c ("ARM: tegra: make tegra_resume can work with current and later
chips") removed tegra_get_soc_id macro leaving used cpu register corrupted after
branching to v7_invalidate_l1() and as result causing execution of unintended
code on tegra20. Possibly it was expected that r6 would be SoC id func argument
since common cpu reset handler is setting r6 before branching to tegra_resume(),
but neither tegra20_lp1_reset() nor tegra30_lp1_reset() aren't setting r6
register before jumping to resume function. Fix it by re-adding macro.
Fixes: d127e9c (ARM: tegra: make tegra_resume can work with current and later chips)
Cc: <stable@vger.kernel.org> # v3.13+
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
V2: added Cc's for lakml and stable, added "Reviewed-by:" Felipe Balbi
V3: changed commit description, tested on real hw
PS: It wasn't a bug in my emulator :)
arch/arm/mach-tegra/reset-handler.S | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-tegra/reset-handler.S b/arch/arm/mach-tegra/reset-handler.S
index 7b2baab..71be4af 100644
--- a/arch/arm/mach-tegra/reset-handler.S
+++ b/arch/arm/mach-tegra/reset-handler.S
@@ -51,6 +51,7 @@ ENTRY(tegra_resume)
THUMB( it ne )
bne cpu_resume @ no
+ tegra_get_soc_id TEGRA_APB_MISC_BASE, r6
/* Are we on Tegra20? */
cmp r6, #TEGRA20
beq 1f @ Yes
--
2.1.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH V3] ARM: tegra: Re-add removed SoC id macro to tegra_resume()
2014-10-10 13:24 [PATCH V3] ARM: tegra: Re-add removed SoC id macro to tegra_resume() Dmitry Osipenko
@ 2014-11-17 11:07 ` Thierry Reding
0 siblings, 0 replies; 2+ messages in thread
From: Thierry Reding @ 2014-11-17 11:07 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Oct 10, 2014 at 05:24:47PM +0400, Dmitry Osipenko wrote:
> Commit d127e9c ("ARM: tegra: make tegra_resume can work with current and later
> chips") removed tegra_get_soc_id macro leaving used cpu register corrupted after
> branching to v7_invalidate_l1() and as result causing execution of unintended
> code on tegra20. Possibly it was expected that r6 would be SoC id func argument
> since common cpu reset handler is setting r6 before branching to tegra_resume(),
> but neither tegra20_lp1_reset() nor tegra30_lp1_reset() aren't setting r6
> register before jumping to resume function. Fix it by re-adding macro.
>
> Fixes: d127e9c (ARM: tegra: make tegra_resume can work with current and later chips)
> Cc: <stable@vger.kernel.org> # v3.13+
> Reviewed-by: Felipe Balbi <balbi@ti.com>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> ---
> V2: added Cc's for lakml and stable, added "Reviewed-by:" Felipe Balbi
> V3: changed commit description, tested on real hw
>
> PS: It wasn't a bug in my emulator :)
>
> arch/arm/mach-tegra/reset-handler.S | 1 +
> 1 file changed, 1 insertion(+)
Applied, thanks.
Thierry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141117/48b17ba4/attachment.sig>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-11-17 11:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-10 13:24 [PATCH V3] ARM: tegra: Re-add removed SoC id macro to tegra_resume() Dmitry Osipenko
2014-11-17 11:07 ` Thierry Reding
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).