[prev in list] [next in list] [prev in thread] [next in thread]
List: android-virt
Subject: Re: [PATCH 1/3] KVM: arm64: Implement vGICv3 distributor and redistributor access from userspace
From: Christoffer Dall <christoffer.dall () linaro ! org>
Date: 2015-08-31 8:59:15
Message-ID: 20150831085915.GI24113 () cbox
[Download RAW message or body]
On Mon, Aug 31, 2015 at 10:35:05AM +0300, Pavel Fedin wrote:
> Hello!
>
> > > + len = vgic_v3_get_reg_size(attr);
> > > + if (len < 0)
> > > + return len;
> > >
> > > - return -ENXIO;
> > > + ret = vgic_v3_attr_regs_access(dev, attr, (len == 8) ? (void *)®64 :
> > > + (void *)®, len, false);
> >
> > this use of the ternary operator is terrible, but it should be solved if
> > you always use a u64 for the reg parameter.
>
> I also dislike this, but this is the best thing i could invent. This is dictated by put_user() and
> get_user(), which rely on typeof() of their arguments. Well, i could do some castings, but they are
> no less ugly, and would give more headache to bigendian systems.
> However, what about doing the same thing as GET/SET_ONE_REG does by just assuming that everything is
> 64-bit wide? This would automatically resolve two other issues you have commented on. By the way,
> handling it in userspace would also be simpler.
>
Sounds fine to me, definitely if you must do a cast doing it in a
function between typed variables is strictly preferred to passing void *
values between functions.
-Christoffer
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic