Commit 0ff7c441 authored by Haoxiang Li's avatar Haoxiang Li Committed by Borislav Petkov (AMD)
Browse files

EDAC/x38: Fix a resource leak in x38_probe1()



If edac_mc_alloc() fails, also unmap the window.

  [ bp: Use separate labels, turning it into the classic unwind pattern. ]

Fixes: df8bc08c ("edac x38: new MC driver module")
Signed-off-by: default avatarHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20251223124350.1496325-1-lihaoxiang@isrc.iscas.ac.cn
parent d42d5715
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -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:
	iounmap(window);
	if (mci)
	edac_mc_free(mci);
unmap:
	iounmap(window);

	return rc;
}