diff options
author | Gabriel Krisman Bertazi <krisman@suse.de> | 2024-03-13 17:39:12 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2024-03-13 16:08:25 -0600 |
commit | 67d1189d1095d471ed7fa426c7e384a7140a5dd7 (patch) | |
tree | 3eba0ba911d19f5961e3fa34e3cc53e3bfd6ea84 /io_uring/poll.c | |
parent | 9219e4a9d4ad57323837f7c3562964e61840b17a (diff) |
io_uring: Fix release of pinned pages when __io_uaddr_map fails
Looking at the error path of __io_uaddr_map, if we fail after pinning
the pages for any reasons, ret will be set to -EINVAL and the error
handler won't properly release the pinned pages.
I didn't manage to trigger it without forcing a failure, but it can
happen in real life when memory is heavily fragmented.
Signed-off-by: Gabriel Krisman Bertazi <krisman@suse.de>
Fixes: 223ef4743164 ("io_uring: don't allow IORING_SETUP_NO_MMAP rings on highmem pages")
Link: https://lore.kernel.org/r/20240313213912.1920-1-krisman@suse.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/poll.c')
0 files changed, 0 insertions, 0 deletions