aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/vfio/vfio.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-08-17 21:32:56 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-08-22 10:26:42 -0400
commit31605debdf5459cc8aacabf192a911a803a81c26 (patch)
tree4f7921f9bc1976336afbbbf431450d1d247a6161 /drivers/vfio/vfio.c
parent90b1253e4139776e8257914ae9e2292d0de2fecc (diff)
vfio: grab vfio_device reference *before* exposing the sucker via fd_install()
It's not critical (anymore) since another thread closing the file will block on ->device_lock before it gets to dropping the final reference, but it's definitely cleaner that way... Acked-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/vfio/vfio.c')
-rw-r--r--drivers/vfio/vfio.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
index 887ae43276bb..17830c9c7cc6 100644
--- a/drivers/vfio/vfio.c
+++ b/drivers/vfio/vfio.c
@@ -1111,10 +1111,10 @@ static int vfio_group_get_device_fd(struct vfio_group *group, char *buf)
1111 */ 1111 */
1112 filep->f_mode |= (FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE); 1112 filep->f_mode |= (FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE);
1113 1113
1114 fd_install(ret, filep);
1115
1116 vfio_device_get(device); 1114 vfio_device_get(device);
1117 atomic_inc(&group->container_users); 1115 atomic_inc(&group->container_users);
1116
1117 fd_install(ret, filep);
1118 break; 1118 break;
1119 } 1119 }
1120 mutex_unlock(&group->device_lock); 1120 mutex_unlock(&group->device_lock);