2021-07-22 09:09:29

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] thermal: fix thermal_cooling_device_register() prototype

From: Arnd Bergmann <[email protected]>

There are two pairs of declarations for thermal_cooling_device_register()
and thermal_of_cooling_device_register(), and only one set was changed
in a recent patch, so the other one now causes a compile-time warning:

drivers/net/wireless/mediatek/mt76/mt7915/init.c: In function 'mt7915_thermal_init':
drivers/net/wireless/mediatek/mt76/mt7915/init.c:134:48: error: passing argument 1 of 'thermal_cooling_device_register' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
134 | cdev = thermal_cooling_device_register(wiphy_name(wiphy), phy,
| ^~~~~~~~~~~~~~~~~
In file included from drivers/net/wireless/mediatek/mt76/mt7915/init.c:7:
include/linux/thermal.h:407:39: note: expected 'char *' but argument is of type 'const char *'
407 | thermal_cooling_device_register(char *type, void *devdata,
| ~~~~~~^~~~

Change the dummy helper functions to have the same arguments as the
normal version.

Fixes: f991de53a8ab ("thermal: make device_register's type argument const")
Signed-off-by: Arnd Bergmann <[email protected]>
---
include/linux/thermal.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index d296f3b88fb9..8050d929a5b4 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -404,12 +404,13 @@ static inline void thermal_zone_device_unregister(
struct thermal_zone_device *tz)
{ }
static inline struct thermal_cooling_device *
-thermal_cooling_device_register(char *type, void *devdata,
+thermal_cooling_device_register(const char *type, void *devdata,
const struct thermal_cooling_device_ops *ops)
{ return ERR_PTR(-ENODEV); }
static inline struct thermal_cooling_device *
thermal_of_cooling_device_register(struct device_node *np,
- char *type, void *devdata, const struct thermal_cooling_device_ops *ops)
+ const char *type, void *devdata,
+ const struct thermal_cooling_device_ops *ops)
{ return ERR_PTR(-ENODEV); }
static inline struct thermal_cooling_device *
devm_thermal_of_cooling_device_register(struct device *dev,
--
2.29.2


2021-07-26 14:02:16

by Jean-François Dagenais

[permalink] [raw]
Subject: Re: [PATCH] thermal: fix thermal_cooling_device_register() prototype

Good job.

> On Jul 22, 2021, at 05:06, Arnd Bergmann <[email protected]> wrote:
>
> From: Arnd Bergmann <[email protected]>
>
> There are two pairs of declarations for thermal_cooling_device_register()
> and thermal_of_cooling_device_register(), and only one set was changed
> in a recent patch, so the other one now causes a compile-time warning:
>
> drivers/net/wireless/mediatek/mt76/mt7915/init.c: In function 'mt7915_thermal_init':
> drivers/net/wireless/mediatek/mt76/mt7915/init.c:134:48: error: passing argument 1 of 'thermal_cooling_device_register' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
> 134 | cdev = thermal_cooling_device_register(wiphy_name(wiphy), phy,
> | ^~~~~~~~~~~~~~~~~
> In file included from drivers/net/wireless/mediatek/mt76/mt7915/init.c:7:
> include/linux/thermal.h:407:39: note: expected 'char *' but argument is of type 'const char *'
> 407 | thermal_cooling_device_register(char *type, void *devdata,
> | ~~~~~~^~~~
>
> Change the dummy helper functions to have the same arguments as the
> normal version.
>
> Fixes: f991de53a8ab ("thermal: make device_register's type argument const")
> Signed-off-by: Arnd Bergmann <[email protected]>
Reviewed-by: Jean-Francois Dagenais <[email protected]>
> ---
> include/linux/thermal.h | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index d296f3b88fb9..8050d929a5b4 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -404,12 +404,13 @@ static inline void thermal_zone_device_unregister(
> struct thermal_zone_device *tz)
> { }
> static inline struct thermal_cooling_device *
> -thermal_cooling_device_register(char *type, void *devdata,
> +thermal_cooling_device_register(const char *type, void *devdata,
> const struct thermal_cooling_device_ops *ops)
> { return ERR_PTR(-ENODEV); }
> static inline struct thermal_cooling_device *
> thermal_of_cooling_device_register(struct device_node *np,
> - char *type, void *devdata, const struct thermal_cooling_device_ops *ops)
> + const char *type, void *devdata,
> + const struct thermal_cooling_device_ops *ops)
> { return ERR_PTR(-ENODEV); }
> static inline struct thermal_cooling_device *
> devm_thermal_of_cooling_device_register(struct device *dev,
> --
> 2.29.2
>