mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 09:13:55 +08:00
mm/memory-failure.c: simplify num_poisoned_pages_inc/dec
Originally, do num_poisoned_pages_inc() in memory failure routine, use num_poisoned_pages_dec() to rollback the number if filtered/ cancelled. Suggested by Naoya, do num_poisoned_pages_inc() only in action_result(), this make this clear and simple. Link: https://lkml.kernel.org/r/20220509105641.491313-6-pizhenwei@bytedance.com Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
f0696cb406
commit
e240ac52f7
@ -1132,6 +1132,7 @@ static void action_result(unsigned long pfn, enum mf_action_page_type type,
|
||||
{
|
||||
trace_memory_failure_event(pfn, type, result);
|
||||
|
||||
num_poisoned_pages_inc();
|
||||
pr_err("Memory failure: %#lx: recovery action for %s: %s\n",
|
||||
pfn, action_page_types[type], action_name[result]);
|
||||
}
|
||||
@ -1587,8 +1588,6 @@ retry:
|
||||
goto out;
|
||||
}
|
||||
|
||||
num_poisoned_pages_inc();
|
||||
|
||||
/*
|
||||
* Handling free hugepage. The possible race with hugepage allocation
|
||||
* or demotion can be prevented by PageHWPoison flag.
|
||||
@ -1806,7 +1805,6 @@ try_again:
|
||||
}
|
||||
|
||||
hpage = compound_head(p);
|
||||
num_poisoned_pages_inc();
|
||||
|
||||
/*
|
||||
* We need/can do nothing about count=0 pages.
|
||||
@ -1830,7 +1828,6 @@ try_again:
|
||||
/* We lost the race, try again */
|
||||
if (retry) {
|
||||
ClearPageHWPoison(p);
|
||||
num_poisoned_pages_dec();
|
||||
retry = false;
|
||||
goto try_again;
|
||||
}
|
||||
@ -1906,8 +1903,7 @@ try_again:
|
||||
*/
|
||||
if (PageCompound(p)) {
|
||||
if (retry) {
|
||||
if (TestClearPageHWPoison(p))
|
||||
num_poisoned_pages_dec();
|
||||
ClearPageHWPoison(p);
|
||||
unlock_page(p);
|
||||
put_page(p);
|
||||
flags &= ~MF_COUNT_INCREASED;
|
||||
@ -1929,8 +1925,7 @@ try_again:
|
||||
page_flags = p->flags;
|
||||
|
||||
if (hwpoison_filter(p)) {
|
||||
if (TestClearPageHWPoison(p))
|
||||
num_poisoned_pages_dec();
|
||||
TestClearPageHWPoison(p);
|
||||
unlock_page(p);
|
||||
put_page(p);
|
||||
res = -EOPNOTSUPP;
|
||||
|
Loading…
Reference in New Issue
Block a user