mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 14:04:54 +02:00
KVM: arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION read
commit53b16dd6baupstream. The doc says: "The characteristics of a specific redistributor region can be read by presetting the index field in the attr data. Only valid for KVM_DEV_TYPE_ARM_VGIC_V3" Unfortunately the existing code fails to read the input attr data. Fixes:04c1109322("KVM: arm/arm64: Implement KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION") Cc: stable@vger.kernel.org#v4.17+ Signed-off-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20210405163941.510258-3-eric.auger@redhat.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
00824c3023
commit
96e308a36e
|
|
@ -226,6 +226,9 @@ static int vgic_get_common_attr(struct kvm_device *dev,
|
||||||
u64 addr;
|
u64 addr;
|
||||||
unsigned long type = (unsigned long)attr->attr;
|
unsigned long type = (unsigned long)attr->attr;
|
||||||
|
|
||||||
|
if (copy_from_user(&addr, uaddr, sizeof(addr)))
|
||||||
|
return -EFAULT;
|
||||||
|
|
||||||
r = kvm_vgic_addr(dev->kvm, type, &addr, false);
|
r = kvm_vgic_addr(dev->kvm, type, &addr, false);
|
||||||
if (r)
|
if (r)
|
||||||
return (r == -ENODEV) ? -ENXIO : r;
|
return (r == -ENODEV) ? -ENXIO : r;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user