projects
/
linux-2.6-microblaze.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
d42d571
)
EDAC/x38: Fix a resource leak in x38_probe1()
author
Haoxiang Li
<lihaoxiang@isrc.iscas.ac.cn>
Tue, 23 Dec 2025 12:43:50 +0000
(20:43 +0800)
committer
Borislav Petkov (AMD)
<bp@alien8.de>
Sun, 4 Jan 2026 07:35:39 +0000
(08:35 +0100)
If edac_mc_alloc() fails, also unmap the window.
[ bp: Use separate labels, turning it into the classic unwind pattern. ]
Fixes:
df8bc08c192f
("edac x38: new MC driver module")
Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Cc: stable@vger.kernel.org
Link:
https://patch.msgid.link/20251223124350.1496325-1-lihaoxiang@isrc.iscas.ac.cn
drivers/edac/x38_edac.c
patch
|
blob
|
history
diff --git
a/drivers/edac/x38_edac.c
b/drivers/edac/x38_edac.c
index
49ab572
..
292dda7
100644
(file)
--- a/
drivers/edac/x38_edac.c
+++ b/
drivers/edac/x38_edac.c
@@
-341,9
+341,12
@@
static int x38_probe1(struct pci_dev *pdev, int dev_idx)
layers[1].type = EDAC_MC_LAYER_CHANNEL;
layers[1].size = x38_channel_num;
layers[1].is_virt_csrow = false;
+
+
+ rc = -ENOMEM;
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 0);
if (!mci)
-
return -ENOMEM
;
+
goto unmap
;
edac_dbg(3, "MC: init mci\n");
@@
-403,9
+406,9
@@
static int x38_probe1(struct pci_dev *pdev, int dev_idx)
return 0;
fail:
+ edac_mc_free(mci);
+unmap:
iounmap(window);
- if (mci)
- edac_mc_free(mci);
return rc;
}