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

Commit 6dc52cbe authored by Chen, Gong's avatar Chen, Gong Committed by Borislav Petkov
Browse files

RAS, HWPOISON: Fix wrong error recovery status



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: default avatarChen, 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: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: default avatarTony Luck <tony.luck@intel.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
parent 8f7c31f6
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -860,7 +860,6 @@ static int page_action(struct page_state *ps, struct page *p,
	int count;
	int count;


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


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


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