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] [day] [month] [year] [list]
Message-ID: <CAE9FiQUndrTZYk+JS09PUYg4Od1VLz_CDikp2DftXSrUraH1bw@mail.gmail.com>
Date:	Sat, 13 Jul 2013 14:48:18 -0700
From:	Yinghai Lu <yinghai@...nel.org>
To:	Daniel Drake <dsd@...top.org>
Cc:	Thomas Gleixner <tglx@...utronix.de>,
	Ingo Molnar <mingo@...hat.com>,
	"H. Peter Anvin" <hpa@...or.com>,
	"the arch/x86 maintainers" <x86@...nel.org>,
	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	pgf@...top.org, Andres Salomon <dilinger@...ued.net>
Subject: Re: [PATCH] x86: don't clear olpc_ofw_header when sentinel is detected

On Sat, Jul 13, 2013 at 9:26 AM, Daniel Drake <dsd@...top.org> wrote:
> OpenFirmware doesn't quite follow the protocol described in boot.txt
> and the kernel has detected this through use of the sentinel value
> in boot_params. OFW does zero out almost all of the stuff that it should
> do, but not the sentinel.
>
> This causes the kernel to clear olpc_ofw_header, which breaks x86 OLPC
> support.
>
> We will fix OpenFirmware. However, it would be nice if we could maintain
> Linux compatibility with old firmware versions. To do that, we just have
> to avoid zeroing out olpc_ofw_header.
>
> OFW does not write to any other parts of the header that are being zapped
> by the sentinel-detection code, and all users of olpc_ofw_header are
> somewhat protected through checking for the OLPC_OFW_SIG magic value
> before using it. So this should not cause any problems for anyone.
>
> Signed-off-by: Daniel Drake <dsd@...top.org>
> ---
>  arch/x86/include/asm/bootparam_utils.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/include/asm/bootparam_utils.h b/arch/x86/include/asm/bootparam_utils.h
> index 653668d..4a8cb8d 100644
> --- a/arch/x86/include/asm/bootparam_utils.h
> +++ b/arch/x86/include/asm/bootparam_utils.h
> @@ -35,9 +35,9 @@ static void sanitize_boot_params(struct boot_params *boot_params)
>          */
>         if (boot_params->sentinel) {
>                 /* fields in boot_params are left uninitialized, clear them */
> -               memset(&boot_params->olpc_ofw_header, 0,
> +               memset(&boot_params->ext_ramdisk_image, 0,
>                        (char *)&boot_params->efi_info -
> -                       (char *)&boot_params->olpc_ofw_header);
> +                       (char *)&boot_params->ext_ramdisk_image);
>                 memset(&boot_params->kbd_status, 0,
>                        (char *)&boot_params->hdr -
>                        (char *)&boot_params->kbd_status);
> --
> 1.8.1.4

Acked-by: Yinghai Lu <yinghai@...nel.org>

also need to
Cc: <stable@...r.kerne.org> v3.9+
--
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