Message ID | 20221125065444.3462681-1-mawupeng1@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [-next,1/1] mm/memory-failure.c: Cleanup in unpoison_memory | expand |
On Fri, Nov 25, 2022 at 02:54:44PM +0800, Wupeng Ma wrote: > From: Ma Wupeng <mawupeng1@huawei.com> > > If freeit it true, the value of ret must be zero, there is no need to > check the value of freeit after label unlock_mutex. > > We can drop variable freeit to do this cleanup. > > Signed-off-by: Ma Wupeng <mawupeng1@huawei.com> Hi Wupeng, > --- > mm/memory-failure.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index 2e62940c7bae..c77a9e37e27e 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -2338,7 +2338,6 @@ int unpoison_memory(unsigned long pfn) > struct page *page; > struct page *p; > int ret = -EBUSY; > - int freeit = 0; > unsigned long count = 1; > bool huge = false; > static DEFINE_RATELIMIT_STATE(unpoison_rs, DEFAULT_RATELIMIT_INTERVAL, > @@ -2413,10 +2412,9 @@ int unpoison_memory(unsigned long pfn) > goto unlock_mutex; > } > } > - freeit = !!TestClearPageHWPoison(p); > > put_page(page); > - if (freeit) { > + if (TestClearPageHWPoison(p)) { This reorders put_page() and TestClearPageHWPoison(), but when we run into this else block, the target page or hugepage should have refcount > 1, so it does not cause any behavioral change. So I'm fine with it. Looks good to me. Thank you for the patch. Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com> > put_page(page); > ret = 0; > } > @@ -2424,7 +2422,7 @@ int unpoison_memory(unsigned long pfn) > > unlock_mutex: > mutex_unlock(&mf_mutex); > - if (!ret || freeit) { > + if (!ret) { > if (!huge) > num_poisoned_pages_sub(pfn, 1); > unpoison_pr_info("Unpoison: Software-unpoisoned page %#lx\n", > -- > 2.25.1
On 2022/11/25 14:54, Wupeng Ma wrote: > From: Ma Wupeng <mawupeng1@huawei.com> > > If freeit it true, the value of ret must be zero, there is no need to s/it/is/ > check the value of freeit after label unlock_mutex. > > We can drop variable freeit to do this cleanup. > > Signed-off-by: Ma Wupeng <mawupeng1@huawei.com> Reviewed-by: Miaohe Lin <linmiaohe@huawei.com> Thanks, Miaohe Lin
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 2e62940c7bae..c77a9e37e27e 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -2338,7 +2338,6 @@ int unpoison_memory(unsigned long pfn) struct page *page; struct page *p; int ret = -EBUSY; - int freeit = 0; unsigned long count = 1; bool huge = false; static DEFINE_RATELIMIT_STATE(unpoison_rs, DEFAULT_RATELIMIT_INTERVAL, @@ -2413,10 +2412,9 @@ int unpoison_memory(unsigned long pfn) goto unlock_mutex; } } - freeit = !!TestClearPageHWPoison(p); put_page(page); - if (freeit) { + if (TestClearPageHWPoison(p)) { put_page(page); ret = 0; } @@ -2424,7 +2422,7 @@ int unpoison_memory(unsigned long pfn) unlock_mutex: mutex_unlock(&mf_mutex); - if (!ret || freeit) { + if (!ret) { if (!huge) num_poisoned_pages_sub(pfn, 1); unpoison_pr_info("Unpoison: Software-unpoisoned page %#lx\n",