From: John Crispin <john@phrozen.org>
To: Prem Mallappa <prem.mallappa@gmail.com>
Cc: linux-mips <linux-mips@linux-mips.org>,
Prem Mallappa <pmallappa@caviumnetworks.com>
Subject: Re: [PATCH 2/2] MIPS: KEXEC: Fixes Random crashes while loading crashkernel
Date: Sun, 01 Sep 2013 18:31:41 +0200 [thread overview]
Message-ID: <52236BED.9090207@phrozen.org> (raw)
In-Reply-To: <1377857111-15493-2-git-send-email-pmallappa@caviumnetworks.com>
On 30/08/13 12:05, Prem Mallappa wrote:
> MIPS: KEXEC: Fixes Random crashes while loading crashkernel
>
> Rearranging code so that crashk_res gets updated.
> - crashk_res is updated after mips_parse_crashkernel(),
> after resource_init(), which is after arch_mem_init().
> - The reserved memory is actually treated as Usable memory,
> Unless we load the crash kernel, everything works.
>
> Signed-off-by: Prem Mallappa<pmallappa@caviumnetworks.com>
> ---
> arch/mips/kernel/setup.c | 99 +++++++++++++++++++++++-------------------------
> 1 file changed, 48 insertions(+), 51 deletions(-)
>
> diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
> index c7f9051..e98a256 100644
> --- a/arch/mips/kernel/setup.c
> +++ b/arch/mips/kernel/setup.c
<snip>
> +static void __init request_crashkernel(struct resource *res)
> +{
> + int ret;
> +
> + ret = request_resource(res,&crashk_res);
> + if (!ret)
> + pr_info("Reserving %ldMB of memory at %ldMB for crashkernel\n",
> + (unsigned long)((crashk_res.end -
> + crashk_res.start + 1)>> 20),
> + (unsigned long)(crashk_res.start>> 20));
> +}
> +#else /* !defined(CONFIG_KEXEC) */
> +static void __init mips_parse_crashkernel(void)
> +{
> +}
> +
Hi,
the function is not used and causes the following error.
arch/mips/kernel/setup.c:592:20: error: 'mips_parse_crashkernel' defined
but not used [-Werror=unused-function]
cc1: all warnings being treated as errors
make[2]: *** [arch/mips/kernel/setup.o] Error 1
make[1]: *** [arch/mips/kernel] Error 2
John
> +static void __init request_crashkernel(struct resource *res)
> +{
> +}
> +#endif /* !defined(CONFIG_KEXEC) */
> +
> static void __init arch_mem_init(char **cmdline_p)
> {
> extern void plat_mem_setup(void);
> @@ -609,6 +655,8 @@ static void __init arch_mem_init(char **cmdline_p)
> }
> #endif
> #ifdef CONFIG_KEXEC
> + mips_parse_crashkernel();
> +
> if (crashk_res.start != crashk_res.end)
> reserve_bootmem(crashk_res.start,
> crashk_res.end - crashk_res.start + 1,
> @@ -620,52 +668,6 @@ static void __init arch_mem_init(char **cmdline_p)
> paging_init();
> }
>
> -#ifdef CONFIG_KEXEC
> -static inline unsigned long long get_total_mem(void)
> -{
> - unsigned long long total;
> -
> - total = max_pfn - min_low_pfn;
> - return total<< PAGE_SHIFT;
> -}
> -
> -static void __init mips_parse_crashkernel(void)
> -{
> - unsigned long long total_mem;
> - unsigned long long crash_size, crash_base;
> - int ret;
> -
> - total_mem = get_total_mem();
> - ret = parse_crashkernel(boot_command_line, total_mem,
> - &crash_size,&crash_base);
> - if (ret != 0 || crash_size<= 0)
> - return;
> -
> - crashk_res.start = crash_base;
> - crashk_res.end = crash_base + crash_size - 1;
> -}
> -
> -static void __init request_crashkernel(struct resource *res)
> -{
> - int ret;
> -
> - ret = request_resource(res,&crashk_res);
> - if (!ret)
> - pr_info("Reserving %ldMB of memory at %ldMB for crashkernel\n",
> - (unsigned long)((crashk_res.end -
> - crashk_res.start + 1)>> 20),
> - (unsigned long)(crashk_res.start>> 20));
> -}
> -#else /* !defined(CONFIG_KEXEC) */
> -static void __init mips_parse_crashkernel(void)
> -{
> -}
> -
> -static void __init request_crashkernel(struct resource *res)
> -{
> -}
> -#endif /* !defined(CONFIG_KEXEC) */
> -
> static void __init resource_init(void)
> {
> int i;
> @@ -678,11 +680,6 @@ static void __init resource_init(void)
> data_resource.start = __pa_symbol(&_etext);
> data_resource.end = __pa_symbol(&_edata) - 1;
>
> - /*
> - * Request address space for all standard RAM.
> - */
> - mips_parse_crashkernel();
> -
> for (i = 0; i< boot_mem_map.nr_map; i++) {
> struct resource *res;
> unsigned long start, end;
prev parent reply other threads:[~2013-09-01 16:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-30 10:05 [PATCH 1/2] MIPS: KDUMP: skip walking indirection page for crashkernels Prem Mallappa
2013-08-30 10:05 ` [PATCH 2/2] MIPS: KEXEC: Fixes Random crashes while loading crashkernel Prem Mallappa
2013-09-01 16:31 ` John Crispin [this message]
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=52236BED.9090207@phrozen.org \
--to=john@phrozen.org \
--cc=linux-mips@linux-mips.org \
--cc=pmallappa@caviumnetworks.com \
--cc=prem.mallappa@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.