* [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function
@ 2019-06-14 9:51 Greg Kroah-Hartman
2019-06-14 9:51 ` [PATCH 2/2] drm: debugfs: make drm_debugfs_create_files() never fail Greg Kroah-Hartman
2019-06-14 14:59 ` [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function Daniel Vetter
0 siblings, 2 replies; 9+ messages in thread
From: Greg Kroah-Hartman @ 2019-06-14 9:51 UTC (permalink / raw)
To: David Airlie, Daniel Vetter
Cc: Maxime Ripard, Greg Kroah-Hartman, Sean Paul, dri-devel
The function can not fail, and no one checks the current return value,
so just mark it as a void function so no one gets confused.
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/drm_debugfs.c | 5 ++---
include/drm/drm_debugfs.h | 9 ++++-----
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index 6f2802e9bfb5..515569002c86 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -270,8 +270,8 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
}
-int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
- struct drm_minor *minor)
+void drm_debugfs_remove_files(const struct drm_info_list *files, int count,
+ struct drm_minor *minor)
{
struct list_head *pos, *q;
struct drm_info_node *tmp;
@@ -289,7 +289,6 @@ int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
}
}
mutex_unlock(&minor->debugfs_lock);
- return 0;
}
EXPORT_SYMBOL(drm_debugfs_remove_files);
diff --git a/include/drm/drm_debugfs.h b/include/drm/drm_debugfs.h
index ac0f75df1ac9..422d0d201c0a 100644
--- a/include/drm/drm_debugfs.h
+++ b/include/drm/drm_debugfs.h
@@ -81,8 +81,8 @@ struct drm_info_node {
int drm_debugfs_create_files(const struct drm_info_list *files,
int count, struct dentry *root,
struct drm_minor *minor);
-int drm_debugfs_remove_files(const struct drm_info_list *files,
- int count, struct drm_minor *minor);
+void drm_debugfs_remove_files(const struct drm_info_list *files,
+ int count, struct drm_minor *minor);
#else
static inline int drm_debugfs_create_files(const struct drm_info_list *files,
int count, struct dentry *root,
@@ -91,10 +91,9 @@ static inline int drm_debugfs_create_files(const struct drm_info_list *files,
return 0;
}
-static inline int drm_debugfs_remove_files(const struct drm_info_list *files,
- int count, struct drm_minor *minor)
+static inline void drm_debugfs_remove_files(const struct drm_info_list *files,
+ int count, struct drm_minor *minor)
{
- return 0;
}
#endif
--
2.22.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] drm: debugfs: make drm_debugfs_create_files() never fail
2019-06-14 9:51 [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function Greg Kroah-Hartman
@ 2019-06-14 9:51 ` Greg Kroah-Hartman
2019-06-14 15:10 ` Daniel Vetter
2019-06-14 14:59 ` [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function Daniel Vetter
1 sibling, 1 reply; 9+ messages in thread
From: Greg Kroah-Hartman @ 2019-06-14 9:51 UTC (permalink / raw)
To: David Airlie, Daniel Vetter
Cc: Maxime Ripard, Greg Kroah-Hartman, Sean Paul, dri-devel
As stated before, there is no need to care if a debugfs function
succeeds or not, and no code logic in the kernel should ever change
based on a debugfs function return value, so make
drm_debugfs_create_files() never fail. If it encounters an
odd/rare/impossible error (i.e. out of memory, or a duplicate debugfs
filename to be created), just keep on moving as if nothing improper had
happened.
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/drm_debugfs.c | 26 ++++++--------------------
1 file changed, 6 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index 515569002c86..009e1c0ac7b4 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -173,9 +173,8 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count,
struct dentry *root, struct drm_minor *minor)
{
struct drm_device *dev = minor->dev;
- struct dentry *ent;
struct drm_info_node *tmp;
- int i, ret;
+ int i;
for (i = 0; i < count; i++) {
u32 features = files[i].driver_features;
@@ -185,22 +184,13 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count,
continue;
tmp = kmalloc(sizeof(struct drm_info_node), GFP_KERNEL);
- if (tmp == NULL) {
- ret = -1;
- goto fail;
- }
- ent = debugfs_create_file(files[i].name, S_IFREG | S_IRUGO,
- root, tmp, &drm_debugfs_fops);
- if (!ent) {
- DRM_ERROR("Cannot create /sys/kernel/debug/dri/%pd/%s\n",
- root, files[i].name);
- kfree(tmp);
- ret = -1;
- goto fail;
- }
+ if (tmp == NULL)
+ continue;
tmp->minor = minor;
- tmp->dent = ent;
+ tmp->dent = debugfs_create_file(files[i].name,
+ S_IFREG | S_IRUGO, root, tmp,
+ &drm_debugfs_fops);
tmp->info_ent = &files[i];
mutex_lock(&minor->debugfs_lock);
@@ -208,10 +198,6 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count,
mutex_unlock(&minor->debugfs_lock);
}
return 0;
-
-fail:
- drm_debugfs_remove_files(files, count, minor);
- return ret;
}
EXPORT_SYMBOL(drm_debugfs_create_files);
--
2.22.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function
2019-06-14 9:51 [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function Greg Kroah-Hartman
2019-06-14 9:51 ` [PATCH 2/2] drm: debugfs: make drm_debugfs_create_files() never fail Greg Kroah-Hartman
@ 2019-06-14 14:59 ` Daniel Vetter
2019-06-14 15:19 ` Greg Kroah-Hartman
1 sibling, 1 reply; 9+ messages in thread
From: Daniel Vetter @ 2019-06-14 14:59 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: David Airlie, dri-devel, Maxime Ripard, Sean Paul
On Fri, Jun 14, 2019 at 11:51:09AM +0200, Greg Kroah-Hartman wrote:
> The function can not fail, and no one checks the current return value,
> so just mark it as a void function so no one gets confused.
>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Sean Paul <sean@poorly.run>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> drivers/gpu/drm/drm_debugfs.c | 5 ++---
> include/drm/drm_debugfs.h | 9 ++++-----
> 2 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> index 6f2802e9bfb5..515569002c86 100644
> --- a/drivers/gpu/drm/drm_debugfs.c
> +++ b/drivers/gpu/drm/drm_debugfs.c
> @@ -270,8 +270,8 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
> }
>
>
> -int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> - struct drm_minor *minor)
> +void drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> + struct drm_minor *minor)
We're trying to entirely nuke this function here, see the kerneldoc for
drm_debugfs_create_files(). Only user left is tegra, and we call the
"remove all debugfs files" and the ->early_unregister hooks all from the
same place. So this can all be garbage collected. It's mildly annoying
because we'd need to move the kfree from ->early_unregister into ->destroy
callbacks, because connectors are unregister before we throw away all the
debugfs files in drm_dev_unregister(). But imo that's cleaner anway.
Up for that?
Cheers, Daniel
> {
> struct list_head *pos, *q;
> struct drm_info_node *tmp;
> @@ -289,7 +289,6 @@ int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> }
> }
> mutex_unlock(&minor->debugfs_lock);
> - return 0;
> }
> EXPORT_SYMBOL(drm_debugfs_remove_files);
>
> diff --git a/include/drm/drm_debugfs.h b/include/drm/drm_debugfs.h
> index ac0f75df1ac9..422d0d201c0a 100644
> --- a/include/drm/drm_debugfs.h
> +++ b/include/drm/drm_debugfs.h
> @@ -81,8 +81,8 @@ struct drm_info_node {
> int drm_debugfs_create_files(const struct drm_info_list *files,
> int count, struct dentry *root,
> struct drm_minor *minor);
> -int drm_debugfs_remove_files(const struct drm_info_list *files,
> - int count, struct drm_minor *minor);
> +void drm_debugfs_remove_files(const struct drm_info_list *files,
> + int count, struct drm_minor *minor);
> #else
> static inline int drm_debugfs_create_files(const struct drm_info_list *files,
> int count, struct dentry *root,
> @@ -91,10 +91,9 @@ static inline int drm_debugfs_create_files(const struct drm_info_list *files,
> return 0;
> }
>
> -static inline int drm_debugfs_remove_files(const struct drm_info_list *files,
> - int count, struct drm_minor *minor)
> +static inline void drm_debugfs_remove_files(const struct drm_info_list *files,
> + int count, struct drm_minor *minor)
> {
> - return 0;
> }
> #endif
>
> --
> 2.22.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] drm: debugfs: make drm_debugfs_create_files() never fail
2019-06-14 9:51 ` [PATCH 2/2] drm: debugfs: make drm_debugfs_create_files() never fail Greg Kroah-Hartman
@ 2019-06-14 15:10 ` Daniel Vetter
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2019-06-14 15:10 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: David Airlie, dri-devel, Maxime Ripard, Sean Paul
On Fri, Jun 14, 2019 at 11:51:10AM +0200, Greg Kroah-Hartman wrote:
> As stated before, there is no need to care if a debugfs function
> succeeds or not, and no code logic in the kernel should ever change
> based on a debugfs function return value, so make
> drm_debugfs_create_files() never fail. If it encounters an
> odd/rare/impossible error (i.e. out of memory, or a duplicate debugfs
> filename to be created), just keep on moving as if nothing improper had
> happened.
>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Sean Paul <sean@poorly.run>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Applied this one to drm-misc-next, thanks.
-Daniel
> ---
> drivers/gpu/drm/drm_debugfs.c | 26 ++++++--------------------
> 1 file changed, 6 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> index 515569002c86..009e1c0ac7b4 100644
> --- a/drivers/gpu/drm/drm_debugfs.c
> +++ b/drivers/gpu/drm/drm_debugfs.c
> @@ -173,9 +173,8 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count,
> struct dentry *root, struct drm_minor *minor)
> {
> struct drm_device *dev = minor->dev;
> - struct dentry *ent;
> struct drm_info_node *tmp;
> - int i, ret;
> + int i;
>
> for (i = 0; i < count; i++) {
> u32 features = files[i].driver_features;
> @@ -185,22 +184,13 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count,
> continue;
>
> tmp = kmalloc(sizeof(struct drm_info_node), GFP_KERNEL);
> - if (tmp == NULL) {
> - ret = -1;
> - goto fail;
> - }
> - ent = debugfs_create_file(files[i].name, S_IFREG | S_IRUGO,
> - root, tmp, &drm_debugfs_fops);
> - if (!ent) {
> - DRM_ERROR("Cannot create /sys/kernel/debug/dri/%pd/%s\n",
> - root, files[i].name);
> - kfree(tmp);
> - ret = -1;
> - goto fail;
> - }
> + if (tmp == NULL)
> + continue;
>
> tmp->minor = minor;
> - tmp->dent = ent;
> + tmp->dent = debugfs_create_file(files[i].name,
> + S_IFREG | S_IRUGO, root, tmp,
> + &drm_debugfs_fops);
> tmp->info_ent = &files[i];
>
> mutex_lock(&minor->debugfs_lock);
> @@ -208,10 +198,6 @@ int drm_debugfs_create_files(const struct drm_info_list *files, int count,
> mutex_unlock(&minor->debugfs_lock);
> }
> return 0;
> -
> -fail:
> - drm_debugfs_remove_files(files, count, minor);
> - return ret;
> }
> EXPORT_SYMBOL(drm_debugfs_create_files);
>
> --
> 2.22.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function
2019-06-14 14:59 ` [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function Daniel Vetter
@ 2019-06-14 15:19 ` Greg Kroah-Hartman
2019-06-14 15:37 ` Daniel Vetter
0 siblings, 1 reply; 9+ messages in thread
From: Greg Kroah-Hartman @ 2019-06-14 15:19 UTC (permalink / raw)
To: Daniel Vetter; +Cc: David Airlie, Maxime Ripard, Sean Paul, dri-devel
On Fri, Jun 14, 2019 at 04:59:08PM +0200, Daniel Vetter wrote:
> On Fri, Jun 14, 2019 at 11:51:09AM +0200, Greg Kroah-Hartman wrote:
> > The function can not fail, and no one checks the current return value,
> > so just mark it as a void function so no one gets confused.
> >
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > Cc: Sean Paul <sean@poorly.run>
> > Cc: David Airlie <airlied@linux.ie>
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Cc: dri-devel@lists.freedesktop.org
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> > drivers/gpu/drm/drm_debugfs.c | 5 ++---
> > include/drm/drm_debugfs.h | 9 ++++-----
> > 2 files changed, 6 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> > index 6f2802e9bfb5..515569002c86 100644
> > --- a/drivers/gpu/drm/drm_debugfs.c
> > +++ b/drivers/gpu/drm/drm_debugfs.c
> > @@ -270,8 +270,8 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
> > }
> >
> >
> > -int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > - struct drm_minor *minor)
> > +void drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > + struct drm_minor *minor)
>
> We're trying to entirely nuke this function here, see the kerneldoc for
> drm_debugfs_create_files(). Only user left is tegra, and we call the
> "remove all debugfs files" and the ->early_unregister hooks all from the
> same place. So this can all be garbage collected. It's mildly annoying
> because we'd need to move the kfree from ->early_unregister into ->destroy
> callbacks, because connectors are unregister before we throw away all the
> debugfs files in drm_dev_unregister(). But imo that's cleaner anway.
I would love to see this function gone, it can also make things a lot
simpler from the point of view of creating the debugfs files as well, as
no dentries will need to be saved.
> Up for that?
Sure, I can do that. I have a much larger patch messing with
drm_debugfs_create_files() that I want you all to be in a good mood for
when I submit it (it touches all drivers at once), so I might as well
clean this up first :)
Give me a week, I'm supposed to be writing my slides for a conference
now, instead I'm procrastinating by writing debugfs cleanup patches, I
need to stop...
thanks,
greg k-h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function
2019-06-14 15:19 ` Greg Kroah-Hartman
@ 2019-06-14 15:37 ` Daniel Vetter
2019-06-18 12:01 ` Greg Kroah-Hartman
0 siblings, 1 reply; 9+ messages in thread
From: Daniel Vetter @ 2019-06-14 15:37 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: David Airlie, Maxime Ripard, Sean Paul, dri-devel
On Fri, Jun 14, 2019 at 5:20 PM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> On Fri, Jun 14, 2019 at 04:59:08PM +0200, Daniel Vetter wrote:
> > On Fri, Jun 14, 2019 at 11:51:09AM +0200, Greg Kroah-Hartman wrote:
> > > The function can not fail, and no one checks the current return value,
> > > so just mark it as a void function so no one gets confused.
> > >
> > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > > Cc: Sean Paul <sean@poorly.run>
> > > Cc: David Airlie <airlied@linux.ie>
> > > Cc: Daniel Vetter <daniel@ffwll.ch>
> > > Cc: dri-devel@lists.freedesktop.org
> > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > ---
> > > drivers/gpu/drm/drm_debugfs.c | 5 ++---
> > > include/drm/drm_debugfs.h | 9 ++++-----
> > > 2 files changed, 6 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> > > index 6f2802e9bfb5..515569002c86 100644
> > > --- a/drivers/gpu/drm/drm_debugfs.c
> > > +++ b/drivers/gpu/drm/drm_debugfs.c
> > > @@ -270,8 +270,8 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
> > > }
> > >
> > >
> > > -int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > - struct drm_minor *minor)
> > > +void drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > + struct drm_minor *minor)
> >
> > We're trying to entirely nuke this function here, see the kerneldoc for
> > drm_debugfs_create_files(). Only user left is tegra, and we call the
> > "remove all debugfs files" and the ->early_unregister hooks all from the
> > same place. So this can all be garbage collected. It's mildly annoying
> > because we'd need to move the kfree from ->early_unregister into ->destroy
> > callbacks, because connectors are unregister before we throw away all the
> > debugfs files in drm_dev_unregister(). But imo that's cleaner anway.
>
> I would love to see this function gone, it can also make things a lot
> simpler from the point of view of creating the debugfs files as well, as
> no dentries will need to be saved.
>
> > Up for that?
>
> Sure, I can do that. I have a much larger patch messing with
> drm_debugfs_create_files() that I want you all to be in a good mood for
> when I submit it (it touches all drivers at once), so I might as well
> clean this up first :)
Oh don't worry, we've had a pile of cleanup todo tasks in this area
since a long time. You doing them all is going to make me a happy
camper :-)
Only thing to be aware of is that we have a bit a habit of dragging
good contributors of refactoring/cleanup/fundamental work like this
into the drm fold for good. You might get stuck ...
> Give me a week, I'm supposed to be writing my slides for a conference
> now, instead I'm procrastinating by writing debugfs cleanup patches, I
> need to stop...
:-)
Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function
2019-06-14 15:37 ` Daniel Vetter
@ 2019-06-18 12:01 ` Greg Kroah-Hartman
2019-06-18 12:17 ` Daniel Vetter
0 siblings, 1 reply; 9+ messages in thread
From: Greg Kroah-Hartman @ 2019-06-18 12:01 UTC (permalink / raw)
To: Daniel Vetter; +Cc: David Airlie, Maxime Ripard, Sean Paul, dri-devel
On Fri, Jun 14, 2019 at 05:37:58PM +0200, Daniel Vetter wrote:
> On Fri, Jun 14, 2019 at 5:20 PM Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> >
> > On Fri, Jun 14, 2019 at 04:59:08PM +0200, Daniel Vetter wrote:
> > > On Fri, Jun 14, 2019 at 11:51:09AM +0200, Greg Kroah-Hartman wrote:
> > > > The function can not fail, and no one checks the current return value,
> > > > so just mark it as a void function so no one gets confused.
> > > >
> > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > > > Cc: Sean Paul <sean@poorly.run>
> > > > Cc: David Airlie <airlied@linux.ie>
> > > > Cc: Daniel Vetter <daniel@ffwll.ch>
> > > > Cc: dri-devel@lists.freedesktop.org
> > > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > > ---
> > > > drivers/gpu/drm/drm_debugfs.c | 5 ++---
> > > > include/drm/drm_debugfs.h | 9 ++++-----
> > > > 2 files changed, 6 insertions(+), 8 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> > > > index 6f2802e9bfb5..515569002c86 100644
> > > > --- a/drivers/gpu/drm/drm_debugfs.c
> > > > +++ b/drivers/gpu/drm/drm_debugfs.c
> > > > @@ -270,8 +270,8 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
> > > > }
> > > >
> > > >
> > > > -int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > > - struct drm_minor *minor)
> > > > +void drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > > + struct drm_minor *minor)
> > >
> > > We're trying to entirely nuke this function here, see the kerneldoc for
> > > drm_debugfs_create_files(). Only user left is tegra, and we call the
> > > "remove all debugfs files" and the ->early_unregister hooks all from the
> > > same place. So this can all be garbage collected. It's mildly annoying
> > > because we'd need to move the kfree from ->early_unregister into ->destroy
> > > callbacks, because connectors are unregister before we throw away all the
> > > debugfs files in drm_dev_unregister(). But imo that's cleaner anway.
> >
> > I would love to see this function gone, it can also make things a lot
> > simpler from the point of view of creating the debugfs files as well, as
> > no dentries will need to be saved.
> >
> > > Up for that?
> >
> > Sure, I can do that. I have a much larger patch messing with
> > drm_debugfs_create_files() that I want you all to be in a good mood for
> > when I submit it (it touches all drivers at once), so I might as well
> > clean this up first :)
>
> Oh don't worry, we've had a pile of cleanup todo tasks in this area
> since a long time. You doing them all is going to make me a happy
> camper :-)
>
> Only thing to be aware of is that we have a bit a habit of dragging
> good contributors of refactoring/cleanup/fundamental work like this
> into the drm fold for good. You might get stuck ...
Hah...
Anyway, what tree/branch should I do this work on? I see drm-next, is
that the one to use, but it doesn't seem to have the other patches you
all said you accepted from me for this debugfs cleanup already.
thanks,
greg k-h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function
2019-06-18 12:01 ` Greg Kroah-Hartman
@ 2019-06-18 12:17 ` Daniel Vetter
2019-06-18 15:09 ` Greg Kroah-Hartman
0 siblings, 1 reply; 9+ messages in thread
From: Daniel Vetter @ 2019-06-18 12:17 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: David Airlie, dri-devel, Maxime Ripard, Sean Paul
On Tue, Jun 18, 2019 at 02:01:35PM +0200, Greg Kroah-Hartman wrote:
> On Fri, Jun 14, 2019 at 05:37:58PM +0200, Daniel Vetter wrote:
> > On Fri, Jun 14, 2019 at 5:20 PM Greg Kroah-Hartman
> > <gregkh@linuxfoundation.org> wrote:
> > >
> > > On Fri, Jun 14, 2019 at 04:59:08PM +0200, Daniel Vetter wrote:
> > > > On Fri, Jun 14, 2019 at 11:51:09AM +0200, Greg Kroah-Hartman wrote:
> > > > > The function can not fail, and no one checks the current return value,
> > > > > so just mark it as a void function so no one gets confused.
> > > > >
> > > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > > > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > > > > Cc: Sean Paul <sean@poorly.run>
> > > > > Cc: David Airlie <airlied@linux.ie>
> > > > > Cc: Daniel Vetter <daniel@ffwll.ch>
> > > > > Cc: dri-devel@lists.freedesktop.org
> > > > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > > > ---
> > > > > drivers/gpu/drm/drm_debugfs.c | 5 ++---
> > > > > include/drm/drm_debugfs.h | 9 ++++-----
> > > > > 2 files changed, 6 insertions(+), 8 deletions(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> > > > > index 6f2802e9bfb5..515569002c86 100644
> > > > > --- a/drivers/gpu/drm/drm_debugfs.c
> > > > > +++ b/drivers/gpu/drm/drm_debugfs.c
> > > > > @@ -270,8 +270,8 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
> > > > > }
> > > > >
> > > > >
> > > > > -int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > > > - struct drm_minor *minor)
> > > > > +void drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > > > + struct drm_minor *minor)
> > > >
> > > > We're trying to entirely nuke this function here, see the kerneldoc for
> > > > drm_debugfs_create_files(). Only user left is tegra, and we call the
> > > > "remove all debugfs files" and the ->early_unregister hooks all from the
> > > > same place. So this can all be garbage collected. It's mildly annoying
> > > > because we'd need to move the kfree from ->early_unregister into ->destroy
> > > > callbacks, because connectors are unregister before we throw away all the
> > > > debugfs files in drm_dev_unregister(). But imo that's cleaner anway.
> > >
> > > I would love to see this function gone, it can also make things a lot
> > > simpler from the point of view of creating the debugfs files as well, as
> > > no dentries will need to be saved.
> > >
> > > > Up for that?
> > >
> > > Sure, I can do that. I have a much larger patch messing with
> > > drm_debugfs_create_files() that I want you all to be in a good mood for
> > > when I submit it (it touches all drivers at once), so I might as well
> > > clean this up first :)
> >
> > Oh don't worry, we've had a pile of cleanup todo tasks in this area
> > since a long time. You doing them all is going to make me a happy
> > camper :-)
> >
> > Only thing to be aware of is that we have a bit a habit of dragging
> > good contributors of refactoring/cleanup/fundamental work like this
> > into the drm fold for good. You might get stuck ...
>
> Hah...
>
> Anyway, what tree/branch should I do this work on? I see drm-next, is
> that the one to use, but it doesn't seem to have the other patches you
> all said you accepted from me for this debugfs cleanup already.
linux-next is usually a good starting point, drm stuff is a bit too much
spread around multiple trees. The only caveat is that some trees (drm-misc
and drm-intel) keep merging during the feature freeze (after -rc6) and
merge window, to collect patches for the merge-window+1. In those cases it
might be better to rebase on top of drm-tip:
https://cgit.freedesktop.org/drm-tip
It's kinda like linux-next, but for drm. Only downside is that not all drm
trees participate in that integration tree.
Simpelst is probably to just base on linux-next and dump everything that
hasn't landed after -rc2 onto dri-devel again.
Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function
2019-06-18 12:17 ` Daniel Vetter
@ 2019-06-18 15:09 ` Greg Kroah-Hartman
0 siblings, 0 replies; 9+ messages in thread
From: Greg Kroah-Hartman @ 2019-06-18 15:09 UTC (permalink / raw)
To: Daniel Vetter; +Cc: David Airlie, Maxime Ripard, Sean Paul, dri-devel
On Tue, Jun 18, 2019 at 02:17:11PM +0200, Daniel Vetter wrote:
> On Tue, Jun 18, 2019 at 02:01:35PM +0200, Greg Kroah-Hartman wrote:
> > On Fri, Jun 14, 2019 at 05:37:58PM +0200, Daniel Vetter wrote:
> > > On Fri, Jun 14, 2019 at 5:20 PM Greg Kroah-Hartman
> > > <gregkh@linuxfoundation.org> wrote:
> > > >
> > > > On Fri, Jun 14, 2019 at 04:59:08PM +0200, Daniel Vetter wrote:
> > > > > On Fri, Jun 14, 2019 at 11:51:09AM +0200, Greg Kroah-Hartman wrote:
> > > > > > The function can not fail, and no one checks the current return value,
> > > > > > so just mark it as a void function so no one gets confused.
> > > > > >
> > > > > > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > > > > > Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> > > > > > Cc: Sean Paul <sean@poorly.run>
> > > > > > Cc: David Airlie <airlied@linux.ie>
> > > > > > Cc: Daniel Vetter <daniel@ffwll.ch>
> > > > > > Cc: dri-devel@lists.freedesktop.org
> > > > > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > > > > ---
> > > > > > drivers/gpu/drm/drm_debugfs.c | 5 ++---
> > > > > > include/drm/drm_debugfs.h | 9 ++++-----
> > > > > > 2 files changed, 6 insertions(+), 8 deletions(-)
> > > > > >
> > > > > > diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
> > > > > > index 6f2802e9bfb5..515569002c86 100644
> > > > > > --- a/drivers/gpu/drm/drm_debugfs.c
> > > > > > +++ b/drivers/gpu/drm/drm_debugfs.c
> > > > > > @@ -270,8 +270,8 @@ int drm_debugfs_init(struct drm_minor *minor, int minor_id,
> > > > > > }
> > > > > >
> > > > > >
> > > > > > -int drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > > > > - struct drm_minor *minor)
> > > > > > +void drm_debugfs_remove_files(const struct drm_info_list *files, int count,
> > > > > > + struct drm_minor *minor)
> > > > >
> > > > > We're trying to entirely nuke this function here, see the kerneldoc for
> > > > > drm_debugfs_create_files(). Only user left is tegra, and we call the
> > > > > "remove all debugfs files" and the ->early_unregister hooks all from the
> > > > > same place. So this can all be garbage collected. It's mildly annoying
> > > > > because we'd need to move the kfree from ->early_unregister into ->destroy
> > > > > callbacks, because connectors are unregister before we throw away all the
> > > > > debugfs files in drm_dev_unregister(). But imo that's cleaner anway.
> > > >
> > > > I would love to see this function gone, it can also make things a lot
> > > > simpler from the point of view of creating the debugfs files as well, as
> > > > no dentries will need to be saved.
> > > >
> > > > > Up for that?
> > > >
> > > > Sure, I can do that. I have a much larger patch messing with
> > > > drm_debugfs_create_files() that I want you all to be in a good mood for
> > > > when I submit it (it touches all drivers at once), so I might as well
> > > > clean this up first :)
> > >
> > > Oh don't worry, we've had a pile of cleanup todo tasks in this area
> > > since a long time. You doing them all is going to make me a happy
> > > camper :-)
> > >
> > > Only thing to be aware of is that we have a bit a habit of dragging
> > > good contributors of refactoring/cleanup/fundamental work like this
> > > into the drm fold for good. You might get stuck ...
> >
> > Hah...
> >
> > Anyway, what tree/branch should I do this work on? I see drm-next, is
> > that the one to use, but it doesn't seem to have the other patches you
> > all said you accepted from me for this debugfs cleanup already.
>
> linux-next is usually a good starting point, drm stuff is a bit too much
> spread around multiple trees. The only caveat is that some trees (drm-misc
> and drm-intel) keep merging during the feature freeze (after -rc6) and
> merge window, to collect patches for the merge-window+1. In those cases it
> might be better to rebase on top of drm-tip:
>
> https://cgit.freedesktop.org/drm-tip
>
> It's kinda like linux-next, but for drm. Only downside is that not all drm
> trees participate in that integration tree.
>
> Simpelst is probably to just base on linux-next and dump everything that
> hasn't landed after -rc2 onto dri-devel again.
Thanks, I'll work off of that...
And what a tangled web we weave of debugfs files and pointers, it's
worse than sysfs here. I'll send another email with why this work is so
hard to do...
thanks,
greg k-h
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-06-18 15:09 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-14 9:51 [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function Greg Kroah-Hartman
2019-06-14 9:51 ` [PATCH 2/2] drm: debugfs: make drm_debugfs_create_files() never fail Greg Kroah-Hartman
2019-06-14 15:10 ` Daniel Vetter
2019-06-14 14:59 ` [PATCH 1/2] drm: debugfs: make drm_debugfs_remove_files() a void function Daniel Vetter
2019-06-14 15:19 ` Greg Kroah-Hartman
2019-06-14 15:37 ` Daniel Vetter
2019-06-18 12:01 ` Greg Kroah-Hartman
2019-06-18 12:17 ` Daniel Vetter
2019-06-18 15:09 ` Greg Kroah-Hartman
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.