• Marc Zyngier's avatar
    KVM: arm64: Move FP state ownership from flag to a tristate · f8077b0d
    Marc Zyngier authored
    The KVM FP code uses a pair of flags to denote three states:
    
    - FP_ENABLED set: the guest owns the FP state
    - FP_HOST set: the host owns the FP state
    - FP_ENABLED and FP_HOST clear: nobody owns the FP state at all
    
    and both flags set is an illegal state, which nothing ever checks
    for...
    
    As it turns out, this isn't really a good match for flags, and
    we'd be better off if this was a simpler tristate, each state
    having a name that actually reflect the state:
    
    - FP_STATE_FREE
    - FP_STATE_HOST_OWNED
    - FP_STATE_GUEST_OWNED
    
    Kill the two flags, and move over to an enum encoding these
    three states. This results in less confusing code, and less risk of
    ending up in the uncharted territory of a 4th state if we forget
    to clear one of the two flags.
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Reviewed-by: default avatarMark Brown <broonie@kernel.org>
    Reviewed-by: default avatarReiji Watanabe <reijiw@google.com>
    f8077b0d
switch.h 12.9 KB