[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e7af1e23-7b08-99d6-d78c-812d442b32ce@arm.com>
Date: Tue, 12 Jan 2021 16:16:40 +0000
From: Alexandru Elisei <alexandru.elisei@....com>
To: Eric Auger <eric.auger@...hat.com>, eric.auger.pro@...il.com,
linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
kvmarm@...ts.cs.columbia.edu, maz@...nel.org, drjones@...hat.com
Cc: shuah@...nel.org, pbonzini@...hat.com
Subject: Re: [PATCH 7/9] KVM: arm64: Simplify argument passing to
vgic_uaccess_[read|write]
Hi Eric,
On 1/12/21 4:04 PM, Alexandru Elisei wrote:
> Hi Eric,
>
> On 12/12/20 6:50 PM, Eric Auger wrote:
>> Instead of converting the vgic_io_device handle to a kvm_io_device
>> handled and then do the oppositive, pass a vgic_io_device pointer all
>> along the call chain.
> To me, it looks like the commit message describes what the patch does instead of
> why it does it.
>
> What are "vgic_io_device handle" and "kvm_io_device handled"?
Sorry, I think I got it now. You were referring to the argument types struct
vgic_io_device and struct kvm_io_device. The patch looks like a very good cleanup.
How changing to commit message to sound something like this (feel free to
ignore/change it if you think of something else):
vgic_uaccess() takes a struct vgic_io_device argument, converts it to a struct
kvm_io_device and passes it to the read/write accessor functions, which convert it
back to a struct vgic_io_device. Avoid the indirection by passing the struct
vgic_io_device argument directly to vgic_uaccess_{read,write).
Thanks,
Alex
>
> Thanks,
> Alex
>> Signed-off-by: Eric Auger <eric.auger@...hat.com>
>> ---
>> arch/arm64/kvm/vgic/vgic-mmio.c | 10 ++++------
>> 1 file changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/arch/arm64/kvm/vgic/vgic-mmio.c b/arch/arm64/kvm/vgic/vgic-mmio.c
>> index b2d73fc0d1ef..48c6067fc5ec 100644
>> --- a/arch/arm64/kvm/vgic/vgic-mmio.c
>> +++ b/arch/arm64/kvm/vgic/vgic-mmio.c
>> @@ -938,10 +938,9 @@ vgic_get_mmio_region(struct kvm_vcpu *vcpu, struct vgic_io_device *iodev,
>> return region;
>> }
>>
>> -static int vgic_uaccess_read(struct kvm_vcpu *vcpu, struct kvm_io_device *dev,
>> +static int vgic_uaccess_read(struct kvm_vcpu *vcpu, struct vgic_io_device *iodev,
>> 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;
>>
>> @@ -960,10 +959,9 @@ static int vgic_uaccess_read(struct kvm_vcpu *vcpu, struct kvm_io_device *dev,
>> return 0;
>> }
>>
>> -static int vgic_uaccess_write(struct kvm_vcpu *vcpu, struct kvm_io_device *dev,
>> +static int vgic_uaccess_write(struct kvm_vcpu *vcpu, struct vgic_io_device *iodev,
>> gpa_t addr, const u32 *val)
>> {
>> - struct vgic_io_device *iodev = kvm_to_vgic_iodev(dev);
>> const struct vgic_register_region *region;
>> struct kvm_vcpu *r_vcpu;
>>
>> @@ -986,9 +984,9 @@ int vgic_uaccess(struct kvm_vcpu *vcpu, struct vgic_io_device *dev,
>> bool is_write, int offset, u32 *val)
>> {
>> if (is_write)
>> - return vgic_uaccess_write(vcpu, &dev->dev, offset, val);
>> + return vgic_uaccess_write(vcpu, dev, offset, val);
>> else
>> - return vgic_uaccess_read(vcpu, &dev->dev, offset, val);
>> + return vgic_uaccess_read(vcpu, dev, offset, val);
>> }
>>
>> static int dispatch_mmio_read(struct kvm_vcpu *vcpu, struct kvm_io_device *dev,
> _______________________________________________
> kvmarm mailing list
> kvmarm@...ts.cs.columbia.edu
> https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Powered by blists - more mailing lists