Commit 3302363a authored by Michael S. Tsirkin's avatar Michael S. Tsirkin

virtio/test: fix up after IOTLB changes

Allow building vringh without IOTLB (that's the case for userspace
builds, will be useful for CAIF/VOD down the road too).
Update for API tweaks.
Don't include vringh with userspace builds.

Cc: Jason Wang <jasowang@redhat.com>
Cc: Eugenio Pérez <eperezma@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Acked-by: default avatarJason Wang <jasowang@redhat.com>
parent 247643f8
...@@ -3,6 +3,8 @@ config VHOST_IOTLB ...@@ -3,6 +3,8 @@ config VHOST_IOTLB
tristate tristate
help help
Generic IOTLB implementation for vhost and vringh. Generic IOTLB implementation for vhost and vringh.
This option is selected by any driver which needs to support
an IOMMU in software.
config VHOST_RING config VHOST_RING
tristate tristate
......
...@@ -120,7 +120,7 @@ static int vhost_test_open(struct inode *inode, struct file *f) ...@@ -120,7 +120,7 @@ static int vhost_test_open(struct inode *inode, struct file *f)
vqs[VHOST_TEST_VQ] = &n->vqs[VHOST_TEST_VQ]; vqs[VHOST_TEST_VQ] = &n->vqs[VHOST_TEST_VQ];
n->vqs[VHOST_TEST_VQ].handle_kick = handle_vq_kick; n->vqs[VHOST_TEST_VQ].handle_kick = handle_vq_kick;
vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX, UIO_MAXIOV, vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX, UIO_MAXIOV,
VHOST_TEST_PKT_WEIGHT, VHOST_TEST_WEIGHT); VHOST_TEST_PKT_WEIGHT, VHOST_TEST_WEIGHT, NULL);
f->private_data = n; f->private_data = n;
...@@ -225,7 +225,7 @@ static long vhost_test_reset_owner(struct vhost_test *n) ...@@ -225,7 +225,7 @@ static long vhost_test_reset_owner(struct vhost_test *n)
{ {
void *priv = NULL; void *priv = NULL;
long err; long err;
struct vhost_umem *umem; struct vhost_iotlb *umem;
mutex_lock(&n->dev.mutex); mutex_lock(&n->dev.mutex);
err = vhost_dev_check_owner(&n->dev); err = vhost_dev_check_owner(&n->dev);
......
...@@ -13,9 +13,11 @@ ...@@ -13,9 +13,11 @@
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/export.h> #include <linux/export.h>
#if IS_REACHABLE(CONFIG_VHOST_IOTLB)
#include <linux/bvec.h> #include <linux/bvec.h>
#include <linux/highmem.h> #include <linux/highmem.h>
#include <linux/vhost_iotlb.h> #include <linux/vhost_iotlb.h>
#endif
#include <uapi/linux/virtio_config.h> #include <uapi/linux/virtio_config.h>
static __printf(1,2) __cold void vringh_bad(const char *fmt, ...) static __printf(1,2) __cold void vringh_bad(const char *fmt, ...)
...@@ -1059,6 +1061,8 @@ int vringh_need_notify_kern(struct vringh *vrh) ...@@ -1059,6 +1061,8 @@ int vringh_need_notify_kern(struct vringh *vrh)
} }
EXPORT_SYMBOL(vringh_need_notify_kern); EXPORT_SYMBOL(vringh_need_notify_kern);
#if IS_REACHABLE(CONFIG_VHOST_IOTLB)
static int iotlb_translate(const struct vringh *vrh, static int iotlb_translate(const struct vringh *vrh,
u64 addr, u64 len, struct bio_vec iov[], u64 addr, u64 len, struct bio_vec iov[],
int iov_size, u32 perm) int iov_size, u32 perm)
...@@ -1416,5 +1420,6 @@ int vringh_need_notify_iotlb(struct vringh *vrh) ...@@ -1416,5 +1420,6 @@ int vringh_need_notify_iotlb(struct vringh *vrh)
} }
EXPORT_SYMBOL(vringh_need_notify_iotlb); EXPORT_SYMBOL(vringh_need_notify_iotlb);
#endif
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -14,8 +14,10 @@ ...@@ -14,8 +14,10 @@
#include <linux/virtio_byteorder.h> #include <linux/virtio_byteorder.h>
#include <linux/uio.h> #include <linux/uio.h>
#include <linux/slab.h> #include <linux/slab.h>
#if IS_REACHABLE(CONFIG_VHOST_IOTLB)
#include <linux/dma-direction.h> #include <linux/dma-direction.h>
#include <linux/vhost_iotlb.h> #include <linux/vhost_iotlb.h>
#endif
#include <asm/barrier.h> #include <asm/barrier.h>
/* virtio_ring with information needed for host access. */ /* virtio_ring with information needed for host access. */
...@@ -254,6 +256,8 @@ static inline __virtio64 cpu_to_vringh64(const struct vringh *vrh, u64 val) ...@@ -254,6 +256,8 @@ static inline __virtio64 cpu_to_vringh64(const struct vringh *vrh, u64 val)
return __cpu_to_virtio64(vringh_is_little_endian(vrh), val); return __cpu_to_virtio64(vringh_is_little_endian(vrh), val);
} }
#if IS_REACHABLE(CONFIG_VHOST_IOTLB)
void vringh_set_iotlb(struct vringh *vrh, struct vhost_iotlb *iotlb); void vringh_set_iotlb(struct vringh *vrh, struct vhost_iotlb *iotlb);
int vringh_init_iotlb(struct vringh *vrh, u64 features, int vringh_init_iotlb(struct vringh *vrh, u64 features,
...@@ -284,4 +288,6 @@ void vringh_notify_disable_iotlb(struct vringh *vrh); ...@@ -284,4 +288,6 @@ void vringh_notify_disable_iotlb(struct vringh *vrh);
int vringh_need_notify_iotlb(struct vringh *vrh); int vringh_need_notify_iotlb(struct vringh *vrh);
#endif /* CONFIG_VHOST_IOTLB */
#endif /* _LINUX_VRINGH_H */ #endif /* _LINUX_VRINGH_H */
...@@ -4,7 +4,7 @@ test: virtio_test vringh_test ...@@ -4,7 +4,7 @@ test: virtio_test vringh_test
virtio_test: virtio_ring.o virtio_test.o virtio_test: virtio_ring.o virtio_test.o
vringh_test: vringh_test.o vringh.o virtio_ring.o vringh_test: vringh_test.o vringh.o virtio_ring.o
CFLAGS += -g -O2 -Werror -Wall -I. -I../include/ -I ../../usr/include/ -Wno-pointer-sign -fno-strict-overflow -fno-strict-aliasing -fno-common -MMD -U_FORTIFY_SOURCE CFLAGS += -g -O2 -Werror -Wall -I. -I../include/ -I ../../usr/include/ -Wno-pointer-sign -fno-strict-overflow -fno-strict-aliasing -fno-common -MMD -U_FORTIFY_SOURCE -include ../../include/linux/kconfig.h
vpath %.c ../../drivers/virtio ../../drivers/vhost vpath %.c ../../drivers/virtio ../../drivers/vhost
mod: mod:
${MAKE} -C `pwd`/../.. M=`pwd`/vhost_test V=${V} ${MAKE} -C `pwd`/../.. M=`pwd`/vhost_test V=${V}
...@@ -22,7 +22,8 @@ OOT_CONFIGS=\ ...@@ -22,7 +22,8 @@ OOT_CONFIGS=\
CONFIG_VHOST=m \ CONFIG_VHOST=m \
CONFIG_VHOST_NET=n \ CONFIG_VHOST_NET=n \
CONFIG_VHOST_SCSI=n \ CONFIG_VHOST_SCSI=n \
CONFIG_VHOST_VSOCK=n CONFIG_VHOST_VSOCK=n \
CONFIG_VHOST_RING=n
OOT_BUILD=KCFLAGS="-I "${OOT_VHOST} ${MAKE} -C ${OOT_KSRC} V=${V} OOT_BUILD=KCFLAGS="-I "${OOT_VHOST} ${MAKE} -C ${OOT_KSRC} V=${V}
oot-build: oot-build:
echo "UNSUPPORTED! Don't use the resulting modules in production!" echo "UNSUPPORTED! Don't use the resulting modules in production!"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment