drivers/isdn/mISDN/core.c | 6 ------ 1 file changed, 6 deletions(-)
The mISDN_class_release() is not needed at all, as the class structure
is static, and it does not actually do anything either, so it is safe to
remove as struct class does not require a release callback.
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: netdev@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
Note: I would like to take this through the driver-core tree as I have
later struct class cleanups that depend on this change being made to the
tree if that's ok with the maintainer of this file.
drivers/isdn/mISDN/core.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c
index f5989c9907ee..ab8513a7acd5 100644
--- a/drivers/isdn/mISDN/core.c
+++ b/drivers/isdn/mISDN/core.c
@@ -152,17 +152,11 @@ static int mISDN_uevent(const struct device *dev, struct kobj_uevent_env *env)
return 0;
}
-static void mISDN_class_release(struct class *cls)
-{
- /* do nothing, it's static */
-}
-
static struct class mISDN_class = {
.name = "mISDN",
.dev_uevent = mISDN_uevent,
.dev_groups = mISDN_groups,
.dev_release = mISDN_dev_release,
- .class_release = mISDN_class_release,
};
static int
--
2.40.0
On Wed, 29 Mar 2023 08:01:27 +0200 Greg Kroah-Hartman wrote: > Note: I would like to take this through the driver-core tree as I have > later struct class cleanups that depend on this change being made to the > tree if that's ok with the maintainer of this file. It must be on top of .owner removal? Cause it doesn't apply for us: Acked-by: Jakub Kicinski <kuba@kernel.org>
On Thu, Mar 30, 2023 at 11:17:39PM -0700, Jakub Kicinski wrote: > On Wed, 29 Mar 2023 08:01:27 +0200 Greg Kroah-Hartman wrote: > > Note: I would like to take this through the driver-core tree as I have > > later struct class cleanups that depend on this change being made to the > > tree if that's ok with the maintainer of this file. > > It must be on top of .owner removal? Cause it doesn't apply for us: > > Acked-by: Jakub Kicinski <kuba@kernel.org> Ah, yeah, it is, that's in my tree already. thanks for the ack! greg k-h
On Wed, Mar 29, 2023 at 08:01:27AM +0200, Greg Kroah-Hartman wrote:
> The mISDN_class_release() is not needed at all, as the class structure
> is static, and it does not actually do anything either, so it is safe to
> remove as struct class does not require a release callback.
>
> Cc: Karsten Keil <isdn@linux-pingi.de>
> Cc: netdev@vger.kernel.org
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> Note: I would like to take this through the driver-core tree as I have
> later struct class cleanups that depend on this change being made to the
> tree if that's ok with the maintainer of this file.
>
> drivers/isdn/mISDN/core.c | 6 ------
> 1 file changed, 6 deletions(-)
I assume this will hit the following in drivers/base/class.c:class_release():
if (class->class_release)
class->class_release(class);
else
pr_debug("class '%s' does not have a release() function, "
"be careful\n", class->name);
So I also assume that you are being careful :)
Reviewed-by: Simon Horman <simon.horman@corigine.com>
> diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c
> index f5989c9907ee..ab8513a7acd5 100644
> --- a/drivers/isdn/mISDN/core.c
> +++ b/drivers/isdn/mISDN/core.c
> @@ -152,17 +152,11 @@ static int mISDN_uevent(const struct device *dev, struct kobj_uevent_env *env)
> return 0;
> }
>
> -static void mISDN_class_release(struct class *cls)
> -{
> - /* do nothing, it's static */
> -}
> -
> static struct class mISDN_class = {
> .name = "mISDN",
> .dev_uevent = mISDN_uevent,
> .dev_groups = mISDN_groups,
> .dev_release = mISDN_dev_release,
> - .class_release = mISDN_class_release,
> };
>
> static int
> --
> 2.40.0
>
On Wed, Mar 29, 2023 at 09:39:30PM +0200, Simon Horman wrote:
> On Wed, Mar 29, 2023 at 08:01:27AM +0200, Greg Kroah-Hartman wrote:
> > The mISDN_class_release() is not needed at all, as the class structure
> > is static, and it does not actually do anything either, so it is safe to
> > remove as struct class does not require a release callback.
> >
> > Cc: Karsten Keil <isdn@linux-pingi.de>
> > Cc: netdev@vger.kernel.org
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> > Note: I would like to take this through the driver-core tree as I have
> > later struct class cleanups that depend on this change being made to the
> > tree if that's ok with the maintainer of this file.
> >
> > drivers/isdn/mISDN/core.c | 6 ------
> > 1 file changed, 6 deletions(-)
>
> I assume this will hit the following in drivers/base/class.c:class_release():
>
> if (class->class_release)
> class->class_release(class);
> else
> pr_debug("class '%s' does not have a release() function, "
> "be careful\n", class->name);
>
> So I also assume that you are being careful :)
Yes, I am :)
I need to remove that debug line soon as I'm moving all struct class
instances to be static and in read-only memory, which would mean that no
release function is needed at all for them. Give me a few hundred more
commits to get there...
thanks for the review!
greg k-h
On Thu, Mar 30, 2023 at 08:01:07AM +0200, Greg Kroah-Hartman wrote:
> On Wed, Mar 29, 2023 at 09:39:30PM +0200, Simon Horman wrote:
> > On Wed, Mar 29, 2023 at 08:01:27AM +0200, Greg Kroah-Hartman wrote:
> > > The mISDN_class_release() is not needed at all, as the class structure
> > > is static, and it does not actually do anything either, so it is safe to
> > > remove as struct class does not require a release callback.
> > >
> > > Cc: Karsten Keil <isdn@linux-pingi.de>
> > > Cc: netdev@vger.kernel.org
> > > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > ---
> > > Note: I would like to take this through the driver-core tree as I have
> > > later struct class cleanups that depend on this change being made to the
> > > tree if that's ok with the maintainer of this file.
> > >
> > > drivers/isdn/mISDN/core.c | 6 ------
> > > 1 file changed, 6 deletions(-)
> >
> > I assume this will hit the following in drivers/base/class.c:class_release():
> >
> > if (class->class_release)
> > class->class_release(class);
> > else
> > pr_debug("class '%s' does not have a release() function, "
> > "be careful\n", class->name);
> >
> > So I also assume that you are being careful :)
>
> Yes, I am :)
>
> I need to remove that debug line soon as I'm moving all struct class
> instances to be static and in read-only memory, which would mean that no
> release function is needed at all for them. Give me a few hundred more
> commits to get there...
Excellent, good luck with your journey of a few hundred patches.
© 2016 - 2026 Red Hat, Inc.