[bug report] ALSA: seq: Use no intrruptible mutex_lock
Dan Carpenter
dan.carpenter at oracle.com
Mon Feb 1 14:13:14 CET 2021
Hello Takashi Iwai,
The patch 04702e8d0092: "ALSA: seq: Use no intrruptible mutex_lock"
from Aug 1, 2018, leads to the following static checker warning:
sound/core/seq/seq_clientmgr.c:2194 snd_seq_create_kernel_client()
warn: called with lock held. '®ister_mutex'
sound/core/seq/seq_midi.c
294 if (ports > (256 / SNDRV_RAWMIDI_DEVICES))
295 ports = 256 / SNDRV_RAWMIDI_DEVICES;
296
297 mutex_lock(®ister_mutex);
^^^^^^^^^^^^^^^
Holding lock
298 client = synths[card->number];
299 if (client == NULL) {
300 newclient = 1;
301 client = kzalloc(sizeof(*client), GFP_KERNEL);
302 if (client == NULL) {
303 mutex_unlock(®ister_mutex);
304 kfree(info);
305 return -ENOMEM;
306 }
307 client->seq_client =
308 snd_seq_create_kernel_client(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Deadlock
309 card, 0, "%s", card->shortname[0] ?
310 (const char *)card->shortname : "External MIDI");
311 if (client->seq_client < 0) {
312 kfree(client);
313 mutex_unlock(®ister_mutex);
314 kfree(info);
315 return -ENOMEM;
316 }
317 }
regards,
dan carpenter
More information about the Alsa-devel
mailing list