Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp59902pxa; Fri, 21 Aug 2020 00:47:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzpXpWrsFTZb1cbJ0gZaIpWoWSutrxJXMhs1Op3cTzFCBD85K2x0GarOWiyZqrQ35kB12YB X-Received: by 2002:a05:6402:206d:: with SMTP id bd13mr1623775edb.57.1597996022793; Fri, 21 Aug 2020 00:47:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1597996022; cv=none; d=google.com; s=arc-20160816; b=FVXF6Wgy480goJfCmlaYWfDKbmdTzLxmmflVZpWyTA3nRIctR8uYkWk4NPxUbtzKCF 0Kn6BDKjlZdL6eyR3tMK20nDqZfdo+FLl4GwMWqR1K3fc3Vdv/luTqSz4X3P245a2rni 108nxSeLv88VM1SrGuhgcuLlF3ZPa4n4Bk9xJabpRkZYsTV0NjoOz5BY8MrnuOXht7JX NbteeGw+s2VkIF/WsWz0Kz3NhvwhPVqkq6ZenZmwB/yP2RyUSHkHsgb/3aufieCdPu5p M5AIlQ73YHxc976pPd/dyp5+sdQcDRbxfjGzpmrluzGTg13+4bmTP5j7BPndeXiusF1p QKrw== 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=8V2j6/TqTWHESD6BlAyA8MwAH04kaoqGIlDTQTC5zOE=; b=VejJ988uOG//bOm/JMleQpy/Phgr9L5whlCFFT36y60Aj32gWN3Z/iqIq011O+/2Pj IW/bUyMdzX0wnuZBUJutqaTSSeyP9WCicCF5/Zb7g15oEsZSJn+GcmeBZJdnz0JV3C3Z h1JieNm2krPTgg8WhLjj05PBTYkpm3Yiu4Qqv2Ik25R2Z9oV3y2dDJrsbrVSI5IMW+cN YWjHYpGLWB9kYE/xPG6FJRrKbudJ7f6rs11OFumkVlju5A6aqJ1ZoN9oE1XkoQniuxWn 1+UQgvblJrBkHwuQNiJt4y0lMLooRppfC1vbGfdIUtZFaBe1alZ6P8nLeeFrroXrb6va YwNQ== 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 cc27si832996edb.503.2020.08.21.00.46.39; Fri, 21 Aug 2020 00:47:02 -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 S1728123AbgHUHqH (ORCPT + 99 others); Fri, 21 Aug 2020 03:46:07 -0400 Received: from mail.zju.edu.cn ([61.164.42.155]:14198 "EHLO zju.edu.cn" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727824AbgHUHqF (ORCPT ); Fri, 21 Aug 2020 03:46:05 -0400 Received: from localhost.localdomain (unknown [10.192.85.18]) by mail-app4 (Coremail) with SMTP id cS_KCgDHP3uFez9fIjMsAQ--.38108S4; Fri, 21 Aug 2020 15:45:14 +0800 (CST) From: Dinghao Liu To: dinghao.liu@zju.edu.cn, kjlu@umn.edu Cc: Tomi Valkeinen , David Airlie , Daniel Vetter , Laurent Pinchart , Sebastian Reichel , Tony Lindgren , zhengbin , Kevin Hilman , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/omap: Fix runtime PM imbalance in dsi_runtime_get Date: Fri, 21 Aug 2020 15:45:03 +0800 Message-Id: <20200821074506.32359-1-dinghao.liu@zju.edu.cn> X-Mailer: git-send-email 2.17.1 X-CM-TRANSID: cS_KCgDHP3uFez9fIjMsAQ--.38108S4 X-Coremail-Antispam: 1UD129KBjvdXoWrKrW7ZFyDtr4kZrW7CrykXwb_yoWkWFX_Ww n0qrnxGr43KFyqqw4UAa4YvrySvFW7Zay8Xr18tayfArWIvr1DJry0vrZrAwsxXa17AF1D Ca1vgF93ArZrCjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbV8Fc2x0x2IEx4CE42xK8VAvwI8IcIk0rVWrJVCq3wAFIxvE14AK wVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK021l84ACjcxK6xIIjxv20x vE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4UJVW0owA2z4x0Y4vEx4A2 jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS0I0E0xvYzxvE52 x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUJVWU GwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI4 8JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2xKxwCF04k20xvY 0x0EwIxGrwCF04k20xvE74AGY7Cv6cx26r4fKr1UJr1l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr 1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE 14v26r1q6r43MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7 IYx2IY6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWrZr1j6s0DMIIF0xvE x4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVFxhVjvj DU0xZFpf9x0JUdHUDUUUUU= X-CM-SenderInfo: qrrzjiaqtzq6lmxovvfxof0/1tbiAgoSBlZdtPnBhAAhs+ 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. However, users of dsi_runtime_get(), a direct wrapper of pm_runtime_get_sync(), assume that PM usage counter will not change on error. Thus a pairing decrement is needed on the error handling path to keep the counter balanced. Fixes: 4fbafaf371be7 ("OMAP: DSS2: Use PM runtime & HWMOD support") Signed-off-by: Dinghao Liu --- drivers/gpu/drm/omapdrm/dss/dsi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c index eeccf40bae41..973bfa14a104 100644 --- a/drivers/gpu/drm/omapdrm/dss/dsi.c +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c @@ -1112,8 +1112,11 @@ static int dsi_runtime_get(struct dsi_data *dsi) DSSDBG("dsi_runtime_get\n"); r = pm_runtime_get_sync(dsi->dev); - WARN_ON(r < 0); - return r < 0 ? r : 0; + if (WARN_ON(r < 0)) { + pm_runtime_put_noidle(dsi->dev); + return r; + } + return 0; } static void dsi_runtime_put(struct dsi_data *dsi) -- 2.17.1