• G
    hwmon: (core) Do not use device managed functions for memory allocations · d00a8bad
    Guenter Roeck 提交于
    commit 3bf8bdcf3bada771eb12b57f2a30caee69e8ab8d upstream.
    
    The hwmon core uses device managed functions, tied to the hwmon parent
    device, for various internal memory allocations. This is problematic
    since hwmon device lifetime does not necessarily match its parent's
    device lifetime. If there is a mismatch, memory leaks will accumulate
    until the parent device is released.
    
    Fix the problem by managing all memory allocations internally. The only
    exception is memory allocation for thermal device registration, which
    can be tied to the hwmon device, along with thermal device registration
    itself.
    
    Fixes: d560168b ("hwmon: (core) New hwmon registration API")
    Cc: stable@vger.kernel.org # v4.14.x: 47c332de: hwmon: Deal with errors from the thermal subsystem
    Cc: stable@vger.kernel.org # v4.14.x: 74e3512731bd: hwmon: (core) Fix double-free in __hwmon_device_register()
    Cc: stable@vger.kernel.org # v4.9.x: 3a412d5e: hwmon: (core) Simplify sysfs attribute name allocation
    Cc: stable@vger.kernel.org # v4.9.x: 47c332de: hwmon: Deal with errors from the thermal subsystem
    Cc: stable@vger.kernel.org # v4.9.x: 74e3512731bd: hwmon: (core) Fix double-free in __hwmon_device_register()
    Cc: stable@vger.kernel.org # v4.9+
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    d00a8bad
hwmon.c 24.0 KB