| /linux/tools/testing/selftests/drivers/net/ |
| H A D | hds.py | 16 rings = netnl.rings_get({'header': {'dev-index': cfg.ifindex}}) 19 if 'tcp-data-split' not in rings: 21 return rings['tcp-data-split'] 37 rings = netnl.rings_get({'header': {'dev-index': cfg.ifindex}}) 41 if 'tx' not in rings: 57 rings = netnl.rings_get({'header': {'dev-index': cfg.ifindex}}) 60 if 'hds-thresh' not in rings: 64 def _hds_reset(cfg, netnl, rings) -> None: argument 68 if cur.get('tcp-data-split') != rings.get('tcp-data-split'): 74 if cur['tcp-data-split'] == rings['tcp-data-split']: [all …]
|
| /linux/drivers/i3c/master/mipi-i3c-hci/ |
| H A D | dma.c | 150 struct hci_rings_data *rings = hci->io_data; in hci_dma_cleanup() local 154 if (!rings) in hci_dma_cleanup() 157 for (i = 0; i < rings->total; i++) { in hci_dma_cleanup() 158 rh = &rings->headers[i]; in hci_dma_cleanup() 166 for (i = 0; i < rings->total; i++) { in hci_dma_cleanup() 167 rh = &rings->headers[i]; in hci_dma_cleanup() 179 struct hci_rings_data *rings = hci->io_data; in hci_dma_free() local 182 if (!rings) in hci_dma_free() 185 for (int i = 0; i < rings->total; i++) { in hci_dma_free() 186 rh = &rings->headers[i]; in hci_dma_free() [all …]
|
| /linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/ |
| H A D | flowring.c | 142 if (flow->rings[i] == NULL) in brcmf_flowring_create() 160 flow->rings[i] = ring; in brcmf_flowring_create() 172 ring = flow->rings[flowid]; in brcmf_flowring_tid() 192 ring = flow->rings[flowid]; in brcmf_flowring_block() 201 if ((flow->rings[i]) && (i != flowid)) { in brcmf_flowring_block() 202 ring = flow->rings[i]; in brcmf_flowring_block() 212 flow->rings[flowid]->blocked = blocked; in brcmf_flowring_block() 236 ring = flow->rings[flowid]; in brcmf_flowring_delete() 247 flow->rings[flowid] = NULL; in brcmf_flowring_delete() 264 ring = flow->rings[flowid]; in brcmf_flowring_enqueue() [all …]
|
| /linux/drivers/net/ethernet/intel/libie/ |
| H A D | fwlog.c | 78 static bool libie_fwlog_ring_empty(struct libie_fwlog_ring *rings) in libie_fwlog_ring_empty() argument 80 return rings->head == rings->tail; in libie_fwlog_ring_empty() 88 static int libie_fwlog_alloc_ring_buffs(struct libie_fwlog_ring *rings) in libie_fwlog_alloc_ring_buffs() argument 93 nr_bytes = rings->size * LIBIE_AQ_MAX_BUF_LEN; in libie_fwlog_alloc_ring_buffs() 98 for (i = 0; i < rings->size; i++) { in libie_fwlog_alloc_ring_buffs() 99 struct libie_fwlog_data *ring = &rings->rings[i]; in libie_fwlog_alloc_ring_buffs() 109 static void libie_fwlog_free_ring_buffs(struct libie_fwlog_ring *rings) in libie_fwlog_free_ring_buffs() argument 113 for (i = 0; i < rings->size; i++) { in libie_fwlog_free_ring_buffs() 114 struct libie_fwlog_data *ring = &rings->rings[i]; in libie_fwlog_free_ring_buffs() 156 ring.rings = kzalloc_objs(*ring.rings, ring_size); in libie_fwlog_realloc_rings() [all …]
|
| /linux/io_uring/ |
| H A D | register.c | 473 struct io_rings *rings; member 535 n.rings = io_region_get_ptr(&n.ring_region); in io_register_resize_rings() 545 WRITE_ONCE(n.rings->sq_ring_mask, p->sq_entries - 1); in io_register_resize_rings() 546 WRITE_ONCE(n.rings->cq_ring_mask, p->cq_entries - 1); in io_register_resize_rings() 547 WRITE_ONCE(n.rings->sq_ring_entries, p->sq_entries); in io_register_resize_rings() 548 WRITE_ONCE(n.rings->cq_ring_entries, p->cq_entries); in io_register_resize_rings() 588 o.rings = ctx->rings; in io_register_resize_rings() 589 ctx->rings = NULL; in io_register_resize_rings() 597 tail = READ_ONCE(o.rings->sq.tail); in io_register_resize_rings() 598 old_head = READ_ONCE(o.rings->sq.head); in io_register_resize_rings() [all …]
|
| H A D | wait.h | 32 struct io_rings *rings = io_get_rings(ctx); in __io_cqring_events() local 33 return ctx->cached_cq_tail - READ_ONCE(rings->cq.head); in __io_cqring_events() 38 struct io_rings *rings = io_get_rings(ctx); in __io_cqring_events_user() local 40 return READ_ONCE(rings->cq.tail) - READ_ONCE(rings->cq.head); in __io_cqring_events_user()
|
| H A D | wait.c | 84 struct io_rings *rings = io_get_rings(ctx); in io_cqring_min_timer_wakeup() local 86 if (iowq->cq_min_tail != READ_ONCE(rings->cq.tail)) in io_cqring_min_timer_wakeup() 193 struct io_rings *rings; in io_cqring_wait() local 210 rings = io_get_rings(ctx); in io_cqring_wait() 220 iowq.cq_tail = READ_ONCE(rings->cq.head) + min_events; in io_cqring_wait() 221 iowq.cq_min_tail = READ_ONCE(rings->cq.tail); in io_cqring_wait() 222 nr_wait = (int) iowq.cq_tail - READ_ONCE(rings->cq.tail); in io_cqring_wait() 224 rings = NULL; in io_cqring_wait()
|
| H A D | eventfd.c | 80 struct io_rings *rings; in io_eventfd_signal() local 84 rings = rcu_dereference(ctx->rings_rcu); in io_eventfd_signal() 85 if (!rings) in io_eventfd_signal() 87 if (READ_ONCE(rings->cq_flags) & IORING_CQ_EVENTFD_DISABLED) in io_eventfd_signal()
|
| H A D | tw.c | 41 atomic_andnot(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); in ctx_flush_and_put() 164 struct io_rings *rings = rcu_dereference(ctx->rings_rcu); in io_ctx_mark_taskrun() local 166 atomic_or(IORING_SQ_TASKRUN, &rings->sq_flags); in io_ctx_mark_taskrun() 253 atomic_or(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); in io_req_normal_work_add() 301 atomic_or(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); in io_run_local_work_continue() 336 atomic_andnot(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); in __io_run_local_work()
|
| H A D | io_uring.h | 155 struct io_rings *rings; in io_should_wake() local 159 rings = io_get_rings(ctx); in io_should_wake() 166 dist = READ_ONCE(rings->cq.tail) - (int) iowq->cq_tail; in io_should_wake() 415 smp_store_release(&ctx->rings->cq.tail, ctx->cached_cq_tail); in io_commit_cqring() 469 struct io_rings *rings = io_get_rings(ctx); in __io_sqring_entries() local 473 entries = smp_load_acquire(&rings->sq.tail) - ctx->cached_sq_head; in __io_sqring_entries()
|
| /linux/tools/net/ynl/samples/ |
| H A D | ethtool.c | |
| /linux/tools/testing/selftests/net/ |
| H A D | psock_fanout.c | 263 static int sock_fanout_read(int fds[], char *rings[], const int expect[]) in sock_fanout_read() argument 267 ret[0] = sock_fanout_read_ring(fds[0], rings[0]); in sock_fanout_read() 268 ret[1] = sock_fanout_read_ring(fds[1], rings[1]); in sock_fanout_read() 482 char *rings[2]; in test_datapath() local 501 rings[0] = sock_fanout_open_ring(fds[0]); in test_datapath() 502 rings[1] = sock_fanout_open_ring(fds[1]); in test_datapath() 505 sock_fanout_read(fds, rings, expect0); in test_datapath() 510 ret = sock_fanout_read(fds, rings, expect1); in test_datapath() 515 ret |= sock_fanout_read(fds, rings, expect2); in test_datapath() 517 if (munmap(rings[1], RING_NUM_FRAMES * getpagesize()) || in test_datapath() [all …]
|
| /linux/Documentation/mhi/ |
| H A D | mhi.rst | 58 Transfer rings: Used by the host to schedule work items for a channel. The 59 transfer rings are organized as a circular queue of Transfer Descriptors (TD). 64 Event rings: Used by the device to send completion and state transition messages 70 Command rings: Used by the host to send MHI commands to the device. The command 71 rings are organized as a circular queue of Command Descriptors (CD). 81 Two unidirectional channels with their associated transfer rings form a 87 Transfer rings 91 Transfer Descriptors (TD). TDs are managed through transfer rings, which are 101 Below is the basic usage of transfer rings: 110 buffer information, increments the WP to the next element and rings the [all …]
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_dev_coredump.c | 320 ring_idx = coredump->rings[i].ring_index; in amdgpu_devcoredump_format() 321 ring = coredump->adev->rings[ring_idx]; in amdgpu_devcoredump_format() 322 off = coredump->rings[i].offset; in amdgpu_devcoredump_format() 326 coredump->rings[i].rptr, in amdgpu_devcoredump_format() 327 coredump->rings[i].wptr, in amdgpu_devcoredump_format() 457 kvfree(coredump->rings); in amdgpu_devcoredump_free() 543 ring = adev->rings[i]; in amdgpu_coredump() 554 coredump->rings = kcalloc(ring_count, sizeof(struct amdgpu_coredump_ring), GFP_NOWAIT); in amdgpu_coredump() 555 if (coredump->rings && coredump->rings_dw) { in amdgpu_coredump() 557 ring = adev->rings[i]; in amdgpu_coredump() [all …]
|
| /linux/net/9p/ |
| H A D | trans_xen.c | 58 struct xen_9pfs_dataring *rings; member 136 ring = &priv->rings[num]; in p9_xen_request() 280 if (priv->rings) { in xen_9pfs_front_free() 282 struct xen_9pfs_dataring *ring = &priv->rings[i]; in xen_9pfs_front_free() 314 kfree(priv->rings); in xen_9pfs_front_free() 453 priv->rings = kzalloc_objs(*priv->rings, XEN_9PFS_NUM_RINGS); in xen_9pfs_front_init() 454 if (!priv->rings) { in xen_9pfs_front_init() 460 priv->rings[i].priv = priv; in xen_9pfs_front_init() 461 ret = xen_9pfs_front_alloc_dataring(dev, &priv->rings[i], in xen_9pfs_front_init() 487 priv->rings[i].ref); in xen_9pfs_front_init() [all …]
|
| /linux/drivers/crypto/intel/qat/qat_common/ |
| H A D | adf_transport.c | 267 ring = &bank->rings[ring_num]; in adf_create_ring() 338 adf_handle_response(&bank->rings[i]); in adf_ring_response_handler() 406 bank->rings = kzalloc_node(size, GFP_KERNEL, in adf_init_bank() 408 if (!bank->rings) in adf_init_bank() 425 ring = &bank->rings[i]; in adf_init_bank() 439 tx_ring = &bank->rings[i - hw_data->tx_rx_gap]; in adf_init_bank() 456 ring = &bank->rings[i]; in adf_init_bank() 460 kfree(bank->rings); in adf_init_bank() 530 struct adf_etr_ring_data *ring = &bank->rings[i]; in cleanup_bank() 538 kfree(bank->rings); in cleanup_bank() [all …]
|
| /linux/drivers/soc/ti/ |
| H A D | k3-ringacc.c | 219 struct k3_ring *rings; member 358 !(ringacc->rings[id].flags & K3_RING_FLAG_SHARED)) in k3_ringacc_request_ring() 360 else if (ringacc->rings[id].flags & K3_RING_FLAG_SHARED) in k3_ringacc_request_ring() 372 ringacc->rings[id].proxy_id = proxy_id; in k3_ringacc_request_ring() 381 ringacc->rings[id].use_count++; in k3_ringacc_request_ring() 383 return &ringacc->rings[id]; in k3_ringacc_request_ring() 419 *fwd_ring = &ringacc->rings[fwd_id]; in k3_dmaring_request_dual_ring() 420 *compl_ring = &ringacc->rings[fwd_id + ringacc->num_rings]; in k3_dmaring_request_dual_ring() 422 ringacc->rings[fwd_id].use_count++; in k3_dmaring_request_dual_ring() 755 reverse_ring = &ringacc->rings[ring->ring_id + ringacc->num_rings]; in k3_dmaring_cfg() [all …]
|
| /linux/tools/testing/selftests/drivers/net/hw/ |
| H A D | toeplitz.c | 113 static struct ring_state rings[RSS_MAX_CPUS]; variable 274 pkts_found |= recv_block(&rings[i]); in process_rings() 434 rings[i].cpu = i; in setup_rings() 435 rings[i].fd = create_ring(&rings[i].mmap); in setup_rings() 440 set_filter(rings[i].fd); in setup_rings() 448 if (munmap(rings[i].mmap, ring_block_nr * ring_block_sz)) in cleanup_rings() 450 if (close(rings[i].fd)) in cleanup_rings()
|
| /linux/drivers/block/xen-blkback/ |
| H A D | xenbus.c | 84 if (!blkif->rings || !blkif->rings[0].irq || !blkif->vbd.bdev_file) in xen_update_blkif_status() 110 ring = &blkif->rings[i]; in xen_update_blkif_status() 124 ring = &blkif->rings[i]; in xen_update_blkif_status() 134 blkif->rings = kzalloc_objs(struct xen_blkif_ring, blkif->nr_rings); in xen_blkif_alloc_rings() 135 if (!blkif->rings) in xen_blkif_alloc_rings() 139 struct xen_blkif_ring *ring = &blkif->rings[r]; in xen_blkif_alloc_rings() 273 struct xen_blkif_ring *ring = &blkif->rings[r]; in xen_blkif_disconnect() 337 kfree(blkif->rings); in xen_blkif_disconnect() 338 blkif->rings = NULL; in xen_blkif_disconnect() 388 if (!blkif->rings) \ [all …]
|
| /linux/Documentation/networking/ |
| H A D | af_xdp.rst | 24 syscall. Associated with each XSK are two rings: the RX ring and the 26 packets on the TX ring. These rings are registered and sized with the 28 to have at least one of these rings for each socket. An RX or TX 37 one of the rings references a frame by referencing its addr. The addr 42 UMEM also has two rings: the FILL ring and the COMPLETION ring. The 50 TX ring. In summary, the RX and FILL rings are used for the RX path 51 and the TX and COMPLETION rings are used for the TX path. 59 corresponding two rings, sets the XDP_SHARED_UMEM flag in the bind 65 process has to create its own socket with associated RX and TX rings, 67 reason that there is only one set of FILL and COMPLETION rings per [all …]
|
| /linux/drivers/net/ethernet/netronome/nfp/ |
| H A D | Makefile | 24 nfd3/rings.o \ 27 nfdk/rings.o \
|
| /linux/Documentation/networking/device_drivers/ethernet/google/ |
| H A D | gve.rst | 125 The descriptor rings are power-of-two-sized ring buffers consisting of 136 gve maps the buffers for transmit rings into a FIFO and copies the packets 141 The buffers for receive rings are put into a data ring that is the same 143 the rings together.
|
| /linux/drivers/net/ |
| H A D | tap.c | 1196 struct ptr_ring **rings; in tap_queue_resize() local 1200 rings = kmalloc_objs(*rings, n); in tap_queue_resize() 1201 if (!rings) in tap_queue_resize() 1205 rings[i++] = &q->ring; in tap_queue_resize() 1207 ret = ptr_ring_resize_multiple_bh(rings, n, in tap_queue_resize() 1211 kfree(rings); in tap_queue_resize()
|
| /linux/Documentation/devicetree/bindings/net/ |
| H A D | opencores-ethoc.txt | 6 first region is for the device registers and descriptor rings,
|
| /linux/drivers/net/ethernet/broadcom/ |
| H A D | bcm4908_enet.c | 247 struct bcm4908_enet_dma_ring *rings[] = { &enet->rx_ring, &enet->tx_ring }; in bcm4908_enet_dma_reset() local 251 for (i = 0; i < ARRAY_SIZE(rings); i++) in bcm4908_enet_dma_reset() 252 enet_write(enet, rings[i]->cfg_block + ENET_DMA_CH_CFG, 0); in bcm4908_enet_dma_reset() 256 for (i = 0; i < ARRAY_SIZE(rings); i++) { in bcm4908_enet_dma_reset() 257 struct bcm4908_enet_dma_ring *ring = rings[i]; in bcm4908_enet_dma_reset()
|