diff options
| author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-12-12 20:44:25 +0100 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-12-12 20:44:25 +0100 |
| commit | 2bf3b685a35c80fe368dad9da0e77ba48b460939 (patch) | |
| tree | 3516a82ec33f96d5e9d3f36abef751aa0b788748 /mm/memory-failure.c | |
| parent | bf006e149a5717a4614d44a62090ae98775af7a0 (diff) | |
| parent | d06e622d3d9206e6a2cc45a0f9a3256da8773ff4 (diff) | |
Merge schedutil governor updates for v4.10.
Diffstat (limited to 'mm/memory-failure.c')
| -rw-r--r-- | mm/memory-failure.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index de88f33519c0..19e796d36a62 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1112,10 +1112,10 @@ int memory_failure(unsigned long pfn, int trapno, int flags) } if (!PageHuge(p) && PageTransHuge(hpage)) { - lock_page(hpage); - if (!PageAnon(hpage) || unlikely(split_huge_page(hpage))) { - unlock_page(hpage); - if (!PageAnon(hpage)) + lock_page(p); + if (!PageAnon(p) || unlikely(split_huge_page(p))) { + unlock_page(p); + if (!PageAnon(p)) pr_err("Memory failure: %#lx: non anonymous thp\n", pfn); else @@ -1126,9 +1126,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags) put_hwpoison_page(p); return -EBUSY; } - unlock_page(hpage); - get_hwpoison_page(p); - put_hwpoison_page(hpage); + unlock_page(p); VM_BUG_ON_PAGE(!page_count(p), p); hpage = compound_head(p); } |
