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 <[email protected]>

Reviewed-by: Andre Przywara <[email protected]>

> ---
>  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, &reg, 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.
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to