On Friday 04 August 2017 07:17 AM, Benjamin Herrenschmidt wrote:
On Fri, 2017-08-04 at 11:37 +1000, Benjamin Herrenschmidt wrote:
On Thu, 2017-08-03 at 14:54 +0530, Hari Bathini wrote:
As linux,memory-limit node is set and also later used by the kernel,
avoid endian conversions for this property.

Fixes: 493adffcb43f ("powerpc: Make prom_init.c endian safe")
Cc: sta...@vger.kernel.org # 3.12+
Cc: Anton Blanchard <an...@ozlabs.org>
Cc: Benjamin Herrenschmidt <b...@kernel.crashing.org>
Signed-off-by: Hari Bathini <hbath...@linux.vnet.ibm.com>
---
  arch/powerpc/kernel/prom_init.c |    3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 613f79f..723df83 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -3180,9 +3180,8 @@ unsigned long __init prom_init(unsigned long r3, unsigned 
long r4,
         * Fill in some infos for use by the kernel later on
         */
        if (prom_memory_limit) {
-               __be64 val = cpu_to_be64(prom_memory_limit);
                prom_setprop(prom.chosen, "/chosen", "linux,memory-limit",
-                            &val, sizeof(val));
+                            &prom_memory_limit, sizeof(prom_memory_limit));
        }
  #ifdef CONFIG_PPC64
        if (prom_iommu_off)
NACK. The device-tree is big endian by convention
Also that probably breaks kexec.


Actually, mem= is broken for a while as endian conversion is done for linux,memory-limit node in prom_init.c but not in prom.c. Will post fix with endian conversion done in prom.c..

Thanks
Hari

Reply via email to