lkml.org 
[lkml]   [2019]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.3 031/148] powerpc/kasan: Fix shadow area set up for modules.
    Date
    From: Christophe Leroy <christophe.leroy@c-s.fr>

    commit 663c0c9496a69f80011205ba3194049bcafd681d upstream.

    When loading modules, from time to time an Oops is encountered during
    the init of shadow area for globals. This is due to the last page not
    always being mapped depending on the exact distance between the start
    and the end of the shadow area and the alignment with the page
    addresses.

    Fix this by aligning the starting address with the page address.

    Fixes: 2edb16efc899 ("powerpc/32: Add KASAN support")
    Cc: stable@vger.kernel.org # v5.2+
    Reported-by: Erhard F. <erhard_f@mailbox.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/4f887e9b77d0d725cbb52035c7ece485c1c5fc14.1565361881.git.christophe.leroy@c-s.fr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/mm/kasan/kasan_init_32.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/powerpc/mm/kasan/kasan_init_32.c
    +++ b/arch/powerpc/mm/kasan/kasan_init_32.c
    @@ -87,7 +87,7 @@ static int __ref kasan_init_region(void
    if (!slab_is_available())
    block = memblock_alloc(k_end - k_start, PAGE_SIZE);

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

    \
     
     \ /
      Last update: 2019-10-10 11:02    [W:4.718 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site