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

Commit d5129f33 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Subject: ALSA: seq: Remove autoload locks in driver registration



Since we're calling request_module() asynchronously now, we can get
rid of the autoload lock in snd_seq_device_register_driver(), as well
as in the snd-seq driver registration itself.  This enables the
automatic loading of dependent sequencer modules, such as
snd-seq-virmidi from snd-emu10k1-synth.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 68ab6108
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -86,7 +86,6 @@ static int __init alsa_seq_init(void)
{
	int err;

	snd_seq_autoload_lock();
	if ((err = client_init_data()) < 0)
		goto error;

@@ -112,7 +111,6 @@ static int __init alsa_seq_init(void)

	snd_seq_autoload_init();
 error:
	snd_seq_autoload_unlock();
	return err;
}

+1 −6
Original line number Diff line number Diff line
@@ -360,16 +360,12 @@ int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry,
	    entry->init_device == NULL || entry->free_device == NULL)
		return -EINVAL;

	snd_seq_autoload_lock();
	ops = find_driver(id, 1);
	if (ops == NULL) {
		snd_seq_autoload_unlock();
	if (ops == NULL)
		return -ENOMEM;
	}
	if (ops->driver & DRIVER_LOADED) {
		pr_warn("ALSA: seq: driver_register: driver '%s' already exists\n", id);
		unlock_driver(ops);
		snd_seq_autoload_unlock();
		return -EBUSY;
	}

@@ -386,7 +382,6 @@ int snd_seq_device_register_driver(char *id, struct snd_seq_dev_ops *entry,
	mutex_unlock(&ops->reg_mutex);

	unlock_driver(ops);
	snd_seq_autoload_unlock();

	return 0;
}