Message ID | 0-v3-5db12d1bf576+c910-vfio_rw_jgg@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] vfio/pci: Make vfio_pci_regops->rw() return ssize_t | expand |
On Wed, Jul 21 2021, Jason Gunthorpe <jgg@nvidia.com> wrote: > From: Yishai Hadas <yishaih@nvidia.com> > > The only implementation of this in IGD returns a -ERRNO which is > implicitly cast through a size_t and then casted again and returned as a > ssize_t in vfio_pci_rw(). > > Fix the vfio_pci_regops->rw() return type to be ssize_t so all is > consistent. > > Fixes: 28541d41c9e0 ("vfio/pci: Add infrastructure for additional device specific regions") > Signed-off-by: Yishai Hadas <yishaih@nvidia.com> > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > --- > drivers/vfio/pci/vfio_pci_igd.c | 10 +++++----- > drivers/vfio/pci/vfio_pci_private.h | 2 +- > 2 files changed, 6 insertions(+), 6 deletions(-) Reviewed-by: Cornelia Huck <cohuck@redhat.com>
On 7/21/2021 4:05 PM, Jason Gunthorpe wrote: > From: Yishai Hadas <yishaih@nvidia.com> > > The only implementation of this in IGD returns a -ERRNO which is > implicitly cast through a size_t and then casted again and returned as a > ssize_t in vfio_pci_rw(). > > Fix the vfio_pci_regops->rw() return type to be ssize_t so all is > consistent. > > Fixes: 28541d41c9e0 ("vfio/pci: Add infrastructure for additional device specific regions") > Signed-off-by: Yishai Hadas <yishaih@nvidia.com> > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > --- > drivers/vfio/pci/vfio_pci_igd.c | 10 +++++----- > drivers/vfio/pci/vfio_pci_private.h | 2 +- > 2 files changed, 6 insertions(+), 6 deletions(-) > > v3: > - Fix commit subject and missing signed-off-by Looks good, Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
On Wed, 21 Jul 2021 10:05:48 -0300 Jason Gunthorpe <jgg@nvidia.com> wrote: > From: Yishai Hadas <yishaih@nvidia.com> > > The only implementation of this in IGD returns a -ERRNO which is > implicitly cast through a size_t and then casted again and returned as a > ssize_t in vfio_pci_rw(). > > Fix the vfio_pci_regops->rw() return type to be ssize_t so all is > consistent. > > Fixes: 28541d41c9e0 ("vfio/pci: Add infrastructure for additional device specific regions") > Signed-off-by: Yishai Hadas <yishaih@nvidia.com> > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > --- > drivers/vfio/pci/vfio_pci_igd.c | 10 +++++----- > drivers/vfio/pci/vfio_pci_private.h | 2 +- > 2 files changed, 6 insertions(+), 6 deletions(-) Applied to vfio next branch for v5.15 with Max and Connie's R-b. Thanks, Alex
diff --git a/drivers/vfio/pci/vfio_pci_igd.c b/drivers/vfio/pci/vfio_pci_igd.c index 228df565e9bc40..aa0a29fd276285 100644 --- a/drivers/vfio/pci/vfio_pci_igd.c +++ b/drivers/vfio/pci/vfio_pci_igd.c @@ -25,8 +25,8 @@ #define OPREGION_RVDS 0x3c2 #define OPREGION_VERSION 0x16 -static size_t vfio_pci_igd_rw(struct vfio_pci_device *vdev, char __user *buf, - size_t count, loff_t *ppos, bool iswrite) +static ssize_t vfio_pci_igd_rw(struct vfio_pci_device *vdev, char __user *buf, + size_t count, loff_t *ppos, bool iswrite) { unsigned int i = VFIO_PCI_OFFSET_TO_INDEX(*ppos) - VFIO_PCI_NUM_REGIONS; void *base = vdev->region[i].data; @@ -160,9 +160,9 @@ static int vfio_pci_igd_opregion_init(struct vfio_pci_device *vdev) return ret; } -static size_t vfio_pci_igd_cfg_rw(struct vfio_pci_device *vdev, - char __user *buf, size_t count, loff_t *ppos, - bool iswrite) +static ssize_t vfio_pci_igd_cfg_rw(struct vfio_pci_device *vdev, + char __user *buf, size_t count, loff_t *ppos, + bool iswrite) { unsigned int i = VFIO_PCI_OFFSET_TO_INDEX(*ppos) - VFIO_PCI_NUM_REGIONS; struct pci_dev *pdev = vdev->region[i].data; diff --git a/drivers/vfio/pci/vfio_pci_private.h b/drivers/vfio/pci/vfio_pci_private.h index 5a36272cecbf94..bbc56c857ef081 100644 --- a/drivers/vfio/pci/vfio_pci_private.h +++ b/drivers/vfio/pci/vfio_pci_private.h @@ -56,7 +56,7 @@ struct vfio_pci_device; struct vfio_pci_region; struct vfio_pci_regops { - size_t (*rw)(struct vfio_pci_device *vdev, char __user *buf, + ssize_t (*rw)(struct vfio_pci_device *vdev, char __user *buf, size_t count, loff_t *ppos, bool iswrite); void (*release)(struct vfio_pci_device *vdev, struct vfio_pci_region *region);