linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: exynos: Fix kernel panic when unplugging CPU1 on 4210
Date: Sat, 24 May 2014 19:24:15 +0200	[thread overview]
Message-ID: <1400952255-13750-1-git-send-email-daniel.lezcano@linaro.org> (raw)
In-Reply-To: <537FBE42.7050608@gmail.com>

A look at the code reveals use of S5P_VA_SYSRAM macro, in case of certain SoC
revisions, which is not valid any longer, after SYSRAM started to be mapped
dynamically. The new dynamic mapping is stored in sysram_base_addr variable,
which is declared static in platsmp.c

This fix makes sysram_base_addr non-static, declared it in common.h and used
in pm.c instead of S5P_VA_SYSRAM.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Suggested-by: Tomasz Figa <t.figa@samsung.com>
---
 arch/arm/mach-exynos/common.h  |    1 +
 arch/arm/mach-exynos/platsmp.c |    2 +-
 arch/arm/mach-exynos/pm.c      |    4 ++--
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index e2d0954..a012bc1 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -88,6 +88,7 @@ void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
 
 struct map_desc;
 extern void __iomem *sysram_ns_base_addr;
+extern void __iomem *sysram_base_addr;
 void exynos_init_io(void);
 void exynos_restart(enum reboot_mode mode, const char *cmd);
 void exynos_cpuidle_init(void);
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index 9c16da2..f2bea78 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -32,7 +32,7 @@
 
 extern void exynos4_secondary_startup(void);
 
-static void __iomem *sysram_base_addr;
+void __iomem *sysram_base_addr;
 void __iomem *sysram_ns_base_addr;
 
 static void __init exynos_smp_prepare_sysram(void)
diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
index d10c351..87c0d34 100644
--- a/arch/arm/mach-exynos/pm.c
+++ b/arch/arm/mach-exynos/pm.c
@@ -168,10 +168,10 @@ int exynos_cluster_power_state(int cluster)
 
 #define EXYNOS_BOOT_VECTOR_ADDR	(samsung_rev() == EXYNOS4210_REV_1_1 ? \
 			S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
-			(S5P_VA_SYSRAM + 0x24) : S5P_INFORM0))
+			(sysram_base_addr + 0x24) : S5P_INFORM0))
 #define EXYNOS_BOOT_VECTOR_FLAG	(samsung_rev() == EXYNOS4210_REV_1_1 ? \
 			S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
-			(S5P_VA_SYSRAM + 0x20) : S5P_INFORM1))
+			(sysram_base_addr + 0x20) : S5P_INFORM1))
 
 #define S5P_CHECK_AFTR  0xFCBA0D10
 #define S5P_CHECK_SLEEP 0x00000BAD
-- 
1.7.9.5

  parent reply	other threads:[~2014-05-24 17:24 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-11 10:39 [PATCH V5 00/20] ARM: exynos: cpuidle: Move the driver to drivers/cpuidle Daniel Lezcano
2014-04-11 10:39 ` [PATCH V5 01/20] ARM: EXYNOS: Move arm core power down clock to exynos5250 common clock Daniel Lezcano
2014-04-11 10:39 ` [PATCH V5 02/20] ARM: exynos: cpuidle: Prevent forward declaration Daniel Lezcano
2014-04-11 10:39 ` [PATCH V5 03/20] ARM: exynos: cpuidle: Use cpuidle_register Daniel Lezcano
2014-04-11 10:39 ` [PATCH V5 04/20] ARM: exynos: cpuidle: Change function name prefix Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 05/20] ARM: exynos: cpuidle: Encapsulate register access inside a function Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 06/20] ARM: exynos: cpuidle: Move some code inside the idle_finisher Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 07/20] ARM: exynos: cpuidle: Fix S5P_WAKEUP_STAT call Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 08/20] ARM: exynos: cpuidle: Use the cpu_pm notifier Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 09/20] ARM: exynos: cpuidle: Move scu_enable in " Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 10/20] ARM: exynos: cpuidle: Remove ifdef for scu_enable Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 11/20] ARM: exynos: cpuidle: Pass wakeup mask parameter to function Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 12/20] ARM: exynos: cpuidle: Encapsulate boot vector code into a function Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 13/20] ARM: exynos: cpuidle: Disable cpuidle for 5440 Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 14/20] ARM: exynos: cpuidle: Encapsulate the AFTR code into a function Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 15/20] ARM: exynos: cpuidle: Move the AFTR state function into pm.c Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 16/20] ARM: exynos: cpuidle: Move the power sequence call in the cpu_pm notifier Daniel Lezcano
2014-06-26  9:07   ` Chander Kashyap
2014-06-26  9:48     ` Tomasz Figa
2014-06-27  5:56       ` Chander Kashyap
2014-04-11 10:40 ` [PATCH V5 17/20] ARM: exynos: cpuidle: Move S5P_CHECK_SLEEP into pm.c Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 18/20] ARM: exynos: cpuidle: Pass the AFTR callback to the platform_data Daniel Lezcano
2014-05-09 10:56   ` Arnd Bergmann
2014-05-09 12:02     ` Tomasz Figa
2014-05-09 15:29       ` Bartlomiej Zolnierkiewicz
2014-05-12 15:18       ` Daniel Lezcano
2014-05-15 14:07         ` Tomasz Figa
2014-05-15 20:40           ` Kukjin Kim
2014-05-21  7:15             ` Daniel Lezcano
2014-05-21  8:10               ` Arnd Bergmann
2014-05-21  9:02                 ` Daniel Lezcano
2014-05-21 14:56                   ` Arnd Bergmann
2014-05-21 13:54                 ` Kukjin Kim
2014-05-09 13:10     ` Kukjin Kim
2014-04-11 10:40 ` [PATCH V5 19/20] ARM: exynos: cpuidle: Cleanup all unneeded headers from cpuidle.c Daniel Lezcano
2014-04-11 10:40 ` [PATCH V5 20/20] ARM: exynos: cpuidle: Move the driver to drivers/cpuidle directory Daniel Lezcano
2014-04-14  9:01 ` [PATCH V5 00/20] ARM: exynos: cpuidle: Move the driver to drivers/cpuidle Daniel Lezcano
2014-04-24 17:02   ` Tomasz Figa
2014-04-26 11:05     ` Kukjin Kim
2014-05-22 18:35       ` Kukjin Kim
2014-05-22 18:57         ` Daniel Lezcano
2014-05-23 15:32         ` Daniel Lezcano
2014-05-23 21:31           ` Tomasz Figa
2014-05-24  4:57             ` Sachin Kamat
2014-05-24 17:24             ` Daniel Lezcano [this message]
2014-05-24 17:31               ` [PATCH] ARM: exynos: Fix kernel panic when unplugging CPU1 on 4210 Daniel Lezcano
2014-05-25 19:51                 ` Kukjin Kim
2014-05-24 17:32               ` Tomasz Figa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1400952255-13750-1-git-send-email-daniel.lezcano@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).