Re: [RFT][PATCH v2 1/9] vfio: Make vfio_unpin_pages() return void

From: Christoph Hellwig
Date: Wed Jul 06 2022 - 02:55:15 EST


> +void vfio_unpin_pages(struct vfio_device *device, unsigned long *user_pfn,
> + int npage)
> {
> struct vfio_container *container;
> struct vfio_iommu_driver *driver;
> - int ret;
>
> - if (!user_pfn || !npage || !vfio_assert_device_open(device))
> - return -EINVAL;
> + if (WARN_ON_ONCE(!user_pfn || !npage || !vfio_assert_device_open(device)))

This adds an overly long line. Note that I think in general it is
better to have an individual WARN_ON per condition anyway, as that
allows to directly pinpoint what went wrong when it triggers.

> + if (WARN_ON_ONCE(unlikely(!driver || !driver->ops->unpin_pages)))
> + return;

I'd just skip this check an let it crash. If someone calls unpin
on something totally random that wasn't even pinned we don't need to
handle that gracefully.

Otherwise looks good:

Reviewed-by: Christoph Hellwig <hch@xxxxxx>