Re: [PATCH 2/9] mm: add apply_to_page_range_batch()

From: Konrad Rzeszutek Wilk
Date: Mon Jan 10 2011 - 16:28:08 EST


. snip..
> static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
> unsigned long addr, unsigned long end,
> - pte_fn_t fn, void *data)
> + pte_batch_fn_t fn, void *data)
> {
> pte_t *pte;
> int err;
> - pgtable_t token;
> spinlock_t *uninitialized_var(ptl);
>
> pte = (mm == &init_mm) ?
> @@ -1940,25 +1939,17 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd,
> BUG_ON(pmd_huge(*pmd));
>
> arch_enter_lazy_mmu_mode();
> -
> - token = pmd_pgtable(*pmd);
> -
> - do {
> - err = fn(pte++, addr, data);
> - if (err)
> - break;
> - } while (addr += PAGE_SIZE, addr != end);
> -
> + err = fn(pte, (end - addr) / PAGE_SIZE, addr, data);
> arch_leave_lazy_mmu_mode();
>
> if (mm != &init_mm)
> - pte_unmap_unlock(pte-1, ptl);
> + pte_unmap_unlock(pte, ptl);

That looks like a bug fix as well? Did this hit us before the change or was
it masked by the fact that the code never go to here?

> return err;
> }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/