virtio: support unlocked queue poll
authorMichael S. Tsirkin <mst@redhat.com>
Tue, 9 Jul 2013 10:19:18 +0000 (13:19 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Aug 2013 08:26:03 +0000 (16:26 +0800)
commit2010fa31f8f5c5fa8385459dff03cb844cf79dd1
treef43541e0f5a5169293e2094c5a722f289a96a33d
parentc733e1a2c459c09fe2510bfa49e2571b532be97c
virtio: support unlocked queue poll

commit cc229884d3f77ec3b1240e467e0236c3e0647c0c upstream.

This adds a way to check ring empty state after enable_cb outside any
locks. Will be used by virtio_net.

Note: there's room for more optimization: caller is likely to have a
memory barrier already, which means we might be able to get rid of a
barrier here.  Deferring this optimization until we do some
benchmarking.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[wg: Backported to 3.2]
Signed-off-by: Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
[bwh: Backported to 3.4: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/virtio/virtio_ring.c
include/linux/virtio.h