[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3h5wdobeinxy7bbhvw3aztcns33cea3irxg4ckwvmds56ynyi4@45fy2e3uemz2>
Date: Sun, 7 Sep 2025 14:33:59 +0200
From: Klara Modin <klarasmodin@...il.com>
To: Caleb Sander Mateos <csander@...estorage.com>
Cc: Jens Axboe <axboe@...nel.dk>, io-uring@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] io_uring/uring_cmd: add io_uring_cmd_tw_t type alias
Hi,
On 2025-09-02 10:06:56 -0600, Caleb Sander Mateos wrote:
> Introduce a function pointer type alias io_uring_cmd_tw_t for the
> uring_cmd task work callback. This avoids repeating the signature in
> several places. Also name both arguments to the callback to clarify what
> they represent.
>
> Signed-off-by: Caleb Sander Mateos <csander@...estorage.com>
> ---
> include/linux/io_uring/cmd.h | 13 ++++++++-----
> io_uring/uring_cmd.c | 2 +-
> 2 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/include/linux/io_uring/cmd.h b/include/linux/io_uring/cmd.h
> index 4bd3a7339243..7211157edfe9 100644
> --- a/include/linux/io_uring/cmd.h
> +++ b/include/linux/io_uring/cmd.h
> @@ -9,15 +9,18 @@
> /* only top 8 bits of sqe->uring_cmd_flags for kernel internal use */
> #define IORING_URING_CMD_CANCELABLE (1U << 30)
> /* io_uring_cmd is being issued again */
> #define IORING_URING_CMD_REISSUE (1U << 31)
>
> +typedef void (*io_uring_cmd_tw_t)(struct io_uring_cmd *cmd,
> + unsigned issue_flags);
> +
> struct io_uring_cmd {
> struct file *file;
> const struct io_uring_sqe *sqe;
> /* callback to defer completions to task context */
> - void (*task_work_cb)(struct io_uring_cmd *cmd, unsigned);
> + io_uring_cmd_tw_t task_work_cb;
> u32 cmd_op;
> u32 flags;
> u8 pdu[32]; /* available inline for free use */
> };
>
> @@ -55,11 +58,11 @@ int io_uring_cmd_import_fixed_vec(struct io_uring_cmd *ioucmd,
> */
> void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, u64 res2,
> unsigned issue_flags);
>
> void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd,
> - void (*task_work_cb)(struct io_uring_cmd *, unsigned),
> + io_uring_cmd_tw_t task_work_cb,
> unsigned flags);
>
> /*
> * Note: the caller should never hard code @issue_flags and only use the
> * mask provided by the core io_uring code.
> @@ -104,11 +107,11 @@ static inline int io_uring_cmd_import_fixed_vec(struct io_uring_cmd *ioucmd,
> static inline void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret,
> u64 ret2, unsigned issue_flags)
> {
> }
> static inline void __io_uring_cmd_do_in_task(struct io_uring_cmd *ioucmd,
> - void (*task_work_cb)(struct io_uring_cmd *, unsigned),
> + io_uring_tw_t task_work_cb,
There seems to have slipped in a typo for the !IO_URING stub here:
s/io_uring_tw_t/io_uring_cmd_tw_t/
> unsigned flags)
> {
> }
> static inline void io_uring_cmd_mark_cancelable(struct io_uring_cmd *cmd,
> unsigned int issue_flags)
...
Regards,
Klara Modin
Powered by blists - more mailing lists