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: <20181028104614.GA98913@gmail.com>
Date:   Sun, 28 Oct 2018 11:46:14 +0100
From:   Ingo Molnar <mingo@...nel.org>
To:     Jordan Borgner <mail@...dan-borgner.de>
Cc:     tglx@...utronix.de, mingo@...hat.com, bp@...en8.de, x86@...nel.org,
        linux-kernel@...r.kernel.org, hpa@...or.com
Subject: Re: [PATCH] arch/x86/boot/memory.c: Touched up coding-style issues


* Jordan Borgner <mail@...dan-borgner.de> wrote:

> Added missing parentheses to sizeof() function in detect_memory_e820().
> 
> Removed unnecessary braces in detect_memory_e801().
> 
> Replaced three if-statements with a ternary if-statement and 
> removed an unnecessary integer variable in detect_memory().
> 
> This is my first patch I hope it is okay.
> 
> Signed-off-by: Jordan Borgner <mail@...dan-borgner.de>
> ---
>  linux-4.19/arch/x86/boot/memory.c | 24 +++++++-----------------
>  1 file changed, 7 insertions(+), 17 deletions(-)
> 
> diff --git a/linux-4.19/arch/x86/boot/memory.c b/linux-4.19/arch/x86/boot/memory.c
> index d9c28c8..a6124af 100644
> --- a/linux-4.19/arch/x86/boot/memory.c
> +++ b/linux-4.19/arch/x86/boot/memory.c
> @@ -26,7 +26,7 @@ static int detect_memory_e820(void)
>  
>  	initregs(&ireg);
>  	ireg.ax  = 0xe820;
> -	ireg.cx  = sizeof buf;
> +	ireg.cx  = sizeof(buf);
>  	ireg.edx = SMAP;
>  	ireg.di  = (size_t)&buf;

That's legit - could you do a single patch that only changes all the 
'sizeof x' patterns in arch/x86/ to 'sizeof(x)']?

>  
> @@ -88,11 +88,11 @@ static int detect_memory_e801(void)
>  		oreg.bx = oreg.dx;
>  	}
>  
> -	if (oreg.ax > 15*1024) {
> +	if (oreg.ax > 15*1024)
>  		return -1;	/* Bogus! */
> -	} else if (oreg.ax == 15*1024) {
> +	else if (oreg.ax == 15*1024)
>  		boot_params.alt_mem_k = (oreg.bx << 6) + oreg.ax;
> -	} else {
> +	else
>  		/*
>  		 * This ignores memory above 16MB if we have a memory
>  		 * hole there.  If someone actually finds a machine
> @@ -101,7 +101,6 @@ static int detect_memory_e801(void)
>  		 * map.
>  		 */
>  		boot_params.alt_mem_k = oreg.ax;
> -	}

The original code was better - multi-screen-line statements require curly 
braces in general.

>  
>  	return 0;
>  }
> @@ -121,16 +120,7 @@ static int detect_memory_88(void)
>  
>  int detect_memory(void)
>  {
> -	int err = -1;
> -
> -	if (detect_memory_e820() > 0)
> -		err = 0;
> -
> -	if (!detect_memory_e801())
> -		err = 0;
> -
> -	if (!detect_memory_88())
> -		err = 0;
> -
> -	return err;
> +	return (detect_memory_e820() > 0 ||
> +		!detect_memory_e801()    ||
> +		!detect_memory_88()) ? 0 : -1;

Here too I think the original flow of logic was easier to read - more 
compact is not always better.

Also, please investigate whether the return value is actually *used*, and 
if not then please send a separate patch that simplifies the code.

Thanks,

	Ingo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ