Lines Matching refs:p
1314 static struct io_ring_ctx *io_ring_ctx_alloc(struct io_uring_params *p) in io_ring_ctx_alloc() argument
1327 hash_bits = ilog2(p->cq_entries); in io_ring_ctx_alloc()
1348 ctx->flags = p->flags; in io_ring_ctx_alloc()
4310 struct io_provide_buf *p = &req->pbuf; in io_remove_buffers_prep() local
4321 memset(p, 0, sizeof(*p)); in io_remove_buffers_prep()
4322 p->nbufs = tmp; in io_remove_buffers_prep()
4323 p->bgid = READ_ONCE(sqe->buf_group); in io_remove_buffers_prep()
4356 struct io_provide_buf *p = &req->pbuf; in io_remove_buffers() local
4367 head = xa_load(&ctx->io_buffers, p->bgid); in io_remove_buffers()
4369 ret = __io_remove_buffers(ctx, head, p->bgid, p->nbufs); in io_remove_buffers()
4383 struct io_provide_buf *p = &req->pbuf; in io_provide_buffers_prep() local
4392 p->nbufs = tmp; in io_provide_buffers_prep()
4393 p->addr = READ_ONCE(sqe->addr); in io_provide_buffers_prep()
4394 p->len = READ_ONCE(sqe->len); in io_provide_buffers_prep()
4396 if (check_mul_overflow((unsigned long)p->len, (unsigned long)p->nbufs, in io_provide_buffers_prep()
4399 if (check_add_overflow((unsigned long)p->addr, size, &tmp_check)) in io_provide_buffers_prep()
4402 size = (unsigned long)p->len * p->nbufs; in io_provide_buffers_prep()
4403 if (!access_ok(u64_to_user_ptr(p->addr), size)) in io_provide_buffers_prep()
4406 p->bgid = READ_ONCE(sqe->buf_group); in io_provide_buffers_prep()
4410 p->bid = tmp; in io_provide_buffers_prep()
4444 struct io_provide_buf *p = &req->pbuf; in io_provide_buffers() local
4454 list = head = xa_load(&ctx->io_buffers, p->bgid); in io_provide_buffers()
4456 ret = io_add_buffers(p, &head); in io_provide_buffers()
4458 ret = xa_insert(&ctx->io_buffers, p->bgid, head, in io_provide_buffers()
4461 __io_remove_buffers(ctx, head, p->bgid, -1U); in io_provide_buffers()
5724 struct poll_table_struct *p) in io_poll_queue_proc() argument
5726 struct io_poll_table *pt = container_of(p, struct io_poll_table, pt); in io_poll_queue_proc()
5791 struct poll_table_struct *p) in io_async_queue_proc() argument
5793 struct io_poll_table *pt = container_of(p, struct io_poll_table, pt); in io_async_queue_proc()
8112 static struct io_sq_data *io_attach_sq_data(struct io_uring_params *p) in io_attach_sq_data() argument
8118 f = fdget(p->wq_fd); in io_attach_sq_data()
8142 static struct io_sq_data *io_get_sq_data(struct io_uring_params *p, in io_get_sq_data() argument
8148 if (p->flags & IORING_SETUP_ATTACH_WQ) { in io_get_sq_data()
8149 sqd = io_attach_sq_data(p); in io_get_sq_data()
8727 struct io_uring_params *p) in io_sq_offload_create() argument
8736 f = fdget(p->wq_fd); in io_sq_offload_create()
8750 sqd = io_get_sq_data(p, &attached); in io_sq_offload_create()
8758 ctx->sq_thread_idle = msecs_to_jiffies(p->sq_thread_idle); in io_sq_offload_create()
8774 if (p->flags & IORING_SETUP_SQ_AFF) { in io_sq_offload_create()
8775 int cpu = p->sq_thread_cpu; in io_sq_offload_create()
8798 } else if (p->flags & IORING_SETUP_SQ_AFF) { in io_sq_offload_create()
10289 struct io_uring_params *p) in io_allocate_scq_urings() argument
10295 ctx->sq_entries = p->sq_entries; in io_allocate_scq_urings()
10296 ctx->cq_entries = p->cq_entries; in io_allocate_scq_urings()
10298 size = rings_size(p->sq_entries, p->cq_entries, &sq_array_offset); in io_allocate_scq_urings()
10308 rings->sq_ring_mask = p->sq_entries - 1; in io_allocate_scq_urings()
10309 rings->cq_ring_mask = p->cq_entries - 1; in io_allocate_scq_urings()
10310 rings->sq_ring_entries = p->sq_entries; in io_allocate_scq_urings()
10311 rings->cq_ring_entries = p->cq_entries; in io_allocate_scq_urings()
10313 size = array_size(sizeof(struct io_uring_sqe), p->sq_entries); in io_allocate_scq_urings()
10378 static int io_uring_create(unsigned entries, struct io_uring_params *p, in io_uring_create() argument
10388 if (!(p->flags & IORING_SETUP_CLAMP)) in io_uring_create()
10401 p->sq_entries = roundup_pow_of_two(entries); in io_uring_create()
10402 if (p->flags & IORING_SETUP_CQSIZE) { in io_uring_create()
10408 if (!p->cq_entries) in io_uring_create()
10410 if (p->cq_entries > IORING_MAX_CQ_ENTRIES) { in io_uring_create()
10411 if (!(p->flags & IORING_SETUP_CLAMP)) in io_uring_create()
10413 p->cq_entries = IORING_MAX_CQ_ENTRIES; in io_uring_create()
10415 p->cq_entries = roundup_pow_of_two(p->cq_entries); in io_uring_create()
10416 if (p->cq_entries < p->sq_entries) in io_uring_create()
10419 p->cq_entries = 2 * p->sq_entries; in io_uring_create()
10422 ctx = io_ring_ctx_alloc(p); in io_uring_create()
10438 ret = io_allocate_scq_urings(ctx, p); in io_uring_create()
10442 ret = io_sq_offload_create(ctx, p); in io_uring_create()
10451 memset(&p->sq_off, 0, sizeof(p->sq_off)); in io_uring_create()
10452 p->sq_off.head = offsetof(struct io_rings, sq.head); in io_uring_create()
10453 p->sq_off.tail = offsetof(struct io_rings, sq.tail); in io_uring_create()
10454 p->sq_off.ring_mask = offsetof(struct io_rings, sq_ring_mask); in io_uring_create()
10455 p->sq_off.ring_entries = offsetof(struct io_rings, sq_ring_entries); in io_uring_create()
10456 p->sq_off.flags = offsetof(struct io_rings, sq_flags); in io_uring_create()
10457 p->sq_off.dropped = offsetof(struct io_rings, sq_dropped); in io_uring_create()
10458 p->sq_off.array = (char *)ctx->sq_array - (char *)ctx->rings; in io_uring_create()
10460 memset(&p->cq_off, 0, sizeof(p->cq_off)); in io_uring_create()
10461 p->cq_off.head = offsetof(struct io_rings, cq.head); in io_uring_create()
10462 p->cq_off.tail = offsetof(struct io_rings, cq.tail); in io_uring_create()
10463 p->cq_off.ring_mask = offsetof(struct io_rings, cq_ring_mask); in io_uring_create()
10464 p->cq_off.ring_entries = offsetof(struct io_rings, cq_ring_entries); in io_uring_create()
10465 p->cq_off.overflow = offsetof(struct io_rings, cq_overflow); in io_uring_create()
10466 p->cq_off.cqes = offsetof(struct io_rings, cqes); in io_uring_create()
10467 p->cq_off.flags = offsetof(struct io_rings, cq_flags); in io_uring_create()
10469 p->features = IORING_FEAT_SINGLE_MMAP | IORING_FEAT_NODROP | in io_uring_create()
10476 if (copy_to_user(params, p, sizeof(*p))) { in io_uring_create()
10498 trace_io_uring_create(ret, ctx, p->sq_entries, p->cq_entries, p->flags); in io_uring_create()
10512 struct io_uring_params p; in io_uring_setup() local
10515 if (copy_from_user(&p, params, sizeof(p))) in io_uring_setup()
10517 for (i = 0; i < ARRAY_SIZE(p.resv); i++) { in io_uring_setup()
10518 if (p.resv[i]) in io_uring_setup()
10522 if (p.flags & ~(IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL | in io_uring_setup()
10528 return io_uring_create(entries, &p, params); in io_uring_setup()
10539 struct io_uring_probe *p; in io_probe() local
10543 size = struct_size(p, ops, nr_args); in io_probe()
10546 p = kzalloc(size, GFP_KERNEL); in io_probe()
10547 if (!p) in io_probe()
10551 if (copy_from_user(p, arg, size)) in io_probe()
10554 if (memchr_inv(p, 0, size)) in io_probe()
10557 p->last_op = IORING_OP_LAST - 1; in io_probe()
10562 p->ops[i].op = i; in io_probe()
10564 p->ops[i].flags = IO_URING_OP_SUPPORTED; in io_probe()
10566 p->ops_len = i; in io_probe()
10569 if (copy_to_user(arg, p, size)) in io_probe()
10572 kfree(p); in io_probe()