From patchwork Sat Oct 28 07:17:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Apitzsch?= X-Patchwork-Id: 13439372 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6C740C27C48 for ; Sat, 28 Oct 2023 07:18:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229706AbjJ1HSy (ORCPT ); Sat, 28 Oct 2023 03:18:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60638 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229539AbjJ1HSt (ORCPT ); Sat, 28 Oct 2023 03:18:49 -0400 Received: from smtprelay08.ispgateway.de (smtprelay08.ispgateway.de [134.119.228.98]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B5F4121; Sat, 28 Oct 2023 00:18:46 -0700 (PDT) Received: from [92.206.139.21] (helo=note-book.lan) by smtprelay08.ispgateway.de with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.1) (envelope-from ) id 1qwdal-0002T7-2T; Sat, 28 Oct 2023 09:18:43 +0200 From: =?utf-8?q?Andr=C3=A9_Apitzsch?= Date: Sat, 28 Oct 2023 09:17:48 +0200 Subject: [PATCH v2 5/5] media: i2c: imx214: Fix cleanup after controls initialization error MIME-Version: 1.0 Message-Id: <20231028-imx214-v2-5-69a8fb730d6e@apitzsch.eu> References: <20231028-imx214-v2-0-69a8fb730d6e@apitzsch.eu> In-Reply-To: <20231028-imx214-v2-0-69a8fb730d6e@apitzsch.eu> To: Ricardo Ribalda , Sakari Ailus , Mauro Carvalho Chehab Cc: Kieran Bingham , Jacopo Mondi , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, ~postmarketos/upstreaming@lists.sr.ht, =?utf-8?q?Andr=C3=A9_Apitzsch?= X-Mailer: b4 0.12.3 X-Df-Sender: YW5kcmVAYXBpdHpzY2guZXU= Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org If the controls are initialized incorrectly, don't destroy the mutex not initialized yet and don't free controls as that is handled in imx214_ctrls_init(). Signed-off-by: André Apitzsch --- drivers/media/i2c/imx214.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/imx214.c b/drivers/media/i2c/imx214.c index e0d9624a9d3f..0aba28d6dc2f 100644 --- a/drivers/media/i2c/imx214.c +++ b/drivers/media/i2c/imx214.c @@ -1069,7 +1069,7 @@ static int imx214_probe(struct i2c_client *client) ret = imx214_ctrls_init(imx214); if (ret < 0) - goto free_ctrl; + goto error_power_off; mutex_init(&imx214->mutex); imx214->ctrls.lock = &imx214->mutex; @@ -1100,6 +1100,7 @@ static int imx214_probe(struct i2c_client *client) free_ctrl: mutex_destroy(&imx214->mutex); v4l2_ctrl_handler_free(&imx214->ctrls); +error_power_off: pm_runtime_disable(imx214->dev); return ret;