Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp329231ybt; Tue, 23 Jun 2020 23:48:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzzczaKyD7bzua0kiFSciAtzlVTkcx3Y4ugx+Du2VhzUyVRCbFt4A+Z/fzw3ALEjjI5awwz X-Received: by 2002:a17:906:7ac9:: with SMTP id k9mr22459241ejo.489.1592981295674; Tue, 23 Jun 2020 23:48:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592981295; cv=none; d=google.com; s=arc-20160816; b=H4thb//93YRrC2pD7wM/WZkIDCILKf55v01ZR9ZnoECZpVcyQH+GnACrw9a1S71Aov sckUeu7QqnrTpU66cfBUM2nhIz2qB8byS9X7CcBZm7SBT3H67Pj1pUU5s1sk4faI6Py+ Eb+55gVmML6Zq6y9kjme3hsTyqvRvCqaILg03D8gqN8vVyGJvJ94hosB/4zfjYruip4V o0KqZ3wKsIzi2xwiIOfmTVgGJiMyuMTPZOAZL0pd03uSKQi4AcFwG4CBDzumlnFUkaYg tp2fdycYGi6DCKbWHFXBMNE4wYv2PEMDoZ+3k9nSBt875ikJhv1wGN3kkPJsSPckd5h2 J1Gw== 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=4nm8h8p3iebXNIL71cHm9sMy7gZail3+bACMkjmUVQc=; b=OFbDVx1WCjt8ALaHhlkuHpha4uXAgkVhJt+hOpwT0w8YmJT0G8r3REDJU2IfJJy07f gZedWhJuvukcxpJ6M4upCQGV2QLVzLrsQLUoccyocdaRh1um23wIZPIJhs0B5Mg1y9XP RFCwE47NJ6F9JzmM90WhymXya8Fj2wdUWWwBWhP+rbVQo+BbflEpQccY4gfn53VJNMfU s+PyZMowJaszJ03GU1F4ZQzLy+4QzbOPuVWqhtXNbZSQda73vdXOZOZHzw+C4JTJ+a9a FTR6zw1ugHSnRBsQxM8GqAGlaDoWJCoE5whuhMOy7U0BLbQm4gpHd5OlIG6dRZFHL0Ys f1Jg== 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 bs16si13142683edb.197.2020.06.23.23.47.52; Tue, 23 Jun 2020 23:48:15 -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 S2389515AbgFXGqs (ORCPT + 99 others); Wed, 24 Jun 2020 02:46:48 -0400 Received: from mail.zju.edu.cn ([61.164.42.155]:12838 "EHLO zju.edu.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2389144AbgFXGqr (ORCPT ); Wed, 24 Jun 2020 02:46:47 -0400 Received: from localhost.localdomain (unknown [210.32.144.65]) by mail-app3 (Coremail) with SMTP id cC_KCgCXknnE9vJeq1Y2AQ--.19863S4; Wed, 24 Jun 2020 14:46:32 +0800 (CST) From: Dinghao Liu To: dinghao.liu@zju.edu.cn, kjlu@umn.edu Cc: Laxman Dewangan , Jon Hunter , Dan Williams , Vinod Koul , Thierry Reding , dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] [v5] dmaengine: tegra210-adma: Fix runtime PM imbalance on error Date: Wed, 24 Jun 2020 14:46:26 +0800 Message-Id: <20200624064626.19855-1-dinghao.liu@zju.edu.cn> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: cC_KCgCXknnE9vJeq1Y2AQ--.19863S4 X-Coremail-Antispam: 1UD129KBjvJXoW7ZrWkur1fury5tFWrWr4rXwb_yoW8WF1rpF W0gFWUKFZ2q3yftF1DZw1DZFy5u34Fgry5K348u3WDZan5Aa4Utr18tryavF48ZrWkAF1j y34Yvw43AF1jqF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUU9m1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AE w4v_Jr0_Jr4l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2 IY67AKxVWDJVCq3wA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWxJr0_GcWl84ACjcxK6I8E 87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c 8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_ Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwI xGrwACjI8F5VA0II8E6IAqYI8I648v4I1lFIxGxcIEc7CjxVA2Y2ka0xkIwI1lc2xSY4AK 67AK6r47MxAIw28IcxkI7VAKI48JMxAIw28IcVCjz48v1sIEY20_GFWkJr1UJwCFx2IqxV CFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r10 6r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxV WUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG 6rWUJVWrZr1UMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr 0_Gr1UYxBIdaVFxhVjvjDU0xZFpf9x0JU-J5rUUUUU= X-CM-SenderInfo: qrrzjiaqtzq6lmxovvfxof0/1tbiAg4BBlZdtOzjqwABsR 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 --- Changelog: 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(). _noidle() is the simplest one and it is sufficient for fixing this bug. v4: - Use pm_runtime_put_noidle() instead of pm_runtime_put_sync() in tegra_adma_probe(). _noidle() is the simplest one and it is sufficient for fixing this bug. v5: - Refine commit message. --- 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