• Paul Mackerras's avatar
    KVM: PPC: Fix emulated MMIO sign-extension · eb8b0560
    Paul Mackerras authored
    When the guest does a sign-extending load instruction (such as lha
    or lwa) to an emulated MMIO location, it results in a call to
    kvmppc_handle_loads() in the host.  That function sets the
    vcpu->arch.mmio_sign_extend flag and calls kvmppc_handle_load()
    to do the rest of the work.  However, kvmppc_handle_load() sets
    the mmio_sign_extend flag to 0 unconditionally, so the sign
    extension never gets done.
    
    To fix this, we rename kvmppc_handle_load to __kvmppc_handle_load
    and add an explicit parameter to indicate whether sign extension
    is required.  kvmppc_handle_load() and kvmppc_handle_loads() then
    become 1-line functions that just call __kvmppc_handle_load()
    with the extra parameter.
    Reported-by: default avatarBin Lu <lblulb@linux.vnet.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    eb8b0560
powerpc.c 32.2 KB