Skip to content

[GIT PULL] man: fix four small errors in man pages - #1659

Merged
axboe merged 4 commits into
axboe:masterfrom
ilyas-mallah:man-small-fixes
Oct 22, 2026
Merged

axboe merged 4 commits into
axboe:masterfrom
ilyas-mallah:man-small-fixes

Conversation

@ilyas-mallah

Copy link
Copy Markdown
Contributor

Four man pages have errors a reader can check against the header or the kernel source. Each fix is its own commit.

The io_uring_prep_send_zc_fixed() prototype ends one argument early, so the SYNOPSIS pasted into C fails with "conflicting types". The zone reset page says "Available since Linux 7.TBD", it is 7.3. The futex_waitv page says flags must be the futex flags, then that they must be 0, and io_futexv_prep() in v7.3 returns -EINVAL for a non-zero value. The io_uring_for_each_cqe() example advances the CQ ring by a CQE count, which falls short once a 32b CQE takes two slots.

I compiled the pasted prototype before and after, and ran the example against a hand built CQ ring. CQE_MIXED needs 6.18 and I have 5.15, so no mixed ring kernel ran. The futex change comes from the source only.

before: error: conflicting types for 'io_uring_prep_send_zc_fixed'
after:  compiles
old example (i++):          CQ head 3 of 4 slots
io_uring_cqe_nr(cqe) sum:   CQ head 4 of 4 slots

git request-pull output:

The following changes since commit 73e93dfd1167cfce66ce1b09466fc97fa6dedd6d:

  Merge branch 'ffi-map-buf-ring-head' of github.com:ilyas-mallah/liburing (2026-10-21 08:20:46 -0600)

are available in the Git repository at:

  https://github.com/ilyas-mallah/liburing man-small-fixes

for you to fetch changes up to 30b07bf2c3199676cc77a0a2b82e2ab3f3e41fda:

  man/io_uring_for_each_cqe.3: advance by CQ slots, not by CQEs (2026-10-21 16:47:23 +0200)

----------------------------------------------------------------
Ilyas Mallah (4):
      man/io_uring_prep_send_zc.3: fix the send_zc_fixed prototype
      man/io_uring_prep_cmd_zone_reset_all.3: fill in the kernel version
      man/io_uring_prep_futex_waitv.3: drop the claim that flags is used
      man/io_uring_for_each_cqe.3: advance by CQ slots, not by CQEs

 man/io_uring_for_each_cqe.3            | 13 +++++++++----
 man/io_uring_prep_cmd_zone_reset_all.3 |  2 +-
 man/io_uring_prep_futex_waitv.3        |  2 --
 man/io_uring_prep_send_zc.3            |  2 +-
 4 files changed, 11 insertions(+), 8 deletions(-)

Click to show/hide pull request guidelines

Pull Request Guidelines

  1. To make everyone easily filter pull request from the email
    notification, use [GIT PULL] as a prefix in your PR title.
[GIT PULL] Your Pull Request Title
  1. Follow the commit message format rules below.
  2. Follow the Linux kernel coding style (see: https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst).

Commit message format rules:

  1. The first line is title (don't be more than 72 chars if possible).
  2. Then an empty line.
  3. Then a description (may be omitted for truly trivial changes).
  4. Then an empty line again (if it has a description).
  5. Then a Signed-off-by tag with your real name and email. For example:
Signed-off-by: Foo Bar <foo.bar@gmail.com>

The description should be word-wrapped at 72 chars. Some things should
not be word-wrapped. They may be some kind of quoted text - long
compiler error messages, oops reports, Link, etc. (things that have a
certain specific format).

Note that all of this goes in the commit message, not in the pull
request text. The pull request text should introduce what this pull
request does, and each commit message should explain the rationale for
why that particular change was made. The git tree is canonical source
of truth, not github.

Each patch should do one thing, and one thing only. If you find yourself
writing an explanation for why a patch is fixing multiple issues, that's
a good indication that the change should be split into separate patches.

If the commit is a fix for an issue, add a Fixes tag with the issue
URL.

Don't use GitHub anonymous email like this as the commit author:

123456789+username@users.noreply.github.com

Use a real email address!

Commit message example:

src/queue: don't flush SQ ring for new wait interface

If we have IORING_FEAT_EXT_ARG, then timeouts are done through the
syscall instead of by posting an internal timeout. This was done
to be both more efficient, but also to enable multi-threaded use
the wait side. If we touch the SQ state by flushing it, that isn't
safe without synchronization.

Fixes: https://github.com/axboe/liburing/issues/402
Signed-off-by: Jens Axboe <axboe@kernel.dk>

By submitting this pull request, I acknowledge that:

  1. I have followed the above pull request guidelines.
  2. I have the rights to submit this work under the same license.
  3. I agree to a Developer Certificate of Origin (see https://developercertificate.org for more information).

The prototype ends the zc_flags line with ");" and puts buf_index on
the next line, so the synopsis is not a valid declaration. End the line
with a comma.

Fixes: d0ba544 ("man: Add manpage for io_uring_prep_send_zc_fixed()")
Signed-off-by: Ilyas Mallah <github@ilyasm.dev>
The page says "Available since Linux 7.TBD". The command is in Linux
7.3, where block/ioctl.c handles BLOCK_URING_CMD_ZONE_RESET_ALL.

Fixes: 9d17991 ("man: add io_uring_prep_cmd_zone_reset_all.3 man page")
Signed-off-by: Ilyas Mallah <github@ilyasm.dev>
The page says flags must be set to the futex flags, then that flags are
unused and 0 must be passed. The second is right: io_futexv_prep()
returns -EINVAL for a non-zero sqe->futex_flags.

Fixes: e58e411 ("Add futex related man pages")
Signed-off-by: Ilyas Mallah <github@ilyasm.dev>
With IORING_SETUP_CQE_MIXED the iterator steps over two CQ ring slots
for a 32b CQE, but the example counts one per CQE and passes that to
io_uring_cq_advance(). The head ends short and CQEs are seen again.
Count with io_uring_cqe_nr(), as io_uring_cqe_seen() does.

Fixes: 9cecbdb ("Add support for IORING_SETUP_CQE_MIXED")
Signed-off-by: Ilyas Mallah <github@ilyasm.dev>
@axboe
axboe merged commit f33bc2f into axboe:master Oct 22, 2026
19 of 20 checks passed
@ilyas-mallah
ilyas-mallah deleted the man-small-fixes branch October 22, 2026 23:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants