scripts: mkbootimg_rpi4: Fix url path to tizen_7.0
[platform/kernel/linux-rpi.git] / mm / khugepaged.c
index 5868e8b..f88ad1b 100644 (file)
@@ -1385,7 +1385,7 @@ static void collapse_huge_page(struct mm_struct *mm,
                 * __collapse_huge_page_isolate and __collapse_huge_page_copy
                 * to fail, __collapse_huge_page_copy also clears ptes
                 */
-               ;
+               flush_tlb_range(vma, address, address + HPAGE_CONT_PTE_SIZE);
        else
 #endif /* CONFIG_FINEGRAINED_THP */
                _pmd = pmdp_collapse_flush(vma, address, pmd);
@@ -1851,6 +1851,12 @@ void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr)
                goto drop_hpage;
 
        start_pte = pte_offset_map_lock(mm, pmd, haddr, &ptl);
+#ifdef CONFIG_FINEGRAINED_THP
+       if (pte_cont(*start_pte)) {
+               pte_unmap_unlock(start_pte, ptl);
+               goto drop_hpage;
+       }
+#endif
 
        /* step 1: check all mapped PTEs are to the right huge page */
        for (i = 0, addr = haddr, pte = start_pte;
@@ -2343,7 +2349,14 @@ out_unlock:
        }
 
        if (is_shmem)
+#ifdef CONFIG_FINEGRAINED_THP
+               if (hpage_type == THP_TYPE_64KB)
+                       __inc_node_page_state(new_page, NR_SHMEM_64KB_THPS);
+               else
+                       __inc_node_page_state(new_page, NR_SHMEM_THPS);
+#else /* CONFIG_FINEGRAINED_THP */
                __inc_node_page_state(new_page, NR_SHMEM_THPS);
+#endif /* CONFIG_FINEGRAINED_THP */
        else {
 #ifdef CONFIG_FINEGRAINED_THP
                if (hpage_type == THP_TYPE_64KB)
@@ -2716,7 +2729,7 @@ static unsigned int khugepaged_scan_vma(struct mm_struct *mm,
                BUG();
 
        while (khugepaged_scan.address < hend) {
-               if (khugepaged_scan.address + hpage_size >= hend) {
+               if (khugepaged_scan.address + hpage_size > hend) {
                        if (khugepaged_scan.address + HPAGE_CONT_PTE_SIZE < hend) {
                                hpage_size = HPAGE_CONT_PTE_SIZE;
                                hpage_nr = HPAGE_CONT_PTE_NR;