From patchwork Tue May 13 17:56:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe JAILLET X-Patchwork-Id: 889747 Received: from smtp.smtpout.orange.fr (smtp-75.smtpout.orange.fr [80.12.242.75]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B055921171F; Tue, 13 May 2025 17:57:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=80.12.242.75 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747159024; cv=none; b=pbXa0VmTnngvoU1F6uvxBQdJkEwCIp6EFQv/KYdg0R6I5n8ospRsJFMa0uVj6WNYMONpig7t1N4sonkrgdaMGWpiVuAmvIg+aGA396714q2aaUQmW8KjLjvuQXX7K8FArhkIhQpxt3O0WyFnaiZKeTQo/hs6rf/npbQyu3PwBPY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747159024; c=relaxed/simple; bh=xfmRbdMDPgeYyIDpknFQvkLkMNJjzQgDa37ZOx8V8Kw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=mZOdIPZtALYr0hZCM2BGktq6JcBVaD4JVv5qA+4JkUMZdQewSv89JblyLre8doPyE0rPbfq+60hTO3bgwf+Q7a95H+Axvnt2a74B8HTWQRKPqoXqrXXN7qGasVWCx555qbJ9mFazPo3WDhUmnqRxTpupxxUv8frqa3gjeyMMnwo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=wanadoo.fr; spf=pass smtp.mailfrom=wanadoo.fr; dkim=pass (2048-bit key) header.d=wanadoo.fr header.i=@wanadoo.fr header.b=EozSf4BK; arc=none smtp.client-ip=80.12.242.75 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=wanadoo.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=wanadoo.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=wanadoo.fr header.i=@wanadoo.fr header.b="EozSf4BK" Received: from localhost.localdomain ([90.11.132.44]) by smtp.orange.fr with ESMTPA id Ets4uJayC5oOhEts4uVceT; Tue, 13 May 2025 19:56:54 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wanadoo.fr; s=t20230301; t=1747159014; bh=zlSd+UIDE6/b/K4sK7oEThlef+0uV77pMWrYGXzOQO8=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=EozSf4BKM/DmZ2m3vkDtCEUh/D81aurvmCCTRvrkN0mh7KVTHZY7wQ6EySKXBdae1 EdUpob+Z+r0hTy0nBlUCIphiTBEpoFLC5NQMDUf5qnkgBDAUMwoYfCfEDGPg6BCMuq J/gXv9EEkyWAn3CyaNsCV1VY5rFiMC78rkrZ1+KvKpTohDzp5MxFth3aJR2BJIBzBA ByeA2Zmi4viepAjzKNq5Y12CD0n8+/bricNjluHZwKwcEkn5xSk87aKoT+YEP1uL9Q EyenCVyOkhFR76iVl8wZHsVJeTLTISc8GlN6POcOY5Gpdu9rRniPxtfyaLzqQ8RIZ6 7Hu72ORxlZNMw== X-ME-Helo: localhost.localdomain X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Tue, 13 May 2025 19:56:54 +0200 X-ME-IP: 90.11.132.44 From: Christophe JAILLET To: Jarkko Nikula , Andy Shevchenko , Mika Westerberg , Jan Dabros , Andi Shyti , Sanket Goswami , Wolfram Sang , Shyam Sundar S K , Nehal Bakulchandra Shah Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET , linux-i2c@vger.kernel.org Subject: [PATCH] i2c: designware: Fix an error handling path in i2c_dw_pci_probe() Date: Tue, 13 May 2025 19:56:41 +0200 Message-ID: X-Mailer: git-send-email 2.49.0 Precedence: bulk X-Mailing-List: linux-i2c@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 --- drivers/i2c/busses/i2c-designware-pcidrv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c index 8e0267c7cc29..f21f9877c040 100644 --- a/drivers/i2c/busses/i2c-designware-pcidrv.c +++ b/drivers/i2c/busses/i2c-designware-pcidrv.c @@ -278,9 +278,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);