summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorHemanth Selam <hemanth.selam@gmail.com>2026-09-11 13:55:43 +0530
committerAlison Schofield <alison.schofield@intel.com>2026-10-01 18:08:51 -0700
commit855a46681e0ba601952c346e5b62d867e51ecb23 (patch)
tree7cb37f94f24258ecf892fd7c7ba83769ab6a6cb1 /tools/perf/scripts/python
parent72d3fcf802c45d00b300f25b848a93c3a2bd7c7e (diff)
downloadlinux-next-855a46681e0ba601952c346e5b62d867e51ecb23.tar.gz
linux-next-855a46681e0ba601952c346e5b62d867e51ecb23.zip
nvdimm/pmem: Release gendisk on probe failure
pmem_attach_disk() allocates the gendisk with blk_alloc_disk() and hands it to devres only once device_add_disk() has succeeded. Until that point the probe path owns the disk itself, which is why every failure after the allocation jumps to the out: label and puts it there. The devm_init_badblocks() failure returns directly instead, so the disk allocated a few lines earlier is never released. Nothing releases it afterwards either: the devres action that would have done so has not been registered yet, so unbinding the namespace or destroying it does not reach the disk, and it stays allocated along with its queue and its bdev inode until the machine is rebooted. devm_init_badblocks() only fails when a single page allocation fails, so reaching this at all needs memory exhaustion during namespace probe, and because device_add_disk() has not run there is nothing user visible left behind: no device node, no sysfs entry, only the leaked memory. Release the gendisk through the existing cleanup path on this failure. Fixes: 3dd60fb9d95d ("nvdimm/pmem: stop using q_usage_count as external pgmap refcount") Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Link: https://patch.msgid.link/20260911082543.473670-1-hemanth.selam@gmail.com Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions