cxl/region: Fix cxlr_pmem leaks
authorLi Zhijian <lizhijian@fujitsu.com>
Sun, 28 Apr 2024 03:07:48 +0000 (11:07 +0800)
committerDave Jiang <dave.jiang@intel.com>
Tue, 30 Apr 2024 21:04:52 +0000 (14:04 -0700)
Before this error path, cxlr_pmem pointed to a kzalloc() memory, free
it to avoid this memory leaking.

Fixes: f17b558d6663 ("cxl/pmem: Refactor nvdimm device registration, delete the workqueue")
Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20240428030748.318985-1-lizhijian@fujitsu.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/region.c

index 45eb9c560fd6d91b31648031ec949d432df108e6..29b0b8a52d3d830895417b22a83e456cda733e45 100644 (file)
@@ -2854,6 +2854,7 @@ static struct cxl_pmem_region *cxl_pmem_region_alloc(struct cxl_region *cxlr)
                if (i == 0) {
                        cxl_nvb = cxl_find_nvdimm_bridge(cxlmd);
                        if (!cxl_nvb) {
+                               kfree(cxlr_pmem);
                                cxlr_pmem = ERR_PTR(-ENODEV);
                                goto out;
                        }