|
@@ -139,7 +139,6 @@ int walk_page_range(unsigned long addr, unsigned long end,
|
|
|
pgd_t *pgd;
|
|
|
unsigned long next;
|
|
|
int err = 0;
|
|
|
- struct vm_area_struct *vma;
|
|
|
|
|
|
if (addr >= end)
|
|
|
return err;
|
|
@@ -149,15 +148,17 @@ int walk_page_range(unsigned long addr, unsigned long end,
|
|
|
|
|
|
pgd = pgd_offset(walk->mm, addr);
|
|
|
do {
|
|
|
+ struct vm_area_struct *uninitialized_var(vma);
|
|
|
+
|
|
|
next = pgd_addr_end(addr, end);
|
|
|
|
|
|
+#ifdef CONFIG_HUGETLB_PAGE
|
|
|
/*
|
|
|
* handle hugetlb vma individually because pagetable walk for
|
|
|
* the hugetlb page is dependent on the architecture and
|
|
|
* we can't handled it in the same manner as non-huge pages.
|
|
|
*/
|
|
|
vma = find_vma(walk->mm, addr);
|
|
|
-#ifdef CONFIG_HUGETLB_PAGE
|
|
|
if (vma && is_vm_hugetlb_page(vma)) {
|
|
|
if (vma->vm_end < next)
|
|
|
next = vma->vm_end;
|