Re: [PATCH v2] x86/mm: Fix incorrect for loop count calculation in sync_global_pgds

From: Ingo Molnar
Date: Mon May 01 2017 - 15:32:47 EST



* Baoquan He <bhe@xxxxxxxxxx> 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.

Thanks,

Ingo