diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
index 9591e2b509d794e93e596fe8f2c1da8c11691205..0b025d58de813ebe94c74a6518b66f045fb415e8 100644
--- a/drivers/vfio/vfio.c
+++ b/drivers/vfio/vfio.c
@@ -416,8 +416,9 @@ static void vfio_device_release(struct kref *kref)
 /* Device reference always implies a group reference */
 static void vfio_device_put(struct vfio_device *device)
 {
+	struct vfio_group *group = device->group;
 	kref_put(&device->kref, vfio_device_release);
-	vfio_group_put(device->group);
+	vfio_group_put(group);
 }
 
 static void vfio_device_get(struct vfio_device *device)