From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AAFC8C35240 for ; Fri, 31 Jan 2020 10:13:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8024220CC7 for ; Fri, 31 Jan 2020 10:13:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580465629; bh=8QUpI61BLdakaGA80VxEEzPug/l8r0KDGCYoC7Sv28w=; h=References:In-Reply-To:From:Date:Subject:To:Cc:List-ID:From; b=SKm603vL9QagdP7Rwx8Z+s3Sp0CyRP0BFA8jVJMWA56AHFqOq6VJ8zyDCubumFCzi HK2JAOAmpPAJPs3IfXEakglRdEji5zgR55EJsCYjdl032XMBCo/t505ibj0uYMVblK D7B3bp7+hnJwTCm3bv7/gwDpY8e7K1iVcD5TmqVs= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728289AbgAaKNp (ORCPT ); Fri, 31 Jan 2020 05:13:45 -0500 Received: from mail-oi1-f194.google.com ([209.85.167.194]:34300 "EHLO mail-oi1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728160AbgAaKNp (ORCPT ); Fri, 31 Jan 2020 05:13:45 -0500 Received: by mail-oi1-f194.google.com with SMTP id l136so6747661oig.1; Fri, 31 Jan 2020 02:13:44 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=raabJwU4zEa7l6nAkAqDBvubVlQSjL6C05vgOXbsY4Y=; b=qBYoO8hSNd26sXZI9kaAHYcDMa/5/Xn91LZOGK50pqpaiv31ONUX9azCTRz3Mwls2t YOs9s11m7SUKvtCq22bDEY85YzZMrnWKEtIhnn+1S9TIYMCdXmvRQcvbwpxRrFbCtrA0 Kwgrt+oyfh87L4MKFp+bB5cpOgungwqPpxtAwsWhB6zUHPBaiFsTX+Vndbel9prcQgph N9cZoSZa7glDODlM3Xk1z9ZaI1RfA5FcE/YtotrvRpE5uuXSvhmvOJL5Xy+d5iAWfVIC pyJZI4h8yyYgfUcAzFaPUnxTYV/YWeDOyjrX7qGJb2X8KnmZqHRwgW7sncoV4f23+wAA HfLQ== X-Gm-Message-State: APjAAAW9Sxvu+VVEvZY+vfN/FYfYjFJNSuot2WOBpj3OVAidi5yZMCM6 sZOM5fDrPZfaeMM643+BgB1UDqqq9mM9URfp73A= X-Google-Smtp-Source: APXvYqwANun9+k0d+8aGujSI7AOEX1OlHtdp2RAu5sqPcA4CFr9uMMT9NzlT9H2xd2gMjMXa+DzdY9SgamiGDUmN1xw= X-Received: by 2002:aca:bfc2:: with SMTP id p185mr5936669oif.57.1580465624588; Fri, 31 Jan 2020 02:13:44 -0800 (PST) MIME-Version: 1.0 References: <20200124132957.15769-1-geert+renesas@glider.be> <20200124132957.15769-2-geert+renesas@glider.be> In-Reply-To: <20200124132957.15769-2-geert+renesas@glider.be> From: "Rafael J. Wysocki" Date: Fri, 31 Jan 2020 11:13:33 +0100 Message-ID: Subject: Re: [PATCH 1/2] debugfs: regset32: Add Runtime PM support To: Geert Uytterhoeven Cc: Greg Kroah-Hartman , Gilad Ben-Yossef , Herbert Xu , "David S . Miller" , "Rafael J . Wysocki" , Rob Clark , Sean Paul , Felipe Balbi , Alan Stern , Thierry Reding , Jonathan Hunter , Mathias Nyman , Matthias Brugger , Chunfeng Yun , Bin Liu , linux-crypto@vger.kernel.org, Linux PM , Linux-Renesas , "open list:ULTRA-WIDEBAND (UWB) SUBSYSTEM:" , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Fri, Jan 24, 2020 at 2:30 PM Geert Uytterhoeven wrote: > > Hardware registers of devices under control of power management cannot > be accessed at all times. If such a device is suspended, register > accesses may lead to undefined behavior, like reading bogus values, or > causing exceptions or system locks. > > Extend struct debugfs_regset32 with an optional field to let device > drivers specify the device the registers in the set belong to. This > allows debugfs_show_regset32() to make sure the device is resumed while > its registers are being read. > > Signed-off-by: Geert Uytterhoeven LGTM: Acked-by: Rafael J. Wysocki > --- > fs/debugfs/file.c | 8 ++++++++ > include/linux/debugfs.h | 1 + > 2 files changed, 9 insertions(+) > > diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c > index dede25247b81f72a..5e52d68421c678f2 100644 > --- a/fs/debugfs/file.c > +++ b/fs/debugfs/file.c > @@ -18,6 +18,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -1057,7 +1058,14 @@ static int debugfs_show_regset32(struct seq_file *s, void *data) > { > struct debugfs_regset32 *regset = s->private; > > + if (regset->dev) > + pm_runtime_get_sync(regset->dev); > + > debugfs_print_regs32(s, regset->regs, regset->nregs, regset->base, ""); > + > + if (regset->dev) > + pm_runtime_put(regset->dev); > + > return 0; > } > > diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h > index bf9b6cafa4c26a68..5d0783ae09f365ac 100644 > --- a/include/linux/debugfs.h > +++ b/include/linux/debugfs.h > @@ -35,6 +35,7 @@ struct debugfs_regset32 { > const struct debugfs_reg32 *regs; > int nregs; > void __iomem *base; > + struct device *dev; /* Optional device for Runtime PM */ > }; > > extern struct dentry *arch_debugfs_dir; > -- > 2.17.1 >