KVM: arm64: vgic: Use {get,put}_user() instead of copy_{from.to}_user
authorMarc Zyngier <maz@kernel.org>
Tue, 5 Jul 2022 10:27:37 +0000 (11:27 +0100)
committerMarc Zyngier <maz@kernel.org>
Sun, 17 Jul 2022 10:55:33 +0000 (11:55 +0100)
Tidy-up vgic_get_common_attr() and vgic_set_common_attr() to use
{get,put}_user() instead of the more complex (and less type-safe)
copy_{from,to}_user().

Reviewed-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/vgic/vgic-kvm-device.c

index 066b95d..c17e550 100644 (file)
@@ -170,7 +170,7 @@ static int vgic_set_common_attr(struct kvm_device *dev,
                u64 addr;
                unsigned long type = (unsigned long)attr->attr;
 
-               if (copy_from_user(&addr, uaddr, sizeof(addr)))
+               if (get_user(addr, uaddr))
                        return -EFAULT;
 
                r = kvm_vgic_addr(dev->kvm, type, &addr, true);
@@ -233,14 +233,14 @@ static int vgic_get_common_attr(struct kvm_device *dev,
                u64 addr;
                unsigned long type = (unsigned long)attr->attr;
 
-               if (copy_from_user(&addr, uaddr, sizeof(addr)))
+               if (get_user(addr, uaddr))
                        return -EFAULT;
 
                r = kvm_vgic_addr(dev->kvm, type, &addr, false);
                if (r)
                        return (r == -ENODEV) ? -ENXIO : r;
 
-               if (copy_to_user(uaddr, &addr, sizeof(addr)))
+               if (put_user(addr, uaddr))
                        return -EFAULT;
                break;
        }