Message ID | 1425330727-18854-2-git-send-email-srinivas.pandruvada@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Eduardo Valentin |
Headers | show |
On Mon, Mar 02, 2015 at 01:12:07PM -0800, Srinivas Pandruvada wrote: > When thermal zone device register fails or on module exit, the memory > for aux_trip is not freed. This change fixes this issue. > > Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> applied into -fixes branch. Thanks. > --- > drivers/thermal/int340x_thermal/int340x_thermal_zone.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c > index f88b088..1e25133 100644 > --- a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c > +++ b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c > @@ -208,7 +208,7 @@ struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev, > trip_cnt, GFP_KERNEL); > if (!int34x_thermal_zone->aux_trips) { > ret = -ENOMEM; > - goto free_mem; > + goto err_trip_alloc; > } > trip_mask = BIT(trip_cnt) - 1; > int34x_thermal_zone->aux_trip_nr = trip_cnt; > @@ -248,14 +248,15 @@ struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev, > 0, 0); > if (IS_ERR(int34x_thermal_zone->zone)) { > ret = PTR_ERR(int34x_thermal_zone->zone); > - goto free_lpat; > + goto err_thermal_zone; > } > > return int34x_thermal_zone; > > -free_lpat: > +err_thermal_zone: > acpi_lpat_free_conversion_table(int34x_thermal_zone->lpat_table); > -free_mem: > + kfree(int34x_thermal_zone->aux_trips); > +err_trip_alloc: > kfree(int34x_thermal_zone); > return ERR_PTR(ret); > } > @@ -266,6 +267,7 @@ void int340x_thermal_zone_remove(struct int34x_thermal_zone > { > thermal_zone_device_unregister(int34x_thermal_zone->zone); > acpi_lpat_free_conversion_table(int34x_thermal_zone->lpat_table); > + kfree(int34x_thermal_zone->aux_trips); > kfree(int34x_thermal_zone); > } > EXPORT_SYMBOL_GPL(int340x_thermal_zone_remove); > -- > 1.9.3 >
diff --git a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c index f88b088..1e25133 100644 --- a/drivers/thermal/int340x_thermal/int340x_thermal_zone.c +++ b/drivers/thermal/int340x_thermal/int340x_thermal_zone.c @@ -208,7 +208,7 @@ struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev, trip_cnt, GFP_KERNEL); if (!int34x_thermal_zone->aux_trips) { ret = -ENOMEM; - goto free_mem; + goto err_trip_alloc; } trip_mask = BIT(trip_cnt) - 1; int34x_thermal_zone->aux_trip_nr = trip_cnt; @@ -248,14 +248,15 @@ struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev, 0, 0); if (IS_ERR(int34x_thermal_zone->zone)) { ret = PTR_ERR(int34x_thermal_zone->zone); - goto free_lpat; + goto err_thermal_zone; } return int34x_thermal_zone; -free_lpat: +err_thermal_zone: acpi_lpat_free_conversion_table(int34x_thermal_zone->lpat_table); -free_mem: + kfree(int34x_thermal_zone->aux_trips); +err_trip_alloc: kfree(int34x_thermal_zone); return ERR_PTR(ret); } @@ -266,6 +267,7 @@ void int340x_thermal_zone_remove(struct int34x_thermal_zone { thermal_zone_device_unregister(int34x_thermal_zone->zone); acpi_lpat_free_conversion_table(int34x_thermal_zone->lpat_table); + kfree(int34x_thermal_zone->aux_trips); kfree(int34x_thermal_zone); } EXPORT_SYMBOL_GPL(int340x_thermal_zone_remove);
When thermal zone device register fails or on module exit, the memory for aux_trip is not freed. This change fixes this issue. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> --- drivers/thermal/int340x_thermal/int340x_thermal_zone.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)