<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/virtio, branch v2.6.24</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.24</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.24'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2007-11-19T00:20:42Z</updated>
<entry>
<title>virtio: fix module/device unloading</title>
<updated>2007-11-19T00:20:42Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2007-11-19T16:20:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=74b2553f1d13e60fb27063204bd5b6908a6f8494'/>
<id>urn:sha1:74b2553f1d13e60fb27063204bd5b6908a6f8494</id>
<content type='text'>
The virtio code never hooked through the -&gt;remove callback.  Although
noone supports device removal at the moment, this code is already
needed for module unloading.

This of course also revealed bugs in virtio_blk, virtio_net and lguest
unloading paths.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: Force use of power-of-two for descriptor ring sizes</title>
<updated>2007-11-12T02:59:40Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2007-11-12T02:39:18Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=42b36cc0ce717deeb10030141a43dede763a3ebe'/>
<id>urn:sha1:42b36cc0ce717deeb10030141a43dede763a3ebe</id>
<content type='text'>
The virtio descriptor rings of size N-1 were nicely set up to be
aligned to an N-byte boundary.  But as Anthony Liguori points out, the
free-running indices used by virtio require that the sizes be a power
of 2, otherwise we get problems on wrap (demonstrated with lguest).

So we replace the clever "2^n-1" scheme with a simple "align to page
boundary" scheme: this means that all virtio rings take at least two
pages, but it's safer than guessing cache alignment.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: Fix used_idx wrap-around</title>
<updated>2007-11-12T02:59:09Z</updated>
<author>
<name>Anthony Liguori</name>
<email>aliguori@us.ibm.com</email>
</author>
<published>2007-11-07T21:49:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1bc4953ed44454c7f53d0b609445d1534981ee75'/>
<id>urn:sha1:1bc4953ed44454c7f53d0b609445d1534981ee75</id>
<content type='text'>
The more_used() function compares the vq-&gt;vring.used-&gt;idx with last_used_idx.
Since vq-&gt;vring.used-&gt;idx is a 16-bit integer, and last_used_idx is an
unsigned int, this results in unpredictable behavior when vq-&gt;vring.used-&gt;idx
wraps around.

This patch corrects this by changing last_used_idx to the correct type.

Signed-off-by: Anthony Liguori &lt;aliguori@us.ibm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>Virtio helper routines for a descriptor ringbuffer implementation</title>
<updated>2007-10-23T05:49:55Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2007-10-22T01:03:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0a8a69dd77ddbd4513b21363021ecde7e1025502'/>
<id>urn:sha1:0a8a69dd77ddbd4513b21363021ecde7e1025502</id>
<content type='text'>
These helper routines supply most of the virtqueue_ops for hypervisors
which want to use a ring for virtio.  Unlike the previous lguest
implementation:

1) The rings are variable sized (2^n-1 elements).
2) They have an unfortunate limit of 65535 bytes per sg element.
3) The page numbers are always 64 bit (PAE anyone?)
4) They no longer place used[] on a separate page, just a separate
   cacheline.
5) We do a modulo on a variable.  We could be tricky if we cared.
6) Interrupts and notifies are suppressed using flags within the rings.

Users need only get the ring pages and provide a notify hook (KVM
wants the guest to allocate the rings, lguest does it sanely).

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Dor Laor &lt;dor.laor@qumranet.com&gt;
</content>
</entry>
<entry>
<title>Module autoprobing support for virtio drivers.</title>
<updated>2007-10-23T05:49:55Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2007-10-22T01:03:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b01d9f2863349b0e041b90c3c86a998ee0fed2b0'/>
<id>urn:sha1:b01d9f2863349b0e041b90c3c86a998ee0fed2b0</id>
<content type='text'>
This adds the logic to convert the virtio ids into module aliases, and
includes a modalias entry in sysfs and the env var to make probing work.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>Virtio interface</title>
<updated>2007-10-23T05:49:54Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2007-10-22T01:03:36Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ec3d41c4db4c21164332826ea8d812f94f2f6886'/>
<id>urn:sha1:ec3d41c4db4c21164332826ea8d812f94f2f6886</id>
<content type='text'>
This attempts to implement a "virtual I/O" layer which should allow
common drivers to be efficiently used across most virtual I/O
mechanisms.  It will no-doubt need further enhancement.

The virtio drivers add buffers to virtio queues; as the buffers are consumed
the driver "interrupt" callbacks are invoked.

There is also a generic implementation of config space which drivers can query
to get setup information from the host.

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: Dor Laor &lt;dor.laor@qumranet.com&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
</feed>
