2014-12-03 21:20:27

by Luis Henriques

[permalink] [raw]
Subject: [PATCH] thermal: Fix error path in thermal_init()

thermal_unregister_governors() and class_unregister() were being called in
the wrong order.

Fixes: 80a26a5c22b9 ("Thermal: build thermal governors into thermal_sys module")
Cc: [email protected]
Signed-off-by: Luis Henriques <[email protected]>
---
drivers/thermal/thermal_core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index 43b90709585f..488e9bfd996b 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -1835,10 +1835,10 @@ static int __init thermal_init(void)

exit_netlink:
genetlink_exit();
-unregister_governors:
- thermal_unregister_governors();
unregister_class:
class_unregister(&thermal_class);
+unregister_governors:
+ thermal_unregister_governors();
error:
idr_destroy(&thermal_tz_idr);
idr_destroy(&thermal_cdev_idr);


2014-12-08 04:17:33

by Zhang, Rui

[permalink] [raw]
Subject: Re: [PATCH] thermal: Fix error path in thermal_init()

On Wed, 2014-12-03 at 21:20 +0000, Luis Henriques wrote:
> thermal_unregister_governors() and class_unregister() were being called in
> the wrong order.
>
> Fixes: 80a26a5c22b9 ("Thermal: build thermal governors into thermal_sys module")
> Cc: [email protected]
> Signed-off-by: Luis Henriques <[email protected]>

applied.

thanks,
rui
> ---
> drivers/thermal/thermal_core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index 43b90709585f..488e9bfd996b 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -1835,10 +1835,10 @@ static int __init thermal_init(void)
>
> exit_netlink:
> genetlink_exit();
> -unregister_governors:
> - thermal_unregister_governors();
> unregister_class:
> class_unregister(&thermal_class);
> +unregister_governors:
> + thermal_unregister_governors();
> error:
> idr_destroy(&thermal_tz_idr);
> idr_destroy(&thermal_cdev_idr);