On Tue, 29 Dec 2015 12:37:06 +0100, Takashi Sakamoto wrote: > > On 2015年12月29日 19:56, Takashi Sakamoto wrote: > > On 2015年12月29日 18:00, Takashi Iwai wrote: > >> On Sat, 26 Dec 2015 04:35:24 +0100, > >> Takashi Sakamoto wrote: > >>> > >>> When work of sound card registration fails, bus reset on IEEE 1394 > >>> can schedule the work again. In this case, currently instances of PCM and > >>> RawMIDI devices are not released, but allocated and errors occurs. > >>> > >>> This commit solves this issue. The allocated data is kept and released > >>> at any failures in the work. > >> > >> Aren't they be released in snd_card_free() in the later error path? > > > > Not in the error path, but indeed in card free processing. They're not > > released anymore. I should have used snd_pcm_free() and > > snd_rawmidi_free() for this purpose. (I misunderstand they should be > > used after calling snd_card_register().) > > I realized that both of snd_rawmidi_free() and snd_pcm_free() are called > by snd_device_free(), then all of allocated memory blocks are freed. > > Which error pathes do you think to cause the problems? I don't think it causing problems but just superfluous to call explicitly there. You (should) call snd_card_free*() in the error path, and these components are released there automatically. In which code path did you see the leak? This already sounds strange. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel