Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1883717pxk; Tue, 1 Sep 2020 09:59:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxSyC3PU+aNP9STKfGT4k+u/WDlyZcmdBt/yF1Jg/T/QtYt1P4P/+p+H/O48QoVoRQfEtXy X-Received: by 2002:a17:906:a153:: with SMTP id bu19mr2344028ejb.142.1598979579794; Tue, 01 Sep 2020 09:59:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598979579; cv=none; d=google.com; s=arc-20160816; b=aFACt42fSnPn68tPnxkWQKCi/+EMWFDzCF7VkdN5gGyDw7zrnVIZuCxf7wtgA1i+2Q A1MfXG5bqZo2AD/PdjwrBsIse1A+bc7bID4FwKEua+ajlCGR43L7GxMWWqbjuD5gO3yF QCMHS/pTNAEzL0zzMCJpGKY6EjrAHcUzHZgOfUTG3O4aYrFPBc6cJ4GtIrZTIqoDZ3x9 XsTg1nUT7WDZ95QpV+QL+hxmhueOp3WVdsxh5e4Kxskk8Jmfm4jQLpxNIERcpeiu4lyr stbhPixW0hWsPb+Mn4nFmos1JEDS6kLAgcWr2FPsknVtC2h+EM9FNt1dh+Vv1qFYC4Bc ZsPg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iXdM5B9n5iYfHoPvqYQtmzIXFlBO8tfy+dWPZCsVWzc=; b=YgnF7KuktU7b2DJFzKAPlS4xsEBK4rHyLqpIuOqfefXNZw70uU1ebvAR/esJBUULzq zmWjs0xERL+1V0AhvM4zEaI9i46c3WPxneWXeqaMrD2lmj+EkFuVg+RljSSXVIgGfowp 1Lq8Qnoo4UNqwsqRsKavUYfjlZRpwAxBA4vPkSRio2YgLB/93mBA/jj0YrI7IfF/XJj1 un/0D50Wd9Bt3mYW4ZMb5SBlDqBJL9bILtJkgrY3+eQDoKmVgpC+V8h+T0oaPTSIIc/Q TQeLhmomvieTPjgHHMkiz0U2bmCZ4R2s5gmqDEngnHXPhabpDhJUkAdGqtm/PR548alH xEfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zkFfHvA8; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a26si1014862ejr.504.2020.09.01.09.59.16; Tue, 01 Sep 2020 09:59:39 -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=@kernel.org header.s=default header.b=zkFfHvA8; 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=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729876AbgIAQ6q (ORCPT + 99 others); Tue, 1 Sep 2020 12:58:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:43706 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729746AbgIAPWR (ORCPT ); Tue, 1 Sep 2020 11:22:17 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A0D5F206FA; Tue, 1 Sep 2020 15:22:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1598973733; bh=+qMlhpBqo7uDBTw2M3PwWfIBd3Tya3VGpz/pwkPdLDU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zkFfHvA8RHk9hTLIo16hLHGeCaoK7s92g+dh4k8GEAiwXBGUTnuXOWfE71RShn/kr 8u/OTrCOzSAe7hz9n5f8GzNObEvW/Sw5UrQcp0ZMwEwtU39r6vF9BZPJYpstbIJLlT 8l9G3THDoNMLzIXtXFKSipW1csjiLngi5WppQsNQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Navid Emamdoost , Alex Deucher , Sasha Levin Subject: [PATCH 4.19 024/125] drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config Date: Tue, 1 Sep 2020 17:09:39 +0200 Message-Id: <20200901150935.750706681@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200901150934.576210879@linuxfoundation.org> References: <20200901150934.576210879@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Navid Emamdoost [ Upstream commit e008fa6fb41544b63973a529b704ef342f47cc65 ] in amdgpu_display_crtc_set_config, the call to pm_runtime_get_sync increments the counter even in case of failure, leading to incorrect ref count. In case of failure, decrement the ref count before returning. Signed-off-by: Navid Emamdoost Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c index 686a26de50f91..049a1961c3fa5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c @@ -275,7 +275,7 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set *set, ret = pm_runtime_get_sync(dev->dev); if (ret < 0) - return ret; + goto out; ret = drm_crtc_helper_set_config(set, ctx); @@ -290,7 +290,7 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set *set, take the current one */ if (active && !adev->have_disp_power_ref) { adev->have_disp_power_ref = true; - return ret; + goto out; } /* if we have no active crtcs, then drop the power ref we got before */ @@ -299,6 +299,7 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set *set, adev->have_disp_power_ref = false; } +out: /* drop the power reference we got coming in here */ pm_runtime_put_autosuspend(dev->dev); return ret; -- 2.25.1