<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/virtio, branch v2.6.32</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.32</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.32'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2009-10-28T22:20:37Z</updated>
<entry>
<title>virtio: order used ring after used index read</title>
<updated>2009-10-28T22:20:37Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-10-25T13:28:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=2d61ba95034f1abbdec7729d52c740870a5eddb6'/>
<id>urn:sha1:2d61ba95034f1abbdec7729d52c740870a5eddb6</id>
<content type='text'>
On SMP guests, reads from the ring might bypass used index reads. This
causes guest crashes because host writes to used index to signal ring
data readiness.  Fix this by inserting rmb before used ring reads.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>virtio-pci: fix per-vq MSI-X request logic</title>
<updated>2009-10-28T22:20:36Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-10-22T13:06:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0b22bd0ba0d500ab40e7673c591c594ec5447342'/>
<id>urn:sha1:0b22bd0ba0d500ab40e7673c591c594ec5447342</id>
<content type='text'>
Commit f68d24082e22ccee3077d11aeb6dc5354f0ca7f1
in 2.6.32-rc1 broke requesting IRQs for per-VQ MSI-X vectors:
- vector number was used instead of the vector itself
- we try to request an IRQ for VQ which does not
  have a callback handler

This is a regression that causes warnings in kernel log,
potentially lower performance as we need to scan vq list,
and might cause system failure if the interrupt
requested is in fact needed by another system.

This was not noticed earlier because in most cases
we were falling back on shared interrupt for all vqs.

The warnings often look like this:

virtio-pci 0000:00:03.0: irq 26 for MSI/MSI-X
virtio-pci 0000:00:03.0: irq 27 for MSI/MSI-X
virtio-pci 0000:00:03.0: irq 28 for MSI/MSI-X
IRQ handler type mismatch for IRQ 1
current handler: i8042
Pid: 2400, comm: modprobe Tainted: G        W
2.6.32-rc3-11952-gf3ed8d8-dirty #1
Call Trace:
 [&lt;ffffffff81072aed&gt;] ? __setup_irq+0x299/0x304
 [&lt;ffffffff81072ff3&gt;] ? request_threaded_irq+0x144/0x1c1
 [&lt;ffffffff813455af&gt;] ? vring_interrupt+0x0/0x30
 [&lt;ffffffff81346598&gt;] ? vp_try_to_find_vqs+0x583/0x5c7
 [&lt;ffffffffa0015188&gt;] ? skb_recv_done+0x0/0x34 [virtio_net]
 [&lt;ffffffff81346609&gt;] ? vp_find_vqs+0x2d/0x83
 [&lt;ffffffff81345d00&gt;] ? vp_get+0x3c/0x4e
 [&lt;ffffffffa0016373&gt;] ? virtnet_probe+0x2f1/0x428 [virtio_net]
 [&lt;ffffffffa0015188&gt;] ? skb_recv_done+0x0/0x34 [virtio_net]
 [&lt;ffffffffa00150d8&gt;] ? skb_xmit_done+0x0/0x39 [virtio_net]
 [&lt;ffffffff8110ab92&gt;] ? sysfs_do_create_link+0xcb/0x116
 [&lt;ffffffff81345cc2&gt;] ? vp_get_status+0x14/0x16
 [&lt;ffffffff81345464&gt;] ? virtio_dev_probe+0xa9/0xc8
 [&lt;ffffffff8122b11c&gt;] ? driver_probe_device+0x8d/0x128
 [&lt;ffffffff8122b206&gt;] ? __driver_attach+0x4f/0x6f
 [&lt;ffffffff8122b1b7&gt;] ? __driver_attach+0x0/0x6f
 [&lt;ffffffff8122a9f9&gt;] ? bus_for_each_dev+0x43/0x74
 [&lt;ffffffff8122a374&gt;] ? bus_add_driver+0xea/0x22d
 [&lt;ffffffff8122b4a3&gt;] ? driver_register+0xa7/0x111
 [&lt;ffffffffa001a000&gt;] ? init+0x0/0xc [virtio_net]
 [&lt;ffffffff81009051&gt;] ? do_one_initcall+0x50/0x148
 [&lt;ffffffff8106e117&gt;] ? sys_init_module+0xc5/0x21a
 [&lt;ffffffff8100af02&gt;] ? system_call_fastpath+0x16/0x1b
virtio-pci 0000:00:03.0: irq 26 for MSI/MSI-X
virtio-pci 0000:00:03.0: irq 27 for MSI/MSI-X

Reported-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Reported-by: Shirley Ma &lt;xma@us.ibm.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>move virtballoon_remove to .devexit.text</title>
<updated>2009-10-22T06:09:31Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2009-10-01T08:28:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1e65175c2c73742495f0e5ca52658539a65825db'/>
<id>urn:sha1:1e65175c2c73742495f0e5ca52658539a65825db</id>
<content type='text'>
The function virtballoon_remove is used only wrapped by __devexit_p so
define it using __devexit.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Acked-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: let header files include virtio_ids.h</title>
<updated>2009-10-22T06:09:28Z</updated>
<author>
<name>Christian Borntraeger</name>
<email>borntraeger@de.ibm.com</email>
</author>
<published>2009-09-30T09:17:21Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e95646c3ec33c8ec0693992da4332a6b32eb7e31'/>
<id>urn:sha1:e95646c3ec33c8ec0693992da4332a6b32eb7e31</id>
<content type='text'>
Rusty,

commit 3ca4f5ca73057a617f9444a91022d7127041970a
    virtio: add virtio IDs file
moved all device IDs into a single file. While the change itself is
a very good one, it can break userspace applications. For example
if a userspace tool wanted to get the ID of virtio_net it used to
include virtio_net.h. This does no longer work, since virtio_net.h
does not include virtio_ids.h.
This patch moves all "#include &lt;linux/virtio_ids.h&gt;" from the C
files into the header files, making the header files compatible with
the old ones.

In addition, this patch exports virtio_ids.h to userspace.

CC: Fernando Luis Vazquez Cao &lt;fernando@oss.ntt.co.jp&gt;
Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: add virtio IDs file</title>
<updated>2009-09-23T12:56:32Z</updated>
<author>
<name>Fernando Luis Vazquez Cao</name>
<email>fernando@oss.ntt.co.jp</email>
</author>
<published>2009-07-31T06:25:56Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3ca4f5ca73057a617f9444a91022d7127041970a'/>
<id>urn:sha1:3ca4f5ca73057a617f9444a91022d7127041970a</id>
<content type='text'>
Virtio IDs are spread all over the tree which makes assigning new IDs
bothersome. Putting them together should make the process less error-prone.

Signed-off-by: Fernando Luis Vazquez Cao &lt;fernando@oss.ntt.co.jp&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: make add_buf return capacity remaining</title>
<updated>2009-09-23T12:56:31Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2009-09-24T04:26:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3c1b27d5043086a485f8526353ae9fe37bfa1065'/>
<id>urn:sha1:3c1b27d5043086a485f8526353ae9fe37bfa1065</id>
<content type='text'>
This API change means that virtio_net can tell how much capacity
remains for buffers.  It's necessarily fuzzy, since
VIRTIO_RING_F_INDIRECT_DESC means we can fit any number of descriptors
in one, *if* we can kmalloc.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Dinesh Subhraveti &lt;dineshs@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>virtio_pci: minor MSI-X cleanups</title>
<updated>2009-09-23T12:56:31Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2009-09-24T04:26:29Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f68d24082e22ccee3077d11aeb6dc5354f0ca7f1'/>
<id>urn:sha1:f68d24082e22ccee3077d11aeb6dc5354f0ca7f1</id>
<content type='text'>
1) Rename vp_request_vectors to vp_request_msix_vectors, and take
   non-MSI-X case out to caller.
2) Comment weird pci_enable_msix API
3) Rename vp_find_vq to setup_vq.
4) Fix spaces to tabs
5) Make nvectors calc internal to vp_try_to_find_vqs()
6) Rename vector to msix_vector for more clarity.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: "Michael S. Tsirkin" &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>virtio: refactor find_vqs</title>
<updated>2009-07-30T06:33:45Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-07-26T12:48:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e969fed542cae08cb11d666efac4f7c5d624d09f'/>
<id>urn:sha1:e969fed542cae08cb11d666efac4f7c5d624d09f</id>
<content type='text'>
This refactors find_vqs, making it more readable and robust, and fixing
two regressions from 2.6.30:
- double free_irq causing BUG_ON on device removal
- probe failure when vq can't be assigned to msi-x vector
  (reported on old host kernels)

Tested-by: Amit Shah &lt;amit.shah@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: delete vq from list</title>
<updated>2009-07-30T06:33:44Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-07-26T12:48:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f6c82507030d61e15928d5cad946d3eac1c4a384'/>
<id>urn:sha1:f6c82507030d61e15928d5cad946d3eac1c4a384</id>
<content type='text'>
This makes delete vq the reverse of find vq.
This is required to make it possible to retry find_vqs
after a failure, otherwise the list gets corrupted.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: fix memory leak on device removal</title>
<updated>2009-07-30T06:33:44Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-07-23T11:57:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ff52c3fc7188855ede75d87b022271f0da309e5b'/>
<id>urn:sha1:ff52c3fc7188855ede75d87b022271f0da309e5b</id>
<content type='text'>
Make vp_free_vectors do the reverse of vq_request_vectors.

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