lkml.org 
[lkml]   [2021]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 59/67] kvm: fix previous commit for 32-bit builds
    Date
    From: Paolo Bonzini <pbonzini@redhat.com>

    commit 4422829e8053068e0225e4d0ef42dc41ea7c9ef5 upstream.

    array_index_nospec does not work for uint64_t on 32-bit builds.
    However, the size of a memory slot must be less than 20 bits wide
    on those system, since the memory slot must fit in the user
    address space. So just store it in an unsigned long.

    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    include/linux/kvm_host.h | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/include/linux/kvm_host.h
    +++ b/include/linux/kvm_host.h
    @@ -1023,8 +1023,8 @@ __gfn_to_hva_memslot(struct kvm_memory_s
    * table walks, do not let the processor speculate loads outside
    * the guest's registered memslots.
    */
    - unsigned long offset = array_index_nospec(gfn - slot->base_gfn,
    - slot->npages);
    + unsigned long offset = gfn - slot->base_gfn;
    + offset = array_index_nospec(offset, slot->npages);
    return slot->userspace_addr + offset * PAGE_SIZE;
    }


    \
     
     \ /
      Last update: 2021-06-14 12:51    [W:3.867 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site