Use num_poisoned_pages_sub() to combine multiple atomic ops into one. Also
num_poisoned_pages_dec() can be killed as there's no caller now.
Link: https://lkml.kernel.org/r/20220830123604.25763-4-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
        atomic_long_inc(&num_poisoned_pages);
 }
 
-static inline void num_poisoned_pages_dec(void)
-{
-       atomic_long_dec(&num_poisoned_pages);
-}
-
 static inline void num_poisoned_pages_sub(long i)
 {
        atomic_long_sub(i, &num_poisoned_pages);
 
 
 void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
 {
-       int i;
+       int i, total = 0;
 
        /*
         * A further optimization is to have per section refcounted
 
        for (i = 0; i < nr_pages; i++) {
                if (PageHWPoison(&memmap[i])) {
-                       num_poisoned_pages_dec();
+                       total++;
                        ClearPageHWPoison(&memmap[i]);
                }
        }
+       if (total)
+               num_poisoned_pages_sub(total);
 }