• Maxime Ripard's avatar
    drivers: base: Add basic devm tests for platform devices · b4cc4430
    Maxime Ripard authored
    Platform devices show some inconsistencies with how devm resources are
    released when the device has been probed and when it hasn't.
    
    In particular, we can register device-managed actions no matter if the
    device has be bound to a driver or not, but devres_release_all() will
    only be called if it was bound to a driver or if there's no reference
    held to it anymore.
    
    If it wasn't bound to a driver and we still have a reference,
    devres_release_all() will never get called. This is surprising
    considering that if the driver isn't bound but doesn't have any
    reference to it anymore, that function will get called, and if it was
    bound to a driver but still has references, that function will get
    called as well.
    
    Even if that case is fairly unusual, it can easily lead to memory leaks.
    
    The plan is, with the next patch, to make it consistent and enforce that
    devres_release_all() is called no matter what situation we're in. For
    now, it just tests for the current behaviour and skips over the
    inconsistencies.
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
    Link: https://lore.kernel.org/r/20230720-kunit-devm-inconsistencies-test-v3-2-6aa7e074f373@kernel.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    b4cc4430
Makefile 329 Bytes