Skip to content

Commit 5283a1c

Browse files
committed
nvdimm/pmem: fix leak on dax_add_host() failure
JIRA: https://issues.redhat.com/browse/RHEL-23824 commit f6932a2 Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Date: Thu Feb 8 13:49:02 2024 -0500 nvdimm/pmem: fix leak on dax_add_host() failure Fix a leak on dax_add_host() error, where "goto out_cleanup_dax" is done before setting pmem->dax_dev, which therefore issues the two following calls on NULL pointers: out_cleanup_dax: kill_dax(pmem->dax_dev); put_dax(pmem->dax_dev); Link: https://lkml.kernel.org/r/20240208184913.484340-1-mathieu.desnoyers@efficios.com Link: https://lkml.kernel.org/r/20240208184913.484340-2-mathieu.desnoyers@efficios.com Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Reviewed-by: Dan Williams <dan.j.williams@intel.com> Reviewed-by: Fan Ni <fan.ni@samsung.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Cc: Alasdair Kergon <agk@redhat.com> Cc: Mike Snitzer <snitzer@kernel.org> Cc: Mikulas Patocka <mpatocka@redhat.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Russell King <linux@armlinux.org.uk> Cc: Dave Chinner <david@fromorbit.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
1 parent 0774dcc commit 5283a1c

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

drivers/nvdimm/pmem.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -566,12 +566,11 @@ static int pmem_attach_disk(struct device *dev,
566566
set_dax_nomc(dax_dev);
567567
if (is_nvdimm_sync(nd_region))
568568
set_dax_synchronous(dax_dev);
569+
pmem->dax_dev = dax_dev;
569570
rc = dax_add_host(dax_dev, disk);
570571
if (rc)
571572
goto out_cleanup_dax;
572573
dax_write_cache(dax_dev, nvdimm_has_cache(nd_region));
573-
pmem->dax_dev = dax_dev;
574-
575574
rc = device_add_disk(dev, disk, pmem_attribute_groups);
576575
if (rc)
577576
goto out_remove_host;

0 commit comments

Comments
 (0)