Message ID | 20170126225621.12314-10-noralf@tronnes.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jan 26, 2017 at 11:56:11PM +0100, Noralf Trønnes wrote: > drm_debugfs_cleanup() now removes all minor->debugfs_list entries > automatically, so it's not necessary to call > drm_debugfs_remove_files(). Additionally it uses > debugfs_remove_recursive() to clean up the debugfs files, so no need > to do that. > > Cc: robdclark@gmail.com > Signed-off-by: Noralf Trønnes <noralf@tronnes.org> > --- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 7 ------- > drivers/gpu/drm/msm/msm_debugfs.c | 2 -- > drivers/gpu/drm/msm/msm_perf.c | 29 +++-------------------------- > drivers/gpu/drm/msm/msm_rd.c | 31 +++---------------------------- > 4 files changed, 6 insertions(+), 63 deletions(-) > > diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c > index 5f6cd87..2f21a18 100644 > --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c > +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c > @@ -212,12 +212,6 @@ static int mdp5_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) > > return 0; > } > - > -static void mdp5_kms_debugfs_cleanup(struct msm_kms *kms, struct drm_minor *minor) > -{ > - drm_debugfs_remove_files(mdp5_debugfs_list, > - ARRAY_SIZE(mdp5_debugfs_list), minor); > -} > #endif > > static const struct mdp_kms_funcs kms_funcs = { > @@ -239,7 +233,6 @@ static const struct mdp_kms_funcs kms_funcs = { > .destroy = mdp5_kms_destroy, > #ifdef CONFIG_DEBUG_FS > .debugfs_init = mdp5_kms_debugfs_init, > - .debugfs_cleanup = mdp5_kms_debugfs_cleanup, Afaics the mdp_kms_funcs->debugfs_cleanup function is now entirely unused, you can remove it (plus its only caller in msm_debugfs_cleanup) too. Otherwise lgtm. -Daniel > #endif > }, > .set_irqmask = mdp5_set_irqmask, > diff --git a/drivers/gpu/drm/msm/msm_debugfs.c b/drivers/gpu/drm/msm/msm_debugfs.c > index 387f0616..75609a1 100644 > --- a/drivers/gpu/drm/msm/msm_debugfs.c > +++ b/drivers/gpu/drm/msm/msm_debugfs.c > @@ -170,8 +170,6 @@ void msm_debugfs_cleanup(struct drm_minor *minor) > struct drm_device *dev = minor->dev; > struct msm_drm_private *priv = dev->dev_private; > > - drm_debugfs_remove_files(msm_debugfs_list, > - ARRAY_SIZE(msm_debugfs_list), minor); > if (!priv) > return; > > diff --git a/drivers/gpu/drm/msm/msm_perf.c b/drivers/gpu/drm/msm/msm_perf.c > index 1627294..fc5a948 100644 > --- a/drivers/gpu/drm/msm/msm_perf.c > +++ b/drivers/gpu/drm/msm/msm_perf.c > @@ -41,9 +41,6 @@ struct msm_perf_state { > int buftot, bufpos; > > unsigned long next_jiffies; > - > - struct dentry *ent; > - struct drm_info_node *node; > }; > > #define SAMPLE_TIME (HZ/4) > @@ -208,6 +205,7 @@ int msm_perf_debugfs_init(struct drm_minor *minor) > { > struct msm_drm_private *priv = minor->dev->dev_private; > struct msm_perf_state *perf; > + struct dentry *ent; > > /* only create on first minor: */ > if (priv->perf) > @@ -222,26 +220,14 @@ int msm_perf_debugfs_init(struct drm_minor *minor) > mutex_init(&perf->read_lock); > priv->perf = perf; > > - perf->node = kzalloc(sizeof(*perf->node), GFP_KERNEL); > - if (!perf->node) > - goto fail; > - > - perf->ent = debugfs_create_file("perf", S_IFREG | S_IRUGO, > + ent = debugfs_create_file("perf", S_IFREG | S_IRUGO, > minor->debugfs_root, perf, &perf_debugfs_fops); > - if (!perf->ent) { > + if (!ent) { > DRM_ERROR("Cannot create /sys/kernel/debug/dri/%pd/perf\n", > minor->debugfs_root); > goto fail; > } > > - perf->node->minor = minor; > - perf->node->dent = perf->ent; > - perf->node->info_ent = NULL; > - > - mutex_lock(&minor->debugfs_lock); > - list_add(&perf->node->list, &minor->debugfs_list); > - mutex_unlock(&minor->debugfs_lock); > - > return 0; > > fail: > @@ -259,15 +245,6 @@ void msm_perf_debugfs_cleanup(struct drm_minor *minor) > > priv->perf = NULL; > > - debugfs_remove(perf->ent); > - > - if (perf->node) { > - mutex_lock(&minor->debugfs_lock); > - list_del(&perf->node->list); > - mutex_unlock(&minor->debugfs_lock); > - kfree(perf->node); > - } > - > mutex_destroy(&perf->read_lock); > > kfree(perf); > diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c > index 6607456..ab0b39f 100644 > --- a/drivers/gpu/drm/msm/msm_rd.c > +++ b/drivers/gpu/drm/msm/msm_rd.c > @@ -84,9 +84,6 @@ struct msm_rd_state { > > bool open; > > - struct dentry *ent; > - struct drm_info_node *node; > - > /* current submit to read out: */ > struct msm_gem_submit *submit; > > @@ -219,6 +216,7 @@ int msm_rd_debugfs_init(struct drm_minor *minor) > { > struct msm_drm_private *priv = minor->dev->dev_private; > struct msm_rd_state *rd; > + struct dentry *ent; > > /* only create on first minor: */ > if (priv->rd) > @@ -236,26 +234,14 @@ int msm_rd_debugfs_init(struct drm_minor *minor) > > init_waitqueue_head(&rd->fifo_event); > > - rd->node = kzalloc(sizeof(*rd->node), GFP_KERNEL); > - if (!rd->node) > - goto fail; > - > - rd->ent = debugfs_create_file("rd", S_IFREG | S_IRUGO, > + ent = debugfs_create_file("rd", S_IFREG | S_IRUGO, > minor->debugfs_root, rd, &rd_debugfs_fops); > - if (!rd->ent) { > + if (!ent) { > DRM_ERROR("Cannot create /sys/kernel/debug/dri/%pd/rd\n", > minor->debugfs_root); > goto fail; > } > > - rd->node->minor = minor; > - rd->node->dent = rd->ent; > - rd->node->info_ent = NULL; > - > - mutex_lock(&minor->debugfs_lock); > - list_add(&rd->node->list, &minor->debugfs_list); > - mutex_unlock(&minor->debugfs_lock); > - > return 0; > > fail: > @@ -272,18 +258,7 @@ void msm_rd_debugfs_cleanup(struct drm_minor *minor) > return; > > priv->rd = NULL; > - > - debugfs_remove(rd->ent); > - > - if (rd->node) { > - mutex_lock(&minor->debugfs_lock); > - list_del(&rd->node->list); > - mutex_unlock(&minor->debugfs_lock); > - kfree(rd->node); > - } > - > mutex_destroy(&rd->read_lock); > - > kfree(rd); > } > > -- > 2.10.2 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c index 5f6cd87..2f21a18 100644 --- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c +++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c @@ -212,12 +212,6 @@ static int mdp5_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor) return 0; } - -static void mdp5_kms_debugfs_cleanup(struct msm_kms *kms, struct drm_minor *minor) -{ - drm_debugfs_remove_files(mdp5_debugfs_list, - ARRAY_SIZE(mdp5_debugfs_list), minor); -} #endif static const struct mdp_kms_funcs kms_funcs = { @@ -239,7 +233,6 @@ static const struct mdp_kms_funcs kms_funcs = { .destroy = mdp5_kms_destroy, #ifdef CONFIG_DEBUG_FS .debugfs_init = mdp5_kms_debugfs_init, - .debugfs_cleanup = mdp5_kms_debugfs_cleanup, #endif }, .set_irqmask = mdp5_set_irqmask, diff --git a/drivers/gpu/drm/msm/msm_debugfs.c b/drivers/gpu/drm/msm/msm_debugfs.c index 387f0616..75609a1 100644 --- a/drivers/gpu/drm/msm/msm_debugfs.c +++ b/drivers/gpu/drm/msm/msm_debugfs.c @@ -170,8 +170,6 @@ void msm_debugfs_cleanup(struct drm_minor *minor) struct drm_device *dev = minor->dev; struct msm_drm_private *priv = dev->dev_private; - drm_debugfs_remove_files(msm_debugfs_list, - ARRAY_SIZE(msm_debugfs_list), minor); if (!priv) return; diff --git a/drivers/gpu/drm/msm/msm_perf.c b/drivers/gpu/drm/msm/msm_perf.c index 1627294..fc5a948 100644 --- a/drivers/gpu/drm/msm/msm_perf.c +++ b/drivers/gpu/drm/msm/msm_perf.c @@ -41,9 +41,6 @@ struct msm_perf_state { int buftot, bufpos; unsigned long next_jiffies; - - struct dentry *ent; - struct drm_info_node *node; }; #define SAMPLE_TIME (HZ/4) @@ -208,6 +205,7 @@ int msm_perf_debugfs_init(struct drm_minor *minor) { struct msm_drm_private *priv = minor->dev->dev_private; struct msm_perf_state *perf; + struct dentry *ent; /* only create on first minor: */ if (priv->perf) @@ -222,26 +220,14 @@ int msm_perf_debugfs_init(struct drm_minor *minor) mutex_init(&perf->read_lock); priv->perf = perf; - perf->node = kzalloc(sizeof(*perf->node), GFP_KERNEL); - if (!perf->node) - goto fail; - - perf->ent = debugfs_create_file("perf", S_IFREG | S_IRUGO, + ent = debugfs_create_file("perf", S_IFREG | S_IRUGO, minor->debugfs_root, perf, &perf_debugfs_fops); - if (!perf->ent) { + if (!ent) { DRM_ERROR("Cannot create /sys/kernel/debug/dri/%pd/perf\n", minor->debugfs_root); goto fail; } - perf->node->minor = minor; - perf->node->dent = perf->ent; - perf->node->info_ent = NULL; - - mutex_lock(&minor->debugfs_lock); - list_add(&perf->node->list, &minor->debugfs_list); - mutex_unlock(&minor->debugfs_lock); - return 0; fail: @@ -259,15 +245,6 @@ void msm_perf_debugfs_cleanup(struct drm_minor *minor) priv->perf = NULL; - debugfs_remove(perf->ent); - - if (perf->node) { - mutex_lock(&minor->debugfs_lock); - list_del(&perf->node->list); - mutex_unlock(&minor->debugfs_lock); - kfree(perf->node); - } - mutex_destroy(&perf->read_lock); kfree(perf); diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c index 6607456..ab0b39f 100644 --- a/drivers/gpu/drm/msm/msm_rd.c +++ b/drivers/gpu/drm/msm/msm_rd.c @@ -84,9 +84,6 @@ struct msm_rd_state { bool open; - struct dentry *ent; - struct drm_info_node *node; - /* current submit to read out: */ struct msm_gem_submit *submit; @@ -219,6 +216,7 @@ int msm_rd_debugfs_init(struct drm_minor *minor) { struct msm_drm_private *priv = minor->dev->dev_private; struct msm_rd_state *rd; + struct dentry *ent; /* only create on first minor: */ if (priv->rd) @@ -236,26 +234,14 @@ int msm_rd_debugfs_init(struct drm_minor *minor) init_waitqueue_head(&rd->fifo_event); - rd->node = kzalloc(sizeof(*rd->node), GFP_KERNEL); - if (!rd->node) - goto fail; - - rd->ent = debugfs_create_file("rd", S_IFREG | S_IRUGO, + ent = debugfs_create_file("rd", S_IFREG | S_IRUGO, minor->debugfs_root, rd, &rd_debugfs_fops); - if (!rd->ent) { + if (!ent) { DRM_ERROR("Cannot create /sys/kernel/debug/dri/%pd/rd\n", minor->debugfs_root); goto fail; } - rd->node->minor = minor; - rd->node->dent = rd->ent; - rd->node->info_ent = NULL; - - mutex_lock(&minor->debugfs_lock); - list_add(&rd->node->list, &minor->debugfs_list); - mutex_unlock(&minor->debugfs_lock); - return 0; fail: @@ -272,18 +258,7 @@ void msm_rd_debugfs_cleanup(struct drm_minor *minor) return; priv->rd = NULL; - - debugfs_remove(rd->ent); - - if (rd->node) { - mutex_lock(&minor->debugfs_lock); - list_del(&rd->node->list); - mutex_unlock(&minor->debugfs_lock); - kfree(rd->node); - } - mutex_destroy(&rd->read_lock); - kfree(rd); }
drm_debugfs_cleanup() now removes all minor->debugfs_list entries automatically, so it's not necessary to call drm_debugfs_remove_files(). Additionally it uses debugfs_remove_recursive() to clean up the debugfs files, so no need to do that. Cc: robdclark@gmail.com Signed-off-by: Noralf Trønnes <noralf@tronnes.org> --- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 7 ------- drivers/gpu/drm/msm/msm_debugfs.c | 2 -- drivers/gpu/drm/msm/msm_perf.c | 29 +++-------------------------- drivers/gpu/drm/msm/msm_rd.c | 31 +++---------------------------- 4 files changed, 6 insertions(+), 63 deletions(-)