]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
EDAC/igen6: Fix error handling in igen6_edac driver
authorMa Ke <make24@iscas.ac.cn>
Wed, 5 Nov 2025 09:02:44 +0000 (17:02 +0800)
committerTony Luck <tony.luck@intel.com>
Fri, 21 Nov 2025 18:20:51 +0000 (10:20 -0800)
The igen6_edac driver calls device_initialize() for all memory
controllers in igen6_register_mci(), but misses corresponding
put_device() calls in error paths and during normal shutdown in
igen6_unregister_mcis().

Adding the missing put_device() calls improves code readability and
ensures proper reference counting for the device structure.

Found by code review.

Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Reviewed-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Link: https://patch.msgid.link/20251105090244.23327-1-make24@iscas.ac.cn
drivers/edac/igen6_edac.c

index 2fc59f9eed691e010d66a0357f4321916c32ccef..553c31a2d9226f38ba747c8c7f36259b2e70d29a 100644 (file)
@@ -1300,6 +1300,7 @@ static int igen6_register_mci(int mc, void __iomem *window, struct pci_dev *pdev
        imc->mci = mci;
        return 0;
 fail3:
+       put_device(&imc->dev);
        mci->pvt_info = NULL;
        kfree(mci->ctl_name);
 fail2:
@@ -1326,6 +1327,7 @@ static void igen6_unregister_mcis(void)
                kfree(mci->ctl_name);
                mci->pvt_info = NULL;
                edac_mc_free(mci);
+               put_device(&imc->dev);
                iounmap(imc->window);
        }
 }