Messages in this thread Patch in this message | | | From | Kent Overstreet <> | Subject | [PATCH 1/2] fs/aio: Use kmap_local() instead of kmap() | Date | Wed, 18 Jan 2023 10:26:02 -0500 |
| |
Originally, we used kmap() instead of kmap_atomic() for reading events out of the completion ringbuffer because we're using copy_to_user(), which can fault.
Now that kmap_local() is a thing, use that instead.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> Cc: Benjamin LaHaise <bcrl@kvack.org Cc: linux-aio@kvack.org Cc: linux-fsdevel@vger.kernel.org --- fs/aio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/aio.c b/fs/aio.c index 5b2ff20ad3..3f795ed2a2 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1246,10 +1246,10 @@ static long aio_read_events_ring(struct kioctx *ctx, avail = min(avail, nr - ret); avail = min_t(long, avail, AIO_EVENTS_PER_PAGE - pos); - ev = kmap(page); + ev = kmap_local_page(page); copy_ret = copy_to_user(event + ret, ev + pos, sizeof(*ev) * avail); - kunmap(page); + kunmap_local(ev); if (unlikely(copy_ret)) { ret = -EFAULT; -- 2.39.0
| |