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@xxxxxxxxx > Signed-off-by: Noralf Trønnes <noralf@xxxxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel