]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
EDAC/ie31200: Fix the error path order of ie31200_init()
authorQiuxu Zhuo <qiuxu.zhuo@intel.com>
Mon, 10 Mar 2025 01:14:03 +0000 (09:14 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Apr 2025 12:39:11 +0000 (14:39 +0200)
[ Upstream commit 231e341036d9988447e3b3345cf741a98139199e ]

The error path order of ie31200_init() is incorrect, fix it.

Fixes: 709ed1bcef12 ("EDAC/ie31200: Fallback if host bridge device is already initialized")
Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Tested-by: Gary Wang <gary.c.wang@intel.com>
Link: https://lore.kernel.org/r/20250310011411.31685-4-qiuxu.zhuo@intel.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/edac/ie31200_edac.c

index 92714dd88b3f6661da3e4cbba7f0803591282e02..56be8ef40f376b9948d76dcd4690a528b9b54563 100644 (file)
@@ -617,7 +617,7 @@ static int __init ie31200_init(void)
 
        pci_rc = pci_register_driver(&ie31200_driver);
        if (pci_rc < 0)
-               goto fail0;
+               return pci_rc;
 
        if (!mci_pdev) {
                ie31200_registered = 0;
@@ -628,11 +628,13 @@ static int __init ie31200_init(void)
                        if (mci_pdev)
                                break;
                }
+
                if (!mci_pdev) {
                        edac_dbg(0, "ie31200 pci_get_device fail\n");
                        pci_rc = -ENODEV;
-                       goto fail1;
+                       goto fail0;
                }
+
                pci_rc = ie31200_init_one(mci_pdev, &ie31200_pci_tbl[i]);
                if (pci_rc < 0) {
                        edac_dbg(0, "ie31200 init fail\n");
@@ -640,12 +642,12 @@ static int __init ie31200_init(void)
                        goto fail1;
                }
        }
-       return 0;
 
+       return 0;
 fail1:
-       pci_unregister_driver(&ie31200_driver);
-fail0:
        pci_dev_put(mci_pdev);
+fail0:
+       pci_unregister_driver(&ie31200_driver);
 
        return pci_rc;
 }