'cxl list' hides zero-sized decoders unless --idle is given, assuming
they are unconfigured idle slots. That assumption does not hold for
locked HDM decoders, which may legitimately report size 0 while being
committed by firmware.

Do not suppress locked zero-sized decoders from the default listing.
Combined with the "locked" field in the decoder JSON, they are visible
and distinguishable from idle, unlocked slots that remain hidden
without --idle.

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

diff --git a/cxl/filter.c b/cxl/filter.c
index 5d634d3b2512..e6d45ac7b9e6 100644
--- a/cxl/filter.c
+++ b/cxl/filter.c
@@ -847,7 +847,8 @@ static void walk_decoders(struct cxl_port *port, struct 
cxl_filter_params *p,
                if (!util_cxl_decoder_filter_by_region(decoder,
                                                       p->region_filter))
                        goto walk_children;
-               if (!p->idle && cxl_decoder_get_size(decoder) == 0)
+               if (!p->idle && cxl_decoder_get_size(decoder) == 0 &&
+                   !cxl_decoder_is_locked(decoder))
                        continue;
                jdecoder = util_cxl_decoder_to_json(decoder, flags);
                if (!decoder) {
-- 
2.37.3


Reply via email to