Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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: dd8ef1db87a4 ("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

authored by

Haoxiang Li and committed by
Borislav Petkov (AMD)
d42d5715 f8f9c1f4

+6 -5
+6 -5
drivers/edac/i3200_edac.c
··· 358 358 layers[1].type = EDAC_MC_LAYER_CHANNEL; 359 359 layers[1].size = nr_channels; 360 360 layers[1].is_virt_csrow = false; 361 - mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, 362 - sizeof(struct i3200_priv)); 361 + 362 + rc = -ENOMEM; 363 + mci = edac_mc_alloc(0, ARRAY_SIZE(layers), layers, sizeof(struct i3200_priv)); 363 364 if (!mci) 364 - return -ENOMEM; 365 + goto unmap; 365 366 366 367 edac_dbg(3, "MC: init mci\n"); 367 368 ··· 422 421 return 0; 423 422 424 423 fail: 424 + edac_mc_free(mci); 425 + unmap: 425 426 iounmap(window); 426 - if (mci) 427 - edac_mc_free(mci); 428 427 429 428 return rc; 430 429 }