vfio: Set container device mode
authorAlex Williamson <alex.williamson@redhat.com>
Tue, 30 Apr 2013 21:42:28 +0000 (15:42 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Tue, 30 Apr 2013 21:42:28 +0000 (15:42 -0600)
Minor 0 is the VFIO container device (/dev/vfio/vfio).  On it's own
the container does not provide a user with any privileged access.  It
only supports API version check and extension check ioctls.  Only by
attaching a VFIO group to the container does it gain any access.  Set
the mode of the container to allow access.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/vfio.c

index ac7423b..acb7121 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/rwsem.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/stat.h>
 #include <linux/string.h>
 #include <linux/uaccess.h>
 #include <linux/vfio.h>
@@ -1359,6 +1360,9 @@ static const struct file_operations vfio_device_fops = {
  */
 static char *vfio_devnode(struct device *dev, umode_t *mode)
 {
+       if (MINOR(dev->devt) == 0)
+               *mode = S_IRUGO | S_IWUGO;
+
        return kasprintf(GFP_KERNEL, "vfio/%s", dev_name(dev));
 }