aboutsummaryrefslogtreecommitdiffstats
path: root/tools/io_uring/setup.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2019-06-26 12:39:34 +0100
committerMark Brown <broonie@kernel.org>2019-06-26 12:39:34 +0100
commit53c8b29abe42e5601cfa0ea5962532f0cfdec8a0 (patch)
treecad53f42ce7a03c39a984bcdbcc42cd47f1af6f9 /tools/io_uring/setup.c
parentASoC: soc-core: don't use soc_find_component() at snd_soc_find_dai() (diff)
parentLinux 5.2-rc6 (diff)
downloadlinux-dev-53c8b29abe42e5601cfa0ea5962532f0cfdec8a0.tar.xz
linux-dev-53c8b29abe42e5601cfa0ea5962532f0cfdec8a0.zip
Merge tag 'v5.2-rc6' into asoc-5.3
Linux 5.2-rc6
Diffstat (limited to 'tools/io_uring/setup.c')
-rw-r--r--tools/io_uring/setup.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/io_uring/setup.c b/tools/io_uring/setup.c
index 4da19a77132c..0b50fcd78520 100644
--- a/tools/io_uring/setup.c
+++ b/tools/io_uring/setup.c
@@ -27,7 +27,7 @@ static int io_uring_mmap(int fd, struct io_uring_params *p,
sq->kdropped = ptr + p->sq_off.dropped;
sq->array = ptr + p->sq_off.array;
- size = p->sq_entries * sizeof(struct io_uring_sqe),
+ size = p->sq_entries * sizeof(struct io_uring_sqe);
sq->sqes = mmap(0, size, PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_POPULATE, fd,
IORING_OFF_SQES);
@@ -79,7 +79,7 @@ int io_uring_queue_mmap(int fd, struct io_uring_params *p, struct io_uring *ring
int io_uring_queue_init(unsigned entries, struct io_uring *ring, unsigned flags)
{
struct io_uring_params p;
- int fd;
+ int fd, ret;
memset(&p, 0, sizeof(p));
p.flags = flags;
@@ -88,7 +88,11 @@ int io_uring_queue_init(unsigned entries, struct io_uring *ring, unsigned flags)
if (fd < 0)
return fd;
- return io_uring_queue_mmap(fd, &p, ring);
+ ret = io_uring_queue_mmap(fd, &p, ring);
+ if (ret)
+ close(fd);
+
+ return ret;
}
void io_uring_queue_exit(struct io_uring *ring)