summaryrefslogtreecommitdiff
path: root/src/queue.c
diff options
context:
space:
mode:
authorAmmar Faizi <ammarfaizi2@gnuweeb.org>2022-02-25 07:58:14 +0700
committerJens Axboe <axboe@kernel.dk>2022-02-25 07:16:08 -0700
commit15c01fcd1b0d37a12d945ab8dcdf96b3e055a4fd (patch)
tree48b31d6e9fc1415462f8ca1a2e68047e758a6ddb /src/queue.c
parent896a1d3ab14a8777a45db6e7b67cf557a44923fb (diff)
downloadliburing-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.c11
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)