Skip to content

Commit

Permalink
RAS, HWPOISON: Fix wrong error recovery status
Browse files Browse the repository at this point in the history
When Uncorrected error happens, if the poisoned page is referenced
by more than one user after error recovery, the recovery is not
successful. But currently the display result is wrong.
Before this patch:

MCE 0x44e336: dirty mlocked LRU page recovery: Recovered
MCE 0x44e336: dirty mlocked LRU page still referenced by 1 users
mce: Memory error not recovered

After this patch:

MCE 0x44e336: dirty mlocked LRU page recovery: Failed
MCE 0x44e336: dirty mlocked LRU page still referenced by 1 users
mce: Memory error not recovered

Signed-off-by: Chen, Gong <gong.chen@linux.intel.com>
Link: http://lkml.kernel.org/r/1406530260-26078-3-git-send-email-gong.chen@linux.intel.com
Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
  • Loading branch information
Chen, Gong authored and Borislav Petkov committed Oct 21, 2014
1 parent 8f7c31f commit 6dc52cb
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion mm/memory-failure.c
Original file line number Diff line number Diff line change
Expand Up @@ -860,7 +860,6 @@ static int page_action(struct page_state *ps, struct page *p,
int count;

result = ps->action(p, pfn);
action_result(pfn, ps->msg, result);

count = page_count(p) - 1;
if (ps->action == me_swapcache_dirty && result == DELAYED)
Expand All @@ -871,6 +870,7 @@ static int page_action(struct page_state *ps, struct page *p,
pfn, ps->msg, count);
result = FAILED;
}
action_result(pfn, ps->msg, result);

/* Could do more checks here if page looks ok */
/*
Expand Down

0 comments on commit 6dc52cb

Please sign in to comment.