[alsa-devel] [PATCH 1/3] ALSA: pcm: implement the anonymous dup (inode file descriptor)
Takashi Iwai
tiwai at suse.de
Mon Feb 4 18:00:47 CET 2019
On Mon, 04 Feb 2019 12:28:32 +0100,
Jaroslav Kysela wrote:
>
> This patch implements new SNDRV_PCM_IOCTL_ANONYMOUS_DUP ioctl which
> returns the new duplicated anonymous inode file descriptor
> (anon_inode:snd-pcm) which can be passed to the restricted clients.
>
> This patch is meant to be the alternative for the dma-buf interface. Both
> implementation have some pros and cons:
>
> anon_inode:dmabuf
>
> - a bit standard export API for the DMA buffers
> - fencing for the concurrent access [1]
> - driver/kernel interface for the DMA buffer [1]
> - multiple attach/detach scheme [1]
>
> [1] the real usage for the sound PCM is unknown at the moment for this feature
>
> anon_inode:snd-pcm
>
> - simple (no problem with ref-counting, non-standard mmap implementation etc.)
> - allow to use more sound interfaces for the file descriptor like status ioctls
> - more fine grained security policies (another anon_inode name unshared with
> other drivers)
>
> Signed-off-by: Jaroslav Kysela <perex at perex.cz>
> Reviewed-by: Takashi Iwai <tiwai at suse.de>
Although I already gave my reviewed-by tag, I found one place to be
fixed. Namely:
> +static int snd_pcm_anonymous_dup(struct file *file,
> + struct snd_pcm_substream *substream,
> + int __user *arg)
> +{
....
> + err = snd_card_file_add(pcm->card, nfile);
> + if (err < 0)
> + goto __error2;
> + err = snd_pcm_open_file(nfile, substream->pcm,
> + substream->stream, substream->number);
We need the pcm->open_mutex lock around the snd_pcm_open_file() call
above for avoiding the racy opens.
thanks,
Takashi
More information about the Alsa-devel
mailing list