[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170127084723.GD25162@gmail.com>
Date: Fri, 27 Jan 2017 09:47:23 +0100
From: Ingo Molnar <mingo@...nel.org>
To: Wei Yang <richard.weiyang@...il.com>
Cc: tglx@...utronix.de, mingo@...hat.com, hpa@...or.com,
x86@...nel.org, linux-kernel@...r.kernel.org
Subject: Re: [Resend PATCH] x86/e820: break the loop when the region is less
then current region
* Wei Yang <richard.weiyang@...il.com> wrote:
> e820_all_mapped() iterates the e820 table to check whether a region is
> mapped or not. Since the e820 table is sorted, when the region is less than
> the current region, no need to continue the iteration.
>
> The patch breaks the loop accordingly.
>
> Signed-off-by: Wei Yang <richard.weiyang@...il.com>
> ---
> arch/x86/kernel/e820.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
> index 90e8dde..f4fb197 100644
> --- a/arch/x86/kernel/e820.c
> +++ b/arch/x86/kernel/e820.c
> @@ -86,10 +86,16 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type)
> for (i = 0; i < e820->nr_map; i++) {
> struct e820entry *ei = &e820->map[i];
>
> + /* Since the e820 table is sorted, when the region is less
> + * than the current region, break it.
> + */
> + if (ei->addr >= end)
> + break;
Please have a look at the relevant sections in Documentation/CodingStyle. (And
yes, this file violates it in a number of ways, but that's no reason to add to the
mess.)
But, more importantly, the reason I have not applied the patch before is that
while it's true that the e820 map is _eventually_ sorted, have you made certain
that all calls to e820_all_mapped() are done when the map is already sorted?
Thanks,
Ingo
Powered by blists - more mailing lists