Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp856987imw; Thu, 14 Jul 2022 12:08:24 -0700 (PDT) X-Google-Smtp-Source: AGRyM1upyuVXnJ4NUuMbE8EbQgvpvzMehXCVS8iiEFJaZCIiHlmWSvh0j9e4EjjcPRHwv1snG1y5 X-Received: by 2002:a05:6402:d05:b0:425:b7ab:776e with SMTP id eb5-20020a0564020d0500b00425b7ab776emr14778620edb.142.1657825704236; Thu, 14 Jul 2022 12:08:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657825704; cv=none; d=google.com; s=arc-20160816; b=zKyVb8U3AgnTAUj5m+VyHmnb+K7vIl22HrvKUomuhK8WybB2O75Vk9o9bo9yPB+m5R 6oJPRQ+r+NndmBmpZ512Qq/ITy6WnD5P6hnXmfgewulwZRYE4G3kpT/CtV14rqtYkFwg pl0uE6AeE9nKuid53hngorbm2AVs2iv2dvwD2Ug6nGTDlsTtt6ptucOZuVZaZ5kgykaP xxL1JIU6a4h0CJvMihcsvXLIkX3GlUEpnuaycTK/USuqDZzpy1PeplrRczNSebrpLlyY CVO+Z5XinToiNgtMK7PJ1G8IEpp0EpS/t1gkSSTtpKz627wopmts8XeSvzM+lfYrY2Nv EizA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=3/76e6BlVGV7ahO1isbvVhUJJRuUP5o5Z+iCFPnIizw=; b=xG0x1GMkp8lyue1WtO0ZQ48Rk7c6zi4yUehUmCM0/7JXsz0zZvQB7TWEhl4omIp3t1 iBiivbEiWM4XMdcglH5KxYnnhe6oEozO5LI9cpLornzZF5aWsqWsTIu/3Tb8V0D90DNe bRnMS6mW4y7T/lchEz+nLjhIivCKOG47LZPcn+1jkhRMgai8enubBOkEI7Plx++Bnl+H 5tgfuH7ZF2EBzJSZ8VZQB0PEy+2oTOksLzhrrVX3sZ1gqM15neyqlYd4HL0TQaWYsJ9K ahS3CZeaa1IfZV/EifOhU/MeaEa4PucwhZnacyltQmgzUgBjsCJgmh8FWyQ+0MM4QJXs yCJQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sc23-20020a1709078a1700b0072ed47c301fsi3284428ejc.455.2022.07.14.12.07.57; Thu, 14 Jul 2022 12:08:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240834AbiGNSwD (ORCPT + 99 others); Thu, 14 Jul 2022 14:52:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37222 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240858AbiGNSv5 (ORCPT ); Thu, 14 Jul 2022 14:51:57 -0400 Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2CCC94F184; Thu, 14 Jul 2022 11:51:56 -0700 (PDT) Received: by mail-yb1-f173.google.com with SMTP id f73so4737826yba.10; Thu, 14 Jul 2022 11:51:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3/76e6BlVGV7ahO1isbvVhUJJRuUP5o5Z+iCFPnIizw=; b=yOOqWOUnm8Tx0OnYbDWYY7IJxsxh/pNA2rJeWHSogG3Ey6Wqh1b6QLFrVEBqOfbdBw Fg3Rx9chofrQD/ywpg4PFjs+aVN23xtxaUB4daDd4mZFgVeumI8HXDCbOjmXyy8kcKyj RJnnoiqGFICKhH5kXfeK5j4XXH5uqaMXfRTG9uZJ/BLTRFUKkh/MCn2G/70PYaR0OURX zou4pw1S9sbJbkZB/HFMhDLsyokxu13KOlZB4GQYR0jOseqFMlDHh8H0zT2+8jrzDIUe c6+LMtWbh6X6pdr6Xj/rq9r9O2czMUDlsXmsQ4Q47AkBXK9mWWAIDzw5Zap2xy574uIq PyDA== X-Gm-Message-State: AJIora/7BwxhNc+9CBluoKFmoyE8cnM3MFbAU/Hb+NwRcLlpImK/p+1o laEJ2MvFq3b9ahk0AwEE0r6UCz87/9eHT4an6/k= X-Received: by 2002:a05:6902:154f:b0:66e:e2d3:ce1 with SMTP id r15-20020a056902154f00b0066ee2d30ce1mr9474182ybu.365.1657824715446; Thu, 14 Jul 2022 11:51:55 -0700 (PDT) MIME-Version: 1.0 References: <20220705171649.969194-1-hsinyi@chromium.org> In-Reply-To: From: "Rafael J. Wysocki" Date: Thu, 14 Jul 2022 20:51:44 +0200 Message-ID: Subject: Re: [PATCH v2] PM: domains: Ensure genpd_debugfs_dir exists before remove To: Ulf Hansson , Hsin-Yi Wang Cc: Greg Kroah-Hartman , "Rafael J . Wysocki" , Kevin Hilman , Pavel Machek , Len Brown , AngeloGioacchino Del Regno , Pin-yen Lin , Linux PM , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 13, 2022 at 2:02 PM Ulf Hansson wrote: > > On Tue, 5 Jul 2022 at 19:17, Hsin-Yi Wang wrote: > > > > Both genpd_debug_add() and genpd_debug_remove() may be called > > indirectly by other drivers while genpd_debugfs_dir is not yet > > set. For example, drivers can call pm_genpd_init() in probe or > > pm_genpd_init() in probe fail/cleanup path: > > > > pm_genpd_init() > > --> genpd_debug_add() > > > > pm_genpd_remove() > > --> genpd_remove() > > --> genpd_debug_remove() > > > > At this time, genpd_debug_init() may not yet be called. > > > > genpd_debug_add() checks that if genpd_debugfs_dir is NULL, it > > will return directly. Make sure this is also checked > > in pm_genpd_remove(), otherwise components under debugfs root > > which has the same name as other components under pm_genpd may > > be accidentally removed, since NULL represents debugfs root. > > > > Fixes: 718072ceb211 ("PM: domains: create debugfs nodes when adding power domains") > > Signed-off-by: Hsin-Yi Wang > > Reviewed-by: Ulf Hansson Applied as 5.20 material, thanks! > > --- > > v1->v2: Add more context in commit message > > --- > > drivers/base/power/domain.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c > > index 3e86772d5fac5..5a2e0232862e0 100644 > > --- a/drivers/base/power/domain.c > > +++ b/drivers/base/power/domain.c > > @@ -222,6 +222,9 @@ static void genpd_debug_remove(struct generic_pm_domain *genpd) > > { > > struct dentry *d; > > > > + if (!genpd_debugfs_dir) > > + return; > > + > > d = debugfs_lookup(genpd->name, genpd_debugfs_dir); > > debugfs_remove(d); > > } > > -- > > 2.37.0.rc0.161.g10f37bed90-goog > >