Commit 86430c1a authored by Guenter Roeck's avatar Guenter Roeck

hwmon: (core) Avoid cyclic dependency between hwmon and thermal_sys

If both hwmon and thermal_sys are built as modules, and
CONFIG_THERMAL_HWMON is enabled, the following cyclic module dependency
is reported.

depmod: ERROR: Found 2 modules in dependency cycles!
depmod: ERROR: Cycle detected: hwmon -> thermal_sys -> hwmon

Fixes: e4bce763adb2 ("hwmon: (core) New hwmon registration API")
Reported-by: default avatarVignesh R <vigneshr@ti.com>
Cc: Keerthy J <j-keerthy@ti.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent aa18cc91
...@@ -108,7 +108,13 @@ static DEFINE_IDA(hwmon_ida); ...@@ -108,7 +108,13 @@ static DEFINE_IDA(hwmon_ida);
/* Thermal zone handling */ /* Thermal zone handling */
#if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) /*
* The complex conditional is necessary to avoid a cyclic dependency
* between hwmon and thermal_sys modules.
*/
#if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) && \
(!defined(CONFIG_THERMAL_HWMON) || \
!(defined(MODULE) && IS_MODULE(CONFIG_THERMAL)))
static int hwmon_thermal_get_temp(void *data, int *temp) static int hwmon_thermal_get_temp(void *data, int *temp)
{ {
struct hwmon_thermal_data *tdata = data; struct hwmon_thermal_data *tdata = data;
...@@ -153,7 +159,7 @@ static int hwmon_thermal_add_sensor(struct device *dev, ...@@ -153,7 +159,7 @@ static int hwmon_thermal_add_sensor(struct device *dev,
{ {
return 0; return 0;
} }
#endif /* IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) */ #endif /* IS_REACHABLE(CONFIG_THERMAL) && ... */
/* sysfs attribute management */ /* sysfs attribute management */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment