_vq                18 drivers/virtio/virtio_ring.c #define BAD_RING(_vq, fmt, args...)				\
_vq                20 drivers/virtio/virtio_ring.c 		dev_err(&(_vq)->vq.vdev->dev,			\
_vq                21 drivers/virtio/virtio_ring.c 			"%s:"fmt, (_vq)->vq.name, ##args);	\
_vq                25 drivers/virtio/virtio_ring.c #define START_USE(_vq)						\
_vq                27 drivers/virtio/virtio_ring.c 		if ((_vq)->in_use)				\
_vq                29 drivers/virtio/virtio_ring.c 			      (_vq)->vq.name, (_vq)->in_use);	\
_vq                30 drivers/virtio/virtio_ring.c 		(_vq)->in_use = __LINE__;			\
_vq                32 drivers/virtio/virtio_ring.c #define END_USE(_vq) \
_vq                33 drivers/virtio/virtio_ring.c 	do { BUG_ON(!(_vq)->in_use); (_vq)->in_use = 0; } while(0)
_vq                34 drivers/virtio/virtio_ring.c #define LAST_ADD_TIME_UPDATE(_vq)				\
_vq                39 drivers/virtio/virtio_ring.c 		if ((_vq)->last_add_time_valid)			\
_vq                41 drivers/virtio/virtio_ring.c 				(_vq)->last_add_time)) > 100);	\
_vq                42 drivers/virtio/virtio_ring.c 		(_vq)->last_add_time = now;			\
_vq                43 drivers/virtio/virtio_ring.c 		(_vq)->last_add_time_valid = true;		\
_vq                45 drivers/virtio/virtio_ring.c #define LAST_ADD_TIME_CHECK(_vq)				\
_vq                47 drivers/virtio/virtio_ring.c 		if ((_vq)->last_add_time_valid) {		\
_vq                49 drivers/virtio/virtio_ring.c 				      (_vq)->last_add_time)) > 100); \
_vq                52 drivers/virtio/virtio_ring.c #define LAST_ADD_TIME_INVALID(_vq)				\
_vq                53 drivers/virtio/virtio_ring.c 	((_vq)->last_add_time_valid = false)
_vq                55 drivers/virtio/virtio_ring.c #define BAD_RING(_vq, fmt, args...)				\
_vq                57 drivers/virtio/virtio_ring.c 		dev_err(&_vq->vq.vdev->dev,			\
_vq                58 drivers/virtio/virtio_ring.c 			"%s:"fmt, (_vq)->vq.name, ##args);	\
_vq                59 drivers/virtio/virtio_ring.c 		(_vq)->broken = true;				\
_vq               201 drivers/virtio/virtio_ring.c #define to_vvq(_vq) container_of(_vq, struct vring_virtqueue, vq)
_vq               203 drivers/virtio/virtio_ring.c static inline bool virtqueue_use_indirect(struct virtqueue *_vq,
_vq               206 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               392 drivers/virtio/virtio_ring.c static struct vring_desc *alloc_indirect_split(struct virtqueue *_vq,
_vq               411 drivers/virtio/virtio_ring.c 		desc[i].next = cpu_to_virtio16(_vq->vdev, i + 1);
_vq               415 drivers/virtio/virtio_ring.c static inline int virtqueue_add_split(struct virtqueue *_vq,
_vq               424 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               447 drivers/virtio/virtio_ring.c 	if (virtqueue_use_indirect(_vq, total_sg))
_vq               448 drivers/virtio/virtio_ring.c 		desc = alloc_indirect_split(_vq, total_sg, gfp);
_vq               487 drivers/virtio/virtio_ring.c 			desc[i].flags = cpu_to_virtio16(_vq->vdev, VRING_DESC_F_NEXT);
_vq               488 drivers/virtio/virtio_ring.c 			desc[i].addr = cpu_to_virtio64(_vq->vdev, addr);
_vq               489 drivers/virtio/virtio_ring.c 			desc[i].len = cpu_to_virtio32(_vq->vdev, sg->length);
_vq               491 drivers/virtio/virtio_ring.c 			i = virtio16_to_cpu(_vq->vdev, desc[i].next);
_vq               500 drivers/virtio/virtio_ring.c 			desc[i].flags = cpu_to_virtio16(_vq->vdev, VRING_DESC_F_NEXT | VRING_DESC_F_WRITE);
_vq               501 drivers/virtio/virtio_ring.c 			desc[i].addr = cpu_to_virtio64(_vq->vdev, addr);
_vq               502 drivers/virtio/virtio_ring.c 			desc[i].len = cpu_to_virtio32(_vq->vdev, sg->length);
_vq               504 drivers/virtio/virtio_ring.c 			i = virtio16_to_cpu(_vq->vdev, desc[i].next);
_vq               508 drivers/virtio/virtio_ring.c 	desc[prev].flags &= cpu_to_virtio16(_vq->vdev, ~VRING_DESC_F_NEXT);
_vq               518 drivers/virtio/virtio_ring.c 		vq->split.vring.desc[head].flags = cpu_to_virtio16(_vq->vdev,
_vq               520 drivers/virtio/virtio_ring.c 		vq->split.vring.desc[head].addr = cpu_to_virtio64(_vq->vdev,
_vq               523 drivers/virtio/virtio_ring.c 		vq->split.vring.desc[head].len = cpu_to_virtio32(_vq->vdev,
_vq               532 drivers/virtio/virtio_ring.c 		vq->free_head = virtio16_to_cpu(_vq->vdev,
_vq               547 drivers/virtio/virtio_ring.c 	vq->split.vring.avail->ring[avail] = cpu_to_virtio16(_vq->vdev, head);
_vq               553 drivers/virtio/virtio_ring.c 	vq->split.vring.avail->idx = cpu_to_virtio16(_vq->vdev,
_vq               563 drivers/virtio/virtio_ring.c 		virtqueue_kick(_vq);
_vq               579 drivers/virtio/virtio_ring.c 		i = virtio16_to_cpu(_vq->vdev, desc[i].next);
_vq               589 drivers/virtio/virtio_ring.c static bool virtqueue_kick_prepare_split(struct virtqueue *_vq)
_vq               591 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               608 drivers/virtio/virtio_ring.c 		needs_kick = vring_need_event(virtio16_to_cpu(_vq->vdev,
_vq               613 drivers/virtio/virtio_ring.c 					cpu_to_virtio16(_vq->vdev,
_vq               678 drivers/virtio/virtio_ring.c static void *virtqueue_get_buf_ctx_split(struct virtqueue *_vq,
_vq               682 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               704 drivers/virtio/virtio_ring.c 	i = virtio32_to_cpu(_vq->vdev,
_vq               706 drivers/virtio/virtio_ring.c 	*len = virtio32_to_cpu(_vq->vdev,
_vq               728 drivers/virtio/virtio_ring.c 				cpu_to_virtio16(_vq->vdev, vq->last_used_idx));
_vq               736 drivers/virtio/virtio_ring.c static void virtqueue_disable_cb_split(struct virtqueue *_vq)
_vq               738 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               744 drivers/virtio/virtio_ring.c 				cpu_to_virtio16(_vq->vdev,
_vq               749 drivers/virtio/virtio_ring.c static unsigned virtqueue_enable_cb_prepare_split(struct virtqueue *_vq)
_vq               751 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               765 drivers/virtio/virtio_ring.c 				cpu_to_virtio16(_vq->vdev,
_vq               768 drivers/virtio/virtio_ring.c 	vring_used_event(&vq->split.vring) = cpu_to_virtio16(_vq->vdev,
_vq               774 drivers/virtio/virtio_ring.c static bool virtqueue_poll_split(struct virtqueue *_vq, unsigned last_used_idx)
_vq               776 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               778 drivers/virtio/virtio_ring.c 	return (u16)last_used_idx != virtio16_to_cpu(_vq->vdev,
_vq               782 drivers/virtio/virtio_ring.c static bool virtqueue_enable_cb_delayed_split(struct virtqueue *_vq)
_vq               784 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               798 drivers/virtio/virtio_ring.c 				cpu_to_virtio16(_vq->vdev,
_vq               806 drivers/virtio/virtio_ring.c 			cpu_to_virtio16(_vq->vdev, vq->last_used_idx + bufs));
_vq               808 drivers/virtio/virtio_ring.c 	if (unlikely((u16)(virtio16_to_cpu(_vq->vdev, vq->split.vring.used->idx)
_vq               818 drivers/virtio/virtio_ring.c static void *virtqueue_detach_unused_buf_split(struct virtqueue *_vq)
_vq               820 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               833 drivers/virtio/virtio_ring.c 		vq->split.vring.avail->idx = cpu_to_virtio16(_vq->vdev,
_vq              1091 drivers/virtio/virtio_ring.c static inline int virtqueue_add_packed(struct virtqueue *_vq,
_vq              1100 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1121 drivers/virtio/virtio_ring.c 	if (virtqueue_use_indirect(_vq, total_sg))
_vq              1232 drivers/virtio/virtio_ring.c static bool virtqueue_kick_prepare_packed(struct virtqueue *_vq)
_vq              1234 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1346 drivers/virtio/virtio_ring.c static void *virtqueue_get_buf_ctx_packed(struct virtqueue *_vq,
_vq              1350 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1411 drivers/virtio/virtio_ring.c static void virtqueue_disable_cb_packed(struct virtqueue *_vq)
_vq              1413 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1422 drivers/virtio/virtio_ring.c static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq)
_vq              1424 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1458 drivers/virtio/virtio_ring.c static bool virtqueue_poll_packed(struct virtqueue *_vq, u16 off_wrap)
_vq              1460 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1470 drivers/virtio/virtio_ring.c static bool virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq)
_vq              1472 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1529 drivers/virtio/virtio_ring.c static void *virtqueue_detach_unused_buf_packed(struct virtqueue *_vq)
_vq              1531 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1693 drivers/virtio/virtio_ring.c static inline int virtqueue_add(struct virtqueue *_vq,
_vq              1702 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1704 drivers/virtio/virtio_ring.c 	return vq->packed_ring ? virtqueue_add_packed(_vq, sgs, total_sg,
_vq              1706 drivers/virtio/virtio_ring.c 				 virtqueue_add_split(_vq, sgs, total_sg,
_vq              1724 drivers/virtio/virtio_ring.c int virtqueue_add_sgs(struct virtqueue *_vq,
_vq              1740 drivers/virtio/virtio_ring.c 	return virtqueue_add(_vq, sgs, total_sg, out_sgs, in_sgs,
_vq              1824 drivers/virtio/virtio_ring.c bool virtqueue_kick_prepare(struct virtqueue *_vq)
_vq              1826 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1828 drivers/virtio/virtio_ring.c 	return vq->packed_ring ? virtqueue_kick_prepare_packed(_vq) :
_vq              1829 drivers/virtio/virtio_ring.c 				 virtqueue_kick_prepare_split(_vq);
_vq              1841 drivers/virtio/virtio_ring.c bool virtqueue_notify(struct virtqueue *_vq)
_vq              1843 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1849 drivers/virtio/virtio_ring.c 	if (!vq->notify(_vq)) {
_vq              1894 drivers/virtio/virtio_ring.c void *virtqueue_get_buf_ctx(struct virtqueue *_vq, unsigned int *len,
_vq              1897 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1899 drivers/virtio/virtio_ring.c 	return vq->packed_ring ? virtqueue_get_buf_ctx_packed(_vq, len, ctx) :
_vq              1900 drivers/virtio/virtio_ring.c 				 virtqueue_get_buf_ctx_split(_vq, len, ctx);
_vq              1904 drivers/virtio/virtio_ring.c void *virtqueue_get_buf(struct virtqueue *_vq, unsigned int *len)
_vq              1906 drivers/virtio/virtio_ring.c 	return virtqueue_get_buf_ctx(_vq, len, NULL);
_vq              1918 drivers/virtio/virtio_ring.c void virtqueue_disable_cb(struct virtqueue *_vq)
_vq              1920 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1923 drivers/virtio/virtio_ring.c 		virtqueue_disable_cb_packed(_vq);
_vq              1925 drivers/virtio/virtio_ring.c 		virtqueue_disable_cb_split(_vq);
_vq              1941 drivers/virtio/virtio_ring.c unsigned virtqueue_enable_cb_prepare(struct virtqueue *_vq)
_vq              1943 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1945 drivers/virtio/virtio_ring.c 	return vq->packed_ring ? virtqueue_enable_cb_prepare_packed(_vq) :
_vq              1946 drivers/virtio/virtio_ring.c 				 virtqueue_enable_cb_prepare_split(_vq);
_vq              1959 drivers/virtio/virtio_ring.c bool virtqueue_poll(struct virtqueue *_vq, unsigned last_used_idx)
_vq              1961 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              1964 drivers/virtio/virtio_ring.c 	return vq->packed_ring ? virtqueue_poll_packed(_vq, last_used_idx) :
_vq              1965 drivers/virtio/virtio_ring.c 				 virtqueue_poll_split(_vq, last_used_idx);
_vq              1980 drivers/virtio/virtio_ring.c bool virtqueue_enable_cb(struct virtqueue *_vq)
_vq              1982 drivers/virtio/virtio_ring.c 	unsigned last_used_idx = virtqueue_enable_cb_prepare(_vq);
_vq              1984 drivers/virtio/virtio_ring.c 	return !virtqueue_poll(_vq, last_used_idx);
_vq              2001 drivers/virtio/virtio_ring.c bool virtqueue_enable_cb_delayed(struct virtqueue *_vq)
_vq              2003 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2005 drivers/virtio/virtio_ring.c 	return vq->packed_ring ? virtqueue_enable_cb_delayed_packed(_vq) :
_vq              2006 drivers/virtio/virtio_ring.c 				 virtqueue_enable_cb_delayed_split(_vq);
_vq              2018 drivers/virtio/virtio_ring.c void *virtqueue_detach_unused_buf(struct virtqueue *_vq)
_vq              2020 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2022 drivers/virtio/virtio_ring.c 	return vq->packed_ring ? virtqueue_detach_unused_buf_packed(_vq) :
_vq              2023 drivers/virtio/virtio_ring.c 				 virtqueue_detach_unused_buf_split(_vq);
_vq              2032 drivers/virtio/virtio_ring.c irqreturn_t vring_interrupt(int irq, void *_vq)
_vq              2034 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2178 drivers/virtio/virtio_ring.c void vring_del_virtqueue(struct virtqueue *_vq)
_vq              2180 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2210 drivers/virtio/virtio_ring.c 	list_del(&_vq->list);
_vq              2249 drivers/virtio/virtio_ring.c unsigned int virtqueue_get_vring_size(struct virtqueue *_vq)
_vq              2252 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2258 drivers/virtio/virtio_ring.c bool virtqueue_is_broken(struct virtqueue *_vq)
_vq              2260 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2272 drivers/virtio/virtio_ring.c 	struct virtqueue *_vq;
_vq              2274 drivers/virtio/virtio_ring.c 	list_for_each_entry(_vq, &dev->vqs, list) {
_vq              2275 drivers/virtio/virtio_ring.c 		struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2281 drivers/virtio/virtio_ring.c dma_addr_t virtqueue_get_desc_addr(struct virtqueue *_vq)
_vq              2283 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2294 drivers/virtio/virtio_ring.c dma_addr_t virtqueue_get_avail_addr(struct virtqueue *_vq)
_vq              2296 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq              2308 drivers/virtio/virtio_ring.c dma_addr_t virtqueue_get_used_addr(struct virtqueue *_vq)
_vq              2310 drivers/virtio/virtio_ring.c 	struct vring_virtqueue *vq = to_vvq(_vq);
_vq               114 include/linux/virtio_ring.h irqreturn_t vring_interrupt(int irq, void *_vq);