hwmon: (occ) fix unaligned accesses
authorArnd Bergmann <arnd@arndb.de>
Tue, 10 Jun 2025 09:25:49 +0000 (11:25 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 16 Jun 2025 13:30:57 +0000 (06:30 -0700)
commit2c021b45c154958566aad0cae9f74ab26a2d5732
treeb35c34831b03fff6a62da2f9c7c2f24cb3f21653
parent744c2fe950e936c4d62430de899d6253424200ed
hwmon: (occ) fix unaligned accesses

Passing a pointer to an unaligned integer as a function argument is
undefined behavior:

drivers/hwmon/occ/common.c:492:27: warning: taking address of packed member 'accumulator' of class or structure 'power_sensor_2' may result in an unaligned pointer value [-Waddress-of-packed-member]
  492 |   val = occ_get_powr_avg(&power->accumulator,
      |                           ^~~~~~~~~~~~~~~~~~
drivers/hwmon/occ/common.c:493:13: warning: taking address of packed member 'update_tag' of class or structure 'power_sensor_2' may result in an unaligned pointer value [-Waddress-of-packed-member]
  493 |            &power->update_tag);
      |             ^~~~~~~~~~~~~~~~~

Move the get_unaligned() calls out of the function and pass these
through argument registers instead.

Fixes: c10e753d43eb ("hwmon (occ): Add sensor types and versions")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20250610092553.2641094-1-arnd@kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/occ/common.c