diff options
| author | Dave Airlie <airlied@redhat.com> | 2016-11-07 09:37:09 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2016-11-07 09:37:09 +1000 |
| commit | 7b624ad8fea1be7ff4c22643e212191aa6a2a3c2 (patch) | |
| tree | 41d0357d3259868cd85521c3fb9578cd2fc13831 /tools/virtio/ringtest/ring.c | |
| parent | dc345c46774bc150ab852d2c74ee6542de438d46 (diff) | |
| parent | bc33b0ca11e3df467777a4fa7639ba488c9d4911 (diff) | |
| download | blackbird-op-linux-7b624ad8fea1be7ff4c22643e212191aa6a2a3c2.tar.gz blackbird-op-linux-7b624ad8fea1be7ff4c22643e212191aa6a2a3c2.zip | |
Backmerge tag 'v4.9-rc4' into drm-next
Linux 4.9-rc4
This is needed for nouveau development.
Diffstat (limited to 'tools/virtio/ringtest/ring.c')
| -rw-r--r-- | tools/virtio/ringtest/ring.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/tools/virtio/ringtest/ring.c b/tools/virtio/ringtest/ring.c index c25c8d248b6b..747c5dd47be8 100644 --- a/tools/virtio/ringtest/ring.c +++ b/tools/virtio/ringtest/ring.c @@ -163,12 +163,11 @@ void *get_buf(unsigned *lenp, void **bufp) return datap; } -void poll_used(void) +bool used_empty() { unsigned head = (ring_size - 1) & guest.last_used_idx; - while (ring[head].flags & DESC_HW) - busy_wait(); + return (ring[head].flags & DESC_HW); } void disable_call() @@ -180,13 +179,11 @@ void disable_call() bool enable_call() { - unsigned head = (ring_size - 1) & guest.last_used_idx; - event->call_index = guest.last_used_idx; /* Flush call index write */ /* Barrier D (for pairing) */ smp_mb(); - return ring[head].flags & DESC_HW; + return used_empty(); } void kick_available(void) @@ -213,20 +210,17 @@ void disable_kick() bool enable_kick() { - unsigned head = (ring_size - 1) & host.used_idx; - event->kick_index = host.used_idx; /* Barrier C (for pairing) */ smp_mb(); - return !(ring[head].flags & DESC_HW); + return avail_empty(); } -void poll_avail(void) +bool avail_empty() { unsigned head = (ring_size - 1) & host.used_idx; - while (!(ring[head].flags & DESC_HW)) - busy_wait(); + return !(ring[head].flags & DESC_HW); } bool use_buf(unsigned *lenp, void **bufp) |

