Lines Matching defs:rings
161 /* Restrictions allowed only if rings started disabled */
374 struct io_rings *rings;
440 n.rings = io_region_get_ptr(&n.ring_region);
443 * At this point n.rings is shared with userspace, just like o.rings
450 WRITE_ONCE(n.rings->sq_ring_mask, p.sq_entries - 1);
451 WRITE_ONCE(n.rings->cq_ring_mask, p.cq_entries - 1);
452 WRITE_ONCE(n.rings->sq_ring_entries, p.sq_entries);
453 WRITE_ONCE(n.rings->cq_ring_entries, p.cq_entries);
495 * existing rings beyond this point will fail. Not that it could proceed
502 o.rings = ctx->rings;
503 ctx->rings = NULL;
509 * rings can't hold what is already there, then fail the operation.
511 tail = READ_ONCE(o.rings->sq.tail);
512 old_head = READ_ONCE(o.rings->sq.head);
521 WRITE_ONCE(n.rings->sq.head, old_head);
522 WRITE_ONCE(n.rings->sq.tail, tail);
524 tail = READ_ONCE(o.rings->cq.tail);
525 old_head = READ_ONCE(o.rings->cq.head);
528 /* restore old rings, and return -EOVERFLOW via cleanup path */
529 ctx->rings = o.rings;
539 n.rings->cqes[dst_head] = o.rings->cqes[src_head];
541 WRITE_ONCE(n.rings->cq.head, old_head);
542 WRITE_ONCE(n.rings->cq.tail, tail);
546 WRITE_ONCE(n.rings->sq_dropped, READ_ONCE(o.rings->sq_dropped));
547 atomic_set(&n.rings->sq_flags, atomic_read(&o.rings->sq_flags));
548 WRITE_ONCE(n.rings->cq_flags, READ_ONCE(o.rings->cq_flags));
549 WRITE_ONCE(n.rings->cq_overflow, READ_ONCE(o.rings->cq_overflow));
553 ctx->sq_array = (u32 *)((char *)n.rings + sq_array_offset);
558 ctx->rings = n.rings;