|
@@ -181,7 +181,7 @@ static unsigned long vgic_mmio_read_v3r_typer(struct kvm_vcpu *vcpu,
|
|
|
int target_vcpu_id = vcpu->vcpu_id;
|
|
|
u64 value;
|
|
|
|
|
|
- value = (mpidr & GENMASK(23, 0)) << 32;
|
|
|
+ value = (u64)(mpidr & GENMASK(23, 0)) << 32;
|
|
|
value |= ((target_vcpu_id & 0xffff) << 8);
|
|
|
if (target_vcpu_id == atomic_read(&vcpu->kvm->online_vcpus) - 1)
|
|
|
value |= GICR_TYPER_LAST;
|
|
@@ -611,7 +611,7 @@ void vgic_v3_dispatch_sgi(struct kvm_vcpu *vcpu, u64 reg)
|
|
|
bool broadcast;
|
|
|
|
|
|
sgi = (reg & ICC_SGI1R_SGI_ID_MASK) >> ICC_SGI1R_SGI_ID_SHIFT;
|
|
|
- broadcast = reg & BIT(ICC_SGI1R_IRQ_ROUTING_MODE_BIT);
|
|
|
+ broadcast = reg & BIT_ULL(ICC_SGI1R_IRQ_ROUTING_MODE_BIT);
|
|
|
target_cpus = (reg & ICC_SGI1R_TARGET_LIST_MASK) >> ICC_SGI1R_TARGET_LIST_SHIFT;
|
|
|
mpidr = SGI_AFFINITY_LEVEL(reg, 3);
|
|
|
mpidr |= SGI_AFFINITY_LEVEL(reg, 2);
|