[alsa-devel] EBADFD caused by commit dec428c352217010e4b8bd750d302b8062339d32
Lars Lindqvist
lars.lindqvist at yandex.ru
Tue Apr 12 18:46:17 CEST 2016
Den 2016-04-12 skrev Takashi Iwai:
> Actually we have a semaphore before shm access, so the race at two
> opens shouldn't happen. I noticed it after I sent my previous mail.
>
> But the semaphore is taken also at snd_pcm_dmix_close(). So I wonder
> where the race actually happens. Both open and close must be
> protected while another stream is opening or closing.
>
> Could you try to check where you get the exact error...?
The execution tree, as far as I can find is the following:
snd_pcm_dmix_open:
* Line 1009 snd_pcm_direct_shm_create_or_connect with the code in question,
* which returns 0. So we end up in line 1058, dmix->shmtr->use_server is 0,
* so go to line 1072.. running:
snd_pcm_open_slave, running:
snd_pcm_open_named_slave, running:
snd_pcm_open_conf
* where snd_dlobj_cache_get gives open_func = snd_pcm_hw_open, so
snd_pcm_hw_open()
snd_open_device("/dev/snd/pcmC0D0p")
* where open() returns -1 with errno = EBADFD
Regards,
Lars
More information about the Alsa-devel
mailing list