lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4yxiyk555fts7ibsjubatreugv7pdmvcbnnamcuqoxpwx4g3wr@f6t33jkfwcve>
Date: Fri, 5 Apr 2024 14:08:07 -0300
From: "Ricardo B. Marliere" <ricardo@...liere.net>
To: Vinod Koul <vkoul@...nel.org>
Cc: Kishon Vijay Abraham I <kishon@...nel.org>, 
	linux-phy@...ts.infradead.org, linux-kernel@...r.kernel.org, 
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: Re: [PATCH] net: phy: core: make phy_class constant

On  5 Apr 22:26, Vinod Koul wrote:
> On 05-03-24, 15:18, Ricardo B. Marliere wrote:
> > Since commit 43a7206b0963 ("driver core: class: make class_register() take
> > a const *"), the driver core allows for struct class to be in read-only
> > memory, so move the phy_class structure to be declared at build time
> > placing it into read-only memory, instead of having to be dynamically
> > allocated at boot time.
> 
> why is this tagged net: ...??
> This has nothing to do with networking!

Hi Vinod.

My mistake, it was due to poor local tree management. Please let me know
if you can review and take it as is, changing the subject line, or if
you want me to resend.

Best regards,
-	Ricardo.


> 
> > 
> > Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> > Suggested-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> > Signed-off-by: Ricardo B. Marliere <ricardo@...liere.net>
> > ---
> >  drivers/phy/phy-core.c | 26 +++++++++++++++-----------
> >  1 file changed, 15 insertions(+), 11 deletions(-)
> > 
> > diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
> > index 7f9b4de772ee..5776d44fd32f 100644
> > --- a/drivers/phy/phy-core.c
> > +++ b/drivers/phy/phy-core.c
> > @@ -20,7 +20,12 @@
> >  #include <linux/pm_runtime.h>
> >  #include <linux/regulator/consumer.h>
> >  
> > -static struct class *phy_class;
> > +static void phy_release(struct device *dev);
> > +static const struct class phy_class = {
> > +	.name = "phy",
> > +	.dev_release = phy_release,
> > +};
> > +
> >  static struct dentry *phy_debugfs_root;
> >  static DEFINE_MUTEX(phy_provider_mutex);
> >  static LIST_HEAD(phy_provider_list);
> > @@ -706,7 +711,7 @@ struct phy *of_phy_simple_xlate(struct device *dev,
> >  	struct phy *phy;
> >  	struct class_dev_iter iter;
> >  
> > -	class_dev_iter_init(&iter, phy_class, NULL, NULL);
> > +	class_dev_iter_init(&iter, &phy_class, NULL, NULL);
> >  	while ((dev = class_dev_iter_next(&iter))) {
> >  		phy = to_phy(dev);
> >  		if (args->np != phy->dev.of_node)
> > @@ -969,7 +974,7 @@ struct phy *phy_create(struct device *dev, struct device_node *node,
> >  	device_initialize(&phy->dev);
> >  	mutex_init(&phy->mutex);
> >  
> > -	phy->dev.class = phy_class;
> > +	phy->dev.class = &phy_class;
> >  	phy->dev.parent = dev;
> >  	phy->dev.of_node = node ?: dev->of_node;
> >  	phy->id = id;
> > @@ -1238,14 +1243,13 @@ static void phy_release(struct device *dev)
> >  
> >  static int __init phy_core_init(void)
> >  {
> > -	phy_class = class_create("phy");
> > -	if (IS_ERR(phy_class)) {
> > -		pr_err("failed to create phy class --> %ld\n",
> > -			PTR_ERR(phy_class));
> > -		return PTR_ERR(phy_class);
> > -	}
> > +	int err;
> >  
> > -	phy_class->dev_release = phy_release;
> > +	err = class_register(&phy_class);
> > +	if (err) {
> > +		pr_err("failed to register phy class");
> > +		return err;
> > +	}
> >  
> >  	phy_debugfs_root = debugfs_create_dir("phy", NULL);
> >  
> > @@ -1256,6 +1260,6 @@ device_initcall(phy_core_init);
> >  static void __exit phy_core_exit(void)
> >  {
> >  	debugfs_remove_recursive(phy_debugfs_root);
> > -	class_destroy(phy_class);
> > +	class_unregister(&phy_class);
> >  }
> >  module_exit(phy_core_exit);
> > 
> > ---
> > base-commit: 00ca8a15dafa990d391abc37f2b8256ddf909b35
> > change-id: 20240305-class_cleanup-phy-668a148b2acd
> > 
> > Best regards,
> > -- 
> > Ricardo B. Marliere <ricardo@...liere.net>
> 
> -- 
> ~Vinod

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ