|
@@ -206,8 +206,8 @@ void vgic_v2_set_vmcr(struct kvm_vcpu *vcpu, struct vgic_vmcr *vmcrp)
|
|
|
GICH_VMCR_ALIAS_BINPOINT_MASK;
|
|
|
vmcr |= (vmcrp->bpr << GICH_VMCR_BINPOINT_SHIFT) &
|
|
|
GICH_VMCR_BINPOINT_MASK;
|
|
|
- vmcr |= (vmcrp->pmr << GICH_VMCR_PRIMASK_SHIFT) &
|
|
|
- GICH_VMCR_PRIMASK_MASK;
|
|
|
+ vmcr |= ((vmcrp->pmr >> GICV_PMR_PRIORITY_SHIFT) <<
|
|
|
+ GICH_VMCR_PRIMASK_SHIFT) & GICH_VMCR_PRIMASK_MASK;
|
|
|
|
|
|
vcpu->arch.vgic_cpu.vgic_v2.vgic_vmcr = vmcr;
|
|
|
}
|
|
@@ -222,8 +222,8 @@ void vgic_v2_get_vmcr(struct kvm_vcpu *vcpu, struct vgic_vmcr *vmcrp)
|
|
|
GICH_VMCR_ALIAS_BINPOINT_SHIFT;
|
|
|
vmcrp->bpr = (vmcr & GICH_VMCR_BINPOINT_MASK) >>
|
|
|
GICH_VMCR_BINPOINT_SHIFT;
|
|
|
- vmcrp->pmr = (vmcr & GICH_VMCR_PRIMASK_MASK) >>
|
|
|
- GICH_VMCR_PRIMASK_SHIFT;
|
|
|
+ vmcrp->pmr = ((vmcr & GICH_VMCR_PRIMASK_MASK) >>
|
|
|
+ GICH_VMCR_PRIMASK_SHIFT) << GICV_PMR_PRIORITY_SHIFT;
|
|
|
}
|
|
|
|
|
|
void vgic_v2_enable(struct kvm_vcpu *vcpu)
|