Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2300034iof; Wed, 8 Jun 2022 01:52:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+WFF+fqpVSRwSQIFsUUBbQ0NySzQQS31Q25gV9OjYyjCcpZBl3W5qhH1MxQhsmaxw768X X-Received: by 2002:a17:902:854c:b0:158:35ce:9739 with SMTP id d12-20020a170902854c00b0015835ce9739mr32550430plo.150.1654678328164; Wed, 08 Jun 2022 01:52:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654678328; cv=none; d=google.com; s=arc-20160816; b=Sa2YtG6Top3e4euCBOlZZoZAiQjETXnnANtCGuB27W2dASjKfwqYoCJARAc4b9NKkK PUOyFhs5oXGv9aXQXms7EgbqExkECbLruhS1Jk/UbAVyJIplPPy814SJwxa9IosPtphM Kf9TuJmGllEmmT62I7rzscFelll8zD0LfmYdHv33QTGozjeNX/lxIbNjgzw2CzWvV8qr w2vRBhJRamcx0S2hetyFPwCkOYcODX05zUCcsLWwZEjC3N4aINAc1WPd7elIDv6DgCU3 JIvmOB4YKbAfGo7Te1TOOu0t8Vr4L5JWHMV+HkpkHnPQkDzS2wMDXujxxvwmRy1gzZbL bQ+g== 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=9qJZtxXxLfuMCiXMqu/Xv1C7qz7GatepGwc62RVIS4A=; b=jCjQGmBa7T9DgzGUFw1jC7WUy2WUZjMfl+UsDM3Er9zes6modMx/3zpX+N8O1fpnAc WAkdjt8BOxi2TRJHlxhREGrAilyKOR0G54/uv+MBUpWVhbjbWY2GsXkNSYZsrpba8DNi t+PCmtWnT2clq9J2Iwyy2zqPyvTPWI3Rx94j+jnd5ZF6bYtri4weusyKAz/peEacIAqW 7plEO0aqGGsEoFVmeS5kphiMXb9MGRUUROWm6n3LbgtdS8x2/zjbqLF/b63zlv3zEELO B7uxSVnNfMGrKxI++kjJR0mx9laCRdJ7GeolYRtpha4bSG7diVt5JdhZB2nJKFOXYDTx qwdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="OGOtOdV/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id f65-20020a17090a704700b001e33517868dsi25471023pjk.150.2022.06.08.01.52.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jun 2022 01:52:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="OGOtOdV/"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2932D3B1738; Wed, 8 Jun 2022 01:14:59 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377980AbiFGVb7 (ORCPT + 99 others); Tue, 7 Jun 2022 17:31:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378183AbiFGUez (ORCPT ); Tue, 7 Jun 2022 16:34:55 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96B111EB407; Tue, 7 Jun 2022 11:37:43 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id E416EB82349; Tue, 7 Jun 2022 18:37:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4ED74C341C0; Tue, 7 Jun 2022 18:37:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1654627060; bh=d7M/rrGTQxwwpheykmHfdAUrTOWJWEeOlwizrmgwhOo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OGOtOdV/QC/OmdD7lih1kkFaudcnrVgA2ZTqzWOFjCMmVPQ1Od3/hfhBYb/AH/vuh C0p90qJDszZbtF2Zj+CWVABKGnE+nRkYjfDLN0JWDvAUwnDWnZuMsxNUwLvYdkK9Ez 19TvgsRCP78SaNzKCIMbKxASWmUgFA28qhcfTQjA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Pavel Machek , Dmitry Torokhov , Sasha Levin Subject: [PATCH 5.17 562/772] Input: stmfts - do not leave device disabled in stmfts_input_open Date: Tue, 7 Jun 2022 19:02:34 +0200 Message-Id: <20220607165005.518300768@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220607164948.980838585@linuxfoundation.org> References: <20220607164948.980838585@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dmitry Torokhov [ Upstream commit 5f76955ab1e43e5795a9631b22ca4f918a0ae986 ] The commit 26623eea0da3 attempted to deal with potential leak of runtime PM counter when opening the touchscreen device, however it ended up erroneously dropping the counter in the case of successfully enabling the device. Let's address this by using pm_runtime_resume_and_get() and then executing pm_runtime_put_sync() only when we fail to send "sense on" command to the device. Fixes: 26623eea0da3 ("Input: stmfts - fix reference leak in stmfts_input_open") Reported-by: Pavel Machek Signed-off-by: Dmitry Torokhov Signed-off-by: Sasha Levin --- drivers/input/touchscreen/stmfts.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/input/touchscreen/stmfts.c b/drivers/input/touchscreen/stmfts.c index 72e0b767e1ba..c175d44c52f3 100644 --- a/drivers/input/touchscreen/stmfts.c +++ b/drivers/input/touchscreen/stmfts.c @@ -337,13 +337,15 @@ static int stmfts_input_open(struct input_dev *dev) struct stmfts_data *sdata = input_get_drvdata(dev); int err; - err = pm_runtime_get_sync(&sdata->client->dev); - if (err < 0) - goto out; + err = pm_runtime_resume_and_get(&sdata->client->dev); + if (err) + return err; err = i2c_smbus_write_byte(sdata->client, STMFTS_MS_MT_SENSE_ON); - if (err) - goto out; + if (err) { + pm_runtime_put_sync(&sdata->client->dev); + return err; + } mutex_lock(&sdata->mutex); sdata->running = true; @@ -366,9 +368,7 @@ static int stmfts_input_open(struct input_dev *dev) "failed to enable touchkey\n"); } -out: - pm_runtime_put_noidle(&sdata->client->dev); - return err; + return 0; } static void stmfts_input_close(struct input_dev *dev) -- 2.35.1