When reading the device-tree exported crashkernel-base and
crashkernel-size, their values should be converted from big-endian to the
CPU byte order.

These is the output of running kexec --print-ckr-size on a little-endian
ppc64 box.

$ kexec --print-ckr-size
137438953472
$ kexec --print-ckr-size
536870912

Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
---
 kexec/arch/ppc64/crashdump-ppc64.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kexec/arch/ppc64/crashdump-ppc64.c 
b/kexec/arch/ppc64/crashdump-ppc64.c
index 50e3853dbdcf..b2787d5135bd 100644
--- a/kexec/arch/ppc64/crashdump-ppc64.c
+++ b/kexec/arch/ppc64/crashdump-ppc64.c
@@ -612,12 +612,12 @@ int get_crash_kernel_load_range(uint64_t *start, uint64_t 
*end)
        unsigned long long value;
 
        if (!get_devtree_value(DEVTREE_CRASHKERNEL_BASE, &value))
-               *start = value;
+               *start = be64_to_cpu(value);
        else
                return -1;
 
        if (!get_devtree_value(DEVTREE_CRASHKERNEL_SIZE, &value))
-               *end = *start + value - 1;
+               *end = *start + be64_to_cpu(value) - 1;
        else
                return -1;
 
-- 
2.17.1


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to