diff options
author | Ammar Faizi <ammarfaizi2@gnuweeb.org> | 2022-02-25 07:58:14 +0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-02-25 07:16:08 -0700 |
commit | 15c01fcd1b0d37a12d945ab8dcdf96b3e055a4fd (patch) | |
tree | 48b31d6e9fc1415462f8ca1a2e68047e758a6ddb /src/queue.c | |
parent | 896a1d3ab14a8777a45db6e7b67cf557a44923fb (diff) | |
download | liburing-15c01fcd1b0d37a12d945ab8dcdf96b3e055a4fd.tar.gz liburing-15c01fcd1b0d37a12d945ab8dcdf96b3e055a4fd.tar.bz2 |
queue, liburing.h: Avoid `io_uring_get_sqe()` code duplication
Since commit 8be8af4afcb4909104c ("queue: provide io_uring_get_sqe()
symbol again"), we have the same definition of `io_uring_get_sqe()` in
queue.c and liburing.h.
Make it simpler, maintain it in a single place, create a new static
inline function wrapper with name `_io_uring_get_sqe()`. Then tail
call both `io_uring_get_sqe()` functions to `_io_uring_get_sqe()`.
Cc: Nugra <richiisei@gmail.com>
Cc: Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>
Cc: GNU/Weeb Mailing List <gwml@vger.gnuweeb.org>
Cc: Tea Inside Mailing List <timl@vger.teainside.org>
Cc: io-uring Mailing List <io-uring@vger.kernel.org>
Link: https://lore.kernel.org/io-uring/20220225002852.111521-1-ammarfaizi2@gnuweeb.org # v1
Reviewed-by: Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>
Tested-by: Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>
Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org>
Link: https://lore.kernel.org/r/20220225005814.146492-1-ammarfaizi2@gnuweeb.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'src/queue.c')
-rw-r--r-- | src/queue.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/src/queue.c b/src/queue.c index 6b63490..f9b6c86 100644 --- a/src/queue.c +++ b/src/queue.c @@ -405,16 +405,7 @@ int io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr) struct io_uring_sqe *io_uring_get_sqe(struct io_uring *ring) { - struct io_uring_sq *sq = &ring->sq; - unsigned int head = io_uring_smp_load_acquire(sq->khead); - unsigned int next = sq->sqe_tail + 1; - struct io_uring_sqe *sqe = NULL; - - if (next - head <= *sq->kring_entries) { - sqe = &sq->sqes[sq->sqe_tail & *sq->kring_mask]; - sq->sqe_tail = next; - } - return sqe; + return _io_uring_get_sqe(ring); } int __io_uring_sqring_wait(struct io_uring *ring) |