summaryrefslogtreecommitdiffstats
path: root/drivers/vfio/vfio.c
diff options
context:
space:
mode:
authorAlex Williamson <alex.williamson@redhat.com>2013-04-30 23:42:28 +0200
committerAlex Williamson <alex.williamson@redhat.com>2013-04-30 23:42:28 +0200
commit664e9386bd05dbdfecfb28d6cf2fde983aabc65c (patch)
tree3981446d435ccf0c74f59520c1024ea51b41fcfe /drivers/vfio/vfio.c
parentvfio: Use down_reads to protect iommu disconnects (diff)
downloadlinux-664e9386bd05dbdfecfb28d6cf2fde983aabc65c.tar.xz
linux-664e9386bd05dbdfecfb28d6cf2fde983aabc65c.zip
vfio: Set container device mode
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>
Diffstat (limited to 'drivers/vfio/vfio.c')
-rw-r--r--drivers/vfio/vfio.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
index ac7423bfaa7d..acb7121a9316 100644
--- a/drivers/vfio/vfio.c
+++ b/drivers/vfio/vfio.c
@@ -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));
}