#define KVM_S390_VIRTIO_RESET          1
 #define KVM_S390_VIRTIO_SET_STATUS     2
 
+/* The alignment to use between consumer and producer parts of vring.
+ * This is pagesize for historical reasons. */
+#define KVM_S390_VIRTIO_RING_ALIGN     4096
+
 #ifdef __KERNEL__
 /* early virtio console setup */
 #ifdef CONFIG_S390_GUEST
 
        config = kvm_vq_config(kdev->desc)+index;
 
        err = vmem_add_mapping(config->address,
-                              vring_size(config->num, PAGE_SIZE));
+                              vring_size(config->num,
+                                         KVM_S390_VIRTIO_RING_ALIGN));
        if (err)
                goto out;
 
        return vq;
 unmap:
        vmem_remove_mapping(config->address,
-                           vring_size(config->num, PAGE_SIZE));
+                           vring_size(config->num,
+                                      KVM_S390_VIRTIO_RING_ALIGN));
 out:
        return ERR_PTR(err);
 }
 
        vring_del_virtqueue(vq);
        vmem_remove_mapping(config->address,
-                           vring_size(config->num, PAGE_SIZE));
+                           vring_size(config->num,
+                                      KVM_S390_VIRTIO_RING_ALIGN));
 }
 
 /*