From: Jens Axboe Date: Wed, 8 Jul 2020 21:15:26 +0000 (-0600) Subject: io_uring: only call kfree() for a non-zero pointer X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=5acbbc8ed3a9aef71c6eb5f19ba24f7321200220;p=linux.git io_uring: only call kfree() for a non-zero pointer It's safe to call kfree() with a NULL pointer, but it's also pointless. Most of the time we don't have any data to free, and at millions of requests per second, the redundant function call adds noticeable overhead (about 1.3% of the runtime). Signed-off-by: Jens Axboe --- diff --git a/fs/io_uring.c b/fs/io_uring.c index 14168fbc7d797..51ff88330f9a8 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -1519,7 +1519,8 @@ static void io_dismantle_req(struct io_kiocb *req) if (req->flags & REQ_F_NEED_CLEANUP) io_cleanup_req(req); - kfree(req->io); + if (req->io) + kfree(req->io); if (req->file) io_put_file(req, req->file, (req->flags & REQ_F_FIXED_FILE)); __io_put_req_task(req);