• Laurent Dufour's avatar
    powerpc/kvm/cma: Fix panic introduces by signed shift operation · 02a68d05
    Laurent Dufour authored
    fc95ca72 introduces a memset in
    kvmppc_alloc_hpt since the general CMA doesn't clear the memory it
    allocates.
    
    However, the size argument passed to memset is computed from a signed value
    and its signed bit is extended by the cast the compiler is doing. This lead
    to extremely large size value when dealing with order value >= 31, and
    almost all the memory following the allocated space is cleaned. As a
    consequence, the system is panicing and may even fail spawning the kdump
    kernel.
    
    This fix makes use of an unsigned value for the memset's size argument to
    avoid sign extension. Among this fix, another shift operation which may
    lead to signed extended value too is also fixed.
    
    Cc: Alexey Kardashevskiy <aik@ozlabs.ru>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Alexander Graf <agraf@suse.de>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarLaurent Dufour <ldufour@linux.vnet.ibm.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    02a68d05
book3s_64_mmu_hv.c 43 KB