[PATCH] platform/powernv: Avoid re-registration of imc debugfs directory

Oliver O'Halloran oohall at gmail.com
Wed Aug 21 14:46:42 AEST 2019


On Wed, Aug 21, 2019 at 2:10 PM Anju T Sudhakar <anju at linux.vnet.ibm.com> wrote:
>
> export_imc_mode_and_cmd() function which creates the debugfs interface for
> imc-mode and imc-command, is invoked when each nest pmu units is
> registered.
> When the first nest pmu unit is registered, export_imc_mode_and_cmd()
> creates 'imc' directory under `/debug/powerpc`. In the subsequent
> invocations debugfs_create_dir() function returns, since the directory
> already exists.
>
> The recent commit <c33d442328f55> (debugfs: make error message a bit more
> verbose), throws a warning if we try to invoke `debugfs_create_dir()`
> with an already existing directory name.
>
> Address this warning by lookup for an existing 'imc' directory,
> and do not invoke debugfs_create_dir(), if the debugfs interface for
> imc already exists.
>
> This patch is based on:
>    https://lists.ozlabs.org/pipermail/linuxppc-dev/2019-July/192979.html
>
> Signed-off-by: Anju T Sudhakar <anju at linux.vnet.ibm.com>
> Tested-by: Nageswara R Sastry <rnsastry at linux.vnet.ibm.com>
> ---
>  arch/powerpc/platforms/powernv/opal-imc.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/opal-imc.c b/arch/powerpc/platforms/powernv/opal-imc.c
> index e04b20625cb9..fc2f0e60a44d 100644
> --- a/arch/powerpc/platforms/powernv/opal-imc.c
> +++ b/arch/powerpc/platforms/powernv/opal-imc.c
> @@ -55,14 +55,19 @@ static void export_imc_mode_and_cmd(struct device_node *node,
>         static u64 loc, *imc_mode_addr, *imc_cmd_addr;
>         char mode[16], cmd[16];
>         u32 cb_offset;
> +       struct dentry *dir = NULL;
>         struct imc_mem_info *ptr = pmu_ptr->mem_info;
>
> +

> +       /* Return, if 'imc' interface already exists */
> +       dir = debugfs_lookup("imc", powerpc_debugfs_root);
> +       if (dir) {
> +               dput(dir);
> +               return;
> +       }
>         imc_debugfs_parent = debugfs_create_dir("imc", powerpc_debugfs_root);

Is there a reason why we create the debugfs directory here and not in
opal_imc_counters_probe()? There's logic to remove the debugfs
directory in _probe() already so it seems like a more natural place to
it.

>
> -       /*
> -        * Return here, either because 'imc' directory already exists,
> -        * Or failed to create a new one.
> -        */
> +       /* Return here, if failed to create the directory */
>         if (!imc_debugfs_parent)
>                 return;
>
> --
> 2.20.1
>


More information about the Linuxppc-dev mailing list