1. 17 May, 2018 1 commit
    • Takashi Iwai's avatar
      ALSA: core: Assure control device to be registered at last · dc82e524
      Takashi Iwai authored
      The commit 289ca025 ("ALSA: Use priority list for managing device
      list") changed the way to register/disconnect/free devices via a
      single priority list.  This helped to make behavior consistent, but it
      also changed a slight behavior change: namely, the control device is
      registered earlier than others, while it was supposed to be the very
      last one.
      
      I've put SNDRV_DEV_CONTROL in the current position as the release of
      ctl elements often conflict with the private ctl elements some PCM or
      other components may create, which often leads to a double-free.
      But, the order of register and disconnect should be indeed fixed as
      expected in the early days: the control device gets registered at
      last, and disconnected at first.
      
      This patch changes the priority list order to move SNDRV_DEV_CONTROL
      as the last guy to assure the register / disconnect order.  Meanwhile,
      for keeping the messy resource release order, manually treat the
      control and lowlevel devices as last freed one.
      
      Additional note:
      The lowlevel device is the device where a card driver creates at
      probe.  And, we still keep the release order control -> lowlevel, as
      there might  be link from a control element back to a lowlevel object.
      
      Fixes: 289ca025 ("ALSA: Use priority list for managing device list")
      Reported-by: default avatarTzung-Bi Shih <tzungbi@google.com>
      Tested-by: default avatarTzung-Bi Shih <tzungbi@google.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      dc82e524
  2. 16 May, 2018 1 commit
  3. 15 May, 2018 9 commits
  4. 14 May, 2018 5 commits
  5. 13 May, 2018 20 commits
  6. 04 May, 2018 4 commits