Lines Matching refs:reg
533 static int io_pin_pbuf_ring(struct io_uring_buf_reg *reg,
540 pages = io_pin_pages(reg->ring_addr,
541 flex_array_size(br, bufs, reg->ring_entries),
568 if ((reg->ring_addr | (unsigned long) br) & (SHM_COLOUR - 1))
613 struct io_uring_buf_reg *reg,
620 ring_size = reg->ring_entries * sizeof(struct io_uring_buf_ring);
648 struct io_uring_buf_reg reg;
654 if (copy_from_user(®, arg, sizeof(reg)))
657 if (reg.resv[0] || reg.resv[1] || reg.resv[2])
659 if (reg.flags & ~IOU_PBUF_RING_MMAP)
661 if (!(reg.flags & IOU_PBUF_RING_MMAP)) {
662 if (!reg.ring_addr)
664 if (reg.ring_addr & ~PAGE_MASK)
667 if (reg.ring_addr)
671 if (!is_power_of_2(reg.ring_entries))
675 if (reg.ring_entries >= 65536)
678 if (unlikely(reg.bgid < BGID_ARRAY && !ctx->io_bl)) {
684 bl = io_buffer_get_list(ctx, reg.bgid);
695 if (!(reg.flags & IOU_PBUF_RING_MMAP))
696 ret = io_pin_pbuf_ring(®, bl);
698 ret = io_alloc_pbuf_ring(ctx, ®, bl);
701 bl->nr_entries = reg.ring_entries;
702 bl->mask = reg.ring_entries - 1;
704 io_buffer_add_list(ctx, bl, reg.bgid);
714 struct io_uring_buf_reg reg;
719 if (copy_from_user(®, arg, sizeof(reg)))
721 if (reg.resv[0] || reg.resv[1] || reg.resv[2])
723 if (reg.flags)
726 bl = io_buffer_get_list(ctx, reg.bgid);