From mboxrd@z Thu Jan 1 00:00:00 1970 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 06C2EC7EE2A for ; Mon, 5 Jun 2023 19:53:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235941AbjFETx3 (ORCPT ); Mon, 5 Jun 2023 15:53:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235893AbjFETx2 (ORCPT ); Mon, 5 Jun 2023 15:53:28 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0585F3 for ; Mon, 5 Jun 2023 12:53:03 -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 dfw.source.kernel.org (Postfix) with ESMTPS id 407E762A17 for ; Mon, 5 Jun 2023 19:52:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55FB9C433D2; Mon, 5 Jun 2023 19:52:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1685994737; bh=dnYgdrc47odpYV/5WeTuYr9acdy8QKxObhxrrFqxpas=; h=Subject:To:Cc:From:Date:From; b=H4CH6wNUBvmhKso415T3Sabr5MnzZickxveZ9W1qqHni9+z/MW9SL5EJGHoZP1Ktn AdGNqIm4cnl6PlOigET5l/VEdDVRGgh3N+5gNwCCnxD0I9viq9QHg+55JqtHI/wj35 K4GgoJZFQisx8QmqwbaRbT9c/nXjvMeJkAkucqis= Subject: FAILED: patch "[PATCH] phy: qcom-qmp-combo: fix init-count imbalance" failed to apply to 5.4-stable tree To: johan+linaro@kernel.org, dmitry.baryshkov@linaro.org, vkoul@kernel.org Cc: From: Date: Mon, 05 Jun 2023 21:52:11 +0200 Message-ID: <2023060511-exemplary-skinning-fd83@gregkh> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org The patch below does not apply to the 5.4-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to . To reproduce the conflict and resubmit, you may use the following commands: git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y git checkout FETCH_HEAD git cherry-pick -x 9bf03a0cbd80a256bc1e1c4bcc80bc2b06b8b2b9 # git commit -s git send-email --to '' --in-reply-to '2023060511-exemplary-skinning-fd83@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^.. Possible dependencies: 9bf03a0cbd80 ("phy: qcom-qmp-combo: fix init-count imbalance") 94a407cc17a4 ("phy: qcom-qmp: create copies of QMP PHY driver") thanks, greg k-h ------------------ original commit in Linus's tree ------------------ >From 9bf03a0cbd80a256bc1e1c4bcc80bc2b06b8b2b9 Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 2 May 2023 12:38:09 +0200 Subject: [PATCH] phy: qcom-qmp-combo: fix init-count imbalance The init counter is not decremented on initialisation errors, which prevents retrying initialisation and can lead to the runtime suspend callback attempting to disable resources that have never been enabled. Add the missing decrement on initialisation errors so that the counter reflects the state of the device. Fixes: e78f3d15e115 ("phy: qcom-qmp: new qmp phy driver for qcom-chipsets") Cc: stable@vger.kernel.org # 4.12 Signed-off-by: Johan Hovold Reviewed-by: Dmitry Baryshkov Link: https://lore.kernel.org/r/20230502103810.12061-2-johan+linaro@kernel.org Signed-off-by: Vinod Koul diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c index 6850e04c329b..87b17e5877ab 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-combo.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-combo.c @@ -2472,7 +2472,7 @@ static int qmp_combo_com_init(struct qmp_combo *qmp) ret = regulator_bulk_enable(cfg->num_vregs, qmp->vregs); if (ret) { dev_err(qmp->dev, "failed to enable regulators, err=%d\n", ret); - goto err_unlock; + goto err_decrement_count; } ret = reset_control_bulk_assert(cfg->num_resets, qmp->resets); @@ -2522,7 +2522,8 @@ static int qmp_combo_com_init(struct qmp_combo *qmp) reset_control_bulk_assert(cfg->num_resets, qmp->resets); err_disable_regulators: regulator_bulk_disable(cfg->num_vregs, qmp->vregs); -err_unlock: +err_decrement_count: + qmp->init_count--; mutex_unlock(&qmp->phy_mutex); return ret;