• L
    iio: trigger: Fix reference counting · a827a498
    Lars-Peter Clausen 提交于
    In viio_trigger_alloc() device_initialize() is used to set the initial
    reference count of the trigger to 1. Then another get_device() is called on
    trigger. This sets the reference count to 2 before the trigger is returned.
    
    iio_trigger_free(), which is the matching API to viio_trigger_alloc(),
    calls put_device() which decreases the reference count by 1. But the second
    reference count acquired in viio_trigger_alloc() is never dropped.
    
    As a result the iio_trigger_release() function is never called and the
    memory associated with the trigger is never freed.
    
    Since there is no reason for the trigger to start its lifetime with two
    reference counts just remove the extra get_device() in
    viio_trigger_alloc().
    
    Fixes: 5f9c035c ("staging:iio:triggers. Add a reference get to the core for triggers.")
    Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
    Acked-by: NNuno Sá <nuno.sa@analog.com>
    Link: https://lore.kernel.org/r/20211024092700.6844-2-lars@metafoo.de
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: NJonathan Cameron <Jonathan.Cameron@huawei.com>
    a827a498
industrialio-trigger.c 18.4 KB