mm: do not initialize TLB stack vma's with vma_init()
[linux] / arch / arm64 / mm / hugetlbpage.c
index 1854e49..192b3ba 100644 (file)
@@ -108,13 +108,10 @@ static pte_t get_clear_flush(struct mm_struct *mm,
                             unsigned long pgsize,
                             unsigned long ncontig)
 {
-       struct vm_area_struct vma;
        pte_t orig_pte = huge_ptep_get(ptep);
        bool valid = pte_valid(orig_pte);
        unsigned long i, saddr = addr;
 
-       vma_init(&vma, mm);
-
        for (i = 0; i < ncontig; i++, addr += pgsize, ptep++) {
                pte_t pte = ptep_get_and_clear(mm, addr, ptep);
 
@@ -127,8 +124,10 @@ static pte_t get_clear_flush(struct mm_struct *mm,
                        orig_pte = pte_mkdirty(orig_pte);
        }
 
-       if (valid)
+       if (valid) {
+               struct vm_area_struct vma = TLB_FLUSH_VMA(mm, 0);
                flush_tlb_range(&vma, saddr, addr);
+       }
        return orig_pte;
 }
 
@@ -147,10 +146,9 @@ static void clear_flush(struct mm_struct *mm,
                             unsigned long pgsize,
                             unsigned long ncontig)
 {
-       struct vm_area_struct vma;
+       struct vm_area_struct vma = TLB_FLUSH_VMA(mm, 0);
        unsigned long i, saddr = addr;
 
-       vma_init(&vma, mm);
        for (i = 0; i < ncontig; i++, addr += pgsize, ptep++)
                pte_clear(mm, addr, ptep);