• Dan Carpenter's avatar
    ACPI: thermal: Fix acpi_thermal_unregister_thermal_zone() cleanup · 4b27d5c4
    Dan Carpenter authored
    The acpi_thermal_unregister_thermal_zone() is paired with
    acpi_thermal_register_thermal_zone() so it should mirror it.  It should
    clean up all the resources that the register function allocated and
    leave the stuff that was allocated elsewhere.
    
    Unfortunately, it doesn't call thermal_zone_device_disable().  Also it
    calls kfree(tz->trip_table) when it shouldn't.  That was allocated in
    acpi_thermal_add().  Putting the kfree() here leads to a double free
    in the acpi_thermal_add() clean up function.
    
    Likewise, the acpi_thermal_remove() should mirror acpi_thermal_add() so
    it should have an explicit kfree(tz->trip_table) as well.
    
    Fixes: ec23c1c4 ("ACPI: thermal: Use trip point table to register thermal zones")
    Signed-off-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    4b27d5c4
thermal.c 29 KB