[alsa-devel] [PATCH v2 3/3] Subject: ALSA: seq: Remove autoload locks in driver registration
Takashi Iwai
tiwai at suse.de
Fri Oct 17 10:50:07 CEST 2014
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: Takashi Iwai <tiwai at suse.de>
---
sound/core/seq/seq.c | 2 --
sound/core/seq/seq_device.c | 7 +------
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/sound/core/seq/seq.c b/sound/core/seq/seq.c
index bebdd2e920ca..7e0aabb808a6 100644
--- a/sound/core/seq/seq.c
+++ b/sound/core/seq/seq.c
@@ -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;
}
diff --git a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
index ebee034f8ab5..6b31ca09caf7 100644
--- a/sound/core/seq/seq_device.c
+++ b/sound/core/seq/seq_device.c
@@ -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;
}
--
2.1.2
More information about the Alsa-devel
mailing list