On Wed, Apr 20, 2022 at 04:23:10PM -0300, Jason Gunthorpe wrote: > To make it easier to read and change in following patches. > > Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > virt/kvm/vfio.c | 271 ++++++++++++++++++++++++++---------------------- > 1 file changed, 146 insertions(+), 125 deletions(-) > > This is best viewed with 'git show -b' Zero day hit a warning on 32bit, I'll fold this into v3: --- a/virt/kvm/vfio.c +++ b/virt/kvm/vfio.c @@ -259,9 +259,10 @@ static int kvm_vfio_group_set_spapr_tce(struct kvm_device *dev, } #endif -static int kvm_vfio_set_group(struct kvm_device *dev, long attr, u64 arg) +static int kvm_vfio_set_group(struct kvm_device *dev, long attr, + void __user *arg) { - int32_t __user *argp = (int32_t __user *)(unsigned long)arg; + int32_t __user *argp = arg; int32_t fd; switch (attr) { @@ -277,7 +278,7 @@ static int kvm_vfio_set_group(struct kvm_device *dev, long attr, u64 arg) #ifdef CONFIG_SPAPR_TCE_IOMMU case KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE: - return kvm_vfio_group_set_spapr_tce(dev, (void __user *)arg); + return kvm_vfio_group_set_spapr_tce(dev, arg); #endif } @@ -289,7 +290,8 @@ static int kvm_vfio_set_attr(struct kvm_device *dev, { switch (attr->group) { case KVM_DEV_VFIO_GROUP: - return kvm_vfio_set_group(dev, attr->attr, attr->addr); + return kvm_vfio_set_group(dev, attr->attr, + u64_to_user_ptr(attr->addr)); } return -ENXIO;