From: Brian Starkey <brian.starkey@arm.com> To: Liviu Dudau <Liviu.Dudau@arm.com> Cc: Rob Clark <robdclark@gmail.com>, David Airlie <airlied@linux.ie>, DRI devel <dri-devel@lists.freedesktop.org>, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH] drm/atomic: cleanup debugfs entries on un-registering the driver. Date: Thu, 17 Nov 2016 12:26:01 +0000 [thread overview] Message-ID: <20161117122600.GD21156@e106950-lin.cambridge.arm.com> (raw) In-Reply-To: <20161117114129.2627-1-Liviu.Dudau@arm.com> On Thu, Nov 17, 2016 at 11:41:29AM +0000, Liviu Dudau wrote: >Cleanup the debugfs entries created by commit 6559c901cb48 when >the driver's minor gets un-registered. Without it, DRM drivers >compiled as modules cannot be rmmod-ed and modprobed again. > >Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> Works for me, Tested-by: Brian Starkey <brian.starkey@arm.com> >--- > drivers/gpu/drm/drm_atomic.c | 7 +++++++ > drivers/gpu/drm/drm_debugfs.c | 9 +++++++++ > include/drm/drm_atomic.h | 1 + > 3 files changed, 17 insertions(+) > >diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c >index 6773b35..dddf37a 100644 >--- a/drivers/gpu/drm/drm_atomic.c >+++ b/drivers/gpu/drm/drm_atomic.c >@@ -1681,6 +1681,13 @@ int drm_atomic_debugfs_init(struct drm_minor *minor) > ARRAY_SIZE(drm_atomic_debugfs_list), > minor->debugfs_root, minor); > } >+ >+int drm_atomic_debugfs_cleanup(struct drm_minor *minor) >+{ >+ return drm_debugfs_remove_files(drm_atomic_debugfs_list, >+ ARRAY_SIZE(drm_atomic_debugfs_list), >+ minor); >+} > #endif > > /* >diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c >index 206a4fe..2e3e46a 100644 >--- a/drivers/gpu/drm/drm_debugfs.c >+++ b/drivers/gpu/drm/drm_debugfs.c >@@ -228,6 +228,7 @@ EXPORT_SYMBOL(drm_debugfs_remove_files); > int drm_debugfs_cleanup(struct drm_minor *minor) > { > struct drm_device *dev = minor->dev; >+ int ret; > > if (!minor->debugfs_root) > return 0; >@@ -235,6 +236,14 @@ int drm_debugfs_cleanup(struct drm_minor *minor) > if (dev->driver->debugfs_cleanup) > dev->driver->debugfs_cleanup(minor); > >+ if (drm_core_check_feature(dev, DRIVER_ATOMIC)) { >+ ret = drm_atomic_debugfs_cleanup(minor); >+ if (ret) { >+ DRM_ERROR("DRM: Failed to remove atomic debugfs entries\n"); >+ return ret; >+ } >+ } >+ > drm_debugfs_remove_files(drm_debugfs_list, DRM_DEBUGFS_ENTRIES, minor); > > debugfs_remove(minor->debugfs_root); >diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h >index 2409144..6400df0 100644 >--- a/include/drm/drm_atomic.h >+++ b/include/drm/drm_atomic.h >@@ -374,6 +374,7 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p); > #ifdef CONFIG_DEBUG_FS > struct drm_minor; > int drm_atomic_debugfs_init(struct drm_minor *minor); >+int drm_atomic_debugfs_cleanup(struct drm_minor *minor); > #endif > > #define for_each_connector_in_state(__state, connector, connector_state, __i) \ >-- >2.10.0 >
WARNING: multiple messages have this Message-ID (diff)
From: Brian Starkey <brian.starkey@arm.com> To: Liviu Dudau <Liviu.Dudau@arm.com> Cc: LKML <linux-kernel@vger.kernel.org>, DRI devel <dri-devel@lists.freedesktop.org> Subject: Re: [PATCH] drm/atomic: cleanup debugfs entries on un-registering the driver. Date: Thu, 17 Nov 2016 12:26:01 +0000 [thread overview] Message-ID: <20161117122600.GD21156@e106950-lin.cambridge.arm.com> (raw) In-Reply-To: <20161117114129.2627-1-Liviu.Dudau@arm.com> On Thu, Nov 17, 2016 at 11:41:29AM +0000, Liviu Dudau wrote: >Cleanup the debugfs entries created by commit 6559c901cb48 when >the driver's minor gets un-registered. Without it, DRM drivers >compiled as modules cannot be rmmod-ed and modprobed again. > >Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> Works for me, Tested-by: Brian Starkey <brian.starkey@arm.com> >--- > drivers/gpu/drm/drm_atomic.c | 7 +++++++ > drivers/gpu/drm/drm_debugfs.c | 9 +++++++++ > include/drm/drm_atomic.h | 1 + > 3 files changed, 17 insertions(+) > >diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c >index 6773b35..dddf37a 100644 >--- a/drivers/gpu/drm/drm_atomic.c >+++ b/drivers/gpu/drm/drm_atomic.c >@@ -1681,6 +1681,13 @@ int drm_atomic_debugfs_init(struct drm_minor *minor) > ARRAY_SIZE(drm_atomic_debugfs_list), > minor->debugfs_root, minor); > } >+ >+int drm_atomic_debugfs_cleanup(struct drm_minor *minor) >+{ >+ return drm_debugfs_remove_files(drm_atomic_debugfs_list, >+ ARRAY_SIZE(drm_atomic_debugfs_list), >+ minor); >+} > #endif > > /* >diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c >index 206a4fe..2e3e46a 100644 >--- a/drivers/gpu/drm/drm_debugfs.c >+++ b/drivers/gpu/drm/drm_debugfs.c >@@ -228,6 +228,7 @@ EXPORT_SYMBOL(drm_debugfs_remove_files); > int drm_debugfs_cleanup(struct drm_minor *minor) > { > struct drm_device *dev = minor->dev; >+ int ret; > > if (!minor->debugfs_root) > return 0; >@@ -235,6 +236,14 @@ int drm_debugfs_cleanup(struct drm_minor *minor) > if (dev->driver->debugfs_cleanup) > dev->driver->debugfs_cleanup(minor); > >+ if (drm_core_check_feature(dev, DRIVER_ATOMIC)) { >+ ret = drm_atomic_debugfs_cleanup(minor); >+ if (ret) { >+ DRM_ERROR("DRM: Failed to remove atomic debugfs entries\n"); >+ return ret; >+ } >+ } >+ > drm_debugfs_remove_files(drm_debugfs_list, DRM_DEBUGFS_ENTRIES, minor); > > debugfs_remove(minor->debugfs_root); >diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h >index 2409144..6400df0 100644 >--- a/include/drm/drm_atomic.h >+++ b/include/drm/drm_atomic.h >@@ -374,6 +374,7 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p); > #ifdef CONFIG_DEBUG_FS > struct drm_minor; > int drm_atomic_debugfs_init(struct drm_minor *minor); >+int drm_atomic_debugfs_cleanup(struct drm_minor *minor); > #endif > > #define for_each_connector_in_state(__state, connector, connector_state, __i) \ >-- >2.10.0 > _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-11-17 17:12 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-11-17 11:41 [PATCH] drm/atomic: cleanup debugfs entries on un-registering the driver Liviu Dudau 2016-11-17 11:41 ` Liviu Dudau 2016-11-17 11:45 ` Liviu Dudau 2016-11-17 11:45 ` Liviu Dudau 2016-11-17 12:26 ` Brian Starkey [this message] 2016-11-17 12:26 ` Brian Starkey 2016-11-21 18:23 ` Sean Paul 2016-11-21 18:23 ` Sean Paul
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20161117122600.GD21156@e106950-lin.cambridge.arm.com \ --to=brian.starkey@arm.com \ --cc=Liviu.Dudau@arm.com \ --cc=airlied@linux.ie \ --cc=dri-devel@lists.freedesktop.org \ --cc=linux-kernel@vger.kernel.org \ --cc=robdclark@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.