1
linux/sound/core
Karsten Wiese a9edfc6022 [ALSA] Handle file operations during snd_card disconnects using static file->f_op
Alsa used to kmalloc one file->f_op per file per disconnecting snd_card.
This led to oopses sometimes when file->f_op was freed before __fput()
finished.
Patch adds a virtual device for disconnect: VDD.
VDD consists of:
	LIST_HEAD(shutdown_files)
	    protected by DEFINE_SPINLOCK(shutdown_mutex)
	static struct file_operations snd_shutdown_f_ops
	    and functions assigned to it
	Additions to struct snd_monitor_file
	    to specify if instance is hidden by VDD or not.
A VDD's instance is
	created in snd_card_disconnect() under the card->files_lock.
	cleaned up in snd_card_file_remove() under the card->files_lock.

Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-10-06 20:23:04 +02:00
..
oss [ALSA] Unregister device files at disconnection 2006-09-23 10:36:58 +02:00
seq [ALSA] Unregister device files at disconnection 2006-09-23 10:36:58 +02:00
control_compat.c [ALSA] Add missing compat ioctls for ALSA control API 2006-09-23 10:47:19 +02:00
control.c [ALSA] Return error if no user TLV is defined 2006-09-23 10:44:21 +02:00
device.c [ALSA] Unregister device files at disconnection 2006-09-23 10:36:58 +02:00
hwdep_compat.c
hwdep.c [ALSA] Dereference after free in snd_hwdep_release() 2006-10-06 20:22:59 +02:00
info_oss.c [PATCH] namespaces: utsname: use init_utsname when appropriate 2006-10-02 07:57:21 -07:00
info.c [ALSA] sound core: Use SEEK_{SET,CUR,END} instead of hardcoded values 2006-09-23 10:47:43 +02:00
init.c [ALSA] Handle file operations during snd_card disconnects using static file->f_op 2006-10-06 20:23:04 +02:00
isadma.c
Kconfig [ALSA] make CONFIG_SND_DYNAMIC_MINORS non-experimental 2006-06-28 19:30:54 +02:00
Makefile
memalloc.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
memory.c Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
misc.c
pcm_compat.c [ALSA] Fix control/status mmap with shared PCM substream 2006-09-23 10:39:50 +02:00
pcm_lib.c
pcm_memory.c [ALSA] Fix disconnection of proc interface 2006-09-23 10:36:48 +02:00
pcm_misc.c
pcm_native.c [PATCH] Remove readv/writev methods and use aio_read/aio_write instead 2006-10-01 00:39:28 -07:00
pcm_timer.c
pcm.c [PATCH] maximum latency tracking: ALSA support 2006-10-01 00:39:19 -07:00
rawmidi_compat.c
rawmidi.c [ALSA] Fix substream selection in PCM and rawmidi 2006-09-23 10:39:59 +02:00
rtctimer.c [ALSA] Unregister device files at disconnection 2006-09-23 10:36:58 +02:00
sgbuf.c [ALSA] Conversions from kmalloc+memset to k(z|c)alloc 2006-08-03 15:21:18 +02:00
sound_oss.c [ALSA] Fix disconnection of proc interface 2006-09-23 10:36:48 +02:00
sound.c [ALSA] Add pcm_class attribute to PCM sysfs entry 2006-09-23 10:46:32 +02:00
timer_compat.c
timer.c [ALSA] system timer: remove unused snd_timer_system_private.timer field 2006-09-23 10:38:17 +02:00