On 05/02/17 at 09:24am, Ingo Molnar wrote: > > * Baoquan He <b...@redhat.com> wrote: > > > On 05/01/17 at 03:37pm, Yinghai Lu wrote: > > > On Mon, May 1, 2017 at 4:41 AM, Baoquan He <b...@redhat.com> wrote: > > > > arch/x86/mm/init_64.c | 6 ++++-- > > > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c > > > > index 15173d3..dbf4f00 100644 > > > > --- a/arch/x86/mm/init_64.c > > > > +++ b/arch/x86/mm/init_64.c > > > > @@ -94,12 +94,14 @@ __setup("noexec32=", nonx32_setup); > > > > */ > > > > void sync_global_pgds(unsigned long start, unsigned long end) > > > > { > > > > - unsigned long address; > > > > + unsigned long address, address_next; > > > > > > > > - for (address = start; address <= end; address += PGDIR_SIZE) { > > > > + for (address = start; address <= end; address = address_next) { > > > > const pgd_t *pgd_ref = pgd_offset_k(address); > > > > struct page *page; > > > > > > > > + address_next = (address & PGDIR_MASK) + PGDIR_SIZE; > > > > + > > > > if (pgd_none(*pgd_ref)) > > > > continue; > > > > > > > > > > This one is better than V2. > > > > > > It would better if could rename address to addr as Ingo suggested. > > > > Thanks for your checking and suggestion, Yinghai. > > > > Both v1 and v2 are fine to me. As you said, code in v1 is easily > > understood, while v2 code is more compact, less line. The line of v1 is > > not more than 80. Maybe Ingo can help choose one which he likes better. > > Let's do the variant I suggested - that makes the loop self-contained > ('continue' > would work as-is, etc.) and makes the code all around more readable.
Sure, let me change as you said, will post after testing passed. Thanks a lot!