* [PATCH v3 0/2] Support for Administrative Controllers @ 2025-07-18 0:14 Kamaljit Singh 2025-07-18 0:14 ` [PATCH v3 1/2] nvme: add capability to connect to an administrative controller Kamaljit Singh 2025-07-18 0:14 ` [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) Kamaljit Singh 0 siblings, 2 replies; 11+ messages in thread From: Kamaljit Singh @ 2025-07-18 0:14 UTC (permalink / raw) To: kbusch, axboe, hch, sagi, linux-nvme, linux-kernel Cc: cassel, dlemoal, kamaljit.singh1 [1] Add capability to connect to an administrative controller by preventing ioq creation. [2] Prevent an admin-ctrl from getting a smart log (LID=2) [3] Prevent ioq creation for discovery-controllers as the spec prohibits them. Kamaljit Singh (2): nvme: add capability to connect to an administrative controller nvme: prevent admin controller from smart log fetch (LID 2) drivers/nvme/host/core.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) -- 2.43.0 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 1/2] nvme: add capability to connect to an administrative controller 2025-07-18 0:14 [PATCH v3 0/2] Support for Administrative Controllers Kamaljit Singh @ 2025-07-18 0:14 ` Kamaljit Singh 2025-07-18 4:14 ` Damien Le Moal ` (2 more replies) 2025-07-18 0:14 ` [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) Kamaljit Singh 1 sibling, 3 replies; 11+ messages in thread From: Kamaljit Singh @ 2025-07-18 0:14 UTC (permalink / raw) To: kbusch, axboe, hch, sagi, linux-nvme, linux-kernel Cc: cassel, dlemoal, kamaljit.singh1 Suggested-by: Niklas Cassel <cassel@kernel.org> Add capability to connect to an administrative controller by preventing ioq creation for admin-controllers. * Add helper nvme_admin_ctrl() to check for an administrative controller * Add helper nvme_override_prohibited_io_queues() to override queue_count * Call nvme_override_prohibited_io_queues() from nvme_init_ctrl_finish() so it applies to nvme/tcp and nvme/rdma Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> --- drivers/nvme/host/core.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index e533d791955d..105127638c31 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -3149,6 +3149,21 @@ static inline bool nvme_discovery_ctrl(struct nvme_ctrl *ctrl) return ctrl->opts && ctrl->opts->discovery_nqn; } +static inline bool nvme_admin_ctrl(struct nvme_ctrl *ctrl) +{ + return ctrl->cntrltype == NVME_CTRL_ADMIN; +} + +/* + * An admin controller has one admin queue, but no I/O queues. + * Override queue_count so it only creates an admin queue. + */ +static inline void nvme_override_prohibited_io_queues(struct nvme_ctrl *ctrl) +{ + if (nvme_admin_ctrl(ctrl)) + ctrl->queue_count = 1; +} + static bool nvme_validate_cntlid(struct nvme_subsystem *subsys, struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) { @@ -3670,6 +3685,12 @@ int nvme_init_ctrl_finish(struct nvme_ctrl *ctrl, bool was_suspended) if (ret) return ret; + if (nvme_admin_ctrl(ctrl)) + dev_dbg(ctrl->device, + "Subsystem %s is an administrative controller", + ctrl->subsys->subnqn); + nvme_override_prohibited_io_queues(ctrl); + ret = nvme_configure_apst(ctrl); if (ret < 0) return ret; -- 2.43.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/2] nvme: add capability to connect to an administrative controller 2025-07-18 0:14 ` [PATCH v3 1/2] nvme: add capability to connect to an administrative controller Kamaljit Singh @ 2025-07-18 4:14 ` Damien Le Moal 2025-07-18 8:15 ` Niklas Cassel 2025-07-22 7:06 ` Hannes Reinecke 2 siblings, 0 replies; 11+ messages in thread From: Damien Le Moal @ 2025-07-18 4:14 UTC (permalink / raw) To: Kamaljit Singh, kbusch, axboe, hch, sagi, linux-nvme, linux-kernel; +Cc: cassel On 2025/07/18 9:14, Kamaljit Singh wrote: > Suggested-by: Niklas Cassel <cassel@kernel.org> > > Add capability to connect to an administrative controller by > preventing ioq creation for admin-controllers. > > * Add helper nvme_admin_ctrl() to check for an administrative controller > * Add helper nvme_override_prohibited_io_queues() to override queue_count > * Call nvme_override_prohibited_io_queues() from nvme_init_ctrl_finish() > so it applies to nvme/tcp and nvme/rdma > > Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> > --- > drivers/nvme/host/core.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index e533d791955d..105127638c31 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -3149,6 +3149,21 @@ static inline bool nvme_discovery_ctrl(struct nvme_ctrl *ctrl) > return ctrl->opts && ctrl->opts->discovery_nqn; > } > > +static inline bool nvme_admin_ctrl(struct nvme_ctrl *ctrl) > +{ > + return ctrl->cntrltype == NVME_CTRL_ADMIN; > +} > + > +/* > + * An admin controller has one admin queue, but no I/O queues. > + * Override queue_count so it only creates an admin queue. > + */ > +static inline void nvme_override_prohibited_io_queues(struct nvme_ctrl *ctrl) > +{ > + if (nvme_admin_ctrl(ctrl)) > + ctrl->queue_count = 1; > +} > + > static bool nvme_validate_cntlid(struct nvme_subsystem *subsys, > struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) > { > @@ -3670,6 +3685,12 @@ int nvme_init_ctrl_finish(struct nvme_ctrl *ctrl, bool was_suspended) > if (ret) > return ret; > > + if (nvme_admin_ctrl(ctrl)) > + dev_dbg(ctrl->device, > + "Subsystem %s is an administrative controller", > + ctrl->subsys->subnqn); > + nvme_override_prohibited_io_queues(ctrl); I do not think that this inline function is useful. Simply open-code it inside the if above: if (nvme_admin_ctrl(ctrl)) { /* * An admin controller has one admin queue, but no I/O queues. * Override queue_count so it only creates an admin queue. */ dev_dbg(ctrl->device, "Subsystem %s is an administrative controller", ctrl->subsys->subnqn); ctrl->queue_count = 1; } With this, feel free to add: Reviewed-by: Damien Le Moal <dlemoal@kernel.org> -- Damien Le Moal Western Digital Research ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/2] nvme: add capability to connect to an administrative controller 2025-07-18 0:14 ` [PATCH v3 1/2] nvme: add capability to connect to an administrative controller Kamaljit Singh 2025-07-18 4:14 ` Damien Le Moal @ 2025-07-18 8:15 ` Niklas Cassel 2025-07-22 7:06 ` Hannes Reinecke 2 siblings, 0 replies; 11+ messages in thread From: Niklas Cassel @ 2025-07-18 8:15 UTC (permalink / raw) To: Kamaljit Singh Cc: kbusch, axboe, hch, sagi, linux-nvme, linux-kernel, dlemoal Hello Kamaljit, I think that the patch looks good. That said, the Suggested-by trailer should go together with all other trailers at the end of the commit log, see e.g.: https://git.kernel.org/pub/scm/linux/kernel/git/libata/linux.git/commit/?id=a4daf088a77323154514eb1f8626bbdf9329cfd4 Kind regards, Niklas ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/2] nvme: add capability to connect to an administrative controller 2025-07-18 0:14 ` [PATCH v3 1/2] nvme: add capability to connect to an administrative controller Kamaljit Singh 2025-07-18 4:14 ` Damien Le Moal 2025-07-18 8:15 ` Niklas Cassel @ 2025-07-22 7:06 ` Hannes Reinecke 2025-07-22 17:34 ` Kamaljit Singh 2 siblings, 1 reply; 11+ messages in thread From: Hannes Reinecke @ 2025-07-22 7:06 UTC (permalink / raw) To: Kamaljit Singh, kbusch, axboe, hch, sagi, linux-nvme, linux-kernel Cc: cassel, dlemoal On 7/18/25 02:14, Kamaljit Singh wrote: > Suggested-by: Niklas Cassel <cassel@kernel.org> > > Add capability to connect to an administrative controller by > preventing ioq creation for admin-controllers. > > * Add helper nvme_admin_ctrl() to check for an administrative controller > * Add helper nvme_override_prohibited_io_queues() to override queue_count > * Call nvme_override_prohibited_io_queues() from nvme_init_ctrl_finish() > so it applies to nvme/tcp and nvme/rdma > > Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> > --- > drivers/nvme/host/core.c | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index e533d791955d..105127638c31 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -3149,6 +3149,21 @@ static inline bool nvme_discovery_ctrl(struct nvme_ctrl *ctrl) > return ctrl->opts && ctrl->opts->discovery_nqn; > } > > +static inline bool nvme_admin_ctrl(struct nvme_ctrl *ctrl) > +{ > + return ctrl->cntrltype == NVME_CTRL_ADMIN; > +} > + > +/* > + * An admin controller has one admin queue, but no I/O queues. > + * Override queue_count so it only creates an admin queue. > + */ > +static inline void nvme_override_prohibited_io_queues(struct nvme_ctrl *ctrl) > +{ > + if (nvme_admin_ctrl(ctrl)) > + ctrl->queue_count = 1; > +} > + > static bool nvme_validate_cntlid(struct nvme_subsystem *subsys, > struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) > { > @@ -3670,6 +3685,12 @@ int nvme_init_ctrl_finish(struct nvme_ctrl *ctrl, bool was_suspended) > if (ret) > return ret; > > + if (nvme_admin_ctrl(ctrl)) > + dev_dbg(ctrl->device, > + "Subsystem %s is an administrative controller", > + ctrl->subsys->subnqn); > + nvme_override_prohibited_io_queues(ctrl); > + > ret = nvme_configure_apst(ctrl); > if (ret < 0) > return ret; One wonders why this is done for admin controllers only; surely discovery controllers also don't support I/O queues, and should therefore have the same setting? Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/2] nvme: add capability to connect to an administrative controller 2025-07-22 7:06 ` Hannes Reinecke @ 2025-07-22 17:34 ` Kamaljit Singh 2025-07-23 6:10 ` hch 0 siblings, 1 reply; 11+ messages in thread From: Kamaljit Singh @ 2025-07-22 17:34 UTC (permalink / raw) To: Hannes Reinecke, kbusch@kernel.org, axboe@kernel.dk, hch, sagi@grimberg.me, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org Cc: cassel@kernel.org, dlemoal@kernel.org Hi Hannes, From: Hannes Reinecke <hare@suse.de> Date: Tuesday, July 22, 2025 at 00:06 >> Suggested-by: Niklas Cassel <cassel@kernel.org> >> >> Add capability to connect to an administrative controller by >> preventing ioq creation for admin-controllers. >> >> * Add helper nvme_admin_ctrl() to check for an administrative controller >> * Add helper nvme_override_prohibited_io_queues() to override queue_count >> * Call nvme_override_prohibited_io_queues() from nvme_init_ctrl_finish() >> so it applies to nvme/tcp and nvme/rdma >> >> Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> >> --- >> drivers/nvme/host/core.c | 21 +++++++++++++++++++++ >> 1 file changed, 21 insertions(+) >> >> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c >> index e533d791955d..105127638c31 100644 >> --- a/drivers/nvme/host/core.c >> +++ b/drivers/nvme/host/core.c >> @@ -3149,6 +3149,21 @@ static inline bool nvme_discovery_ctrl(struct nvme_ctrl *ctrl) >> return ctrl->opts && ctrl->opts->discovery_nqn; >> } >> >> +static inline bool nvme_admin_ctrl(struct nvme_ctrl *ctrl) >> +{ >> + return ctrl->cntrltype == NVME_CTRL_ADMIN; >> +} >> + >> +/* >> + * An admin controller has one admin queue, but no I/O queues. >> + * Override queue_count so it only creates an admin queue. >> + */ >> +static inline void nvme_override_prohibited_io_queues(struct nvme_ctrl *ctrl) >> +{ >> + if (nvme_admin_ctrl(ctrl)) >> + ctrl->queue_count = 1; >> +} >> + >> static bool nvme_validate_cntlid(struct nvme_subsystem *subsys, >> struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) >> { >> @@ -3670,6 +3685,12 @@ int nvme_init_ctrl_finish(struct nvme_ctrl *ctrl, bool was_suspended) >> if (ret) >> return ret; >> >> + if (nvme_admin_ctrl(ctrl)) >> + dev_dbg(ctrl->device, >> + "Subsystem %s is an administrative controller", >> + ctrl->subsys->subnqn); >> + nvme_override_prohibited_io_queues(ctrl); >> + >> ret = nvme_configure_apst(ctrl); >> if (ret < 0) >> return ret; > >One wonders why this is done for admin controllers only; surely >discovery controllers also don't support I/O queues, and should >therefore have the same setting? I agree. That was my patch-3 in v2, which I retracted in v3 based on your comment below. Is someone taking that action item to discuss at FMDS? I haven't attended it in a while. If everyone agrees, I can add patch-3 back in and create v5 or since v4 patch-1 was accepted, I can issue a standalone patch just for this change. Please let me know. >From: Hannes Reinecke <hare@suse.de> >Date: Thursday, July 3, 2025 at 02:42 >> Prevent ioq creation for discovery-controllers as the spec prohibits >> them, similarly to the administrative controllers. >> >> Reference: NVMe Base rev 2.2, sec 3.1.3.4, fig 28. >> >While this might be true, we already deal with discovery controllers >just fine, and never had issues with I/O queues being created. >Presumably because discovery controllers never exposed I/O queues >in the first place. > >Which also means that admin controllers should work already if they >would not expose I/O queues. BTW, the reason admin controllers didn't work without my patch is that nvme-cli "nvme connect" doesn't allow "--nr-io-queues=0" and the default =1 forces the kernel to create an I/O queue, which my patch overrides. > >We _might_ reduce the number of queues to '1' in nvme_set_queue_count(), >but then we should issue a warning here as this would be a configuration >error on the target side. > >'Prohibited' cuts both ways; the host shouldn't ask for it and the >controller shouldn't advertise it... > >Or that's at least my reading. Might be worthwhile clarifying this >at FMDS. Regards, Kamaljit ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 1/2] nvme: add capability to connect to an administrative controller 2025-07-22 17:34 ` Kamaljit Singh @ 2025-07-23 6:10 ` hch 0 siblings, 0 replies; 11+ messages in thread From: hch @ 2025-07-23 6:10 UTC (permalink / raw) To: Kamaljit Singh Cc: Hannes Reinecke, kbusch@kernel.org, axboe@kernel.dk, hch, sagi@grimberg.me, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, cassel@kernel.org, dlemoal@kernel.org On Tue, Jul 22, 2025 at 05:34:56PM +0000, Kamaljit Singh wrote: > >One wonders why this is done for admin controllers only; surely > >discovery controllers also don't support I/O queues, and should > >therefore have the same setting? > I agree. That was my patch-3 in v2, which I retracted in v3 based on > your comment below. Is someone taking that action item to discuss at FMDS? > I haven't attended it in a while. > > If everyone agrees, I can add patch-3 back in and create v5 or since v4 > patch-1 was accepted, I can issue a standalone patch just for this change. > Please let me know. While forcing it won't hurt, we had things working for almost 10 years by relying on userspace to request zero queues for discovery controllers. So I don't think it really matters. ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) 2025-07-18 0:14 [PATCH v3 0/2] Support for Administrative Controllers Kamaljit Singh 2025-07-18 0:14 ` [PATCH v3 1/2] nvme: add capability to connect to an administrative controller Kamaljit Singh @ 2025-07-18 0:14 ` Kamaljit Singh 2025-07-18 4:17 ` Damien Le Moal 2025-07-22 7:07 ` Hannes Reinecke 1 sibling, 2 replies; 11+ messages in thread From: Kamaljit Singh @ 2025-07-18 0:14 UTC (permalink / raw) To: kbusch, axboe, hch, sagi, linux-nvme, linux-kernel Cc: cassel, dlemoal, kamaljit.singh1 Similar to a discovery ctrl, prevent an admin-ctrl from getting a smart log. LID 2 is optional for admin controllers to support. In the future when support for LID=0 (supported log pages) is added, GLP accesses can be made smarter by basing such calls on response from LID=0 reads. Reference: NVMe Base rev 2.2, sec 3.1.3.5, fig 31. Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> --- drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 105127638c31..6e5c9871b76d 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -3705,7 +3705,7 @@ int nvme_init_ctrl_finish(struct nvme_ctrl *ctrl, bool was_suspended) nvme_configure_opal(ctrl, was_suspended); - if (!ctrl->identified && !nvme_discovery_ctrl(ctrl)) { + if (!ctrl->identified && !nvme_discovery_ctrl(ctrl) && !nvme_admin_ctrl(ctrl)) { /* * Do not return errors unless we are in a controller reset, * the controller works perfectly fine without hwmon. -- 2.43.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) 2025-07-18 0:14 ` [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) Kamaljit Singh @ 2025-07-18 4:17 ` Damien Le Moal 2025-07-22 7:07 ` Hannes Reinecke 1 sibling, 0 replies; 11+ messages in thread From: Damien Le Moal @ 2025-07-18 4:17 UTC (permalink / raw) To: Kamaljit Singh, kbusch, axboe, hch, sagi, linux-nvme, linux-kernel; +Cc: cassel On 2025/07/18 9:14, Kamaljit Singh wrote: > Similar to a discovery ctrl, prevent an admin-ctrl from getting a smart > log. LID 2 is optional for admin controllers to support. > > In the future when support for LID=0 (supported log pages) is added, > GLP accesses can be made smarter by basing such calls on response > from LID=0 reads. > > Reference: NVMe Base rev 2.2, sec 3.1.3.5, fig 31. > Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> -- Damien Le Moal Western Digital Research ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) 2025-07-18 0:14 ` [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) Kamaljit Singh 2025-07-18 4:17 ` Damien Le Moal @ 2025-07-22 7:07 ` Hannes Reinecke 2025-07-22 20:57 ` Kamaljit Singh 1 sibling, 1 reply; 11+ messages in thread From: Hannes Reinecke @ 2025-07-22 7:07 UTC (permalink / raw) To: Kamaljit Singh, kbusch, axboe, hch, sagi, linux-nvme, linux-kernel Cc: cassel, dlemoal On 7/18/25 02:14, Kamaljit Singh wrote: > Similar to a discovery ctrl, prevent an admin-ctrl from getting a smart > log. LID 2 is optional for admin controllers to support. > > In the future when support for LID=0 (supported log pages) is added, > GLP accesses can be made smarter by basing such calls on response > from LID=0 reads. > > Reference: NVMe Base rev 2.2, sec 3.1.3.5, fig 31. > Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> > --- > drivers/nvme/host/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index 105127638c31..6e5c9871b76d 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -3705,7 +3705,7 @@ int nvme_init_ctrl_finish(struct nvme_ctrl *ctrl, bool was_suspended) > > nvme_configure_opal(ctrl, was_suspended); > > - if (!ctrl->identified && !nvme_discovery_ctrl(ctrl)) { > + if (!ctrl->identified && !nvme_discovery_ctrl(ctrl) && !nvme_admin_ctrl(ctrl)) { > /* > * Do not return errors unless we are in a controller reset, > * the controller works perfectly fine without hwmon. And to go with my suggestion for the previous patch, maybe it's an idea to have a helper 'nvme_io_queues_supported()' which could be used here (and in the previous patch)? Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) 2025-07-22 7:07 ` Hannes Reinecke @ 2025-07-22 20:57 ` Kamaljit Singh 0 siblings, 0 replies; 11+ messages in thread From: Kamaljit Singh @ 2025-07-22 20:57 UTC (permalink / raw) To: Hannes Reinecke, kbusch@kernel.org, axboe@kernel.dk, hch, sagi@grimberg.me, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org Cc: cassel@kernel.org, dlemoal@kernel.org Hi Hannes, From: Hannes Reinecke <hare@suse.de> Date: Tuesday, July 22, 2025 at 00:07 >> Similar to a discovery ctrl, prevent an admin-ctrl from getting a smart >> log. LID 2 is optional for admin controllers to support. >> >> In the future when support for LID=0 (supported log pages) is added, >> GLP accesses can be made smarter by basing such calls on response >> from LID=0 reads. >> >> Reference: NVMe Base rev 2.2, sec 3.1.3.5, fig 31. >> Signed-off-by: Kamaljit Singh <kamaljit.singh1@wdc.com> >> --- >> drivers/nvme/host/core.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c >> index 105127638c31..6e5c9871b76d 100644 >> --- a/drivers/nvme/host/core.c >> +++ b/drivers/nvme/host/core.c >> @@ -3705,7 +3705,7 @@ int nvme_init_ctrl_finish(struct nvme_ctrl *ctrl, bool was_suspended) >> >> nvme_configure_opal(ctrl, was_suspended); >> >> - if (!ctrl->identified && !nvme_discovery_ctrl(ctrl)) { >> + if (!ctrl->identified && !nvme_discovery_ctrl(ctrl) && !nvme_admin_ctrl(ctrl)) { >> /* >> * Do not return errors unless we are in a controller reset, >> * the controller works perfectly fine without hwmon. > >And to go with my suggestion for the previous patch, maybe it's >an idea to have a helper 'nvme_io_queues_supported()' which could be >used here (and in the previous patch)? That's kinda where I was going with nvme_override_prohibited_io_queues(). But now that its flattened into direct code, that function doesn't exist in v4 of this patch-set anymore. In general, I do like the idea of a helper like nvme_io_queues_supported() which can be applied to any controller type. But I'm not sure how it could be used in this case, i.e. for a GLP LID=2 holdback. We will also need to apply it at the right point so a user requested parameter is also taken into account. Regards, Kamaljit ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-07-23 6:10 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-18 0:14 [PATCH v3 0/2] Support for Administrative Controllers Kamaljit Singh 2025-07-18 0:14 ` [PATCH v3 1/2] nvme: add capability to connect to an administrative controller Kamaljit Singh 2025-07-18 4:14 ` Damien Le Moal 2025-07-18 8:15 ` Niklas Cassel 2025-07-22 7:06 ` Hannes Reinecke 2025-07-22 17:34 ` Kamaljit Singh 2025-07-23 6:10 ` hch 2025-07-18 0:14 ` [PATCH v3 2/2] nvme: prevent admin controller from smart log fetch (LID 2) Kamaljit Singh 2025-07-18 4:17 ` Damien Le Moal 2025-07-22 7:07 ` Hannes Reinecke 2025-07-22 20:57 ` Kamaljit Singh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).