Revert "ALSA: seq: Protect in-kernel ioctl calls with mutex"
This reverts commitfeb689025f
. The fix attempt was incorrect, leading to the mutex deadlock through the close of OSS sequencer client. The proper fix needs more consideration, so let's revert it now. Fixes:feb689025f
("ALSA: seq: Protect in-kernel ioctl calls with mutex") Reported-by: syzbot+47ded6c0f23016cde310@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
5d704b0d3b
commit
f0654ba94e
|
@ -2334,19 +2334,14 @@ int snd_seq_kernel_client_ctl(int clientid, unsigned int cmd, void *arg)
|
||||||
{
|
{
|
||||||
const struct ioctl_handler *handler;
|
const struct ioctl_handler *handler;
|
||||||
struct snd_seq_client *client;
|
struct snd_seq_client *client;
|
||||||
int err;
|
|
||||||
|
|
||||||
client = clientptr(clientid);
|
client = clientptr(clientid);
|
||||||
if (client == NULL)
|
if (client == NULL)
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
|
|
||||||
for (handler = ioctl_handlers; handler->cmd > 0; ++handler) {
|
for (handler = ioctl_handlers; handler->cmd > 0; ++handler) {
|
||||||
if (handler->cmd == cmd) {
|
if (handler->cmd == cmd)
|
||||||
mutex_lock(&client->ioctl_mutex);
|
return handler->func(client, arg);
|
||||||
err = handler->func(client, arg);
|
|
||||||
mutex_unlock(&client->ioctl_mutex);
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pr_debug("ALSA: seq unknown ioctl() 0x%x (type='%c', number=0x%02x)\n",
|
pr_debug("ALSA: seq unknown ioctl() 0x%x (type='%c', number=0x%02x)\n",
|
||||||
|
|
Loading…
Reference in New Issue