thermal/core: Fix unregistering netlink at thermal init time
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 23 Jan 2023 15:27:54 +0000 (16:27 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 25 Jan 2023 15:40:39 +0000 (16:40 +0100)
The thermal subsystem initialization miss an netlink unregistering
function in the error. Add it.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/thermal/thermal_core.c
drivers/thermal/thermal_netlink.c
drivers/thermal/thermal_netlink.h

index d77c1c4..e79ea01 100644 (file)
@@ -1607,7 +1607,7 @@ static int __init thermal_init(void)
 
        result = thermal_register_governors();
        if (result)
-               goto error;
+               goto unregister_netlink;
 
        result = class_register(&thermal_class);
        if (result)
@@ -1622,6 +1622,8 @@ static int __init thermal_init(void)
 
 unregister_governors:
        thermal_unregister_governors();
+unregister_netlink:
+       thermal_netlink_exit();
 error:
        ida_destroy(&thermal_tz_ida);
        ida_destroy(&thermal_cdev_ida);
index 75943b0..08bc46c 100644 (file)
@@ -699,3 +699,8 @@ int __init thermal_netlink_init(void)
 {
        return genl_register_family(&thermal_gnl_family);
 }
+
+void __init thermal_netlink_exit(void)
+{
+       genl_unregister_family(&thermal_gnl_family);
+}
index 1052f52..0a9987c 100644 (file)
@@ -13,6 +13,7 @@ struct thermal_genl_cpu_caps {
 /* Netlink notification function */
 #ifdef CONFIG_THERMAL_NETLINK
 int __init thermal_netlink_init(void);
+void __init thermal_netlink_exit(void);
 int thermal_notify_tz_create(int tz_id, const char *name);
 int thermal_notify_tz_delete(int tz_id);
 int thermal_notify_tz_enable(int tz_id);
@@ -115,4 +116,6 @@ static inline int thermal_genl_cpu_capability_event(int count, struct thermal_ge
        return 0;
 }
 
+static inline void __init thermal_netlink_exit(void) {}
+
 #endif /* CONFIG_THERMAL_NETLINK */