Messages in this thread | | | From | Yinghai Lu <> | Date | Mon, 1 May 2017 15:08:00 -0700 | Subject | Re: [PATCH v2] x86/mm: Fix incorrect for loop count calculation in sync_global_pgds |
| |
On Mon, May 1, 2017 at 12:32 PM, Ingo Molnar <mingo@kernel.org> wrote: > > * Baoquan He <bhe@redhat.com> wrote: > >> arch/x86/mm/init_64.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c >> index 15173d3..dfa9edb 100644 >> --- a/arch/x86/mm/init_64.c >> +++ b/arch/x86/mm/init_64.c >> @@ -96,7 +96,9 @@ void sync_global_pgds(unsigned long start, unsigned long end) >> { >> unsigned long address; >> >> - for (address = start; address <= end; address += PGDIR_SIZE) { >> + for (address = start; address <= end; >> + address = ALIGN(address + 1, PGDIR_SIZE)) { >> + >> const pgd_t *pgd_ref = pgd_offset_k(address); >> struct page *page; > > This patch does not apply cleanly to tip:master. > > You can avoid the col80 problems by renaming 'address' to the canonical 'addr' > name, the loop will become: > > for (addr = start; addr <= end; addr = ALIGN(addr + 1, PGDIR_SIZE)) { > > ... which fits into 80 cols.
would be more readable to make sync_global_pgds() loop is more like that in kernel_physical_mapping_init() ?
vaddr_start = vaddr;
for (; vaddr < vaddr_end; vaddr = vaddr_next) { ... vaddr_next = (vaddr & PGDIR_MASK) + PGDIR_SIZE;
Yinghai
| |