lkml.org 
[lkml]   [2019]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 21/69] sparc64: Fix regression in non-hypervisor TLB flush xcall
    Date
    From: James Clarke <jrtc27@jrtc27.com>

    commit d3c976c14ad8af421134c428b0a89ff8dd3bd8f8 upstream.

    Previously, %g2 would end up with the value PAGE_SIZE, but after the
    commit mentioned below it ends up with the value 1 due to being reused
    for a different purpose. We need it to be PAGE_SIZE as we use it to step
    through pages in our demap loop, otherwise we set different flags in the
    low 12 bits of the address written to, thereby doing things other than a
    nucleus page flush.

    Fixes: a74ad5e660a9 ("sparc64: Handle extremely large kernel TLB range flushes more gracefully.")
    Reported-by: Meelis Roos <mroos@linux.ee>
    Tested-by: Meelis Roos <mroos@linux.ee>
    Signed-off-by: James Clarke <jrtc27@jrtc27.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/sparc/mm/ultra.S | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/sparc/mm/ultra.S
    +++ b/arch/sparc/mm/ultra.S
    @@ -587,7 +587,7 @@ xcall_flush_tlb_kernel_range: /* 44 insn
    sub %g7, %g1, %g3
    srlx %g3, 18, %g2
    brnz,pn %g2, 2f
    - add %g2, 1, %g2
    + sethi %hi(PAGE_SIZE), %g2
    sub %g3, %g2, %g3
    or %g1, 0x20, %g1 ! Nucleus
    1: stxa %g0, [%g1 + %g3] ASI_DMMU_DEMAP
    @@ -751,7 +751,7 @@ __cheetah_xcall_flush_tlb_kernel_range:
    sub %g7, %g1, %g3
    srlx %g3, 18, %g2
    brnz,pn %g2, 2f
    - add %g2, 1, %g2
    + sethi %hi(PAGE_SIZE), %g2
    sub %g3, %g2, %g3
    or %g1, 0x20, %g1 ! Nucleus
    1: stxa %g0, [%g1 + %g3] ASI_DMMU_DEMAP

    \
     
     \ /
      Last update: 2019-06-07 18:01    [W:4.254 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site