<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/virtio, branch v3.13.2</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/virtio?h=v3.13.2</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/virtio?h=v3.13.2'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-12-05T02:42:39Z</updated>
<entry>
<title>virtio_balloon: update_balloon_size(): update correct field</title>
<updated>2013-12-05T02:42:39Z</updated>
<author>
<name>Luiz Capitulino</name>
<email>lcapitulino@redhat.com</email>
</author>
<published>2013-12-05T02:34:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3459f11a8b16f40f9cde8e4281c2d5dd2ff1a732'/>
<id>urn:sha1:3459f11a8b16f40f9cde8e4281c2d5dd2ff1a732</id>
<content type='text'>
According to the virtio spec, the device configuration field
that should be updated after an inflation or deflation
operation is the 'actual' field, not the 'num_pages' one.

Commit 855e0c5288177bcb193f6f6316952d2490478e1c swapped them
in update_balloon_size(). Fix it.

Signed-off-by: Luiz Capitulino &lt;lcapitulino@redhat.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Fixes: 855e0c5288177bcb193f6f6316952d2490478e1c
</content>
</entry>
<entry>
<title>Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux</title>
<updated>2013-11-15T04:28:47Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-11-15T04:28:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b746f9c7941f227ad582b4f0bc981f3adcbc46b2'/>
<id>urn:sha1:b746f9c7941f227ad582b4f0bc981f3adcbc46b2</id>
<content type='text'>
Pull virtio updates from Rusty Russell:
 "Nothing really exciting: some groundwork for changing virtio endian,
  and some robustness fixes for broken virtio devices, plus minor
  tweaks"

* tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
  virtio_scsi: verify if queue is broken after virtqueue_get_buf()
  x86, asmlinkage, lguest: Pass in globals into assembler statement
  virtio: mmio: fix signature checking for BE guests
  virtio_ring: adapt to notify() returning bool
  virtio_net: verify if queue is broken after virtqueue_get_buf()
  virtio_console: verify if queue is broken after virtqueue_get_buf()
  virtio_blk: verify if queue is broken after virtqueue_get_buf()
  virtio_ring: add new function virtqueue_is_broken()
  virtio_test: verify if virtqueue_kick() succeeded
  virtio_net: verify if virtqueue_kick() succeeded
  virtio_ring: let virtqueue_{kick()/notify()} return a bool
  virtio_ring: change host notification API
  virtio_config: remove virtio_config_val
  virtio: use size-based config accessors.
  virtio_config: introduce size-based accessors.
  virtio_ring: plug kmemleak false positive.
  virtio: pm: use CONFIG_PM_SLEEP instead of CONFIG_PM
</content>
</entry>
<entry>
<title>virtio: mmio: fix signature checking for BE guests</title>
<updated>2013-11-07T01:43:04Z</updated>
<author>
<name>Marc Zyngier</name>
<email>marc.zyngier@arm.com</email>
</author>
<published>2013-11-05T10:51:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4ae85370720156025e9cb873c13a0afb06ca1612'/>
<id>urn:sha1:4ae85370720156025e9cb873c13a0afb06ca1612</id>
<content type='text'>
As virtio-mmio config registers are specified to be little-endian,
using readl() to read the magic value and then memcmp() to check it
fails on BE (as readl() has an implicit swab).

Fix it by encoding the magic value as an integer instead of a string.

Cc: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Acked-by: Pawel Moll &lt;pawel.moll@arm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio_ring: adapt to notify() returning bool</title>
<updated>2013-11-05T10:51:08Z</updated>
<author>
<name>Heinz Graalfs</name>
<email>graalfs@linux.vnet.ibm.com</email>
</author>
<published>2013-11-05T10:50:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2342d6a6512ce5a3d2433bf77e6580e738cfd709'/>
<id>urn:sha1:2342d6a6512ce5a3d2433bf77e6580e738cfd709</id>
<content type='text'>
Correct if statement to check for bool returned by notify()
(introduced in 5b1bf7cb673a).

Signed-off-by: Heinz Graalfs &lt;graalfs@linux.vnet.ibm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio_ring: add new function virtqueue_is_broken()</title>
<updated>2013-10-29T00:58:17Z</updated>
<author>
<name>Heinz Graalfs</name>
<email>graalfs@linux.vnet.ibm.com</email>
</author>
<published>2013-10-28T23:10:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b3b32c94133621c9ba7e4c8f29ec7533f2f4d8ec'/>
<id>urn:sha1:b3b32c94133621c9ba7e4c8f29ec7533f2f4d8ec</id>
<content type='text'>
Add new function virtqueue_is_broken(). Callers of virtqueue_get_buf()
should check for a broken queue.

Signed-off-by: Heinz Graalfs &lt;graalfs@linux.vnet.ibm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio_ring: let virtqueue_{kick()/notify()} return a bool</title>
<updated>2013-10-29T00:58:12Z</updated>
<author>
<name>Heinz Graalfs</name>
<email>graalfs@linux.vnet.ibm.com</email>
</author>
<published>2013-10-28T23:09:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5b1bf7cb673ade0ab5c75f200dce911d9fb91c21'/>
<id>urn:sha1:5b1bf7cb673ade0ab5c75f200dce911d9fb91c21</id>
<content type='text'>
virtqueue_{kick()/notify()} should exploit the new host notification API.
If the notify call returned with a negative value the host kick failed
(e.g. a kick triggered after a device was hot-unplugged). In this case
the virtqueue is set to 'broken' and false is returned, otherwise true.

Signed-off-by: Heinz Graalfs &lt;graalfs@linux.vnet.ibm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio_ring: change host notification API</title>
<updated>2013-10-29T00:58:11Z</updated>
<author>
<name>Heinz Graalfs</name>
<email>graalfs@linux.vnet.ibm.com</email>
</author>
<published>2013-10-28T23:08:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=46f9c2b925ac12e5ad8b8b7c90c71dacc9d5db37'/>
<id>urn:sha1:46f9c2b925ac12e5ad8b8b7c90c71dacc9d5db37</id>
<content type='text'>
Currently a host kick error is silently ignored and not reflected in
the virtqueue of a particular virtio device.

Changing the notify API for guest-&gt;host notification seems to be one
prerequisite in order to be able to handle such errors in the context
where the kick is triggered.

This patch changes the notify API. The notify function must return a
bool return value. It returns false if the host notification failed.

Signed-off-by: Heinz Graalfs &lt;graalfs@linux.vnet.ibm.com&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio: convert bus code to use dev_groups</title>
<updated>2013-10-17T01:40:57Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2013-10-08T01:27:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3736dab6e5e54c0f769f528f5616c335762bdac2'/>
<id>urn:sha1:3736dab6e5e54c0f769f528f5616c335762bdac2</id>
<content type='text'>
The dev_attrs field of struct bus_type is going away soon, dev_groups
should be used instead.  This converts the virtio bus code to use the
correct field.

Cc: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Cc: "Michael S. Tsirkin" &lt;mst@redhat.com&gt;
Cc: &lt;virtualization@lists.linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>virtio: use size-based config accessors.</title>
<updated>2013-10-17T00:25:37Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2013-10-14T07:41:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=855e0c5288177bcb193f6f6316952d2490478e1c'/>
<id>urn:sha1:855e0c5288177bcb193f6f6316952d2490478e1c</id>
<content type='text'>
This lets the transport do endian conversion if necessary, and insulates
the drivers from the difference.

Most drivers can use the simple helpers virtio_cread() and virtio_cwrite().

Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
<entry>
<title>virtio_ring: plug kmemleak false positive.</title>
<updated>2013-10-17T00:25:35Z</updated>
<author>
<name>Rusty Russell</name>
<email>rusty@rustcorp.com.au</email>
</author>
<published>2013-10-14T07:38:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bb478d8b167cf875565ac7d927ffbdc0b6d280e8'/>
<id>urn:sha1:bb478d8b167cf875565ac7d927ffbdc0b6d280e8</id>
<content type='text'>
unreferenced object 0xffff88003d467e20 (size 32):
  comm "softirq", pid 0, jiffies 4295197765 (age 6.364s)
  hex dump (first 32 bytes):
    28 19 bf 3d 00 00 00 00 0c 00 00 00 01 00 01 00  (..=............
    02 dc 51 3c 00 00 00 00 56 00 00 00 00 00 00 00  ..Q&lt;....V.......
  backtrace:
    [&lt;ffffffff8152db19&gt;] kmemleak_alloc+0x59/0xc0
    [&lt;ffffffff81102e93&gt;] __kmalloc+0xf3/0x180
    [&lt;ffffffff812db5d6&gt;] vring_add_indirect+0x36/0x280
    [&lt;ffffffff812dc59f&gt;] virtqueue_add_outbuf+0xbf/0x4e0
    [&lt;ffffffff813a8b30&gt;] start_xmit+0x1a0/0x3b0
    [&lt;ffffffff81445861&gt;] dev_hard_start_xmit+0x2d1/0x4d0
    [&lt;ffffffff81460052&gt;] sch_direct_xmit+0xf2/0x1c0
    [&lt;ffffffff81445c28&gt;] dev_queue_xmit+0x1c8/0x460
    [&lt;ffffffff814e3187&gt;] ip6_finish_output2+0x1d7/0x470
    [&lt;ffffffff814e34b0&gt;] ip6_finish_output+0x90/0xb0
    [&lt;ffffffff814e3507&gt;] ip6_output+0x37/0xb0
    [&lt;ffffffff815021eb&gt;] igmp6_send+0x2db/0x470
    [&lt;ffffffff81502645&gt;] igmp6_timer_handler+0x95/0xa0
    [&lt;ffffffff8104b57c&gt;] call_timer_fn+0x2c/0x90
    [&lt;ffffffff8104b7ba&gt;] run_timer_softirq+0x1da/0x1f0
    [&lt;ffffffff81045721&gt;] __do_softirq+0xd1/0x1b0

Address gets embedded in a descriptor via virt_to_phys().  See detach_buf,
which frees it:

	if (vq-&gt;vring.desc[i].flags &amp; VRING_DESC_F_INDIRECT)
		kfree(phys_to_virt(vq-&gt;vring.desc[i].addr));

Reported-by: Christoph Paasch &lt;christoph.paasch@uclouvain.be&gt;
Fix-suggested-by: Christoph Paasch &lt;christoph.paasch@uclouvain.be&gt;
Typing-done-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
Signed-off-by: Rusty Russell &lt;rusty@rustcorp.com.au&gt;
</content>
</entry>
</feed>
