From 9eb9f7c304f7a17fd5e3bfa462a36e77dbf2a3e4 Mon Sep 17 00:00:00 2001 From: Artem Shimko Date: Fri, 30 Jan 2026 14:10:37 +0300 Subject: [PATCH] i2c: designware-platdrv: fix cleanup on probe failure Simplify the error handling in dw_i2c_plat_probe() by consolidating cleanup operations directly in the error path instead of using a goto label. This eliminates the goto statement, makes the error handling more transparent, and reduces code indirection while maintaining identical cleanup behavior on probe failure. Signed-off-by: Artem Shimko Acked-by: Mika Westerberg Signed-off-by: Andi Shyti Link: https://lore.kernel.org/r/20260130111039.874548-3-a.shimko.dev@gmail.com --- drivers/i2c/busses/i2c-designware-platdrv.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c index f591da26916f..426ffec06e22 100644 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c @@ -225,15 +225,12 @@ static int dw_i2c_plat_probe(struct platform_device *pdev) pm_runtime_enable(device); ret = i2c_dw_probe(dev); - if (ret) - goto exit_probe; + if (ret) { + dw_i2c_plat_pm_cleanup(dev); + i2c_dw_prepare_clk(dev, false); + } return ret; - -exit_probe: - dw_i2c_plat_pm_cleanup(dev); - i2c_dw_prepare_clk(dev, false); - return ret; } static void dw_i2c_plat_remove(struct platform_device *pdev)