Home
last modified time | relevance | path

Searched refs:vq (Results 1 – 25 of 115) sorted by relevance

12345

/linux/drivers/virtio/
H A Dvirtio_ring.c22 dev_err(&(_vq)->vq.vdev->dev, \
23 "%s:"fmt, (_vq)->vq.name, ##args); \
31 (_vq)->vq.name, (_vq)->in_use); \
59 dev_err(&_vq->vq.vdev->dev, \
60 "%s:"fmt, (_vq)->vq.name, ##args); \
63 #define START_USE(vq) argument
64 #define END_USE(vq) argument
65 #define LAST_ADD_TIME_UPDATE(vq) argument
66 #define LAST_ADD_TIME_CHECK(vq) argument
67 #define LAST_ADD_TIME_INVALID(vq) argument
[all …]
H A Dvirtio_vdpa.c93 static bool virtio_vdpa_notify(struct virtqueue *vq) in virtio_vdpa_notify() argument
95 struct vdpa_device *vdpa = vd_get_vdpa(vq->vdev); in virtio_vdpa_notify()
98 ops->kick_vq(vdpa, vq->index); in virtio_vdpa_notify()
103 static bool virtio_vdpa_notify_with_data(struct virtqueue *vq) in virtio_vdpa_notify_with_data() argument
105 struct vdpa_device *vdpa = vd_get_vdpa(vq->vdev); in virtio_vdpa_notify_with_data()
107 u32 data = vring_notification_data(vq); in virtio_vdpa_notify_with_data()
125 struct virtqueue *vq = private; in virtio_vdpa_virtqueue_cb() local
127 return vring_interrupt(0, vq); in virtio_vdpa_virtqueue_cb()
132 void (*callback)(struct virtqueue *vq), in virtio_vdpa_setup_vq() argument
137 bool (*notify)(struct virtqueue *vq) = virtio_vdpa_notify; in virtio_vdpa_setup_vq()
[all …]
H A Dvirtio_pci_common.c51 bool vp_notify(struct virtqueue *vq) in vp_notify() argument
55 iowrite16(vq->index, (void __iomem *)vq->priv); in vp_notify()
68 vring_interrupt(irq, info->vq); in vp_vring_slow_path_interrupt()
92 if (vring_interrupt(irq, info->vq) == IRQ_HANDLED) in vp_vring_interrupt()
204 void (*callback)(struct virtqueue *vq), in vp_setup_vq() argument
212 struct virtqueue *vq; in vp_setup_vq() local
219 vq = vp_dev->setup_vq(vp_dev, info, index, callback, name, ctx, in vp_setup_vq()
221 if (IS_ERR(vq)) in vp_setup_vq()
224 info->vq = vq; in vp_setup_vq()
237 return vq; in vp_setup_vq()
[all …]
H A Dvirtio_pci_modern.c47 void vp_modern_avq_done(struct virtqueue *vq) in vp_modern_avq_done() argument
49 struct virtio_pci_device *vp_dev = to_vp_device(vq->vdev); in vp_modern_avq_done()
58 virtqueue_disable_cb(vq); in vp_modern_avq_done()
59 while ((cmd = virtqueue_get_buf(vq, &len))) { in vp_modern_avq_done()
73 } while (!virtqueue_enable_cb(vq)); in vp_modern_avq_done()
84 struct virtqueue *vq; in virtqueue_exec_admin_cmd() local
88 vq = admin_vq->info->vq; in virtqueue_exec_admin_cmd()
89 if (!vq) in virtqueue_exec_admin_cmd()
100 if (virtqueue_is_broken(vq)) in virtqueue_exec_admin_cmd()
104 ret = virtqueue_add_sgs(vq, sgs, out_num, in_num, cmd, GFP_KERNEL); in virtqueue_exec_admin_cmd()
[all …]
H A Dvirtio_pci_legacy.c113 void (*callback)(struct virtqueue *vq), in setup_vq() argument
118 struct virtqueue *vq; in setup_vq() local
131 vq = vring_create_virtqueue(index, num, in setup_vq()
135 if (!vq) in setup_vq()
138 vq->num_max = num; in setup_vq()
140 q_pfn = virtqueue_get_desc_addr(vq) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT; in setup_vq()
152 vq->priv = (void __force *)vp_dev->ldev.ioaddr + VIRTIO_PCI_QUEUE_NOTIFY; in setup_vq()
162 return vq; in setup_vq()
167 vring_del_virtqueue(vq); in setup_vq()
173 struct virtqueue *vq = info->vq; in del_vq() local
[all …]
H A Dvirtio_rtc_driver.c36 struct virtqueue *vq; member
134 static int viortc_feed_vq(struct viortc_dev *viortc, struct virtqueue *vq, in viortc_feed_vq() argument
141 return virtqueue_add_inbuf(vq, &sg, 1, data, GFP_ATOMIC); in viortc_feed_vq()
227 static void viortc_do_cb(struct virtqueue *vq, in viortc_do_cb() argument
229 struct virtqueue *vq, in viortc_do_cb()
233 struct viortc_dev *viortc = vq->vdev->priv; in viortc_do_cb()
240 viortc_vq = &viortc->vqs[vq->index]; in viortc_do_cb()
246 virtqueue_disable_cb(vq); in viortc_do_cb()
250 token = virtqueue_get_buf(vq, &len); in viortc_do_cb()
252 if (virtqueue_enable_cb(vq)) { in viortc_do_cb()
[all …]
H A Dvirtio_mmio.c271 static bool vm_notify(struct virtqueue *vq) in vm_notify() argument
273 struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); in vm_notify()
277 writel(vq->index, vm_dev->base + VIRTIO_MMIO_QUEUE_NOTIFY); in vm_notify()
281 static bool vm_notify_with_data(struct virtqueue *vq) in vm_notify_with_data() argument
283 struct virtio_mmio_device *vm_dev = to_virtio_mmio_device(vq->vdev); in vm_notify_with_data()
284 u32 data = vring_notification_data(vq); in vm_notify_with_data()
295 struct virtqueue *vq; in vm_interrupt() local
309 virtio_device_for_each_vq(&vm_dev->vdev, vq) in vm_interrupt()
310 ret |= vring_interrupt(irq, vq); in vm_interrupt()
318 static void vm_del_vq(struct virtqueue *vq) in vm_del_vq() argument
[all …]
/linux/drivers/vhost/
H A Dvhost.c57 #define vhost_used_event(vq) ((__virtio16 __user *)&vq->avail->ring[vq->num]) argument
58 #define vhost_avail_event(vq) ((__virtio16 __user *)&vq->used->ring[vq->num]) argument
61 static void vhost_disable_cross_endian(struct vhost_virtqueue *vq) in vhost_disable_cross_endian() argument
63 vq->user_be = !virtio_legacy_is_little_endian(); in vhost_disable_cross_endian()
66 static void vhost_enable_cross_endian_big(struct vhost_virtqueue *vq) in vhost_enable_cross_endian_big() argument
68 vq->user_be = true; in vhost_enable_cross_endian_big()
71 static void vhost_enable_cross_endian_little(struct vhost_virtqueue *vq) in vhost_enable_cross_endian_little() argument
73 vq->user_be = false; in vhost_enable_cross_endian_little()
76 static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) in vhost_set_vring_endian() argument
80 if (vq->private_data) in vhost_set_vring_endian()
[all …]
H A Dnet.c101 struct vhost_virtqueue *vq; member
113 struct vhost_virtqueue vq; member
240 static void vhost_net_enable_zcopy(int vq) in vhost_net_enable_zcopy() argument
242 vhost_net_zcopy_mask |= 0x1 << vq; in vhost_net_enable_zcopy()
246 vhost_net_ubuf_alloc(struct vhost_virtqueue *vq, bool zcopy) in vhost_net_ubuf_alloc() argument
257 ubufs->vq = vq; in vhost_net_ubuf_alloc()
373 struct vhost_virtqueue *vq) in vhost_zerocopy_signal_used() argument
376 container_of(vq, struct vhost_net_virtqueue, vq); in vhost_zerocopy_signal_used()
381 if (vq->heads[i].len == VHOST_DMA_FAILED_LEN) in vhost_zerocopy_signal_used()
383 if (VHOST_DMA_IS_DONE(vq->heads[i].len)) { in vhost_zerocopy_signal_used()
[all …]
H A Dtest.c51 struct vhost_virtqueue *vq = &n->vqs[VHOST_TEST_VQ]; in handle_vq() local
57 mutex_lock(&vq->mutex); in handle_vq()
58 private = vhost_vq_get_backend(vq); in handle_vq()
60 mutex_unlock(&vq->mutex); in handle_vq()
64 vhost_disable_notify(&n->dev, vq); in handle_vq()
67 head = vhost_get_vq_desc(vq, vq->iov, in handle_vq()
68 ARRAY_SIZE(vq->iov), in handle_vq()
75 if (head == vq->num) { in handle_vq()
76 if (unlikely(vhost_enable_notify(&n->dev, vq))) { in handle_vq()
77 vhost_disable_notify(&n->dev, vq); in handle_vq()
[all …]
H A Dscsi.c217 struct vhost_virtqueue vq; member
309 struct vhost_virtqueue *vq; in vhost_scsi_init_inflight() local
313 vq = &vs->vqs[i].vq; in vhost_scsi_init_inflight()
315 mutex_lock(&vq->mutex); in vhost_scsi_init_inflight()
328 mutex_unlock(&vq->mutex); in vhost_scsi_init_inflight()
333 vhost_scsi_get_inflight(struct vhost_virtqueue *vq) in vhost_scsi_get_inflight() argument
338 svq = container_of(vq, struct vhost_scsi_virtqueue, vq); in vhost_scsi_get_inflight()
379 static int vhost_scsi_copy_cmd_log(struct vhost_virtqueue *vq, in vhost_scsi_copy_cmd_log() argument
385 cmd->tvc_log = kmalloc_objs(*cmd->tvc_log, vq->dev->iov_limit); in vhost_scsi_copy_cmd_log()
388 vq_err(vq, "Failed to alloc tvc_log\n"); in vhost_scsi_copy_cmd_log()
[all …]
/linux/arch/arm64/include/uapi/asm/
H A Dsve_context.h42 #define __sve_vl_from_vq(vq) ((vq) * __SVE_VQ_BYTES) argument
44 #define __SVE_ZREG_SIZE(vq) ((__u32)(vq) * __SVE_VQ_BYTES) argument
45 #define __SVE_PREG_SIZE(vq) ((__u32)(vq) * (__SVE_VQ_BYTES / 8)) argument
46 #define __SVE_FFR_SIZE(vq) __SVE_PREG_SIZE(vq) argument
49 #define __SVE_ZREG_OFFSET(vq, n) \ argument
50 (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n))
51 #define __SVE_ZREGS_SIZE(vq) \ argument
52 (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET)
54 #define __SVE_PREGS_OFFSET(vq) \ argument
55 (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq))
[all …]
/linux/tools/virtio/
H A Dvhost_net_test.c42 struct virtqueue *vq; member
138 static bool vq_notify(struct virtqueue *vq) in vq_notify() argument
140 struct vq_info *info = vq->priv; in vq_notify()
180 if (info->vq) in vq_reset()
181 vring_del_virtqueue(info->vq); in vq_reset()
185 info->vq = vring_new_virtqueue(info->idx, num, 4096, vdev, true, false, in vq_reset()
187 assert(info->vq); in vq_reset()
188 info->vq->priv = info; in vq_reset()
257 static void wait_for_interrupt(struct vq_info *vq) in wait_for_interrupt() argument
261 poll(&vq->fds, 1, 100); in wait_for_interrupt()
[all …]
H A Dvirtio_test.c35 struct virtqueue *vq; member
53 bool vq_notify(struct virtqueue *vq) in vq_notify() argument
55 struct vq_info *info = vq->priv; in vq_notify()
63 void vq_callback(struct virtqueue *vq) in vq_callback() argument
100 if (info->vq) in vq_reset()
101 vring_del_virtqueue(info->vq); in vq_reset()
105 info->vq = vring_new_virtqueue(info->idx, num, 4096, vdev, true, false, in vq_reset()
107 assert(info->vq); in vq_reset()
108 info->vq->priv = info; in vq_reset()
169 static void run_test(struct vdev_info *dev, struct vq_info *vq, in run_test() argument
[all …]
/linux/include/linux/
H A Dvirtio.h36 void (*callback)(struct virtqueue *vq);
55 int virtqueue_add_outbuf(struct virtqueue *vq,
60 int virtqueue_add_inbuf(struct virtqueue *vq,
65 int virtqueue_add_inbuf_cache_clean(struct virtqueue *vq,
70 int virtqueue_add_inbuf_ctx(struct virtqueue *vq,
76 int virtqueue_add_inbuf_premapped(struct virtqueue *vq,
82 int virtqueue_add_outbuf_premapped(struct virtqueue *vq,
87 int virtqueue_add_sgs(struct virtqueue *vq,
94 struct device *virtqueue_dma_dev(struct virtqueue *vq);
96 bool virtqueue_kick(struct virtqueue *vq);
[all …]
/linux/net/vmw_vsock/
H A Dvirtio_transport.c101 static int virtio_transport_send_skb(struct sk_buff *skb, struct virtqueue *vq, in virtio_transport_send_skb() argument
146 ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, skb, gfp); in virtio_transport_send_skb()
162 struct virtqueue *vq; in virtio_transport_send_pkt_work() local
171 vq = vsock->vqs[VSOCK_VQ_TX]; in virtio_transport_send_pkt_work()
184 ret = virtio_transport_send_skb(skb, vq, vsock, GFP_KERNEL); in virtio_transport_send_pkt_work()
205 virtqueue_kick(vq); in virtio_transport_send_pkt_work()
219 struct virtqueue *vq = vsock->vqs[VSOCK_VQ_TX]; in virtio_transport_send_skb_fast_path() local
227 ret = virtio_transport_send_skb(skb, vq, vsock, GFP_ATOMIC); in virtio_transport_send_skb_fast_path()
229 virtqueue_kick(vq); in virtio_transport_send_skb_fast_path()
315 struct virtqueue *vq; in virtio_vsock_rx_fill() local
[all …]
/linux/drivers/vdpa/vdpa_user/
H A Dvduse_dev.c297 struct vduse_virtqueue *vq, in vduse_dev_get_vq_state_packed() argument
304 msg.req.vq_state.index = vq->index; in vduse_dev_get_vq_state_packed()
323 struct vduse_virtqueue *vq, in vduse_dev_get_vq_state_split() argument
330 msg.req.vq_state.index = vq->index; in vduse_dev_get_vq_state_split()
519 struct vduse_virtqueue *vq = dev->vqs[i]; in vduse_dev_reset() local
521 scoped_guard(spinlock_bh, &vq->ready_lock) { in vduse_dev_reset()
522 vq->ready = false; in vduse_dev_reset()
524 vq->desc_addr = 0; in vduse_dev_reset()
525 vq->driver_addr = 0; in vduse_dev_reset()
526 vq->device_addr = 0; in vduse_dev_reset()
[all …]
/linux/drivers/vdpa/vdpa_sim/
H A Dvdpa_sim.c84 struct vdpasim_virtqueue *vq = in vdpasim_vq_notify() local
87 if (!vq->cb) in vdpasim_vq_notify()
90 vq->cb(vq->private); in vdpasim_vq_notify()
95 struct vdpasim_virtqueue *vq = &vdpasim->vqs[idx]; in vdpasim_queue_ready() local
96 uint16_t last_avail_idx = vq->vring.last_avail_idx; in vdpasim_queue_ready()
98 (uintptr_t)vq->desc_addr; in vdpasim_queue_ready()
100 (uintptr_t)vq->driver_addr; in vdpasim_queue_ready()
102 (uintptr_t)vq->device_addr; in vdpasim_queue_ready()
105 vringh_init_iotlb_va(&vq->vring, vdpasim->features, vq->num, in vdpasim_queue_ready()
108 vringh_init_iotlb(&vq->vring, vdpasim->features, vq->num, in vdpasim_queue_ready()
[all …]
/linux/tools/testing/selftests/arm64/fp/
H A Dfp-ptrace.c422 int ret, vq; in check_ptrace_values_sve()
428 vq = __sve_vq_from_vl(config->sve_vl_in); in check_ptrace_values_sve()
430 buf_size = SVE_PT_SVE_OFFSET + SVE_PT_SVE_SIZE(vq, SVE_PT_REGS_SVE); in check_ptrace_values_sve()
474 if (sve->size != SVE_PT_SIZE(vq, sve->flags)) { in check_ptrace_values_sve()
476 sve->size, SVE_PT_SIZE(vq, sve->flags)); in check_ptrace_values_sve()
484 iov.iov_base + SVE_PT_SVE_ZREG_OFFSET(vq, 0), in check_ptrace_values_ssve()
485 z_in, SVE_PT_SVE_ZREGS_SIZE(vq))) in check_ptrace_values_ssve()
489 iov.iov_base + SVE_PT_SVE_PREG_OFFSET(vq, 0), in check_ptrace_values_ssve()
490 p_in, SVE_PT_SVE_PREGS_SIZE(vq))) in check_ptrace_values_ssve()
494 iov.iov_base + SVE_PT_SVE_FFR_OFFSET(vq), in check_ptrace_values_ssve()
404 int ret, vq; check_ptrace_values_sve() local
488 int ret, vq; check_ptrace_values_ssve() local
570 int ret, vq; check_ptrace_values_za() local
870 fill_random_ffr(void * buf,size_t vq) fill_random_ffr() argument
891 int vq = __sve_vq_from_vl(vl); fpsimd_to_sve() local
906 int vq = __sve_vq_from_vl(vl_in(config)); set_initial_values() local
974 int vq, sme_vq; check_memory_values() local
1182 int ret, vl, vq, regset; sve_write_sve() local
1229 int ret, vl, vq; sve_write_fpsimd() local
1296 int ret, vq; za_write() local
1483 unsigned int vq; probe_vls() local
[all...]
H A Dsve-ptrace.c459 unsigned int vq = sve_vq_from_vl(vl); in ptrace_set_sve_get_sve_data() local
464 data_size = SVE_PT_SVE_OFFSET + SVE_PT_SVE_SIZE(vq, SVE_PT_REGS_SVE); in ptrace_set_sve_get_sve_data()
480 fill_buf(write_buf + SVE_PT_SVE_ZREG_OFFSET(vq, i), in ptrace_set_sve_get_sve_data()
481 SVE_PT_SVE_ZREG_SIZE(vq)); in ptrace_set_sve_get_sve_data()
484 fill_buf(write_buf + SVE_PT_SVE_PREG_OFFSET(vq, i), in ptrace_set_sve_get_sve_data()
485 SVE_PT_SVE_PREG_SIZE(vq)); in ptrace_set_sve_get_sve_data()
487 fill_buf(write_buf + SVE_PT_SVE_FPSR_OFFSET(vq), SVE_PT_SVE_FPSR_SIZE); in ptrace_set_sve_get_sve_data()
488 fill_buf(write_buf + SVE_PT_SVE_FPCR_OFFSET(vq), SVE_PT_SVE_FPCR_SIZE); in ptrace_set_sve_get_sve_data()
516 if (memcmp(write_buf + SVE_PT_SVE_ZREG_OFFSET(vq, i), in ptrace_set_sve_get_sve_data()
517 read_buf + SVE_PT_SVE_ZREG_OFFSET(vq, i), in ptrace_set_sve_get_sve_data()
[all …]
H A Dsve-probe-vls.c20 unsigned int vq; in main() local
34 for (vq = SVE_VQ_MAX; vq > 0; --vq) { in main()
35 vl = prctl(PR_SVE_SET_VL, vq * 16); in main()
48 vq = sve_vq_from_vl(vl); in main()
53 vqs[nvqs++] = vq; in main()
/linux/tools/testing/selftests/arm64/signal/
H A Dsve_helpers.c18 int vq, vl; in sve_fill_vls() local
25 for (vq = SVE_VQ_MAX; vq > 0; --vq) { in sve_fill_vls()
26 vl = prctl(pr_set_vl, vq * 16); in sve_fill_vls()
41 if (vq < sve_vq_from_vl(vl)) in sve_fill_vls()
45 vq = sve_vq_from_vl(vl); in sve_fill_vls()
/linux/arch/um/drivers/
H A Dvirtio_uml.c383 struct virtqueue *vq; in vu_req_read_message() local
405 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in vu_req_read_message()
406 if (vq->index == msg.msg.payload.vring_state.index) { in vu_req_read_message()
408 vu_dev->vq_irq_vq_map |= BIT_ULL(vq->index); in vu_req_read_message()
445 struct virtqueue *vq; in vu_req_interrupt() local
447 virtio_device_for_each_vq((&vu_dev->vdev), vq) { in vu_req_interrupt()
448 if (vu_dev->vq_irq_vq_map & BIT_ULL(vq->index)) in vu_req_interrupt()
449 vring_interrupt(0 /* ignored */, vq); in vu_req_interrupt()
791 static bool vu_notify(struct virtqueue *vq) in vu_notify() argument
793 struct virtio_uml_vq_info *info = vq->priv; in vu_notify()
[all …]
/linux/drivers/i2c/busses/
H A Di2c-virtio.c31 struct virtqueue *vq; member
48 static void virtio_i2c_msg_done(struct virtqueue *vq) in virtio_i2c_msg_done() argument
53 while ((req = virtqueue_get_buf(vq, &len))) in virtio_i2c_msg_done()
57 static int virtio_i2c_prepare_reqs(struct virtqueue *vq, in virtio_i2c_prepare_reqs() argument
100 if (virtqueue_add_sgs(vq, sgs, outcnt, incnt, &reqs[i], GFP_KERNEL)) { in virtio_i2c_prepare_reqs()
109 static int virtio_i2c_complete_reqs(struct virtqueue *vq, in virtio_i2c_complete_reqs() argument
138 struct virtqueue *vq = vi->vq; in virtio_i2c_xfer() local
146 count = virtio_i2c_prepare_reqs(vq, reqs, msgs, num); in virtio_i2c_xfer()
158 virtqueue_kick(vq); in virtio_i2c_xfer()
160 count = virtio_i2c_complete_reqs(vq, reqs, msgs, count); in virtio_i2c_xfer()
[all …]
/linux/drivers/vdpa/pds/
H A Ddebugfs.c238 struct pds_vdpa_vq_info *vq = seq->private; in vq_show() local
240 seq_printf(seq, "ready: %d\n", vq->ready); in vq_show()
241 seq_printf(seq, "desc_addr: %#llx\n", vq->desc_addr); in vq_show()
242 seq_printf(seq, "avail_addr: %#llx\n", vq->avail_addr); in vq_show()
243 seq_printf(seq, "used_addr: %#llx\n", vq->used_addr); in vq_show()
244 seq_printf(seq, "q_len: %d\n", vq->q_len); in vq_show()
245 seq_printf(seq, "qid: %d\n", vq->qid); in vq_show()
247 seq_printf(seq, "doorbell: %#llx\n", vq->doorbell); in vq_show()
248 seq_printf(seq, "avail_idx: %d\n", vq->avail_idx); in vq_show()
249 seq_printf(seq, "used_idx: %d\n", vq->used_idx); in vq_show()
[all …]

12345