Message ID | 20240819062045.1481298-2-lizhijian@fujitsu.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 447b167bb60d0bb95967c4d93dac9af1cca437db |
Delegated to: | Ira Weiny |
Headers | show |
Series | [v3,1/2] nvdimm: Fix devs leaks in scan_labels() | expand |
Li Zhijian wrote: > The only way create_namespace_pmem() returns an ENODEV code is if > select_pmem_id(nd_region, &uuid) returns ENODEV when its 2nd parameter > is a null pointer. However, this is impossible because &uuid is always > valid. > > Furthermore, create_namespace_pmem() is the only user of > select_pmem_id(), it's safe to remove the 'return -ENODEV' branch. > > Signed-off-by: Li Zhijian <lizhijian@fujitsu.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> > --- > V2: > new patch. > It's found when I'm Reviewing/tracing the return values of create_namespace_pmem() > --- > drivers/nvdimm/namespace_devs.c | 9 --------- > 1 file changed, 9 deletions(-) > > diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c > index 35d9f3cc2efa..55cfbf1e0a95 100644 > --- a/drivers/nvdimm/namespace_devs.c > +++ b/drivers/nvdimm/namespace_devs.c > @@ -1612,9 +1612,6 @@ static int select_pmem_id(struct nd_region *nd_region, const uuid_t *pmem_id) > { > int i; > > - if (!pmem_id) > - return -ENODEV; > - > for (i = 0; i < nd_region->ndr_mappings; i++) { > struct nd_mapping *nd_mapping = &nd_region->mapping[i]; > struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); > @@ -1790,9 +1787,6 @@ static struct device *create_namespace_pmem(struct nd_region *nd_region, > case -EINVAL: > dev_dbg(&nd_region->dev, "invalid label(s)\n"); > break; > - case -ENODEV: > - dev_dbg(&nd_region->dev, "label not found\n"); > - break; > default: > dev_dbg(&nd_region->dev, "unexpected err: %d\n", rc); > break; > @@ -1980,9 +1974,6 @@ static struct device **scan_labels(struct nd_region *nd_region) > case -EAGAIN: > /* skip invalid labels */ > continue; > - case -ENODEV: > - /* fallthrough to seed creation */ > - break; > default: > goto err; > } > -- > 2.29.2 >
diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c index 35d9f3cc2efa..55cfbf1e0a95 100644 --- a/drivers/nvdimm/namespace_devs.c +++ b/drivers/nvdimm/namespace_devs.c @@ -1612,9 +1612,6 @@ static int select_pmem_id(struct nd_region *nd_region, const uuid_t *pmem_id) { int i; - if (!pmem_id) - return -ENODEV; - for (i = 0; i < nd_region->ndr_mappings; i++) { struct nd_mapping *nd_mapping = &nd_region->mapping[i]; struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); @@ -1790,9 +1787,6 @@ static struct device *create_namespace_pmem(struct nd_region *nd_region, case -EINVAL: dev_dbg(&nd_region->dev, "invalid label(s)\n"); break; - case -ENODEV: - dev_dbg(&nd_region->dev, "label not found\n"); - break; default: dev_dbg(&nd_region->dev, "unexpected err: %d\n", rc); break; @@ -1980,9 +1974,6 @@ static struct device **scan_labels(struct nd_region *nd_region) case -EAGAIN: /* skip invalid labels */ continue; - case -ENODEV: - /* fallthrough to seed creation */ - break; default: goto err; }
The only way create_namespace_pmem() returns an ENODEV code is if select_pmem_id(nd_region, &uuid) returns ENODEV when its 2nd parameter is a null pointer. However, this is impossible because &uuid is always valid. Furthermore, create_namespace_pmem() is the only user of select_pmem_id(), it's safe to remove the 'return -ENODEV' branch. Signed-off-by: Li Zhijian <lizhijian@fujitsu.com> --- V2: new patch. It's found when I'm Reviewing/tracing the return values of create_namespace_pmem() --- drivers/nvdimm/namespace_devs.c | 9 --------- 1 file changed, 9 deletions(-)