Merge tag 'stable/for-linus-3.19-rc0b-tag' of git://git.kernel.org/pub/scm/linux...
[firefly-linux-kernel-4.4.55.git] / tools / virtio / vringh_test.c
index 14a4f4cab5b97a1070abc656bca1bc72c60b5aa1..9d4b1bca54be581d5c33f716ea9a2830c15d5866 100644 (file)
@@ -304,7 +304,7 @@ static int parallel_test(unsigned long features,
                close(to_guest[1]);
                close(to_host[0]);
 
-               gvdev.vdev.features[0] = features;
+               gvdev.vdev.features = features;
                gvdev.to_host_fd = to_host[1];
                gvdev.notifies = 0;
 
@@ -449,13 +449,13 @@ int main(int argc, char *argv[])
        bool fast_vringh = false, parallel = false;
 
        getrange = getrange_iov;
-       vdev.features[0] = 0;
+       vdev.features = 0;
 
        while (argv[1]) {
                if (strcmp(argv[1], "--indirect") == 0)
-                       vdev.features[0] |= (1 << VIRTIO_RING_F_INDIRECT_DESC);
+                       __virtio_set_bit(&vdev, VIRTIO_RING_F_INDIRECT_DESC);
                else if (strcmp(argv[1], "--eventidx") == 0)
-                       vdev.features[0] |= (1 << VIRTIO_RING_F_EVENT_IDX);
+                       __virtio_set_bit(&vdev, VIRTIO_RING_F_EVENT_IDX);
                else if (strcmp(argv[1], "--slow-range") == 0)
                        getrange = getrange_slow;
                else if (strcmp(argv[1], "--fast-vringh") == 0)
@@ -468,7 +468,7 @@ int main(int argc, char *argv[])
        }
 
        if (parallel)
-               return parallel_test(vdev.features[0], getrange, fast_vringh);
+               return parallel_test(vdev.features, getrange, fast_vringh);
 
        if (posix_memalign(&__user_addr_min, PAGE_SIZE, USER_MEM) != 0)
                abort();
@@ -483,7 +483,7 @@ int main(int argc, char *argv[])
 
        /* Set up host side. */
        vring_init(&vrh.vring, RINGSIZE, __user_addr_min, ALIGN);
-       vringh_init_user(&vrh, vdev.features[0], RINGSIZE, true,
+       vringh_init_user(&vrh, vdev.features, RINGSIZE, true,
                         vrh.vring.desc, vrh.vring.avail, vrh.vring.used);
 
        /* No descriptor to get yet... */
@@ -652,13 +652,13 @@ int main(int argc, char *argv[])
        }
 
        /* Test weird (but legal!) indirect. */
-       if (vdev.features[0] & (1 << VIRTIO_RING_F_INDIRECT_DESC)) {
+       if (__virtio_test_bit(&vdev, VIRTIO_RING_F_INDIRECT_DESC)) {
                char *data = __user_addr_max - USER_MEM/4;
                struct vring_desc *d = __user_addr_max - USER_MEM/2;
                struct vring vring;
 
                /* Force creation of direct, which we modify. */
-               vdev.features[0] &= ~(1 << VIRTIO_RING_F_INDIRECT_DESC);
+               __virtio_clear_bit(&vdev, VIRTIO_RING_F_INDIRECT_DESC);
                vq = vring_new_virtqueue(0, RINGSIZE, ALIGN, &vdev, true,
                                         __user_addr_min,
                                         never_notify_host,