Re: [PATCH] x86/kaslr: remove useless code in mem_avoid_memmap

From: Baoquan He
Date: Thu Aug 22 2019 - 09:46:20 EST


On 08/22/19 at 08:32am, Qian Cai wrote:
> MAX_MEMMAP_REGIONS is a macro that equal to 4. "i" is static local
> variable that default to 0. The comparison "i >= MAX_MEMMAP_REGIONS"
> will always be false.

Seems not true. mem_avoid_memmap() could be invoked many times if
multiple memmap= added. It will carry the value accumulated from
the past.

>
> Signed-off-by: Qian Cai <cai@xxxxxx>
> ---
> arch/x86/boot/compressed/kaslr.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c
> index 2e53c056ba20..a4a5a88edb94 100644
> --- a/arch/x86/boot/compressed/kaslr.c
> +++ b/arch/x86/boot/compressed/kaslr.c
> @@ -176,9 +176,6 @@ static void mem_avoid_memmap(char *str)
> {
> static int i;
>
> - if (i >= MAX_MEMMAP_REGIONS)
> - return;
> -
> while (str && (i < MAX_MEMMAP_REGIONS)) {
> int rc;
> unsigned long long start, size;
> --
> 1.8.3.1
>