• Takashi Iwai's avatar
    ALSA: hda - Allocate hda_pcm objects dynamically · bbbc7e85
    Takashi Iwai authored
    So far, the hda_codec object kept the hda_pcm list in an array, and
    the codec driver was expected to assign the array.  However, this
    makes the object life cycle management harder, because the assigned
    array is freed at the codec driver detach while it might be still
    accessed by the opened streams.
    
    In this patch, we allocate each hda_pcm object dynamically and manage
    it as a linked list.  Each object has a kref refcount, and both the
    codec driver binder and the PCM open/close touches it, so that the
    object won't be freed while in use.
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    bbbc7e85
hda_generic.c 148 KB