Subject: [PATCH v6 1/7] arm/arm64: vgic-new: Implement support for userspace access

From: [email-masked] (Christoffer Dall)
Date: Fri, 23 Sep 2016 13:16:11 +0200

On Fri, Sep 23, 2016 at 10:50:38AM +0100, Marc Zyngier wrote:
> On 22/09/16 15:01, Vijay Kilari wrote:
> > On Thu, Sep 22, 2016 at 5:38 PM, Marc Zyngier <[email-masked]> wrote:
> >> On 20/09/16 07:12, vijay.kilari at gmail.com wrote:
> >>> From: Vijaya Kumar K <[email-masked]>
> >>> +static int vgic_uaccess_read(struct kvm_vcpu *vcpu, struct kvm_io_device *dev,
> >>> +                          gpa_t addr, u32 *val)
> >>> +{
> >>> +     struct vgic_io_device *iodev = kvm_to_vgic_iodev(dev);
> >>> +     const struct vgic_register_region *region;
> >>> +     struct kvm_vcpu *r_vcpu;
> >>> +
> >>> +     region = vgic_get_mmio_region(iodev, addr, sizeof(u32));
> >>> +     if (!region) {
> >>> +             *val = 0;
> >>> +             return 0;
> >>
> >> This is not the previous semantic of vgic_uaccess, and I cannot see why
> >> blindly ignoring an access to an undefined region would be acceptable.
> >> What am I missing?
> > 
> > AFAIK, the vgic_uaccess is not making any check on undefined region/register.
> > However, dispatch_mmio_read/write are returning 0 if check of region is failed
> 
> Hmmm. Fair enough. I don't really like it, but that's something for
> another day.
> 
Agreed, we should raise an error in that case, but it's independent of
this series.

-Christoffer