Donet Tom <donet...@linux.ibm.com> writes: > If any one of BTT, PFN, or DAX is not present, but the other two > are, then the region capabilities are not displayed in the > ndctl list -R -C command. > > This is because util_region_capabilities_to_json() returns NULL > if any one of BTT, PFN, or DAX is not present. > > In this patch, we have changed the logic to display all the region > capabilities that are present. > > Test Results with CONFIG_BTT disabled > ===================================== > Without this patch > ------------------ > # ./build/ndctl/ndctl list -R -C > [ > { > "dev":"region1", > "size":549755813888, > "align":16777216, > "available_size":549755813888, > "max_available_extent":549755813888, > "type":"pmem", > "iset_id":11510624209454722969, > "persistence_domain":"memory_controller" > }, > > With this patch > --------------- > # ./build/ndctl/ndctl list -R -C > [ > { > "dev":"region1", > "size":549755813888, > "align":16777216, > "available_size":549755813888, > "max_available_extent":549755813888, > "type":"pmem", > "iset_id":11510624209454722969, > "capabilities":[ > { > "mode":"fsdax", > "alignments":[ > 65536, > 16777216 > ] > }, > { > "mode":"devdax", > "alignments":[ > 65536, > 16777216 > ] > } > ], > "persistence_domain":"memory_controller" > }, > > Signed-off-by: Donet Tom <donet...@linux.ibm.com> > --- > ndctl/json.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/ndctl/json.c b/ndctl/json.c > index 23bad7f..3df3bc4 100644 > --- a/ndctl/json.c > +++ b/ndctl/json.c > @@ -381,9 +381,6 @@ struct json_object > *util_region_capabilities_to_json(struct ndctl_region *region > struct ndctl_pfn *pfn = ndctl_region_get_pfn_seed(region); > struct ndctl_dax *dax = ndctl_region_get_dax_seed(region); > > - if (!btt || !pfn || !dax) > - return NULL; > -
I think this was meant to be: if (!btt && !pfn && !dax) return NULL; I think that would be the more appropriate fix. Cheers, Jeff > jcaps = json_object_new_array(); > if (!jcaps) > return NULL; > @@ -436,7 +433,8 @@ struct json_object > *util_region_capabilities_to_json(struct ndctl_region *region > json_object_object_add(jcap, "alignments", jobj); > } > > - return jcaps; > + if (btt || pfn || dax) > + return jcaps; > err: > json_object_put(jcaps); > return NULL;