| 402 | } |
| 403 | |
| 404 | static int io_uring_queue_init_try_nosqarr(unsigned entries, struct io_uring *ring, |
| 405 | struct io_uring_params *p, void *buf, |
| 406 | size_t buf_size) |
| 407 | { |
| 408 | unsigned flags = p->flags; |
| 409 | int ret; |
| 410 | |
| 411 | p->flags |= IORING_SETUP_NO_SQARRAY; |
| 412 | ret = __io_uring_queue_init_params(entries, ring, p, buf, buf_size); |
| 413 | |
| 414 | /* don't fallback if explicitly asked for NOSQARRAY */ |
| 415 | if (ret != -EINVAL || (flags & IORING_SETUP_NO_SQARRAY)) |
| 416 | return ret; |
| 417 | |
| 418 | p->flags = flags; |
| 419 | return __io_uring_queue_init_params(entries, ring, p, buf, buf_size); |
| 420 | } |
| 421 | |
| 422 | /* |
| 423 | * Like io_uring_queue_init_params(), except it allows the application to pass |
no test coverage detected