sound: rawmidi: record a substream's owner process
Record the pid of the task that opened a RawMIDI substream. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
committed by
Takashi Iwai
parent
e7373b702f
commit
7584af10cf
@ -278,6 +278,7 @@ static int open_substream(struct snd_rawmidi *rmidi,
|
||||
substream->active_sensing = 0;
|
||||
if (mode & SNDRV_RAWMIDI_LFLG_APPEND)
|
||||
substream->append = 1;
|
||||
substream->pid = get_pid(task_pid(current));
|
||||
rmidi->streams[substream->stream].substream_opened++;
|
||||
}
|
||||
substream->use_count++;
|
||||
@ -488,6 +489,8 @@ static void close_substream(struct snd_rawmidi *rmidi,
|
||||
snd_rawmidi_runtime_free(substream);
|
||||
substream->opened = 0;
|
||||
substream->append = 0;
|
||||
put_pid(substream->pid);
|
||||
substream->pid = NULL;
|
||||
rmidi->streams[substream->stream].substream_opened--;
|
||||
}
|
||||
|
||||
@ -1336,6 +1339,9 @@ static void snd_rawmidi_proc_info_read(struct snd_info_entry *entry,
|
||||
substream->number,
|
||||
(unsigned long) substream->bytes);
|
||||
if (substream->opened) {
|
||||
snd_iprintf(buffer,
|
||||
" Owner PID : %d\n",
|
||||
pid_vnr(substream->pid));
|
||||
runtime = substream->runtime;
|
||||
snd_iprintf(buffer,
|
||||
" Mode : %s\n"
|
||||
@ -1357,6 +1363,9 @@ static void snd_rawmidi_proc_info_read(struct snd_info_entry *entry,
|
||||
substream->number,
|
||||
(unsigned long) substream->bytes);
|
||||
if (substream->opened) {
|
||||
snd_iprintf(buffer,
|
||||
" Owner PID : %d\n",
|
||||
pid_vnr(substream->pid));
|
||||
runtime = substream->runtime;
|
||||
snd_iprintf(buffer,
|
||||
" Buffer size : %lu\n"
|
||||
|
Reference in New Issue
Block a user