summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2025-08-30 08:37:49 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-09-25 10:58:50 +0200
commit7d2897fa4827c614e4dfc67dfd603c8701ad4cd8 (patch)
treef23076c01171714aa48e7c5e2af181529ef6a660 /sound
parent363a599da6d9d9aaeea97fceff615580e845c72b (diff)
downloadlinux-7d2897fa4827c614e4dfc67dfd603c8701ad4cd8.tar.gz
linux-7d2897fa4827c614e4dfc67dfd603c8701ad4cd8.tar.bz2
linux-7d2897fa4827c614e4dfc67dfd603c8701ad4cd8.zip
ALSA: firewire-motu: drop EPOLLOUT from poll return values as write is not supported
[ Upstream commit aea3493246c474bc917d124d6fb627663ab6bef0 ] The ALSA HwDep character device of the firewire-motu driver incorrectly returns EPOLLOUT in poll(2), even though the driver implements no operation for write(2). This misleads userspace applications to believe write() is allowed, potentially resulting in unnecessarily wakeups. This issue dates back to the driver's initial code added by a commit 71c3797779d3 ("ALSA: firewire-motu: add hwdep interface"), and persisted when POLLOUT was updated to EPOLLOUT by a commit a9a08845e9ac ('vfs: do bulk POLL* -> EPOLL* replacement("").'). This commit fixes the bug. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Link: https://patch.msgid.link/20250829233749.366222-1-o-takashi@sakamocchi.jp Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/firewire/motu/motu-hwdep.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/firewire/motu/motu-hwdep.c b/sound/firewire/motu/motu-hwdep.c
index 88d1f4b56e4b..a220ac0c8eb8 100644
--- a/sound/firewire/motu/motu-hwdep.c
+++ b/sound/firewire/motu/motu-hwdep.c
@@ -111,7 +111,7 @@ static __poll_t hwdep_poll(struct snd_hwdep *hwdep, struct file *file,
events = 0;
spin_unlock_irq(&motu->lock);
- return events | EPOLLOUT;
+ return events;
}
static int hwdep_get_info(struct snd_motu *motu, void __user *arg)