Commit 7e5955db authored by Haojian Zhuang's avatar Haojian Zhuang Committed by Olof Johansson

ARM: prima2: fix incorrect panic usage

In prima2, some functions of checking DT is registered in initcall
level. If it doesn't match the compatible name of sirf, kernel
will panic. It blocks the usage of multiplatform on other verndor.

The error message is in below.

Knic - not syncing: unable to find compatible pwrc node in dtb
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-rc3-00006-gd7f26ea-dirty #86
[<c0013adc>] (unwind_backtrace+0x0/0xf8) from [<c0011430>] (show_stack+0x10/0x1)
[<c0011430>] (show_stack+0x10/0x14) from [<c026f724>] (panic+0x90/0x1e8)
[<c026f724>] (panic+0x90/0x1e8) from [<c03267fc>] (sirfsoc_of_pwrc_init+0x24/0x)
[<c03267fc>] (sirfsoc_of_pwrc_init+0x24/0x58) from [<c0320864>] (do_one_initcal)
[<c0320864>] (do_one_initcall+0x90/0x150) from [<c0320a20>] (kernel_init_freeab)
[<c0320a20>] (kernel_init_freeable+0xfc/0x1c4) from [<c026b9e8>] (kernel_init+0)
[<c026b9e8>] (kernel_init+0x8/0xe4) from [<c000e158>] (ret_from_fork+0x14/0x3c)
Signen-off-by: default avatarHaojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parent f1d6e31d
...@@ -101,8 +101,10 @@ static int __init sirfsoc_of_pwrc_init(void) ...@@ -101,8 +101,10 @@ static int __init sirfsoc_of_pwrc_init(void)
struct device_node *np; struct device_node *np;
np = of_find_matching_node(NULL, pwrc_ids); np = of_find_matching_node(NULL, pwrc_ids);
if (!np) if (!np) {
panic("unable to find compatible pwrc node in dtb\n"); pr_err("unable to find compatible sirf pwrc node in dtb\n");
return -ENOENT;
}
/* /*
* pwrc behind rtciobrg is not located in memory space * pwrc behind rtciobrg is not located in memory space
......
...@@ -28,8 +28,10 @@ static int __init sirfsoc_of_rstc_init(void) ...@@ -28,8 +28,10 @@ static int __init sirfsoc_of_rstc_init(void)
struct device_node *np; struct device_node *np;
np = of_find_matching_node(NULL, rstc_ids); np = of_find_matching_node(NULL, rstc_ids);
if (!np) if (!np) {
panic("unable to find compatible rstc node in dtb\n"); pr_err("unable to find compatible sirf rstc node in dtb\n");
return -ENOENT;
}
sirfsoc_rstc_base = of_iomap(np, 0); sirfsoc_rstc_base = of_iomap(np, 0);
if (!sirfsoc_rstc_base) if (!sirfsoc_rstc_base)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment