drm/amdgpu/powerplay/smu7: fix AVFS handling with custom powerplay table
[linux-2.6-block.git] / mm / memory.c
index b1dff75640b722d4bb40f2be6b76880ef8cb12ef..b1ca51a079f27465fba8529c75a11f65f3e09b85 100644 (file)
@@ -518,7 +518,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
                 (long long)pte_val(pte), (long long)pmd_val(*pmd));
        if (page)
                dump_page(page, "bad pte");
-       pr_alert("addr:%p vm_flags:%08lx anon_vma:%p mapping:%p index:%lx\n",
+       pr_alert("addr:%px vm_flags:%08lx anon_vma:%px mapping:%px index:%lx\n",
                 (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index);
        pr_alert("file:%pD fault:%ps mmap:%ps readpage:%ps\n",
                 vma->vm_file,
@@ -1026,6 +1026,9 @@ again:
                if (pte_none(ptent))
                        continue;
 
+               if (need_resched())
+                       break;
+
                if (pte_present(ptent)) {
                        struct page *page;
 
@@ -1093,7 +1096,6 @@ again:
                if (unlikely(details))
                        continue;
 
-               entry = pte_to_swp_entry(ptent);
                if (!non_swap_entry(entry))
                        rss[MM_SWAPENTS]--;
                else if (is_migration_entry(entry)) {
@@ -1124,8 +1126,11 @@ again:
        if (force_flush) {
                force_flush = 0;
                tlb_flush_mmu(tlb);
-               if (addr != end)
-                       goto again;
+       }
+
+       if (addr != end) {
+               cond_resched();
+               goto again;
        }
 
        return addr;