Skip to content

Commit

Permalink
KVM: arm64/sve: sys_regs: Demote redundant vcpu_has_sve() checks to W…
Browse files Browse the repository at this point in the history
…ARNs

Because of the logic in kvm_arm_sys_reg_{get,set}_reg() and
sve_id_visibility(), we should never call
{get,set}_id_aa64zfr0_el1() for a vcpu where !vcpu_has_sve(vcpu).

To avoid the code giving the impression that it is valid for these
functions to be called in this situation, and to help the compiler
make the right optimisation decisions, this patch adds WARN_ON()
for these cases.

Given the way the logic is spread out, this seems preferable to
dropping the checks altogether.

Suggested-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
  • Loading branch information
Dave Martin authored and Marc Zyngier committed Apr 18, 2019
1 parent 0323e02 commit 700698a
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions arch/arm64/kvm/sys_regs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1144,7 +1144,7 @@ static int get_id_aa64zfr0_el1(struct kvm_vcpu *vcpu,
{
u64 val;

if (!vcpu_has_sve(vcpu))
if (WARN_ON(!vcpu_has_sve(vcpu)))
return -ENOENT;

val = guest_id_aa64zfr0_el1(vcpu);
Expand All @@ -1159,7 +1159,7 @@ static int set_id_aa64zfr0_el1(struct kvm_vcpu *vcpu,
int err;
u64 val;

if (!vcpu_has_sve(vcpu))
if (WARN_ON(!vcpu_has_sve(vcpu)))
return -ENOENT;

err = reg_from_user(&val, uaddr, id);
Expand Down

0 comments on commit 700698a

Please sign in to comment.