mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:04:43 +01:00
EDAC/i3200: Fix a resource leak in i3200_probe1()
If edac_mc_alloc() fails, also unmap the window.
[ bp: Use separate labels, turning it into the classic unwind pattern. ]
Fixes: dd8ef1db87 ("edac: i3200 memory controller driver")
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/20251223123202.1492038-1-lihaoxiang@isrc.iscas.ac.cn
This commit is contained in:
parent
f8f9c1f4d0
commit
d42d5715dc
1 changed files with 6 additions and 5 deletions
|
|
@ -358,10 +358,11 @@ static int i3200_probe1(struct pci_dev *pdev, int dev_idx)
|
|||
layers[1].type = EDAC_MC_LAYER_CHANNEL;
|
||||
layers[1].size = nr_channels;
|
||||
layers[1].is_virt_csrow = false;
|
||||
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers,
|
||||
sizeof(struct i3200_priv));
|
||||
|
||||
rc = -ENOMEM;
|
||||
mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(struct i3200_priv));
|
||||
if (!mci)
|
||||
return -ENOMEM;
|
||||
goto unmap;
|
||||
|
||||
edac_dbg(3, "MC: init mci\n");
|
||||
|
||||
|
|
@ -421,9 +422,9 @@ static int i3200_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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue