@@ -473,18 +473,18 @@ struct kvm_device_ops kvm_arm_vgic_v2_ops = {
int vgic_v3_parse_attr(struct kvm_device *dev, struct kvm_device_attr *attr,
struct vgic_reg_attr *reg_attr)
{
- unsigned long vgic_mpidr, mpidr_reg;
+ unsigned long vgic_aff, mpidr_aff;
/*
* For KVM_DEV_ARM_VGIC_GRP_DIST_REGS group,
- * attr might not hold MPIDR. Hence assume vcpu0.
+ * attr might not hold MPIDR affinity. Hence assume vcpu0.
*/
if (attr->group != KVM_DEV_ARM_VGIC_GRP_DIST_REGS) {
- vgic_mpidr = (attr->attr & KVM_DEV_ARM_VGIC_V3_MPIDR_MASK) >>
- KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT;
+ vgic_aff = (attr->attr & KVM_DEV_ARM_VGIC_V3_MPIDR_MASK) >>
+ KVM_DEV_ARM_VGIC_V3_MPIDR_SHIFT;
- mpidr_reg = VGIC_TO_MPIDR(vgic_mpidr);
- reg_attr->vcpu = kvm_mpidr_to_vcpu(dev->kvm, mpidr_reg);
+ mpidr_aff = VGIC_TO_MPIDR_AFF(vgic_aff);
+ reg_attr->vcpu = kvm_mpidr_to_vcpu(dev->kvm, mpidr_aff);
} else {
reg_attr->vcpu = kvm_get_vcpu(dev->kvm, 0);
}
@@ -34,12 +34,12 @@
/*
* The Userspace encodes the affinity differently from the MPIDR,
- * Below macro converts vgic userspace format to MPIDR reg format.
+ * Below macro converts vgic userspace format to MPIDR reg affinity format.
*/
-#define VGIC_TO_MPIDR(val) (VGIC_AFFINITY_LEVEL(val, 0) | \
- VGIC_AFFINITY_LEVEL(val, 1) | \
- VGIC_AFFINITY_LEVEL(val, 2) | \
- VGIC_AFFINITY_LEVEL(val, 3))
+#define VGIC_TO_MPIDR_AFF(val) (VGIC_AFFINITY_LEVEL(val, 0) | \
+ VGIC_AFFINITY_LEVEL(val, 1) | \
+ VGIC_AFFINITY_LEVEL(val, 2) | \
+ VGIC_AFFINITY_LEVEL(val, 3))
/*
* As per Documentation/virt/kvm/devices/arm-vgic-v3.rst,
GICv3 doesn't have an MPIDR register, but it uses the affinity fields from GICR_TYPER, which are also present in the MPIDR_EL1 register, to identify the Redistributor associated with a PE. The macro VGIC_TO_MPIDR() doesn't convert the affinity fields originating from an userspace ioctl into a valid MPIDR_EL1 value like its name would suggest (notably, the RES1 bit is missing); what it does is to shift the affinity fields to the same positions as the fields from the MPIDR_EL1 register. This value is then compared to the result of kvm_vcpu_get_mpidr_aff() to find the corresponding VCPU. Let's rename VGIC_TO_MPIDR() to VGIC_TO_MPIDR_AFF() to avoid any confusion about what the macro does. Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com> --- arch/arm64/kvm/vgic/vgic-kvm-device.c | 12 ++++++------ arch/arm64/kvm/vgic/vgic.h | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-)