lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140507080650.GA28564@pengutronix.de>
Date:	Wed, 7 May 2014 10:06:50 +0200
From:	Uwe Kleine-König 
	<u.kleine-koenig@...gutronix.de>
To:	Bjorn Andersson <bjorn.andersson@...ymobile.com>
Cc:	Russell King <linux@....linux.org.uk>,
	linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ARM: zImage: Allow DTB to override broken ATAG_MEM

On Tue, May 06, 2014 at 10:16:16PM -0700, Bjorn Andersson wrote:
> Support overriding ATAG_MEM, by specifying non-zero content of the /memory/reg
> property in the appended DTB. This is needed to work around bootloaders passing
> broken tags.
This feels wrong. I think it's quite usual that the device tree
specifies a non-0 /memory/reg property. I checked four more or less
random dts files[1], and three of them have this property set with
actual values.

So I wouldn't be surprised if this patch results in more damage than
it's worth. The optimal fix would be to make the bootloader do the right
thing. And if you trust your dtb more than your bootloader, disable
ARM_ATAG_DTB_COMPAT.

Best regards
Uwe

[1]
arch/arm/boot/dts/am335x-bone-common.dtsi
arch/arm/boot/dts/exynos5440-sd5v1.dts
arch/arm/boot/dts/imx6q-wandboard.dts
arch/arm/boot/dts/tegra30-cardhu.dtsi
> 
> Signed-off-by: Bjorn Andersson <bjorn.andersson@...ymobile.com>
> ---
>  arch/arm/boot/compressed/atags_to_fdt.c |   18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/compressed/atags_to_fdt.c b/arch/arm/boot/compressed/atags_to_fdt.c
> index d1153c8..b534cd6 100644
> --- a/arch/arm/boot/compressed/atags_to_fdt.c
> +++ b/arch/arm/boot/compressed/atags_to_fdt.c
> @@ -95,6 +95,22 @@ static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
>  	setprop_string(fdt, "/chosen", "bootargs", cmdline);
>  }
>  
> +static int fdt_overrides_atag_mem(void *fdt)
> +{
> +	const char *memory;
> +	int len = 0;
> +
> +	memory = getprop(fdt, "/memory", "reg", &len);
> +	if (memory) {
> +		while (len--) {
> +			if (*memory++ != '\0')
[added fixup noted in follow-up-mail]

> +				return 1;
> +		}
> +	}
> +
> +	return 0;
> +}
> +
>  /*
>   * Convert and fold provided ATAGs into the provided FDT.
>   *
> @@ -180,7 +196,7 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space)
>  		}
>  	}
>  
> -	if (memcount) {
> +	if (memcount && !fdt_overrides_atag_mem(fdt)) {
>  		setprop(fdt, "/memory", "reg", mem_reg_property,
>  			4 * memcount * memsize);
>  	}
> -- 
> 1.7.9.5
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ