[PATCH v3 04/19] KVM: arm64: ITS: KVM_DEV_ARM_VGIC_GRP_ITS_REGS group
Andre Przywara
andre.przywara at arm.com
Mon Mar 20 11:12:52 PDT 2017
Hi Eric,
On 06/03/17 11:34, Eric Auger wrote:
> The ITS KVM device exposes a new KVM_DEV_ARM_VGIC_GRP_ITS_REGS
> group which allows the userspace to save/restore ITS registers.
>
> At this stage the get/set/has operations are not yet implemented.
>
> Signed-off-by: Eric Auger <eric.auger at redhat.com>
Reviewed-by: Andre Przywara <andre.przywara at arm.com>
> ---
> arch/arm/include/uapi/asm/kvm.h | 1 +
> arch/arm64/include/uapi/asm/kvm.h | 1 +
> virt/kvm/arm/vgic/vgic-its.c | 36 +++++++++++++++++++++++++++++++++++-
> 3 files changed, 37 insertions(+), 1 deletion(-)
....
> @@ -1520,10 +1544,20 @@ static int vgic_its_get_attr(struct kvm_device *dev,
> if (copy_to_user(uaddr, &addr, sizeof(addr)))
> return -EFAULT;
> break;
> + }
> + case KVM_DEV_ARM_VGIC_GRP_ITS_REGS: {
> + u64 __user *uaddr = (u64 __user *)(long)attr->addr;
> + u64 reg;
> + int ret;
> +
> + ret = vgic_its_attr_regs_access(dev, attr, ®, false);
> + if (ret)
> + return ret;
> + return put_user(reg, uaddr);
> + }
> default:
> return -ENXIO;
> }
> - }
And thanks for finding and fixing this nasty mishap. Fortunately C
doesn't care about blocks in switch statements too much, so I think this
works as intended (so it's not a "real" bug).
Cheers,
Andre.
More information about the linux-arm-kernel
mailing list