[PATCH] platform/x86: make fw_attr_class constant

Ricardo B. Marliere posted 1 patch 1 year, 9 months ago
drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 2 +-
drivers/platform/x86/firmware_attributes_class.c   | 4 ++--
drivers/platform/x86/firmware_attributes_class.h   | 2 +-
drivers/platform/x86/hp/hp-bioscfg/bioscfg.c       | 2 +-
drivers/platform/x86/think-lmi.c                   | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
[PATCH] platform/x86: make fw_attr_class constant
Posted by Ricardo B. Marliere 1 year, 9 months ago
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 fw_attr_class structure to be declared at build time
placing it into read-only memory, instead of having to be dynamically
allocated at boot time.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
---
 drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 2 +-
 drivers/platform/x86/firmware_attributes_class.c   | 4 ++--
 drivers/platform/x86/firmware_attributes_class.h   | 2 +-
 drivers/platform/x86/hp/hp-bioscfg/bioscfg.c       | 2 +-
 drivers/platform/x86/think-lmi.c                   | 2 +-
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
index b929b4f82420..9def7983d7d6 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
@@ -25,7 +25,7 @@ struct wmi_sysman_priv wmi_priv = {
 /* reset bios to defaults */
 static const char * const reset_types[] = {"builtinsafe", "lastknowngood", "factory", "custom"};
 static int reset_option = -1;
-static struct class *fw_attr_class;
+static const struct class *fw_attr_class;
 
 
 /**
diff --git a/drivers/platform/x86/firmware_attributes_class.c b/drivers/platform/x86/firmware_attributes_class.c
index fafe8eaf6e3e..dd8240009565 100644
--- a/drivers/platform/x86/firmware_attributes_class.c
+++ b/drivers/platform/x86/firmware_attributes_class.c
@@ -10,11 +10,11 @@
 static DEFINE_MUTEX(fw_attr_lock);
 static int fw_attr_inuse;
 
-static struct class firmware_attributes_class = {
+static const struct class firmware_attributes_class = {
 	.name = "firmware-attributes",
 };
 
-int fw_attributes_class_get(struct class **fw_attr_class)
+int fw_attributes_class_get(const struct class **fw_attr_class)
 {
 	int err;
 
diff --git a/drivers/platform/x86/firmware_attributes_class.h b/drivers/platform/x86/firmware_attributes_class.h
index 486485cb1f54..363c75f1ac1b 100644
--- a/drivers/platform/x86/firmware_attributes_class.h
+++ b/drivers/platform/x86/firmware_attributes_class.h
@@ -5,7 +5,7 @@
 #ifndef FW_ATTR_CLASS_H
 #define FW_ATTR_CLASS_H
 
-int fw_attributes_class_get(struct class **fw_attr_class);
+int fw_attributes_class_get(const struct class **fw_attr_class);
 int fw_attributes_class_put(void);
 
 #endif /* FW_ATTR_CLASS_H */
diff --git a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
index 8c9f4f3227fc..2dc50152158a 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
@@ -24,7 +24,7 @@ struct bioscfg_priv bioscfg_drv = {
 	.mutex = __MUTEX_INITIALIZER(bioscfg_drv.mutex),
 };
 
-static struct class *fw_attr_class;
+static const struct class *fw_attr_class;
 
 ssize_t display_name_language_code_show(struct kobject *kobj,
 					struct kobj_attribute *attr,
diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
index 3a396b763c49..9eeef356e308 100644
--- a/drivers/platform/x86/think-lmi.c
+++ b/drivers/platform/x86/think-lmi.c
@@ -195,7 +195,7 @@ static const char * const level_options[] = {
 	[TLMI_LEVEL_MASTER] = "master",
 };
 static struct think_lmi tlmi_priv;
-static struct class *fw_attr_class;
+static const struct class *fw_attr_class;
 static DEFINE_MUTEX(tlmi_mutex);
 
 /* Convert BIOS WMI error string to suitable error code */

---
base-commit: 36c45cfc5cb3762b60707be2667c13d9a2562b34
change-id: 20240305-class_cleanup-platform-8010ec550021

Best regards,
-- 
Ricardo B. Marliere <ricardo@marliere.net>
Re: [PATCH] platform/x86: make fw_attr_class constant
Posted by Ilpo Järvinen 1 year, 9 months ago
On Tue, 05 Mar 2024 15:55:04 -0300, 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 fw_attr_class structure to be declared at build time
> placing it into read-only memory, instead of having to be dynamically
> allocated at boot time.
> 
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo branch. Note it will show up in the public
platform-drivers-x86/review-ilpo branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/1] platform/x86: make fw_attr_class constant
      commit: 04f53f56655d733c91e9cedfbf0bf9882f6015b6

--
 i.
Re: [PATCH] platform/x86: make fw_attr_class constant
Posted by Mark Pearson 1 year, 9 months ago
Hi

On Tue, Mar 5, 2024, at 1:55 PM, 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 fw_attr_class structure to be declared at build time
> placing it into read-only memory, instead of having to be dynamically
> allocated at boot time.
>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
> ---
>  drivers/platform/x86/dell/dell-wmi-sysman/sysman.c | 2 +-
>  drivers/platform/x86/firmware_attributes_class.c   | 4 ++--
>  drivers/platform/x86/firmware_attributes_class.h   | 2 +-
>  drivers/platform/x86/hp/hp-bioscfg/bioscfg.c       | 2 +-
>  drivers/platform/x86/think-lmi.c                   | 2 +-
>  5 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c 
> b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> index b929b4f82420..9def7983d7d6 100644
> --- a/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> +++ b/drivers/platform/x86/dell/dell-wmi-sysman/sysman.c
> @@ -25,7 +25,7 @@ struct wmi_sysman_priv wmi_priv = {
>  /* reset bios to defaults */
>  static const char * const reset_types[] = {"builtinsafe", 
> "lastknowngood", "factory", "custom"};
>  static int reset_option = -1;
> -static struct class *fw_attr_class;
> +static const struct class *fw_attr_class;
> 
> 
>  /**
> diff --git a/drivers/platform/x86/firmware_attributes_class.c 
> b/drivers/platform/x86/firmware_attributes_class.c
> index fafe8eaf6e3e..dd8240009565 100644
> --- a/drivers/platform/x86/firmware_attributes_class.c
> +++ b/drivers/platform/x86/firmware_attributes_class.c
> @@ -10,11 +10,11 @@
>  static DEFINE_MUTEX(fw_attr_lock);
>  static int fw_attr_inuse;
> 
> -static struct class firmware_attributes_class = {
> +static const struct class firmware_attributes_class = {
>  	.name = "firmware-attributes",
>  };
> 
> -int fw_attributes_class_get(struct class **fw_attr_class)
> +int fw_attributes_class_get(const struct class **fw_attr_class)
>  {
>  	int err;
> 
> diff --git a/drivers/platform/x86/firmware_attributes_class.h 
> b/drivers/platform/x86/firmware_attributes_class.h
> index 486485cb1f54..363c75f1ac1b 100644
> --- a/drivers/platform/x86/firmware_attributes_class.h
> +++ b/drivers/platform/x86/firmware_attributes_class.h
> @@ -5,7 +5,7 @@
>  #ifndef FW_ATTR_CLASS_H
>  #define FW_ATTR_CLASS_H
> 
> -int fw_attributes_class_get(struct class **fw_attr_class);
> +int fw_attributes_class_get(const struct class **fw_attr_class);
>  int fw_attributes_class_put(void);
> 
>  #endif /* FW_ATTR_CLASS_H */
> diff --git a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c 
> b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
> index 8c9f4f3227fc..2dc50152158a 100644
> --- a/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
> +++ b/drivers/platform/x86/hp/hp-bioscfg/bioscfg.c
> @@ -24,7 +24,7 @@ struct bioscfg_priv bioscfg_drv = {
>  	.mutex = __MUTEX_INITIALIZER(bioscfg_drv.mutex),
>  };
> 
> -static struct class *fw_attr_class;
> +static const struct class *fw_attr_class;
> 
>  ssize_t display_name_language_code_show(struct kobject *kobj,
>  					struct kobj_attribute *attr,
> diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
> index 3a396b763c49..9eeef356e308 100644
> --- a/drivers/platform/x86/think-lmi.c
> +++ b/drivers/platform/x86/think-lmi.c
> @@ -195,7 +195,7 @@ static const char * const level_options[] = {
>  	[TLMI_LEVEL_MASTER] = "master",
>  };
>  static struct think_lmi tlmi_priv;
> -static struct class *fw_attr_class;
> +static const struct class *fw_attr_class;
>  static DEFINE_MUTEX(tlmi_mutex);
> 
>  /* Convert BIOS WMI error string to suitable error code */
>
> ---
> base-commit: 36c45cfc5cb3762b60707be2667c13d9a2562b34
> change-id: 20240305-class_cleanup-platform-8010ec550021
>
> Best regards,
> -- 
> Ricardo B. Marliere <ricardo@marliere.net>

Looks good to me!
Reviewed-by Mark Pearson <mpearson-lenovo@squebb.ca>

Mark