diff mbox series

[v2] Improve docs for IOCTL_GNTDEV_MAP_GRANT_REF

Message ID f66c5a4e-2034-00b5-a635-6983bd999c07@gmail.com (mailing list archive)
State Accepted
Commit 164666fa66669d437bdcc8d5f1744a2aee73be41
Headers show
Series [v2] Improve docs for IOCTL_GNTDEV_MAP_GRANT_REF | expand

Commit Message

Demi Marie Obenour Jan. 31, 2022, 5:23 p.m. UTC
The current implementation of gntdev guarantees that the first call to
IOCTL_GNTDEV_MAP_GRANT_REF will set @index to 0.  This is required to
use gntdev for Wayland, which is a future desire of Qubes OS.
Additionally, requesting zero grants results in an error, but this was
not documented either.  Document both of these.

Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
---
 include/uapi/xen/gntdev.h | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Jürgen Groß Feb. 1, 2022, 6:07 a.m. UTC | #1
On 31.01.22 18:23, Demi Marie Obenour wrote:
> The current implementation of gntdev guarantees that the first call to
> IOCTL_GNTDEV_MAP_GRANT_REF will set @index to 0.  This is required to
> use gntdev for Wayland, which is a future desire of Qubes OS.
> Additionally, requesting zero grants results in an error, but this was
> not documented either.  Document both of these.
> 
> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen
Jürgen Groß Feb. 4, 2022, 9:24 a.m. UTC | #2
On 31.01.22 18:23, Demi Marie Obenour wrote:
> The current implementation of gntdev guarantees that the first call to
> IOCTL_GNTDEV_MAP_GRANT_REF will set @index to 0.  This is required to
> use gntdev for Wayland, which is a future desire of Qubes OS.
> Additionally, requesting zero grants results in an error, but this was
> not documented either.  Document both of these.
> 
> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>

Pushed to xen/tip.git for-linus-5.17a


Juergen
diff mbox series

Patch

diff --git a/include/uapi/xen/gntdev.h b/include/uapi/xen/gntdev.h
index 9ac5515b9bc2..7a7145395c09 100644
--- a/include/uapi/xen/gntdev.h
+++ b/include/uapi/xen/gntdev.h
@@ -47,7 +47,13 @@  struct ioctl_gntdev_grant_ref {
 /*
  * Inserts the grant references into the mapping table of an instance
  * of gntdev. N.B. This does not perform the mapping, which is deferred
- * until mmap() is called with @index as the offset.
+ * until mmap() is called with @index as the offset. @index should be
+ * considered opaque to userspace, with one exception: if no grant
+ * references have ever been inserted into the mapping table of this
+ * instance, @index will be set to 0. This is necessary to use gntdev
+ * with userspace APIs that expect a file descriptor that can be
+ * mmap()'d at offset 0, such as Wayland. If @count is set to 0, this
+ * ioctl will fail.
  */
 #define IOCTL_GNTDEV_MAP_GRANT_REF \
 _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))