[PATCH 1/2] nvme: send uevent on connection up
Hannes Reinecke
hare at suse.de
Wed Feb 2 23:15:52 PST 2022
On 2/2/22 22:34, Martin Belanger wrote:
> From: Martin Belanger <martin.belanger at dell.com>
>
> When connectivity with a controller is lost, the driver will keep trying
> to reconnect once every 10 sec. When connection is restored, user-space
> apps need to be informed so that they can take proper action. For
> example, TP8010 introduces the DIM PDU, which is used to register with
> a discovery controller (DC). The DIM PDU is sent from user-space. The
> DIM PDU must be sent every time a connection is established with a DC.
> Therefore, the kernel must tell user-space apps when connection is
> restored so that registration can happen.
>
> The uevent sent is a "change" uevent with environmental data
> set to: "NVME_EVENT=connected".
>
> Signed-off-by: Martin Belanger <martin.belanger at dell.com>
> ---
> drivers/nvme/host/core.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 961a5f8a44d2..872c389dc6d3 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -4231,6 +4231,13 @@ static int nvme_class_uevent(struct device *dev, struct kobj_uevent_env *env)
> return ret;
> }
>
> +static void nvme_change_uevent(struct nvme_ctrl *ctrl, char *envdata)
> +{
> + char *envp[2] = { envdata, NULL };
> +
> + kobject_uevent_env(&ctrl->device->kobj, KOBJ_CHANGE, envp);
> +}
> +
> static void nvme_aen_uevent(struct nvme_ctrl *ctrl)
> {
> char *envp[2] = { NULL, NULL };
> @@ -4405,6 +4412,8 @@ void nvme_start_ctrl(struct nvme_ctrl *ctrl)
> nvme_queue_scan(ctrl);
> nvme_start_queues(ctrl);
> }
> +
> + nvme_change_uevent(ctrl, "NVME_EVENT=connected");
> }
> EXPORT_SYMBOL_GPL(nvme_start_ctrl);
>
Reviewed-by: Hannes Reinecke <hare at suse.de>
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare at suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
More information about the Linux-nvme
mailing list