[ndctl PATCH 1/2] cxl/list: emit decoder locked status

Alison Schofield <[email protected]> Thu, 30 Jul 2026 18:55:19 -0700
Newsgroups dev.linux.lists.nvdimm,org.kernel.vger.linux-cxl
Message-ID <e144468706798fc68df3be13d1e3321486aca901.1785462417.git.alison.schofield@intel.com>
A committed zero-sized HDM decoder reports size 0, so 'cxl list'
renders it identically to an ordinary unconfigured decoder ("state":
"disabled"). The locked attribute that distinguishes firmware-committed
decoders is not included in the JSON output.

The library already reads the decoder's locked attribute and exports
cxl_decoder_is_locked(); it was simply never emitted. Add a "locked"
field to the decoder JSON, following the emit-only-when-true idiom used
by the capability flags so existing output is unchanged for the common
unlocked case.

Signed-off-by: Alison Schofield <[email protected]>
---
 cxl/json.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/cxl/json.c b/cxl/json.c
index a92548828582..2214f7027d91 100644
--- a/cxl/json.c
+++ b/cxl/json.c
@@ -870,6 +870,12 @@ struct json_object *util_cxl_decoder_to_json(struct cxl_decoder *decoder,
 			json_object_object_add(jdecoder, "state", jobj);
 	}
 
+	if (cxl_decoder_is_locked(decoder)) {
+		jobj = json_object_new_boolean(true);
+		if (jobj)
+			json_object_object_add(jdecoder, "locked", jobj);
+	}
+
 	if (cxl_port_is_endpoint(port)) {
 		enum cxl_decoder_mode mode = cxl_decoder_get_mode(decoder);
 
-- 
2.37.3