]> asedeno.scripts.mit.edu Git - linux.git/commit
hwmon: (core) Add comment describing how hwdev is freed in error path
authorGuenter Roeck <linux@roeck-us.net>
Thu, 6 Jun 2019 16:43:14 +0000 (09:43 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 24 Jun 2019 01:33:01 +0000 (18:33 -0700)
commit792eac1843196708e6f72e73b8f50e273721757e
tree0ccbf2269de10386055fa87e67a7a9b43405c07a
parent5fe625c136367fc7283d021d3ae574fce060d716
hwmon: (core) Add comment describing how hwdev is freed in error path

The hwmon core registers the hwmon device before adding sensors to the
thermal core. If that fails, the hwmon device is released and an error
is returned to the caller. From the code flow, it appears to be necessary
to free struct hwmon_device *, allocated with kzalloc(), in that
situation. This is incorrect, since the data structure will be freed
automatically in hwmon_dev_release() when device_unregister() is called.
This used to result in a double free, which was found and fixed with
commit 74e3512731bd ("hwmon: (core) Fix double-free in
__hwmon_device_register()"). This is, however, not obvious; any reader
may erroneously conclude that the data structure is not freed.

Add comment explaining why kfree() is not necessary in this situation.

Reported-by: Eduardo Valentin <eduval@amazon.com>
Cc: Eduardo Valentin <eduval@amazon.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/hwmon.c