diff options
-rw-r--r-- | virt/kvm/arm/vgic/vgic-mmio-v3.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/virt/kvm/arm/vgic/vgic-mmio-v3.c b/virt/kvm/arm/vgic/vgic-mmio-v3.c index acbe6915d657..6385ed5814b4 100644 --- a/virt/kvm/arm/vgic/vgic-mmio-v3.c +++ b/virt/kvm/arm/vgic/vgic-mmio-v3.c | |||
@@ -181,7 +181,7 @@ static unsigned long vgic_mmio_read_v3r_typer(struct kvm_vcpu *vcpu, | |||
181 | int target_vcpu_id = vcpu->vcpu_id; | 181 | int target_vcpu_id = vcpu->vcpu_id; |
182 | u64 value; | 182 | u64 value; |
183 | 183 | ||
184 | value = (mpidr & GENMASK(23, 0)) << 32; | 184 | value = (u64)(mpidr & GENMASK(23, 0)) << 32; |
185 | value |= ((target_vcpu_id & 0xffff) << 8); | 185 | value |= ((target_vcpu_id & 0xffff) << 8); |
186 | if (target_vcpu_id == atomic_read(&vcpu->kvm->online_vcpus) - 1) | 186 | if (target_vcpu_id == atomic_read(&vcpu->kvm->online_vcpus) - 1) |
187 | value |= GICR_TYPER_LAST; | 187 | value |= GICR_TYPER_LAST; |
@@ -611,7 +611,7 @@ void vgic_v3_dispatch_sgi(struct kvm_vcpu *vcpu, u64 reg) | |||
611 | bool broadcast; | 611 | bool broadcast; |
612 | 612 | ||
613 | sgi = (reg & ICC_SGI1R_SGI_ID_MASK) >> ICC_SGI1R_SGI_ID_SHIFT; | 613 | sgi = (reg & ICC_SGI1R_SGI_ID_MASK) >> ICC_SGI1R_SGI_ID_SHIFT; |
614 | broadcast = reg & BIT(ICC_SGI1R_IRQ_ROUTING_MODE_BIT); | 614 | broadcast = reg & BIT_ULL(ICC_SGI1R_IRQ_ROUTING_MODE_BIT); |
615 | target_cpus = (reg & ICC_SGI1R_TARGET_LIST_MASK) >> ICC_SGI1R_TARGET_LIST_SHIFT; | 615 | target_cpus = (reg & ICC_SGI1R_TARGET_LIST_MASK) >> ICC_SGI1R_TARGET_LIST_SHIFT; |
616 | mpidr = SGI_AFFINITY_LEVEL(reg, 3); | 616 | mpidr = SGI_AFFINITY_LEVEL(reg, 3); |
617 | mpidr |= SGI_AFFINITY_LEVEL(reg, 2); | 617 | mpidr |= SGI_AFFINITY_LEVEL(reg, 2); |