Thread (40 messages) 40 messages, 6 authors, 2025-01-22

Re: [PATCH v1 01/21] hwmon: Fix the type of 'config' in struct hwmon_channel_info to u64

From: Guenter Roeck <linux@roeck-us.net>
Date: 2025-01-21 17:32:28
Also in: arm-scmi, linux-arm-kernel, linux-hwmon, linux-media, linux-rdma, linux-rtc, lkml, platform-driver-x86

On 1/21/25 09:05, Russell King (Oracle) wrote:
On Tue, Jan 21, 2025 at 02:44:59PM +0800, Huisong Li wrote:
quoted
   */
  struct hwmon_channel_info {
  	enum hwmon_sensor_types type;
-	const u32 *config;
+	const u64 *config;
  };
  
  #define HWMON_CHANNEL_INFO(stype, ...)		\
  	(&(const struct hwmon_channel_info) {	\
  		.type = hwmon_##stype,		\
-		.config = (const u32 []) {	\
+		.config = (const u64 []) {	\
  			__VA_ARGS__, 0		\
  		}				\
  	})
I'm sorry, but... no. Just no. Have you tried building with only your
first patch?

It will cause the compiler to barf on, e.g. the following:

static u32 marvell_hwmon_chip_config[] = {
...

static const struct hwmon_channel_info marvell_hwmon_chip = {
         .type = hwmon_chip,
         .config = marvell_hwmon_chip_config,
};

I suggest that you rearrange your series: first, do the conversions
to HWMON_CHANNEL_INFO() in the drivers you have.

At this point, if all the drivers that assign to hw_channel_info.config
have been converted, this patch 1 is then suitable.

If there are still drivers that assign a u32 array to
hw_channel_info.config, then you need to consider how to handle
that without causing regressions. You can't cast it between a u32
array and u64 array to silence the warning, because config[1]
won't point at the next entry.

I think your only option would be to combine the conversion of struct
hwmon_channel_info and the other drivers into a single patch. Slightly
annoying, but without introducing more preprocessor yuckiness, I don't
see another way.
This is moot because the series does not explain which attributes
would be added ... and it turns out the to-be-added attributes would be
non-standard and thus not be acceptable anyway. On top of that, if the
size of configuration fields ever becomes an issue, I would look for a
much less invasive solution.

The author of this series did not contact me before submitting it,
and I did not have a chance to prevent it from being submitted.
Still, sorry for the noise.

Guenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help