Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp710095ybt; Sat, 13 Jun 2020 19:44:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxTyCGsirxEQZylOeQgNUyrkyxCdKc2y9TUsMb6d56FijmJH6oQY3i8rZMPjaCuQbIlFsb1 X-Received: by 2002:a17:906:e257:: with SMTP id gq23mr18761799ejb.398.1592102650150; Sat, 13 Jun 2020 19:44:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592102650; cv=none; d=google.com; s=arc-20160816; b=wl49kOlvJoUwMFI48EJLz5JLzaDJjSuyLRcLRkUpX5O4VRlq0hN4L9hQAm3YRy4VvF xEGmt0K/ASuCv9nVzq/nhX3EBU0vgRu+eeAfQkYj02xedGLqzyTENlIP9VmVfnDKNVuJ 7EhrDugZE5+UrGZlJoEdS1Ue1TREL/31Iwv+6SWL0nE+GGVLzfgn5QCTdapYtP55cwSb xdxYy8fHHgE4G9nMGdyPAXR9qcYFxgbJZHYRIy/t+BvMwPJQUaMxtNQMOTRD4Xgfq+xn lcNGCtqDozSr1lmtwU+1UQvg1zCoBSY7+amWWDrxAWue5KCLaSxOn6t8DKAWGulTA7MJ MoJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature:dkim-filter :dmarc-filter; bh=cjw2EDUNWQmlGguDj5XMiD/z/+98wuHl/U5yK7YcmK8=; b=ucVZqWHe9kUVa+c5FY0HtJALZnGf2zMWHD8z7fk6smgtIjy7ILmg6oHxS/A1YszkoU u2QNfuTvcWMVNVAl8UnUbswb3O5+ituNl7Eu49pGDQpZtNl2TkIjqDYA1K7ZVimvrit0 GuOvygrfxta4WvfvmNFbR/6z4CaaFSXm2T9LUuf3LTm+n4BzKBTdY0vHWrorElcgvd35 JLlVaE95rKkYsnAdmHubySFGis3t0fB3EpsZ+Oe6zo2HB1BNX1U1YIlwNJPMlOkcK/Fu +Vqa19Tu9paP4WSvKoECE1q+8f0kI+JkUEMlUCfDmdwbaaiwOfUzY3lqvG56/UoR0c0I KdJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@umn.edu header.s=google header.b=ns2HOH+9; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=umn.edu Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j24si6418143ejy.277.2020.06.13.19.43.47; Sat, 13 Jun 2020 19:44:10 -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; dkim=pass header.i=@umn.edu header.s=google header.b=ns2HOH+9; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=umn.edu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726527AbgFNCkJ (ORCPT + 99 others); Sat, 13 Jun 2020 22:40:09 -0400 Received: from mta-p6.oit.umn.edu ([134.84.196.206]:35288 "EHLO mta-p6.oit.umn.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726460AbgFNCkI (ORCPT ); Sat, 13 Jun 2020 22:40:08 -0400 Received: from localhost (unknown [127.0.0.1]) by mta-p6.oit.umn.edu (Postfix) with ESMTP id 49kzG01B1hz9vYTm for ; Sun, 14 Jun 2020 02:40:08 +0000 (UTC) X-Virus-Scanned: amavisd-new at umn.edu Received: from mta-p6.oit.umn.edu ([127.0.0.1]) by localhost (mta-p6.oit.umn.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lJZTe4lwBqvm for ; Sat, 13 Jun 2020 21:40:08 -0500 (CDT) Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mta-p6.oit.umn.edu (Postfix) with ESMTPS id 49kzFz6Zggz9vYTj for ; Sat, 13 Jun 2020 21:40:07 -0500 (CDT) DMARC-Filter: OpenDMARC Filter v1.3.2 mta-p6.oit.umn.edu 49kzFz6Zggz9vYTj DKIM-Filter: OpenDKIM Filter v2.11.0 mta-p6.oit.umn.edu 49kzFz6Zggz9vYTj Received: by mail-il1-f200.google.com with SMTP id l11so9508484ils.11 for ; Sat, 13 Jun 2020 19:40:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=umn.edu; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=cjw2EDUNWQmlGguDj5XMiD/z/+98wuHl/U5yK7YcmK8=; b=ns2HOH+9IxAgXPEwDFxUkuvCgvyKbVXx7DkZfncXFoBThyQnWFmpyp7tbMmE2iCgl3 S8oBix/jeQEYV76MhfEOxw8aDjKpcQVZns4CH4CJG+wGRn1agUmbDRQSXkSBoanvB3Uu ZNI13YKN2eqm+598/batBVlAu1fWzLevA6ZitBI7dygE4QWFsHoep7G62Am6OiqYAKRf M1LjrdBSv7cYkk+/1CruR6B5i2dAqUIgDtWGBH/L/PtG7L8D3j8WH22EB32u00mNdfnv Ykyo0/1PgeM0OC1stJsny8PhrYzxaiZT/v5SMml1qqLOEZYdJe4ofRraXBsAPbpS7Wus nJDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=cjw2EDUNWQmlGguDj5XMiD/z/+98wuHl/U5yK7YcmK8=; b=ATJP7M+OxBPV016dYC6sNAv1O57fjxqkVnRyTTeCy/4Htn1bMUtolZYr3RaVK8L8vO /tmIOATIJleDgM/i28tkRy8/rPCC41QPLUzZ7S6ZlxQC2hyxWxPsfYHUZHdLXu69M4Cg b0NsKZ1hcJZNyD8DxFY+KMgZiCf9LfjbcabRSkMJ/b70Xr2BgwgC0vksQagENybGgUJE bCaygHe91iPQYeN0Alp+HQHKvsHXkkp6oJVZLSCDVw4oFw8X5vzvlaX5LEQaDweao3Gs F8NJ2sARQq/2Y6IdCZqH/RrngizeC+uzBzD+C9UCk3hKwyFzHb7vU+o1ztzJxcybNSlK MUOg== X-Gm-Message-State: AOAM532t8hQeY8TCqXXXgb9CRkvePia2AKYYJ3ZrmWOAG7ZquJVY6eGl 3awsPLjFk2yqOEtSYs+IZ9UH6frP5lKrVUjrng38q+//mZEX839Kd9olkCJ4BDX0HwCSqzHDtum /bjJrDkh9T6wz9W0dhB9py5IUibOD X-Received: by 2002:a92:4852:: with SMTP id v79mr19760138ila.172.1592102407585; Sat, 13 Jun 2020 19:40:07 -0700 (PDT) X-Received: by 2002:a92:4852:: with SMTP id v79mr19760129ila.172.1592102407398; Sat, 13 Jun 2020 19:40:07 -0700 (PDT) Received: from syssec1.cs.umn.edu ([2607:ea00:101:3c74:49fa:9c47:e40b:9c40]) by smtp.gmail.com with ESMTPSA id c85sm5869099ilg.41.2020.06.13.19.40.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Jun 2020 19:40:07 -0700 (PDT) From: Aditya Pakki To: pakki001@umn.edu Cc: kjlu@umn.edu, wu000273@umn.edu, Andrzej Hajda , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/bridge: fix reference count leaks due to pm_runtime_get_sync() Date: Sat, 13 Jun 2020 21:40:05 -0500 Message-Id: <20200614024005.125578-1-pakki001@umn.edu> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On calling pm_runtime_get_sync() the reference count of the device is incremented. In case of failure, decrement the reference count before returning the error. Signed-off-by: Aditya Pakki --- drivers/gpu/drm/bridge/cdns-dsi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/cdns-dsi.c b/drivers/gpu/drm/bridge/cdns-dsi.c index 69c3892caee5..583cb8547106 100644 --- a/drivers/gpu/drm/bridge/cdns-dsi.c +++ b/drivers/gpu/drm/bridge/cdns-dsi.c @@ -788,8 +788,10 @@ static void cdns_dsi_bridge_enable(struct drm_bridge *bridge) u32 tmp, reg_wakeup, div; int nlanes; - if (WARN_ON(pm_runtime_get_sync(dsi->base.dev) < 0)) + if (WARN_ON(pm_runtime_get_sync(dsi->base.dev) < 0)) { + pm_runtime_put(dsi->base.dev); return; + } mode = &bridge->encoder->crtc->state->adjusted_mode; nlanes = output->dev->lanes; @@ -1028,8 +1030,10 @@ static ssize_t cdns_dsi_transfer(struct mipi_dsi_host *host, int ret, i, tx_len, rx_len; ret = pm_runtime_get_sync(host->dev); - if (ret < 0) + if (ret < 0) { + pm_runtime_put(host->dev); return ret; + } cdns_dsi_init_link(dsi); -- 2.25.1