<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/vfio/vfio.c, branch linux-5.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-02-01T20:20:07Z</updated>
<entry>
<title>vfio: iommu driver notify callback</title>
<updated>2021-02-01T20:20:07Z</updated>
<author>
<name>Steve Sistare</name>
</author>
<published>2021-01-29T16:54:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec5e32940cc9d2a8a321cb7d756fb6ae45702d03'/>
<id>urn:sha1:ec5e32940cc9d2a8a321cb7d756fb6ae45702d03</id>
<content type='text'>
Define a vfio_iommu_driver_ops notify callback, for sending events to
the driver.  Drivers are not required to provide the callback, and
may ignore any events.  The handling of events is driver specific.

Define the CONTAINER_CLOSE event, called when the container's file
descriptor is closed.  This event signifies that no further state changes
will occur via container ioctl's.

Signed-off-by: Steve Sistare &lt;steven.sistare@oracle.com&gt;
Reviewed-by: Cornelia Huck &lt;cohuck@redhat.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>vfio/type1: Add vfio_group_iommu_domain()</title>
<updated>2020-12-10T21:47:56Z</updated>
<author>
<name>Lu Baolu</name>
</author>
<published>2020-12-09T01:44:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bdfae1c9a913930eae5ea506733aa7c285e12a06'/>
<id>urn:sha1:bdfae1c9a913930eae5ea506733aa7c285e12a06</id>
<content type='text'>
Add the API for getting the domain from a vfio group. This could be used
by the physical device drivers which rely on the vfio/mdev framework for
mediated device user level access. The typical use case like below:

	unsigned int pasid;
	struct vfio_group *vfio_group;
	struct iommu_domain *iommu_domain;
	struct device *dev = mdev_dev(mdev);
	struct device *iommu_device = mdev_get_iommu_device(dev);

	if (!iommu_device ||
	    !iommu_dev_feature_enabled(iommu_device, IOMMU_DEV_FEAT_AUX))
		return -EINVAL;

	vfio_group = vfio_group_get_external_user_from_dev(dev);
	if (IS_ERR_OR_NULL(vfio_group))
		return -EFAULT;

	iommu_domain = vfio_group_iommu_domain(vfio_group);
	if (IS_ERR_OR_NULL(iommu_domain)) {
		vfio_group_put_external_user(vfio_group);
		return -EFAULT;
	}

	pasid = iommu_aux_get_pasid(iommu_domain, iommu_device);
	if (pasid &lt; 0) {
		vfio_group_put_external_user(vfio_group);
		return -EFAULT;
	}

	/* Program device context with pasid value. */
	...

Signed-off-by: Lu Baolu &lt;baolu.lu@linux.intel.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>vfio: fix a missed vfio group put in vfio_pin_pages</title>
<updated>2020-09-22T16:56:40Z</updated>
<author>
<name>Yan Zhao</name>
</author>
<published>2020-09-16T02:29:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=28b130244061863cf0437b7af1625fb45ec1a71e'/>
<id>urn:sha1:28b130244061863cf0437b7af1625fb45ec1a71e</id>
<content type='text'>
When error occurs, need to put vfio group after a successful get.

Fixes: 95fc87b44104 ("vfio: Selective dirty page tracking if IOMMU backed device pins pages")
Signed-off-by: Yan Zhao &lt;yan.y.zhao@intel.com&gt;
Reviewed-by: Cornelia Huck &lt;cohuck@redhat.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>vfio: add a singleton check for vfio_group_pin_pages</title>
<updated>2020-09-21T20:50:51Z</updated>
<author>
<name>Yan Zhao</name>
</author>
<published>2020-09-16T02:28:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7ef32e52368f62a4e041a4f0abefb4fb64e7fd4a'/>
<id>urn:sha1:7ef32e52368f62a4e041a4f0abefb4fb64e7fd4a</id>
<content type='text'>
Page pinning is used both to translate and pin device mappings for DMA
purpose, as well as to indicate to the IOMMU backend to limit the dirty
page scope to those pages that have been pinned, in the case of an IOMMU
backed device.
To support this, the vfio_pin_pages() interface limits itself to only
singleton groups such that the IOMMU backend can consider dirty page
scope only at the group level.  Implement the same requirement for the
vfio_group_pin_pages() interface.

Fixes: 95fc87b44104 ("vfio: Selective dirty page tracking if IOMMU backed device pins pages")
Signed-off-by: Yan Zhao &lt;yan.y.zhao@intel.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>vfio: Cleanup allowed driver naming</title>
<updated>2020-07-27T19:43:36Z</updated>
<author>
<name>Alex Williamson</name>
</author>
<published>2020-07-27T19:43:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=26afdd98821bd36e4e1de88dd00a8c70d83accdf'/>
<id>urn:sha1:26afdd98821bd36e4e1de88dd00a8c70d83accdf</id>
<content type='text'>
No functional change, avoid non-inclusive naming schemes.

Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>vfio: Selective dirty page tracking if IOMMU backed device pins pages</title>
<updated>2020-05-28T21:53:29Z</updated>
<author>
<name>Kirti Wankhede</name>
</author>
<published>2020-05-28T20:30:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=95fc87b44104d9a524ff3e975bbfbd7c1f1a2dd5'/>
<id>urn:sha1:95fc87b44104d9a524ff3e975bbfbd7c1f1a2dd5</id>
<content type='text'>
Added a check such that only singleton IOMMU groups can pin pages.
&gt;From the point when vendor driver pins any pages, consider IOMMU group
dirty page scope to be limited to pinned pages.

To optimize to avoid walking list often, added flag
pinned_page_dirty_scope to indicate if all of the vfio_groups for each
vfio_domain in the domain_list dirty page scope is limited to pinned
pages. This flag is updated on first pinned pages request for that IOMMU
group and on attaching/detaching group.

Signed-off-by: Kirti Wankhede &lt;kwankhede@nvidia.com&gt;
Reviewed-by: Neo Jia &lt;cjia@nvidia.com&gt;
Reviewed-by: Yan Zhao &lt;yan.y.zhao@intel.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge branches 'v5.7/vfio/alex-sriov-v3' and 'v5.7/vfio/yan-dma-rw-v4' into v5.7/vfio/next</title>
<updated>2020-03-24T15:32:41Z</updated>
<author>
<name>Alex Williamson</name>
</author>
<published>2020-03-24T15:32:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48219795e7dbd3d4850f5bf47fa3e37c9c2a561b'/>
<id>urn:sha1:48219795e7dbd3d4850f5bf47fa3e37c9c2a561b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vfio: Include optional device match in vfio_device_ops callbacks</title>
<updated>2020-03-24T15:28:25Z</updated>
<author>
<name>Alex Williamson</name>
</author>
<published>2020-03-24T15:28:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5f3874c2a2310d9bd6969ca6764961d27a843b9d'/>
<id>urn:sha1:5f3874c2a2310d9bd6969ca6764961d27a843b9d</id>
<content type='text'>
Allow bus drivers to provide their own callback to match a device to
the user provided string.

Reviewed-by: Cornelia Huck &lt;cohuck@redhat.com&gt;
Reviewed-by: Kevin Tian &lt;kevin.tian@intel.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>vfio: avoid inefficient operations on VFIO group in vfio_pin/unpin_pages</title>
<updated>2020-03-24T15:27:57Z</updated>
<author>
<name>Yan Zhao</name>
</author>
<published>2020-03-24T15:27:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=40280cf7e8ca7d31bb0a9d626f36f458fec32815'/>
<id>urn:sha1:40280cf7e8ca7d31bb0a9d626f36f458fec32815</id>
<content type='text'>
vfio_group_pin_pages() and vfio_group_unpin_pages() are introduced to
avoid inefficient search/check/ref/deref opertions associated with VFIO
group as those in each calling into vfio_pin_pages() and
vfio_unpin_pages().

VFIO group is taken as arg directly. The callers combine
search/check/ref/deref operations associated with VFIO group by calling
vfio_group_get_external_user()/vfio_group_get_external_user_from_dev()
beforehand, and vfio_group_put_external_user() afterwards.

Suggested-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
Signed-off-by: Yan Zhao &lt;yan.y.zhao@intel.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
<entry>
<title>vfio: introduce vfio_dma_rw to read/write a range of IOVAs</title>
<updated>2020-03-24T15:27:57Z</updated>
<author>
<name>Yan Zhao</name>
</author>
<published>2020-03-24T15:27:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8d46c0cca5f4dc0538173d62cd36b1119b5105bc'/>
<id>urn:sha1:8d46c0cca5f4dc0538173d62cd36b1119b5105bc</id>
<content type='text'>
vfio_dma_rw will read/write a range of user space memory pointed to by
IOVA into/from a kernel buffer without enforcing pinning the user space
memory.

TODO: mark the IOVAs to user space memory dirty if they are written in
vfio_dma_rw().

Cc: Kevin Tian &lt;kevin.tian@intel.com&gt;
Signed-off-by: Yan Zhao &lt;yan.y.zhao@intel.com&gt;
Signed-off-by: Alex Williamson &lt;alex.williamson@redhat.com&gt;
</content>
</entry>
</feed>
