Message ID | 1524732790-2234-2-git-send-email-ulf.hansson@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show
Return-Path: <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org> Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3C0D8602DC for <patchwork-linux-arm@patchwork.kernel.org>; Thu, 26 Apr 2018 08:57:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2C50E2907F for <patchwork-linux-arm@patchwork.kernel.org>; Thu, 26 Apr 2018 08:57:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1F3AB2908D; Thu, 26 Apr 2018 08:57:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 838F02907F for <patchwork-linux-arm@patchwork.kernel.org>; Thu, 26 Apr 2018 08:57:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=2V4Ra7h4tCW44skUZ0ROkfPvEM0hlHNrJAPrN3IUDoQ=; b=MHnPYLffuBef8E0dBIo2CCecVT ml+ZZJrKTckhGYc1ztVU/HdO/ikRh2AG6TcvhdUE6g+evu0oCMgRhLfNhx30S4DWghWamJs+iO67t ssB9NGlT3+/NDpESQaWHGwRFdlfuCTXkaW6Lru7vsSAiPK1C2RExh5oljnigPSr2HGTXy3T2DLhHg 4TlOeol4b9l+aeOFARfp8SPF07kt5xbh/HXlItfA+L/+AQiYM5k60jJ6gyyWt/iJ1gekRfMHcwBR3 cnKzs1CqKa4+WnR0VpSbZx8PXi8E2StEFeB2MmJPnvUQ84LTkyBVlWxfFhsXfPxoEOLMjy6WIbj+t 3Y5jBE+A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1fBciH-0007gn-VD; Thu, 26 Apr 2018 08:57:14 +0000 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fBcef-0004WE-OJ for linux-arm-kernel@lists.infradead.org; Thu, 26 Apr 2018 08:53:43 +0000 Received: by mail-lf0-x243.google.com with SMTP id o123-v6so26956335lfe.8 for <linux-arm-kernel@lists.infradead.org>; Thu, 26 Apr 2018 01:53:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=erb1SyGANxVl6gHWShUQ9kqj4ktELneZ9u3fj92lBqQ=; b=cz1EUeiHl4NbC4RH9BK8Rr4UfAAbIWjpkVSp9BHZa3En8vWutSIOU06QmHyIWWX3X5 rMnT+nU2ht6VOTONGDxf7AMf55c7bEcRBefUZ4w6vYYEJC21R9eadYF4tTpy9LgqlpmO Wwkl5PFXleIpRHfBrS2RGX++kUkPmNQVulyNc= 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:in-reply-to :references; bh=erb1SyGANxVl6gHWShUQ9kqj4ktELneZ9u3fj92lBqQ=; b=Ndm4bM33sX06zB3IZjVQTKN7c5Ixig10/0WwpG5T7JcBRbtrXJW8SzjGyJv4wPy007 coRoEUzE+/jROLAn68b9AzdhizN7BMtfATSk4xJXynM1hIv9UPqCxK1c1/676tmQlpbo CSDsdg/peCyqqBX6kxuDOkJs/8Gg0dhH26V5CR2WQCmVh+PnrFGMkx5QMWM9SPb/kQPg RTdNKwfJWPM5RgOVoXi86cegPk9zmVSFQ0gJni3ZJkLOWbrC0QZl0C8x+87UWIXnWvN1 9PeT3wLNUo/RCesMVQWZESe14l9pIoA8oQn4hFBJiYHWCFaFQPw/OC6FCVrKWN1AUhu4 /Cjw== X-Gm-Message-State: ALQs6tAJN0dfwNzbqPOlZOVXy5fGhXehEPmsgrQfvHVCmSxmRK2QBiZk S95BZcVUDVYZHIyJNaEbn0k8tA== X-Google-Smtp-Source: AB8JxZqanroxBvuAAJhH4Qr5NuNHaCTuHoLRrKMou4quakAWpZv+8j2I/o5BAAS2MwMo/bEUcvrsag== X-Received: by 2002:a19:fc04:: with SMTP id a4-v6mr16815435lfi.136.1524732797391; Thu, 26 Apr 2018 01:53:17 -0700 (PDT) Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se. [158.174.22.210]) by smtp.gmail.com with ESMTPSA id u83-v6sm681097lff.65.2018.04.26.01.53.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 26 Apr 2018 01:53:16 -0700 (PDT) From: Ulf Hansson <ulf.hansson@linaro.org> To: "Rafael J . Wysocki" <rjw@rjwysocki.net>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, linux-pm@vger.kernel.org Subject: [PATCH 01/11] PM / Domains: Fix error path during attach in genpd Date: Thu, 26 Apr 2018 10:53:00 +0200 Message-Id: <1524732790-2234-2-git-send-email-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524732790-2234-1-git-send-email-ulf.hansson@linaro.org> References: <1524732790-2234-1-git-send-email-ulf.hansson@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180426_015329_826381_147DC378 X-CRM114-Status: GOOD ( 16.03 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: <linux-arm-kernel.lists.infradead.org> List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe> List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/> List-Post: <mailto:linux-arm-kernel@lists.infradead.org> List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help> List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe> Cc: Ulf Hansson <ulf.hansson@linaro.org>, Vincent Guittot <vincent.guittot@linaro.org>, Geert Uytterhoeven <geert+renesas@glider.be>, Kevin Hilman <khilman@kernel.org>, Vinod Koul <vinod.koul@intel.com>, Viresh Kumar <viresh.kumar@linaro.org>, Wolfram Sang <wsa@the-dreams.de>, Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>, "# v4 . 11+" <stable@vger.kernel.org>, Russell King <linux@armlinux.org.uk>, Mark Brown <broonie@kernel.org>, linux-arm-kernel@lists.infradead.org, Sanyog Kale <sanyog.r.kale@intel.com>, linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org> Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP |
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 1ea0e25..ef6cf3d5 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -2246,6 +2246,9 @@ int genpd_dev_pm_attach(struct device *dev) genpd_lock(pd); ret = genpd_power_on(pd, 0); genpd_unlock(pd); + + if (ret) + genpd_remove_device(pd, dev); out: return ret ? -EPROBE_DEFER : 0; }
In case the PM domain fails to be powered on in genpd_dev_pm_attach(), it returns -EPROBE_DEFER, but keeping the device attached to its PM domain. This leads to problems when the next attempt to attach is re-tried. More precisely, in that situation an -EEXIST error code is returned, because the device already has its PM domain pointer assigned, from the first attempt. Now, because of the sloppy error handling by the existing callers of dev_pm_domain_attach(), probing is allowed to continue when -EEXIST is returned. However, in such case there are no guarantees that the PM domain is powered on by genpd, which may lead to hangs when buses/drivers tried to access their devices. Let's fix this behaviour, simply by detaching the device when powering on fails in genpd_dev_pm_attach(). Cc: <stable@vger.kernel.org> # v4.11+ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> --- drivers/base/power/domain.c | 3 +++ 1 file changed, 3 insertions(+)