Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2833509pxv; Mon, 12 Jul 2021 03:05:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhIVaS4Y2TukiWSVbGHAv1biENhEk3ww5kJoem2XiVOerQUGyWII+KbyZlBi9HxV98TJXD X-Received: by 2002:a6b:fe09:: with SMTP id x9mr24938425ioh.20.1626084311505; Mon, 12 Jul 2021 03:05:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626084311; cv=none; d=google.com; s=arc-20160816; b=iY1BUwsEWY51Ej3vKiEpfUdLiaRPyUUD5bdAcDu5ymowTpdz+3TLppZFwScOUJxxYG 3CMmeoQQfRemQpsOSTZLnSEAPGb1d5wN9FuLCA56e8m9ZblPyul4hzxxGvgVOFe9FL8B OmWQRPN+3a5kOMMOOn/5NXldI40REcdEqJbT04NhsK9V8YAKddZF4Q3htReekaD+ROQX Ul4IwzzuyPu0n1DiJUjWQs8hgrNPY6mQTG6T9AAjzB/DfSco/4vHUeXbE0U9tXwmUi02 IqGfc6hB2yvCU/XoI8LZi6/E8xqCwDdgkNcpYN/EBdBgHLtJdHIHiQSPApRb9Wx6CzBy VJYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=V203Gn3DxQBVNjfqNYF6OYBjCv5xh9fZ6aCJgJ00y74=; b=oVStY1Xz/vze/n2QG7X7na1FFlNt/fXbz3b4PMh/z5EyxbT4s4cxmonQzRvu3OQ4/2 NIXMgxWUqZM8+VV03Vqj7ZXvae0GWWQHjX3vQr45fYygurzQpl3m7RUchz5oFS6o0PoI Yj/NKo0P4gPH4w5AMGFtPXrXdcEXLv9/Jz12gP2k6wKLReMtiNr6ioU1ITHXPYq6KTdZ bv6R6q5tOQaPep6KF9PBvUp9mYbiTdY3sddeDXuFvUy97Itu1Nhuo5NNgdsBAFfyWNEt zShkniD6qLQPHYl2XAkYD7vNldtKlTVNYq04aziNAUsRV+nSqPyoRO/MVonH1+Zywvof k68w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=jtG9r2oW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c18si7049630iod.12.2021.07.12.03.04.59; Mon, 12 Jul 2021 03:05:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=jtG9r2oW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345456AbhGLH3v (ORCPT + 99 others); Mon, 12 Jul 2021 03:29:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:35674 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241980AbhGLHBp (ORCPT ); Mon, 12 Jul 2021 03:01:45 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id C6D8C61221; Mon, 12 Jul 2021 06:58:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626073137; bh=ht5TsiapjXMHML+LcVLYQqsFvSYjeNKVivTIumc8ekE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jtG9r2oWw77X+GRuDJBh/RxTuIh2q7QD79PUzF6l1SetXNJ53ibkb5OP+SOw+ACQ2 Xj+EGLDFNEI87pMRwKGL6zD4aTROKOiXipoiyOi/Jvl7UGKErRwbkTSVh+BRFAfxPI eGGq2VYhc/Kf+CD8zg+wTCUqquvHmfvabaqDliBY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dan Carpenter , Daniele Alessandrelli , Jonathan Cameron , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 5.12 122/700] media: i2c: imx334: fix the pm runtime get logic Date: Mon, 12 Jul 2021 08:03:25 +0200 Message-Id: <20210712060942.162326576@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060924.797321836@linuxfoundation.org> References: <20210712060924.797321836@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mauro Carvalho Chehab [ Upstream commit 62c90446868b439929cb04395f04a709a64ae04b ] The PM runtime get logic is currently broken, as it checks if ret is zero instead of checking if it is an error code, as reported by Dan Carpenter. While here, use the pm_runtime_resume_and_get() as added by: commit dd8088d5a896 ("PM: runtime: Add pm_runtime_resume_and_get to deal with usage counter") added pm_runtime_resume_and_get() in order to automatically handle dev->power.usage_count decrement on errors. As a bonus, such function always return zero on success. It should also be noticed that a fail of pm_runtime_get_sync() would potentially result in a spurious runtime_suspend(), instead of using pm_runtime_put_noidle(). Reported-by: Dan Carpenter Reviewed-by: Daniele Alessandrelli Reviewed-by: Jonathan Cameron Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/media/i2c/imx334.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/imx334.c b/drivers/media/i2c/imx334.c index ad530f0d338a..02d22907c75c 100644 --- a/drivers/media/i2c/imx334.c +++ b/drivers/media/i2c/imx334.c @@ -717,9 +717,9 @@ static int imx334_set_stream(struct v4l2_subdev *sd, int enable) } if (enable) { - ret = pm_runtime_get_sync(imx334->dev); - if (ret) - goto error_power_off; + ret = pm_runtime_resume_and_get(imx334->dev); + if (ret < 0) + goto error_unlock; ret = imx334_start_streaming(imx334); if (ret) @@ -737,6 +737,7 @@ static int imx334_set_stream(struct v4l2_subdev *sd, int enable) error_power_off: pm_runtime_put(imx334->dev); +error_unlock: mutex_unlock(&imx334->mutex); return ret; -- 2.30.2