[PATCH v2 3/5] ALSA: control: Drop async signal support
Takashi Iwai
tiwai at suse.de
Sun Jul 17 09:05:47 CEST 2022
The async signal (SIGIO) support for ALSA control API has been never
used by real applications, but yet it can be a cause of various
potential deadlocks (although there hasn't been a bug report in this
code path unlike timer and PCM). Let's drop the feature as the
simplest solution to align with other APIs.
Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
include/sound/control.h | 1 -
sound/core/control.c | 11 -----------
2 files changed, 12 deletions(-)
diff --git a/include/sound/control.h b/include/sound/control.h
index fcd3cce673ec..0390d4952dac 100644
--- a/include/sound/control.h
+++ b/include/sound/control.h
@@ -109,7 +109,6 @@ struct snd_ctl_file {
int preferred_subdevice[SND_CTL_SUBDEV_ITEMS];
wait_queue_head_t change_sleep;
spinlock_t read_lock;
- struct fasync_struct *fasync;
int subscribed; /* read interface is activated */
struct list_head events; /* waiting events for read */
};
diff --git a/sound/core/control.c b/sound/core/control.c
index 4dba3a342458..3d3b8bf93f80 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -181,7 +181,6 @@ void snd_ctl_notify(struct snd_card *card, unsigned int mask,
_found:
wake_up(&ctl->change_sleep);
spin_unlock(&ctl->read_lock);
- kill_fasync(&ctl->fasync, SIGIO, POLL_IN);
}
read_unlock_irqrestore(&card->ctl_files_rwlock, flags);
}
@@ -2129,14 +2128,6 @@ int snd_ctl_unregister_ioctl_compat(snd_kctl_ioctl_func_t fcn)
EXPORT_SYMBOL(snd_ctl_unregister_ioctl_compat);
#endif
-static int snd_ctl_fasync(int fd, struct file * file, int on)
-{
- struct snd_ctl_file *ctl;
-
- ctl = file->private_data;
- return fasync_helper(fd, file, on, &ctl->fasync);
-}
-
/* return the preferred subdevice number if already assigned;
* otherwise return -1
*/
@@ -2264,7 +2255,6 @@ static const struct file_operations snd_ctl_f_ops =
.poll = snd_ctl_poll,
.unlocked_ioctl = snd_ctl_ioctl,
.compat_ioctl = snd_ctl_ioctl_compat,
- .fasync = snd_ctl_fasync,
};
/*
@@ -2302,7 +2292,6 @@ static int snd_ctl_dev_disconnect(struct snd_device *device)
read_lock_irqsave(&card->ctl_files_rwlock, flags);
list_for_each_entry(ctl, &card->ctl_files, list) {
wake_up(&ctl->change_sleep);
- kill_fasync(&ctl->fasync, SIGIO, POLL_ERR);
}
read_unlock_irqrestore(&card->ctl_files_rwlock, flags);
--
2.35.3
More information about the Alsa-devel
mailing list