<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/vhost, branch v3.10.30</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.10.30</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.10.30'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2013-11-13T03:05:32Z</updated>
<entry>
<title>vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter</title>
<updated>2013-11-13T03:05:32Z</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-10-25T17:44:15Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=722b78bc8a42b6910c291266e87abe2e63dc750f'/>
<id>urn:sha1:722b78bc8a42b6910c291266e87abe2e63dc750f</id>
<content type='text'>
commit 60a01f558af9c48b0bb31f303c479e32721add3f upstream.

This patch addresses a long-standing bug where the get_user_pages_fast()
write parameter used for setting the underlying page table entry permission
bits was incorrectly set to write=1 for data_direction=DMA_TO_DEVICE, and
passed into get_user_pages_fast() via vhost_scsi_map_iov_to_sgl().

However, this parameter is intended to signal WRITEs to pinned userspace
PTEs for the virtio-scsi DMA_FROM_DEVICE -&gt; READ payload case, and *not*
for the virtio-scsi DMA_TO_DEVICE -&gt; WRITE payload case.

This bug would manifest itself as random process segmentation faults on
KVM host after repeated vhost starts + stops and/or with lots of vhost
endpoints + LUNs.

Cc: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
Cc: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Cc: Asias He &lt;asias@redhat.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>vhost_net: poll vhost queue after marking DMA is done</title>
<updated>2013-09-14T13:54:56Z</updated>
<author>
<name>Jason Wang</name>
<email>jasowang@redhat.com</email>
</author>
<published>2013-09-02T08:41:00Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=bd35c1a7f659dfa01179e456881285a9f057d30c'/>
<id>urn:sha1:bd35c1a7f659dfa01179e456881285a9f057d30c</id>
<content type='text'>
[ Upstream commit 19c73b3e08d16ee923f3962df4abf6205127896a ]

We used to poll vhost queue before making DMA is done, this is racy if vhost
thread were waked up before marking DMA is done which can result the signal to
be missed. Fix this by always polling the vhost thread before DMA is done.

Signed-off-by: Jason Wang &lt;jasowang@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>vhost-net: fix use-after-free in vhost_net_flush</title>
<updated>2013-07-28T23:29:57Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2013-06-25T14:29:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f5ce1d2513b74d4603769ed99636dc52144f02c4'/>
<id>urn:sha1:f5ce1d2513b74d4603769ed99636dc52144f02c4</id>
<content type='text'>
[ Upstream commit c38e39c378f46f00ce922dd40a91043a9925c28d ]

vhost_net_ubuf_put_and_wait has a confusing name:
it will actually also free it's argument.
Thus since commit 1280c27f8e29acf4af2da914e80ec27c3dbd5c01
    "vhost-net: flush outstanding DMAs on memory change"
vhost_net_flush tries to use the argument after passing it
to vhost_net_ubuf_put_and_wait, this results
in use after free.
To fix, don't free the argument in vhost_net_ubuf_put_and_wait,
add an new API for callers that want to free ubufs.

Acked-by: Asias He &lt;asias@redhat.com&gt;
Acked-by: Jason Wang &lt;jasowang@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>vhost: fix ubuf_info cleanup</title>
<updated>2013-06-11T09:46:21Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2013-06-06T12:20:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=288cfe78c8173f35c7a94f06859f60b3693d828a'/>
<id>urn:sha1:288cfe78c8173f35c7a94f06859f60b3693d828a</id>
<content type='text'>
vhost_net_clear_ubuf_info didn't clear ubuf_info
after kfree, this could trigger double free.
Fix this and simplify this code to make it more robust: make sure
ubuf info is always freed through vhost_net_clear_ubuf_info.

Reported-by: Tommi Rantala &lt;tt.rantala@gmail.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>vhost: check owner before we overwrite ubuf_info</title>
<updated>2013-06-11T09:46:21Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2013-06-06T12:20:39Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=05c05351943cc03bf5c77e86953b24ae6fb21368'/>
<id>urn:sha1:05c05351943cc03bf5c77e86953b24ae6fb21368</id>
<content type='text'>
If device has an owner, we shouldn't touch ubuf_info
since it might be in use.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>vhost_net: clear msg.control for non-zerocopy case during tx</title>
<updated>2013-06-10T21:31:45Z</updated>
<author>
<name>Jason Wang</name>
<email>jasowang@redhat.com</email>
</author>
<published>2013-06-05T07:40:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4364d5f96eed7994a2c625bd9216656e55fba0cb'/>
<id>urn:sha1:4364d5f96eed7994a2c625bd9216656e55fba0cb</id>
<content type='text'>
When we decide not use zero-copy, msg.control should be set to NULL otherwise
macvtap/tap may set zerocopy callbacks which may decrease the kref of ubufs
wrongly.

Bug were introduced by commit cedb9bdce099206290a2bdd02ce47a7b253b6a84
(vhost-net: skip head management if no outstanding).

This solves the following warnings:

WARNING: at include/linux/kref.h:47 handle_tx+0x477/0x4b0 [vhost_net]()
Modules linked in: vhost_net macvtap macvlan tun nfsd exportfs bridge stp llc openvswitch kvm_amd kvm bnx2 megaraid_sas [last unloaded: tun]
CPU: 5 PID: 8670 Comm: vhost-8668 Not tainted 3.10.0-rc2+ #1566
Hardware name: Dell Inc. PowerEdge R715/00XHKG, BIOS 1.5.2 04/19/2011
ffffffffa0198323 ffff88007c9ebd08 ffffffff81796b73 ffff88007c9ebd48
ffffffff8103d66b 000000007b773e20 ffff8800779f0000 ffff8800779f43f0
ffff8800779f8418 000000000000015c 0000000000000062 ffff88007c9ebd58
Call Trace:
[&lt;ffffffff81796b73&gt;] dump_stack+0x19/0x1e
[&lt;ffffffff8103d66b&gt;] warn_slowpath_common+0x6b/0xa0
[&lt;ffffffff8103d6b5&gt;] warn_slowpath_null+0x15/0x20
[&lt;ffffffffa0197627&gt;] handle_tx+0x477/0x4b0 [vhost_net]
[&lt;ffffffffa0197690&gt;] handle_tx_kick+0x10/0x20 [vhost_net]
[&lt;ffffffffa019541e&gt;] vhost_worker+0xfe/0x1a0 [vhost_net]
[&lt;ffffffffa0195320&gt;] ? vhost_attach_cgroups_work+0x30/0x30 [vhost_net]
[&lt;ffffffffa0195320&gt;] ? vhost_attach_cgroups_work+0x30/0x30 [vhost_net]
[&lt;ffffffff81061f46&gt;] kthread+0xc6/0xd0
[&lt;ffffffff81061e80&gt;] ? kthread_freezable_should_stop+0x70/0x70
[&lt;ffffffff817a1aec&gt;] ret_from_fork+0x7c/0xb0
[&lt;ffffffff81061e80&gt;] ? kthread_freezable_should_stop+0x70/0x70

Signed-off-by: Jason Wang &lt;jasowang@redhat.com&gt;
Acked-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Add missing module license tag to vring helpers.</title>
<updated>2013-05-08T01:19:03Z</updated>
<author>
<name>Dave Jones</name>
<email>davej@redhat.com</email>
</author>
<published>2013-05-03T20:40:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f558a845c3a043d032bb247cdbe50db9202476a1'/>
<id>urn:sha1:f558a845c3a043d032bb247cdbe50db9202476a1</id>
<content type='text'>
[  624.286653] vringh: module license 'unspecified' taints kernel.

Signed-off-by: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost</title>
<updated>2013-05-07T17:13:52Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-05-07T17:13:52Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=eac84105cddf8686440aaa9fbcb58093e37e4180'/>
<id>urn:sha1:eac84105cddf8686440aaa9fbcb58093e37e4180</id>
<content type='text'>
Pull more vhost fixes from Michael Tsirkin:
 "This fixes some minor issues in the patches that have been merged.

  We also finally drop the workaround disabling event_idx for scsi: it
  was always questionable, and now we know it's not needed.

  There's also a memory leak fix"

* tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
  vhost-scsi: Enable VIRTIO_RING_F_EVENT_IDX
  vhost: drop virtio_net.h dependency
  vhost-net: Cleanup vhost_ubuf and vhost_zcopy
  vhost: Remove vhost_enable_zcopy in vhost.h
  vhost: Remove comments for hdr in vhost.h
  vhost: Move VHOST_NET_FEATURES to net.c
  vhost-net: Free ubuf when vhost_dev_set_owner fails
  vhost: Export vhost_dev_set_owner
</content>
</entry>
<entry>
<title>vhost-scsi: Enable VIRTIO_RING_F_EVENT_IDX</title>
<updated>2013-05-07T08:11:08Z</updated>
<author>
<name>Asias He</name>
<email>asias@redhat.com</email>
</author>
<published>2013-05-07T06:51:49Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a18cc421649dfdc21edb6c4c867dd05447d7df8c'/>
<id>urn:sha1:a18cc421649dfdc21edb6c4c867dd05447d7df8c</id>
<content type='text'>
It was disabled as a workaround. Now userspace bits work fine with it.
The broken version was not ever committed to QEMU, I guess the same is
true for nlkt.

So, let's enable it.

Signed-off-by: Asias He &lt;asias@redhat.com&gt;
Acked-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>vhost: drop virtio_net.h dependency</title>
<updated>2013-05-06T11:04:06Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2013-05-06T10:29:36Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=7542a6b0d273ba4338028d39bc0e6e8cbfc68898'/>
<id>urn:sha1:7542a6b0d273ba4338028d39bc0e6e8cbfc68898</id>
<content type='text'>
There's no net specific code in vhost.c anymore,
don't include the virtio_net.h header.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
</feed>
