12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include "../config-host.h"
- /* SPDX-License-Identifier: MIT */
- /*
- * Description: test that a defer task_work file with tags unregistration
- * doesn't trigger a lockdep violation
- *
- */
- #include <stdio.h>
- #include <inttypes.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include "liburing.h"
- #include "helpers.h"
- int main(int argc, char *argv[])
- {
- __u64 tags[2] = { 1, 2 };
- struct io_uring ring;
- int fds[2], ret;
- if (argc > 1)
- return T_EXIT_SKIP;
- if (pipe(fds) < 0) {
- perror("pipe");
- return 1;
- }
- ret = io_uring_queue_init(4, &ring, IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_DEFER_TASKRUN);
- if (ret == -EINVAL) {
- return T_EXIT_SKIP;
- } else if (ret < 0) {
- fprintf(stderr, "queue_init: %d\n", ret);
- return T_EXIT_FAIL;
- }
- ret = io_uring_register_files_tags(&ring, fds, tags, 2);
- if (ret == -EINVAL) {
- return T_EXIT_SKIP;
- } else if (ret < 0) {
- fprintf(stderr, "file_register_init: %d\n", ret);
- return T_EXIT_FAIL;
- }
- io_uring_queue_exit(&ring);
- sleep(1);
- return 0;
- }
|