ANDROID: KVM: arm64: Refactor calculating SVE state size to use helpers
The main factor for determining the SVE state size is the vector length, and future patches will need to calculate it without necessarily having a vcpu as a reference. No functional change intended. Bug: 357781595 Change-Id: I0b4f7145f4d9cf11c7c0f0dcd66a4ced838179e1 Signed-off-by: Fuad Tabba <tabba@google.com>
This commit is contained in:
@@ -926,25 +926,27 @@ struct kvm_vcpu_arch {
|
||||
#define vcpu_sve_pffr(vcpu) (kern_hyp_va((vcpu)->arch.sve_state) + \
|
||||
sve_ffr_offset((vcpu)->arch.sve_max_vl))
|
||||
|
||||
#define vcpu_sve_max_vq(vcpu) sve_vq_from_vl((vcpu)->arch.sve_max_vl)
|
||||
|
||||
#define vcpu_sve_zcr_elx(vcpu) \
|
||||
(unlikely(is_hyp_ctxt(vcpu)) ? ZCR_EL2 : ZCR_EL1)
|
||||
|
||||
#define vcpu_sve_state_size(vcpu) ({ \
|
||||
#define sve_state_size(sve_max_vl) ({ \
|
||||
size_t __size_ret; \
|
||||
unsigned int __vcpu_vq; \
|
||||
unsigned int __vq; \
|
||||
\
|
||||
if (WARN_ON(!sve_vl_valid((vcpu)->arch.sve_max_vl))) { \
|
||||
if (WARN_ON(!sve_vl_valid(sve_max_vl))) { \
|
||||
__size_ret = 0; \
|
||||
} else { \
|
||||
__vcpu_vq = vcpu_sve_max_vq(vcpu); \
|
||||
__size_ret = SVE_SIG_REGS_SIZE(__vcpu_vq); \
|
||||
__vq = sve_vq_from_vl(sve_max_vl); \
|
||||
__size_ret = SVE_SIG_REGS_SIZE(__vq); \
|
||||
} \
|
||||
\
|
||||
__size_ret; \
|
||||
})
|
||||
|
||||
#define vcpu_sve_max_vq(vcpu) sve_vq_from_vl((vcpu)->arch.sve_max_vl)
|
||||
|
||||
#define vcpu_sve_state_size(vcpu) sve_state_size((vcpu)->arch.sve_max_vl)
|
||||
|
||||
#define KVM_GUESTDBG_VALID_MASK (KVM_GUESTDBG_ENABLE | \
|
||||
KVM_GUESTDBG_USE_SW_BP | \
|
||||
KVM_GUESTDBG_USE_HW | \
|
||||
|
||||
Reference in New Issue
Block a user