• M
    drm/vc4: hdmi: Switch to device-managed ALSA initialization · 59f9d46a
    Maxime Ripard 提交于
    The current code to unregister our ALSA device needs to be undone manually
    when we remove the HDMI driver.
    
    Since ALSA doesn't seem to support any mechanism to defer freeing something
    until the last user of the ALSA device is gone, we can either use a
    device-managed or a DRM-managed action.
    
    The consistent way would be to use a DRM-managed one, just like pretty much
    any framework-facing structure should be doing. However, ALSA does a lot of
    allocation and registration using device-managed calls. Thus, if we're
    going that way, by the time the DRM-managed action would run all of those
    allocation would have been freed and we would end up with a use-after-free.
    
    Thus, let's do a device-managed action. It's been tested with KASAN enabled
    and doesn't seem to trigger any issue, so it's as good as anything.
    Acked-by: NThomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: NMaxime Ripard <maxime@cerno.tech>
    Link: https://lore.kernel.org/r/20220711173939.1132294-42-maxime@cerno.tech
    59f9d46a
vc4_hdmi.c 91.0 KB