• Jordan Niethe's avatar
    KVM: PPC: Book3S HV: Introduce low level MSR accessor · 6de2e837
    Jordan Niethe authored
    kvmppc_get_msr() and kvmppc_set_msr_fast() serve as accessors for the
    MSR. However because the MSR is kept in the shared regs they include a
    conditional check for kvmppc_shared_big_endian() and endian conversion.
    
    Within the Book3S HV specific code there are direct reads and writes of
    shregs::msr. In preparation for Nested APIv2 these accesses need to be
    replaced with accessor functions so it is possible to extend their
    behavior. However, using the kvmppc_get_msr() and kvmppc_set_msr_fast()
    functions is undesirable because it would introduce a conditional branch
    and endian conversion that is not currently present.
    
    kvmppc_set_msr_hv() already exists, it is used for the
    kvmppc_ops::set_msr callback.
    
    Introduce a low level accessor __kvmppc_{s,g}et_msr_hv() that simply
    gets and sets shregs::msr. This will be extend for Nested APIv2 support.
    Signed-off-by: default avatarJordan Niethe <jniethe5@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230914030600.16993-8-jniethe5@gmail.com
    6de2e837
book3s_hv.c 164 KB