• Sean Christopherson's avatar
    KVM: arm64: Do arm/arch initialization without bouncing through kvm_init() · 1dc0f02d
    Sean Christopherson authored
    Do arm/arch specific initialization directly in arm's module_init(), now
    called kvm_arm_init(), instead of bouncing through kvm_init() to reach
    kvm_arch_init().  Invoking kvm_arch_init() is the very first action
    performed by kvm_init(), so from a initialization perspective this is a
    glorified nop.
    
    Avoiding kvm_arch_init() also fixes a mostly benign bug as kvm_arch_exit()
    doesn't properly unwind if a later stage of kvm_init() fails.  While the
    soon-to-be-deleted comment about compiling as a module being unsupported
    is correct, kvm_arch_exit() can still be called by kvm_init() if any step
    after the call to kvm_arch_init() succeeds.
    
    Add a FIXME to call out that pKVM initialization isn't unwound if
    kvm_init() fails, which is a pre-existing problem inherited from
    kvm_arch_exit().
    
    Making kvm_arch_init() a nop will also allow dropping kvm_arch_init() and
    kvm_arch_exit() entirely once all other architectures follow suit.
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20221130230934.1014142-20-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    1dc0f02d
arm.c 55 KB