Commit 25ca180a authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Kalle Valo
Browse files

ath11k: Fix some resource leaks in error path in 'ath11k_thermal_register()'



If 'thermal_cooling_device_register()' fails, we must undo what has been
allocated so far. So we must go to 'err_thermal_destroy' instead of
returning directly

In case of error in 'ath11k_thermal_register()', the previous
'thermal_cooling_device_register()' call must also be undone. Move the
'ar->thermal.cdev = cdev' a few lines above in order for this to be done
in 'ath11k_thermal_unregister()' which is called in the error handling
path.

Fixes: 2a63bbca ("ath11k: add thermal cooling device support")
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200513201454.258111-1-christophe.jaillet@wanadoo.fr
parent ec431188
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -174,9 +174,12 @@ int ath11k_thermal_register(struct ath11k_base *sc)
		if (IS_ERR(cdev)) {
			ath11k_err(sc, "failed to setup thermal device result: %ld\n",
				   PTR_ERR(cdev));
			return -EINVAL;
			ret = -EINVAL;
			goto err_thermal_destroy;
		}

		ar->thermal.cdev = cdev;

		ret = sysfs_create_link(&ar->hw->wiphy->dev.kobj, &cdev->device.kobj,
					"cooling_device");
		if (ret) {
@@ -184,7 +187,6 @@ int ath11k_thermal_register(struct ath11k_base *sc)
			goto err_thermal_destroy;
		}

		ar->thermal.cdev = cdev;
		if (!IS_REACHABLE(CONFIG_HWMON))
			return 0;