<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/virtio, branch v2.6.33.2</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>virtio: fix out of range array access</title>
<updated>2010-04-01T23:01:21+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2010-02-25T17:08:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ee644b71926ee1a1fc44320b67fbcdc214441a00'/>
<id>ee644b71926ee1a1fc44320b67fbcdc214441a00</id>
<content type='text'>
commit 3119815912a220bdac943dfbdfee640414c0c611 upstream.

I have observed the following error on virtio-net module unload:

------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:858 __free_irq+0xa0/0x14c()
Hardware name: Bochs
Trying to free already-free IRQ 0
Modules linked in: virtio_net(-) virtio_blk virtio_pci virtio_ring
virtio af_packet e1000 shpchp aacraid uhci_hcd ohci_hcd ehci_hcd [last
unloaded: scsi_wait_scan]
Pid: 1957, comm: rmmod Not tainted 2.6.33-rc8-vhost #24
Call Trace:
 [&lt;ffffffff8103e195&gt;] warn_slowpath_common+0x7c/0x94
 [&lt;ffffffff8103e204&gt;] warn_slowpath_fmt+0x41/0x43
 [&lt;ffffffff810a7a36&gt;] ? __free_pages+0x5a/0x70
 [&lt;ffffffff8107cc00&gt;] __free_irq+0xa0/0x14c
 [&lt;ffffffff8107cceb&gt;] free_irq+0x3f/0x65
 [&lt;ffffffffa0081424&gt;] vp_del_vqs+0x81/0xb1 [virtio_pci]
 [&lt;ffffffffa0091d29&gt;] virtnet_remove+0xda/0x10b [virtio_net]
 [&lt;ffffffffa0075200&gt;] virtio_dev_remove+0x22/0x4a [virtio]
 [&lt;ffffffff812709ee&gt;] __device_release_driver+0x66/0xac
 [&lt;ffffffff81270ab7&gt;] driver_detach+0x83/0xa9
 [&lt;ffffffff8126fc66&gt;] bus_remove_driver+0x91/0xb4
 [&lt;ffffffff81270fcf&gt;] driver_unregister+0x6c/0x74
 [&lt;ffffffffa0075418&gt;] unregister_virtio_driver+0xe/0x10 [virtio]
 [&lt;ffffffffa0091c4d&gt;] fini+0x15/0x17 [virtio_net]
 [&lt;ffffffff8106997b&gt;] sys_delete_module+0x1c3/0x230
 [&lt;ffffffff81007465&gt;] ? old_ich_force_enable_hpet+0x117/0x164
 [&lt;ffffffff813bb720&gt;] ? do_page_fault+0x29c/0x2cc
 [&lt;ffffffff81028e58&gt;] sysenter_dispatch+0x7/0x27
---[ end trace 15e88e4c576cc62b ]---

The bug is in virtio-pci: we use msix_vector as array index to get irq
entry, but some vqs do not have a dedicated vector so this causes an out
of bounds access.  By chance, we seem to often get 0 value, which
results in this error.

Fix by verifying that vector is legal before using it as index.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Acked-by: Anthony Liguori &lt;aliguori@us.ibm.com&gt;
Acked-by: Shirley Ma &lt;xma@us.ibm.com&gt;
Acked-by: Amit Shah &lt;amit.shah@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3119815912a220bdac943dfbdfee640414c0c611 upstream.

I have observed the following error on virtio-net module unload:

------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:858 __free_irq+0xa0/0x14c()
Hardware name: Bochs
Trying to free already-free IRQ 0
Modules linked in: virtio_net(-) virtio_blk virtio_pci virtio_ring
virtio af_packet e1000 shpchp aacraid uhci_hcd ohci_hcd ehci_hcd [last
unloaded: scsi_wait_scan]
Pid: 1957, comm: rmmod Not tainted 2.6.33-rc8-vhost #24
Call Trace:
 [&lt;ffffffff8103e195&gt;] warn_slowpath_common+0x7c/0x94
 [&lt;ffffffff8103e204&gt;] warn_slowpath_fmt+0x41/0x43
 [&lt;ffffffff810a7a36&gt;] ? __free_pages+0x5a/0x70
 [&lt;ffffffff8107cc00&gt;] __free_irq+0xa0/0x14c
 [&lt;ffffffff8107cceb&gt;] free_irq+0x3f/0x65
 [&lt;ffffffffa0081424&gt;] vp_del_vqs+0x81/0xb1 [virtio_pci]
 [&lt;ffffffffa0091d29&gt;] virtnet_remove+0xda/0x10b [virtio_net]
 [&lt;ffffffffa0075200&gt;] virtio_dev_remove+0x22/0x4a [virtio]
 [&lt;ffffffff812709ee&gt;] __device_release_driver+0x66/0xac
 [&lt;ffffffff81270ab7&gt;] driver_detach+0x83/0xa9
 [&lt;ffffffff8126fc66&gt;] bus_remove_driver+0x91/0xb4
 [&lt;ffffffff81270fcf&gt;] driver_unregister+0x6c/0x74
 [&lt;ffffffffa0075418&gt;] unregister_virtio_driver+0xe/0x10 [virtio]
 [&lt;ffffffffa0091c4d&gt;] fini+0x15/0x17 [virtio_net]
 [&lt;ffffffff8106997b&gt;] sys_delete_module+0x1c3/0x230
 [&lt;ffffffff81007465&gt;] ? old_ich_force_enable_hpet+0x117/0x164
 [&lt;ffffffff813bb720&gt;] ? do_page_fault+0x29c/0x2cc
 [&lt;ffffffff81028e58&gt;] sysenter_dispatch+0x7/0x27
---[ end trace 15e88e4c576cc62b ]---

The bug is in virtio-pci: we use msix_vector as array index to get irq
entry, but some vqs do not have a dedicated vector so this causes an out
of bounds access.  By chance, we seem to often get 0 value, which
results in this error.

Fix by verifying that vector is legal before using it as index.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Acked-by: Anthony Liguori &lt;aliguori@us.ibm.com&gt;
Acked-by: Shirley Ma &lt;xma@us.ibm.com&gt;
Acked-by: Amit Shah &lt;amit.shah@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>virtio: fix section mismatch warnings</title>
<updated>2010-01-16T20:15:39+00:00</updated>
<author>
<name>Jeff Mahoney</name>
<email>jeffm@suse.com</email>
</author>
<published>2010-01-16T01:01:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d817cd525589765aa5f6798734e422c867685a58'/>
<id>d817cd525589765aa5f6798734e422c867685a58</id>
<content type='text'>
Fix fixes the following warnings by renaming the driver structures to be
suffixed with _driver.

WARNING: drivers/virtio/virtio_balloon.o(.data+0x88): Section mismatch in reference from the variable virtio_balloon to the function .devexit.text:virtballoon_remove()

WARNING: drivers/char/hw_random/virtio-rng.o(.data+0x88): Section mismatch in reference from the variable virtio_rng to the function .devexit.text:virtrng_remove()

Signed-off-by: Jeff Mahoney &lt;jeffm@suse.com&gt;
Acked-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix fixes the following warnings by renaming the driver structures to be
suffixed with _driver.

WARNING: drivers/virtio/virtio_balloon.o(.data+0x88): Section mismatch in reference from the variable virtio_balloon to the function .devexit.text:virtballoon_remove()

WARNING: drivers/char/hw_random/virtio-rng.o(.data+0x88): Section mismatch in reference from the variable virtio_rng to the function .devexit.text:virtrng_remove()

Signed-off-by: Jeff Mahoney &lt;jeffm@suse.com&gt;
Acked-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio: order used ring after used index read</title>
<updated>2009-10-28T22:20:37+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-10-25T13:28:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2d61ba95034f1abbdec7729d52c740870a5eddb6'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio-pci: fix per-vq MSI-X request logic</title>
<updated>2009-10-28T22:20:36+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-10-22T13:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0b22bd0ba0d500ab40e7673c591c594ec5447342'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>move virtballoon_remove to .devexit.text</title>
<updated>2009-10-22T06:09:31+00:00</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2009-10-01T08:28:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1e65175c2c73742495f0e5ca52658539a65825db'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio: let header files include virtio_ids.h</title>
<updated>2009-10-22T06:09:28+00:00</updated>
<author>
<name>Christian Borntraeger</name>
<email>borntraeger@de.ibm.com</email>
</author>
<published>2009-09-30T09:17:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e95646c3ec33c8ec0693992da4332a6b32eb7e31'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio: add virtio IDs file</title>
<updated>2009-09-23T12:56:32+00:00</updated>
<author>
<name>Fernando Luis Vazquez Cao</name>
<email>fernando@oss.ntt.co.jp</email>
</author>
<published>2009-07-31T06:25:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3ca4f5ca73057a617f9444a91022d7127041970a'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio: make add_buf return capacity remaining</title>
<updated>2009-09-23T12:56:31+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2009-09-24T04:26:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3c1b27d5043086a485f8526353ae9fe37bfa1065'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio_pci: minor MSI-X cleanups</title>
<updated>2009-09-23T12:56:31+00:00</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2009-09-24T04:26:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f68d24082e22ccee3077d11aeb6dc5354f0ca7f1'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>virtio: refactor find_vqs</title>
<updated>2009-07-30T06:33:45+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2009-07-26T12:48:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e969fed542cae08cb11d666efac4f7c5d624d09f'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
</feed>
