lkml.org 
[lkml]   [2020]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 01/45] powerpc/kasan: Fix error detection on memory allocation
    Date
    In case (k_start & PAGE_MASK) doesn't equal (kstart), 'va' will never be
    NULL allthough 'block' is NULL

    Check the return of memblock_alloc() directly instead of
    the resulting address in the loop.

    Fixes: 509cd3f2b473 ("powerpc/32: Simplify KASAN init")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    ---
    arch/powerpc/mm/kasan/kasan_init_32.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/arch/powerpc/mm/kasan/kasan_init_32.c b/arch/powerpc/mm/kasan/kasan_init_32.c
    index cbcad369fcb2..8b15fe09b967 100644
    --- a/arch/powerpc/mm/kasan/kasan_init_32.c
    +++ b/arch/powerpc/mm/kasan/kasan_init_32.c
    @@ -76,15 +76,14 @@ static int __init kasan_init_region(void *start, size_t size)
    return ret;

    block = memblock_alloc(k_end - k_start, PAGE_SIZE);
    + if (!block)
    + return -ENOMEM;

    for (k_cur = k_start & PAGE_MASK; k_cur < k_end; k_cur += PAGE_SIZE) {
    pmd_t *pmd = pmd_ptr_k(k_cur);
    void *va = block + k_cur - k_start;
    pte_t pte = pfn_pte(PHYS_PFN(__pa(va)), PAGE_KERNEL);

    - if (!va)
    - return -ENOMEM;
    -
    __set_pte_at(&init_mm, k_cur, pte_offset_kernel(pmd, k_cur), pte, 0);
    }
    flush_tlb_kernel_range(k_start, k_end);
    --
    2.25.0
    \
     
     \ /
      Last update: 2020-05-11 13:29    [W:9.565 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site