Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54841a06 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: seq: Use atomic ops for autoload refcount



... just to robustify for races.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent bfe01a5b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -127,15 +127,15 @@ static void snd_seq_device_info(struct snd_info_entry *entry,

#ifdef CONFIG_MODULES
/* avoid auto-loading during module_init() */
static int snd_seq_in_init;
static atomic_t snd_seq_in_init = ATOMIC_INIT(0);
void snd_seq_autoload_lock(void)
{
	snd_seq_in_init++;
	atomic_inc(&snd_seq_in_init);
}

void snd_seq_autoload_unlock(void)
{
	snd_seq_in_init--;
	atomic_dec(&snd_seq_in_init);
}
#endif

@@ -147,7 +147,7 @@ void snd_seq_device_load_drivers(void)
	/* Calling request_module during module_init()
	 * may cause blocking.
	 */
	if (snd_seq_in_init)
	if (atomic_read(&snd_seq_in_init))
		return;

	mutex_lock(&ops_mutex);