Commit f7f15245 authored by James Hogan's avatar James Hogan Committed by Paolo Bonzini
Browse files

mips_malta: Catch kernels linked at wrong address



Add error reporting if the wrong type of kernel is provided for the
current mode of acceleration.

Currently a KVM kernel linked at 0x40000000 can't be used with TCG, and
a normal kernel linked at 0x80000000 can't be used with KVM.

Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
Reviewed-by: default avatarAurelien Jarno <aurelien@aurel32.net>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent fbdb1d95
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -792,9 +792,23 @@ static int64_t load_kernel (void)
                loaderparams.kernel_filename);
        exit(1);
    }

    /* Sanity check where the kernel has been linked */
    if (kvm_enabled()) {
        if (kernel_entry & 0x80000000ll) {
            error_report("KVM guest kernels must be linked in useg. "
                         "Did you forget to enable CONFIG_KVM_GUEST?");
            exit(1);
        }

        xlate_to_kseg0 = cpu_mips_kvm_um_phys_to_kseg0;
    } else {
        if (!(kernel_entry & 0x80000000ll)) {
            error_report("KVM guest kernels aren't supported with TCG. "
                         "Did you unintentionally enable CONFIG_KVM_GUEST?");
            exit(1);
        }

        xlate_to_kseg0 = cpu_mips_phys_to_kseg0;
    }