Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1785879ybt; Sat, 20 Jun 2020 22:52:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwLweD95Bl0kcG14tsoX9LBsDBsaa69AQZnE7VQxMKlWL6zRGybNT9OvFLCA5gJ3X8xXXrR X-Received: by 2002:a17:906:3548:: with SMTP id s8mr10193677eja.202.1592718738257; Sat, 20 Jun 2020 22:52:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592718738; cv=none; d=google.com; s=arc-20160816; b=Cfd51wb19Wrsz2obmok+sMoQNRPwpEU7OEpknxtBXrbS2pgYLPpZeVRSlOwbnu/yfT m5HhqT+r2AFfMhZMoKviaRoA8ErPzJSzojnsknatQsLGVEd5xsgmWBRky3ayG3SQqfqA o7eJi+h9M6AVF6+miYazIC2/j3VZqc8K937CmN12A+3JEGB+eYI0YFmW1iCc0mqHLN3i 2HwSeeNlPhD/AEffVbvej3TPcbrHgu3Y53nu/utUDreUm4WmWZOlFKaOBf93sFQWB8t/ NnujKc45Rpf0r/rl87Ucx5+CYvF0/vmzXEjnvpWvES8zI3KGsCxPVfRQAEcpxfjdEIJu Jjkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=7+TtmjMRiv5dmAUo/w0aqPxNFvR1VK9cEUK/Po3pQXI=; b=u65q0PHAVCyqtunw9bABE4lT52LQXA2PS6i+BpQPvkjT2obifJNfzHGZYE+azG7ubC zA9Znll5Ynr+m40eT3Xt/7YxhT7jq+YXY26Nkla/h7JvaFa3JW2lAycwroCy4nlBrHm9 mS3/Ubty/QFrB0WyjzCYpauanhjMipfswAaKu2WUJuKkmJ0CkReukNCmVdaFdo3LhDxD UnLRCJ5UfoQzWma8ZLEXpLUVYJeeM21VT8XOa+EKWCJOHRHo3NH159hTv4m2dfGpW2gI OKpMDtvYw2TRjETxIUAk9Nqi/XBWYKtWG6qBSQ5etXYcXjnN8RWYrtWk1HnsYrq8CkoH 1Uxw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m3si6191770ejx.210.2020.06.20.22.51.55; Sat, 20 Jun 2020 22:52:18 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729329AbgFUFrZ (ORCPT + 99 others); Sun, 21 Jun 2020 01:47:25 -0400 Received: from mail.zju.edu.cn ([61.164.42.155]:60328 "EHLO zju.edu.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725928AbgFUFrY (ORCPT ); Sun, 21 Jun 2020 01:47:24 -0400 Received: from localhost.localdomain (unknown [210.32.144.65]) by mail-app4 (Coremail) with SMTP id cS_KCgAnL1Ne9O5eCoreAQ--.17311S4; Sun, 21 Jun 2020 13:47:14 +0800 (CST) From: Dinghao Liu To: dinghao.liu@zju.edu.cn, kjlu@umn.edu Cc: Laxman Dewangan , Jon Hunter , Vinod Koul , Dan Williams , Thierry Reding , dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] [v4] dmaengine: tegra210-adma: Fix runtime PM imbalance on error Date: Sun, 21 Jun 2020 13:47:10 +0800 Message-Id: <20200621054710.9915-1-dinghao.liu@zju.edu.cn> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: cS_KCgAnL1Ne9O5eCoreAQ--.17311S4 X-Coremail-Antispam: 1UD129KBjvJXoW7ZrWkur1fury5tFWrWr4rXwb_yoW8Gw48pF W0gFWUKFW0qw4ftF1DZr1DZFy5u34Yqry5K3y8C3ZrZan5Aa4Utr15Jry2vF48ZrZ5AF1U A34Yyw43AF10qF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUU9l1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AE w4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2 IY67AKxVWDJVCq3wA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xvwVC2 z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcV Aq07x20xvEncxIr21l5I8CrVACY4xI64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j 6r18McIj6I8E87Iv67AKxVWUJVW8JwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64 vIr41lF7I21c0EjII2zVCS5cI20VAGYxC7M4IIrI8v6xkF7I0E8cxan2IY04v7MxkIecxE wVAFwVW8WwCF04k20xvY0x0EwIxGrwCF04k20xvE74AGY7Cv6cx26r4fKr1UJr1l4I8I3I 0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWU GVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI 0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0 rVWrJr0_WFyUJwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r 4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUOb18DUUUU X-CM-SenderInfo: qrrzjiaqtzq6lmxovvfxof0/1tbiAgcQBlZdtOvMDgAEsB Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org pm_runtime_get_sync() increments the runtime PM usage counter even when it returns an error code. Thus a pairing decrement is needed on the error handling path to keep the counter balanced. Signed-off-by: Dinghao Liu --- v2: - Merge two patches that fix runtime PM imbalance in tegra_adma_probe() and tegra_adma_alloc_chan_resources() respectively. v3: - Use pm_runtime_put_noidle() instead of pm_runtime_put_sync() in tegra_adma_alloc_chan_resources(). v4: - Use pm_runtime_put_noidle() instead of pm_runtime_put_sync() in tegra_adma_probe(). --- drivers/dma/tegra210-adma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/dma/tegra210-adma.c b/drivers/dma/tegra210-adma.c index db58d7e4f9fe..c5fa2ef74abc 100644 --- a/drivers/dma/tegra210-adma.c +++ b/drivers/dma/tegra210-adma.c @@ -658,6 +658,7 @@ static int tegra_adma_alloc_chan_resources(struct dma_chan *dc) ret = pm_runtime_get_sync(tdc2dev(tdc)); if (ret < 0) { + pm_runtime_put_noidle(tdc2dev(tdc)); free_irq(tdc->irq, tdc); return ret; } @@ -869,8 +870,10 @@ static int tegra_adma_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); ret = pm_runtime_get_sync(&pdev->dev); - if (ret < 0) + if (ret < 0) { + pm_runtime_put_noidle(&pdev->dev); goto rpm_disable; + } ret = tegra_adma_init(tdma); if (ret) -- 2.17.1