Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4779cb31 authored by Andi Kleen's avatar Andi Kleen
Browse files

HWPOISON: Fix page count leak in hwpoison late kill in do_swap_page



When returning due to a poisoned page drop the page count.

It wasn't a fatal problem because noone cares about the page count
on a poisoned page (except when it wraps), but it's cleaner to fix it.

Pointed out by Linus.

Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
parent e43c3afb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2539,7 +2539,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
	} else if (PageHWPoison(page)) {
		ret = VM_FAULT_HWPOISON;
		delayacct_clear_flag(DELAYACCT_PF_SWAPIN);
		goto out;
		goto out_release;
	}

	lock_page(page);
@@ -2611,6 +2611,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
	pte_unmap_unlock(page_table, ptl);
out_page:
	unlock_page(page);
out_release:
	page_cache_release(page);
	return ret;
}