[PATCH v4 07/11] crashdump/ppc: Add get_crash_kernel_load_range() function
Daniel Kiper
daniel.kiper at oracle.com
Tue Feb 14 14:29:29 PST 2017
On Tue, Feb 14, 2017 at 03:09:19PM -0600, Eric DeVolder wrote:
> From: Daniel Kiper <daniel.kiper at oracle.com>
>
> Implement get_crash_kernel_load_range() in support of
> print crash kernel region size option.
>
> Signed-off-by: Daniel Kiper <daniel.kiper at oracle.com>
> Signed-off-by: Eric DeVolder <eric.devolder at oracle.com>
> Reviewed-by: Daniel Kiper <daniel.kiper at oracle.com>
> ---
> v4: Incorporated feedback:
> - changes for coding convention and formatting
> v3: Incorporated feedback:
> - changes for coding convention and formatting
> - restructured to introduce get_crash_kernel_load_range() for each
> architecture, and then a single function in kexec/kexec.c to call
> the per-architecture get_crash_kernel_load_range() and print the
> result.
> - changed print_crashkernel_region_size() to get_crash_kernel_load_range()
> - introduced get_devtree_value()
> v2: Incorporated feedback:
> - utilize the is_crashkernel_mem_reserved() function common in all archs
> - utilize device-tree values to print size
> v1: Posted to kexec-tools mailing list
> ---
> kexec/arch/ppc/crashdump-powerpc.c | 27 ++++++++++++++++++++++++++-
> kexec/arch/ppc/kexec-ppc.c | 28 ++++++++++++++++++++++++++++
> kexec/arch/ppc/kexec-ppc.h | 1 +
> 3 files changed, 55 insertions(+), 1 deletion(-)
>
> diff --git a/kexec/arch/ppc/crashdump-powerpc.c b/kexec/arch/ppc/crashdump-powerpc.c
> index 3dc35eb..186005c 100644
> --- a/kexec/arch/ppc/crashdump-powerpc.c
> +++ b/kexec/arch/ppc/crashdump-powerpc.c
> @@ -16,6 +16,9 @@
> #include "kexec-ppc.h"
> #include "crashdump-powerpc.h"
>
> +#define DEVTREE_CRASHKERNEL_BASE "/proc/device-tree/chosen/linux,crashkernel-base"
> +#define DEVTREE_CRASHKERNEL_SIZE "/proc/device-tree/chosen/linux,crashkernel-size"
> +
> #ifdef CONFIG_PPC64
> static struct crash_elf_info elf_info64 = {
> class: ELFCLASS64,
> @@ -397,11 +400,33 @@ void add_usable_mem_rgns(unsigned long long base, unsigned long long size)
> usablemem_rgns.size, base, size);
> }
>
> +int get_crash_kernel_load_range(uint64_t *start, uint64_t *end)
> +{
> + unsigned long long value;
> + int ret = 0;
> +
> + if (!get_devtree_value(DEVTREE_CRASHKERNEL_BASE, &value))
> + *start = value;
> + else {
> + *start = 0;
I have a feeling that this is not needed. If it is true then we can also
drop curly brackets and leave just ret assignment only.
> + ret = -1;
> + }
> +
> + if (!get_devtree_value(DEVTREE_CRASHKERNEL_SIZE, &value))
> + *end = *start + value - 1;
> + else {
> + *end = 0;
Ditto.
IIRC, same thing applies to ppc64.
Daniel
More information about the kexec
mailing list