From: Pratyush Yadav <pratyush@kernel.org>
To: luca.boccassi@gmail.com
Cc: kexec@lists.infradead.org, linux-mm@kvack.org, rppt@kernel.org,
pasha.tatashin@soleen.com, pratyush@kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v10 3/4] liveupdate: add LIVEUPDATE_SESSION_GET_NAME ioctl
Date: Wed, 29 Apr 2026 16:35:19 +0200 [thread overview]
Message-ID: <2vxz1pfx4yxk.fsf@kernel.org> (raw)
In-Reply-To: <20260423234753.3873095-4-luca.boccassi@gmail.com> (luca boccassi's message of "Fri, 24 Apr 2026 00:44:22 +0100")
On Fri, Apr 24 2026, luca.boccassi@gmail.com wrote:
> From: Luca Boccassi <luca.boccassi@gmail.com>
>
> Userspace when requesting a session via the ioctl specifies a name and
> gets a FD, but then there is no ioctl to go back the other way and get
> the name given a LUO session FD. This is problematic especially when
> there is a userspace orchestrator that wants to check what FDs it is
> handling for clients without having to do manual string scraping of
> procfs, or without procfs at all.
>
> Add a ioctl to simply get the name from an FD.
>
> Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
> Reviewed-by: Pasha Tatashin <pasha.tatashin@soleen.com>
> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> ---
> include/uapi/linux/liveupdate.h | 21 +++++++++++++++++++++
> kernel/liveupdate/luo_session.c | 13 +++++++++++++
> 2 files changed, 34 insertions(+)
>
> diff --git a/include/uapi/linux/liveupdate.h b/include/uapi/linux/liveupdate.h
> index 30bc66ee9436..3a9ff53b02e0 100644
> --- a/include/uapi/linux/liveupdate.h
> +++ b/include/uapi/linux/liveupdate.h
> @@ -59,6 +59,7 @@ enum {
> LIVEUPDATE_CMD_SESSION_PRESERVE_FD = LIVEUPDATE_CMD_SESSION_BASE,
> LIVEUPDATE_CMD_SESSION_RETRIEVE_FD = 0x41,
> LIVEUPDATE_CMD_SESSION_FINISH = 0x42,
> + LIVEUPDATE_CMD_SESSION_GET_NAME = 0x43,
> };
>
> /**
> @@ -213,4 +214,24 @@ struct liveupdate_session_finish {
> #define LIVEUPDATE_SESSION_FINISH \
> _IO(LIVEUPDATE_IOCTL_TYPE, LIVEUPDATE_CMD_SESSION_FINISH)
>
> +/**
> + * struct liveupdate_session_get_name - ioctl(LIVEUPDATE_SESSION_GET_NAME)
> + * @size: Input; sizeof(struct liveupdate_session_get_name)
> + * @reserved: Input; Must be zero. Reserved for future use.
You need to enforce this in luo_session_get_name(). Otherwise some
userspace might try to get clever and stash some data here. Then if we
ever put something else here it will break that userspace.
With this fixed,
Reviewed-by: Pratyush Yadav <pratyush@kernel.org>
> + * @name: Output; A null-terminated string with the full session name.
> + *
> + * Retrieves the full name of the session associated with this file descriptor.
> + * This is useful because the kernel may truncate the name shown in /proc.
> + *
> + * Return: 0 on success, negative error code on failure.
> + */
> +struct liveupdate_session_get_name {
> + __u32 size;
> + __u32 reserved;
> + __u8 name[LIVEUPDATE_SESSION_NAME_LENGTH];
> +};
> +
> +#define LIVEUPDATE_SESSION_GET_NAME \
> + _IO(LIVEUPDATE_IOCTL_TYPE, LIVEUPDATE_CMD_SESSION_GET_NAME)
> +
> #endif /* _UAPI_LIVEUPDATE_H */
> diff --git a/kernel/liveupdate/luo_session.c b/kernel/liveupdate/luo_session.c
> index 5e316a4c5d71..0bcf2def074e 100644
> --- a/kernel/liveupdate/luo_session.c
> +++ b/kernel/liveupdate/luo_session.c
> @@ -289,10 +289,21 @@ static int luo_session_finish(struct luo_session *session,
> return luo_ucmd_respond(ucmd, sizeof(*argp));
> }
>
> +static int luo_session_get_name(struct luo_session *session,
> + struct luo_ucmd *ucmd)
> +{
> + struct liveupdate_session_get_name *argp = ucmd->cmd;
> +
> + strscpy((char *)argp->name, session->name, sizeof(argp->name));
> +
> + return luo_ucmd_respond(ucmd, sizeof(*argp));
> +}
> +
> union ucmd_buffer {
> struct liveupdate_session_finish finish;
> struct liveupdate_session_preserve_fd preserve;
> struct liveupdate_session_retrieve_fd retrieve;
> + struct liveupdate_session_get_name get_name;
> };
>
> struct luo_ioctl_op {
> @@ -319,6 +330,8 @@ static const struct luo_ioctl_op luo_session_ioctl_ops[] = {
> struct liveupdate_session_preserve_fd, token),
> IOCTL_OP(LIVEUPDATE_SESSION_RETRIEVE_FD, luo_session_retrieve_fd,
> struct liveupdate_session_retrieve_fd, token),
> + IOCTL_OP(LIVEUPDATE_SESSION_GET_NAME, luo_session_get_name,
> + struct liveupdate_session_get_name, name),
> };
>
> static long luo_session_ioctl(struct file *filep, unsigned int cmd,
--
Regards,
Pratyush Yadav
next prev parent reply other threads:[~2026-04-29 14:35 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-23 23:44 [PATCH v10 0/4] liveupdate: bug fix for session name and new ioctl to read it luca.boccassi
2026-04-23 23:44 ` [PATCH v10 1/4] liveupdate: reject LIVEUPDATE_IOCTL_CREATE_SESSION with invalid name length luca.boccassi
2026-04-29 14:24 ` Pratyush Yadav
2026-04-29 14:27 ` Luca Boccassi
2026-04-23 23:44 ` [PATCH v10 2/4] selftests/liveupdate: add test cases for LIVEUPDATE_IOCTL_CREATE_SESSION calls with invalid length luca.boccassi
2026-04-29 14:27 ` Pratyush Yadav
2026-04-23 23:44 ` [PATCH v10 3/4] liveupdate: add LIVEUPDATE_SESSION_GET_NAME ioctl luca.boccassi
2026-04-29 14:35 ` Pratyush Yadav [this message]
2026-04-29 21:23 ` Luca Boccassi
2026-04-23 23:44 ` [PATCH v10 4/4] selftests/liveupdate: add test cases for LIVEUPDATE_SESSION_GET_NAME luca.boccassi
2026-04-29 14:37 ` Pratyush Yadav
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2vxz1pfx4yxk.fsf@kernel.org \
--to=pratyush@kernel.org \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luca.boccassi@gmail.com \
--cc=pasha.tatashin@soleen.com \
--cc=rppt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.