]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mm/z3fold: fix sheduling while atomic
authorMiaohe Lin <linmiaohe@huawei.com>
Fri, 29 Apr 2022 06:40:43 +0000 (14:40 +0800)
committerakpm <akpm@linux-foundation.org>
Fri, 27 May 2022 16:33:43 +0000 (09:33 -0700)
Patch series "A few fixup patches for z3fold".

This series contains a few fixup patches to fix sheduling while atomic,
fix possible null pointer dereferencing, fix various race conditions and
so on. More details can be found in the respective changelogs.

This patch (of 9):

z3fold's page_lock is always held when calling alloc_slots.  So gfp should
be GFP_ATOMIC to avoid "scheduling while atomic" bug.

Link: https://lkml.kernel.org/r/20220429064051.61552-1-linmiaohe@huawei.com
Link: https://lkml.kernel.org/r/20220429064051.61552-2-linmiaohe@huawei.com
Fixes: fc5488651c7d ("z3fold: simplify freeing slots")
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: Vitaly Wool <vitaly.wool@konsulko.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/z3fold.c

index 83b5a3514427e7ef6d936d9447e299dc09cbe7c9..c2260f5a5885709d2fba5ce2430cd1ba639af77f 100644 (file)
@@ -941,8 +941,7 @@ lookup:
        }
 
        if (zhdr && !zhdr->slots)
-               zhdr->slots = alloc_slots(pool,
-                                       can_sleep ? GFP_NOIO : GFP_ATOMIC);
+               zhdr->slots = alloc_slots(pool, GFP_ATOMIC);
        return zhdr;
 }