Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-2.6-block.git] / drivers / s390 / virtio / virtio_ccw.c
index c9c57b4a0b71850a75cebbcf1a664293d7d5156a..fc9dbad476c0ca4ee96bda0ed0074f1c18538f40 100644 (file)
@@ -769,6 +769,17 @@ out_free:
        return rc;
 }
 
+static void ccw_transport_features(struct virtio_device *vdev)
+{
+       /*
+        * Packed ring isn't enabled on virtio_ccw for now,
+        * because virtio_ccw uses some legacy accessors,
+        * e.g. virtqueue_get_avail() and virtqueue_get_used()
+        * which aren't available in packed ring currently.
+        */
+       __virtio_clear_bit(vdev, VIRTIO_F_RING_PACKED);
+}
+
 static int virtio_ccw_finalize_features(struct virtio_device *vdev)
 {
        struct virtio_ccw_device *vcdev = to_vc_device(vdev);
@@ -795,6 +806,9 @@ static int virtio_ccw_finalize_features(struct virtio_device *vdev)
        /* Give virtio_ring a chance to accept features. */
        vring_transport_features(vdev);
 
+       /* Give virtio_ccw a chance to accept features. */
+       ccw_transport_features(vdev);
+
        features->index = 0;
        features->features = cpu_to_le32((u32)vdev->features);
        /* Write the first half of the feature bits to the host. */