From: Andi Kleen Date: Mon, 27 Sep 2010 21:39:30 +0000 (+0200) Subject: HWPOISON: Remove retry loop for try_to_unmap X-Git-Tag: upstream/snapshot3+hdmi~12651^2~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a08c80ebb621a6dc277c91e029acb725f2f20254;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git HWPOISON: Remove retry loop for try_to_unmap We don't reply in other temporary failure cases and there were no reports of replies happening. I think the original reason it was added was also just an early bug, not an observation of the race. So remove the loop for now, but keep a warning message. Signed-off-by: Andi Kleen --- diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 88653c9..2044fe8 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -840,8 +840,6 @@ static int page_action(struct page_state *ps, struct page *p, return (result == RECOVERED || result == DELAYED) ? 0 : -EBUSY; } -#define N_UNMAP_TRIES 5 - /* * Do all that is necessary to remove user space mappings. Unmap * the pages and send SIGBUS to the processes if the data was dirty. @@ -853,7 +851,6 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn, struct address_space *mapping; LIST_HEAD(tokill); int ret; - int i; int kill = 1; struct page *hpage = compound_head(p); @@ -907,17 +904,7 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn, if (kill) collect_procs(hpage, &tokill); - /* - * try_to_unmap can fail temporarily due to races. - * Try a few times (RED-PEN better strategy?) - */ - for (i = 0; i < N_UNMAP_TRIES; i++) { - ret = try_to_unmap(hpage, ttu); - if (ret == SWAP_SUCCESS) - break; - pr_debug("MCE %#lx: try_to_unmap retry needed %d\n", pfn, ret); - } - + ret = try_to_unmap(hpage, ttu); if (ret != SWAP_SUCCESS) printk(KERN_ERR "MCE %#lx: failed to unmap page (mapcount=%d)\n", pfn, page_mapcount(hpage));