vfio/mlx5: fix error code in mlx5vf_precopy_ioctl()
authorDan Carpenter <error27@gmail.com>
Thu, 8 Dec 2022 16:01:26 +0000 (19:01 +0300)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 12 Dec 2022 21:10:12 +0000 (14:10 -0700)
The copy_to_user() function returns the number of bytes remaining to
be copied but we want to return a negative error code here.

Fixes: 0dce165b1adf ("vfio/mlx5: Introduce vfio precopy ioctl implementation")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Reviewed-by: Yishai Hadas <yishaih@nvidia.com>
Link: https://lore.kernel.org/r/Y5IKVknlf5Z5NPtU@kili
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/pci/mlx5/main.c

index cd90eb86128c3b94b7391deae7fad80594e77007..94f7a0fd10e85d5210afae7343bf71f87eb3ec40 100644 (file)
@@ -404,7 +404,10 @@ static long mlx5vf_precopy_ioctl(struct file *filp, unsigned int cmd,
 
 done:
        mlx5vf_state_mutex_unlock(mvdev);
-       return copy_to_user((void __user *)arg, &info, minsz);
+       if (copy_to_user((void __user *)arg, &info, minsz))
+               return -EFAULT;
+       return 0;
+
 err_migf_unlock:
        mutex_unlock(&migf->lock);
 err_state_unlock: