]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i2c: designware: Fix an error handling path in i2c_dw_pci_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Tue, 13 May 2025 17:56:41 +0000 (19:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2025 12:41:51 +0000 (14:41 +0200)
[ Upstream commit 1cfe51ef07ca3286581d612debfb0430eeccbb65 ]

If navi_amd_register_client() fails, the previous i2c_dw_probe() call
should be undone by a corresponding i2c_del_adapter() call, as already done
in the remove function.

Fixes: 17631e8ca2d3 ("i2c: designware: Add driver support for AMD NAVI GPU")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: <stable@vger.kernel.org> # v5.13+
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/fcd9651835a32979df8802b2db9504c523a8ebbb.1747158983.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-designware-pcidrv.c

index 36c13612b55d492c5c4bff3aa379f404d3fa0665..b85f1e4ed13bc87420058f96f7076f0e607aff0d 100644 (file)
@@ -335,9 +335,11 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
 
        if ((dev->flags & MODEL_MASK) == MODEL_AMD_NAVI_GPU) {
                dev->slave = i2c_new_ccgx_ucsi(&dev->adapter, dev->irq, &dgpu_node);
-               if (IS_ERR(dev->slave))
+               if (IS_ERR(dev->slave)) {
+                       i2c_del_adapter(&dev->adapter);
                        return dev_err_probe(device, PTR_ERR(dev->slave),
                                             "register UCSI failed\n");
+               }
        }
 
        pm_runtime_set_autosuspend_delay(device, 1000);