[PATCH 1/4] powerpc/prom: avoid endian conversions for linux, memory-limit node
Michael Ellerman
mpe at ellerman.id.au
Fri Aug 4 13:51:50 AEST 2017
Hari Bathini <hbathini at linux.vnet.ibm.com> writes:
> 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: stable at vger.kernel.org # 3.12+
> Cc: Anton Blanchard <anton at ozlabs.org>
> Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> Signed-off-by: Hari Bathini <hbathini at linux.vnet.ibm.com>
> ---
> arch/powerpc/kernel/prom_init.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
As Ben said, this is not OK. The flat device tree is a data
structure with a specified format[1], we don't violate the spec just to
avoid an endian swap.
Is there an actual bug you're trying to solve?
cheers
[1]: https://www.devicetree.org/
>
> 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)
More information about the Linuxppc-dev
mailing list