Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d7ffde35 authored by Jens Freimann's avatar Jens Freimann Committed by David S. Miller
Browse files

vhost: use USER_DS in vhost_worker thread



On some architectures address spaces are set up in a way that this is
not necessary to work properly but on some others (like s390) it is.
Make sure we operate on the user address space to allow copy_xxx_user()
from the vhost_worker() thread by setting it explicitly before calling
use_mm() and revert it after unuse_mm().

Signed-off-by: default avatarJens Freimann <jfrei@linux.vnet.ibm.com>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Acked-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 57efd44c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -191,7 +191,9 @@ static int vhost_worker(void *data)
	struct vhost_dev *dev = data;
	struct vhost_work *work = NULL;
	unsigned uninitialized_var(seq);
	mm_segment_t oldfs = get_fs();

	set_fs(USER_DS);
	use_mm(dev->mm);

	for (;;) {
@@ -229,6 +231,7 @@ static int vhost_worker(void *data)

	}
	unuse_mm(dev->mm);
	set_fs(oldfs);
	return 0;
}