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 the newly added 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 a1155fb8d5be..c310634e75f3 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
On Tue, Jul 01, 2025 at 05:58:28PM -0700, 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 the newly added LID=0 (supported log > pages) is added, GLP accesses can be made smarter by basing such calls > on response from LID=0 reads. Let's leave this in. Failing a get_log page is fine. The difference for discovery controllers is that implementing it is prohibited.
On 7/2/25 02:58, 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 the newly added 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 a1155fb8d5be..c310634e75f3 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. Nope. You said yourself, that log page is optional. But that also means that there _might_ be controller who support it. If you want to avoid an error here we would need to check if that log page is supported, not disable it upfront. 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
On 7/2/25 09:58, 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. If it is optional, when the admin controller support it, why prevent it ? This is what your code does... Or is it that at this stage of the initialization, you do not know yet if the admin controller supports LTD 2 ? > > In the future when support for the newly added 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 a1155fb8d5be..c310634e75f3 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. -- Damien Le Moal Western Digital Research
© 2016 - 2025 Red Hat, Inc.