Hi, On 11/1/21 11:46, Andy Shevchenko wrote: > On Mon, Nov 1, 2021 at 12:44 PM Andy Shevchenko > <andy.shevchenko@xxxxxxxxx> wrote: >> On Mon, Nov 1, 2021 at 12:31 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: >>> On 10/25/21 13:31, Andy Shevchenko wrote: >>>> On Mon, Oct 25, 2021 at 12:42 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > ... > >>>>> + if (ret == 0 && sensor_adev_ret) >>>>> + *sensor_adev_ret = sensor; >>>>> + else >>>>> + acpi_dev_put(sensor); >>>>> + >>>>> + return ret; > > ... > >>>> if (sensor_adev_ret) >>>> *sensor_adev_ret = sensor; >>>> >>>> return 0; >>>> >>>> ? >>> >>> That misses an acpi_dev_put(sensor) when sensor_adev_ret == NULL. >> >> else >> acpi_dev_put(...); >> >> ? > > Hmm... But then in the original code and with this proposal the > acpi_dev_put() seems a bit strange to me. > If we are fine (no error code returned) why would the caller (note > _er_) go different paths? We always need to get the dev to get the name, but some callers are only interested in the name, so they pass NULL for sensor_adev_ret, this helps to keep the code calling this clean, which is the whole idea of having a helper for this. Regards, Hans