diff options
Diffstat (limited to 'mm/memory-failure.c')
| -rw-r--r-- | mm/memory-failure.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 4f08a2d61487..2f2f34a4e77d 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -945,8 +945,10 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn,  			 * to it. Similarly, page lock is shifted.  			 */  			if (hpage != p) { -				put_page(hpage); -				get_page(p); +				if (!(flags & MF_COUNT_INCREASED)) { +					put_page(hpage); +					get_page(p); +				}  				lock_page(p);  				unlock_page(hpage);  				*hpagep = p; |