| From 93fbe7c21a64d22ac057fc9e8eed5967f5d0bd88 Mon Sep 17 00:00:00 2001 |
| From: Andrey Smirnov <andrew.smirnov@gmail.com> |
| Date: Tue, 22 Oct 2019 08:30:09 -0700 |
| Subject: [PATCH] crypto: caam - use devres to remove debugfs |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| Use devres to remove debugfs and drop corresponding |
| debugfs_remove_recursive() call. |
| |
| Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> |
| Reviewed-by: Horia Geantă <horia.geanta@nxp.com> |
| Cc: Chris Healy <cphealy@gmail.com> |
| Cc: Lucas Stach <l.stach@pengutronix.de> |
| Cc: Horia Geantă <horia.geanta@nxp.com> |
| Cc: Herbert Xu <herbert@gondor.apana.org.au> |
| Cc: Iuliana Prodan <iuliana.prodan@nxp.com> |
| Cc: linux-crypto@vger.kernel.org |
| Cc: linux-kernel@vger.kernel.org |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| (cherry picked from commit eceb5daf9ebaa564a65eb2d9d5a4682a33747300) |
| --- |
| drivers/crypto/caam/ctrl.c | 21 ++++++++++++++------- |
| drivers/crypto/caam/intern.h | 1 - |
| 2 files changed, 14 insertions(+), 8 deletions(-) |
| |
| --- a/drivers/crypto/caam/ctrl.c |
| +++ b/drivers/crypto/caam/ctrl.c |
| @@ -327,11 +327,6 @@ static int caam_remove(struct platform_d |
| if (!ctrlpriv->mc_en && ctrlpriv->rng4_sh_init) |
| deinstantiate_rng(ctrldev, ctrlpriv->rng4_sh_init); |
| |
| - /* Shut down debug views */ |
| -#ifdef CONFIG_DEBUG_FS |
| - debugfs_remove_recursive(ctrlpriv->dfs_root); |
| -#endif |
| - |
| return 0; |
| } |
| |
| @@ -563,6 +558,13 @@ static int init_clocks(struct device *de |
| return devm_add_action_or_reset(dev, disable_clocks, ctrlpriv); |
| } |
| |
| +#ifdef CONFIG_DEBUG_FS |
| +static void caam_remove_debugfs(void *root) |
| +{ |
| + debugfs_remove_recursive(root); |
| +} |
| +#endif |
| + |
| /* Probe routine for CAAM top (controller) level */ |
| static int caam_probe(struct platform_device *pdev) |
| { |
| @@ -575,6 +577,7 @@ static int caam_probe(struct platform_de |
| struct caam_drv_private *ctrlpriv; |
| #ifdef CONFIG_DEBUG_FS |
| struct caam_perfmon *perfmon; |
| + struct dentry *dfs_root; |
| #endif |
| u32 scfgr, comp_params; |
| u8 rng_vid; |
| @@ -726,8 +729,12 @@ static int caam_probe(struct platform_de |
| */ |
| perfmon = (struct caam_perfmon __force *)&ctrl->perfmon; |
| |
| - ctrlpriv->dfs_root = debugfs_create_dir(dev_name(dev), NULL); |
| - ctrlpriv->ctl = debugfs_create_dir("ctl", ctrlpriv->dfs_root); |
| + dfs_root = debugfs_create_dir(dev_name(dev), NULL); |
| + ret = devm_add_action_or_reset(dev, caam_remove_debugfs, dfs_root); |
| + if (ret) |
| + return ret; |
| + |
| + ctrlpriv->ctl = debugfs_create_dir("ctl", dfs_root); |
| #endif |
| |
| /* Check to see if (DPAA 1.x) QI present. If so, enable */ |
| --- a/drivers/crypto/caam/intern.h |
| +++ b/drivers/crypto/caam/intern.h |
| @@ -102,7 +102,6 @@ struct caam_drv_private { |
| * variables at runtime. |
| */ |
| #ifdef CONFIG_DEBUG_FS |
| - struct dentry *dfs_root; |
| struct dentry *ctl; /* controller dir */ |
| struct debugfs_blob_wrapper ctl_kek_wrap, ctl_tkek_wrap, ctl_tdsk_wrap; |
| #endif |